diff --git a/CHANGELOG.md b/CHANGELOG.md index d49d8c8..5ea9ddd 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # @vladmandic/face-api - Version: **1.7.6** + Version: **1.7.7** Description: **FaceAPI: AI-powered Face Detection & Rotation Tracking, Face Description & Recognition, Age & Gender & Emotion Prediction for Browser and NodeJS using TensorFlow/JS** Author: **Vladimir Mandic ** @@ -9,7 +9,10 @@ ## Changelog -### **HEAD -> master** 2022/10/18 mandic00@live.com +### **1.7.7** 2022/12/01 mandic00@live.com + + +### **origin/master** 2022/11/12 mandic00@live.com ### **1.7.6** 2022/10/18 mandic00@live.com diff --git a/demo/index.html b/demo/index.html index 4941c1c..82b120a 100644 --- a/demo/index.html +++ b/demo/index.html @@ -11,7 +11,7 @@ - +
diff --git a/demo/index.js b/demo/index.js index 533a942..6b24c05 100644 --- a/demo/index.js +++ b/demo/index.js @@ -108,19 +108,20 @@ async function main() { // initialize tfjs log('FaceAPI Test'); - const params = new URLSearchParams(location.search); - if (params.has('backend')) { - const backend = params.get('backend'); - await faceapi.tf.setWasmPaths('https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@3.19.0/dist/'); - log(`Chosen backend: ${backend}`); - await faceapi.tf.setBackend(backend); - } else { - // default is webgl backend - await faceapi.tf.setBackend('webgl'); - } + // if you want to use wasm backend location for wasm binaries must be specified + // await faceapi.tf?.setWasmPaths(`https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@${faceapi.tf.version_core}/dist/`); + // await faceapi.tf?.setBackend('wasm'); + // log(`WASM SIMD: ${await faceapi.tf?.env().getAsync('WASM_HAS_SIMD_SUPPORT')} Threads: ${await faceapi.tf?.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT') ? 'Multi' : 'Single'}`); + // default is webgl backend + await faceapi.tf.setBackend('webgl'); + await faceapi.tf.ready(); + + // tfjs optimizations + if (faceapi.tf?.env().flagRegistry.CANVAS2D_WILL_READ_FREQUENTLY) faceapi.tf.env().set('CANVAS2D_WILL_READ_FREQUENTLY', true); + if (faceapi.tf?.env().flagRegistry.WEBGL_EXP_CONV) faceapi.tf.env().set('WEBGL_EXP_CONV', true); + if (faceapi.tf?.env().flagRegistry.WEBGL_EXP_CONV) faceapi.tf.env().set('WEBGL_EXP_CONV', true); await faceapi.tf.enableProdMode(); - await faceapi.tf.ENV.set('DEBUG', false); await faceapi.tf.ready(); // check version diff --git a/demo/webcam.js b/demo/webcam.js index af468e8..47efc14 100644 --- a/demo/webcam.js +++ b/demo/webcam.js @@ -116,8 +116,9 @@ async function setupCamera() { if (err.name === 'SourceUnavailableError') log(`Camera Error: camera not available: ${err.message || err}`); return null; } - if (stream) video.srcObject = stream; - else { + if (stream) { + video.srcObject = stream; + } else { log('Camera Error: stream empty'); return null; } @@ -169,15 +170,21 @@ async function main() { log('FaceAPI WebCam Test'); // if you want to use wasm backend location for wasm binaries must be specified - // await faceapi.tf.setWasmPaths(`https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@${faceapi.tf.version_core}/dist/`); - // await faceapi.tf.setBackend('wasm'); + // await faceapi.tf?.setWasmPaths(`https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-backend-wasm@${faceapi.tf.version_core}/dist/`); + // await faceapi.tf?.setBackend('wasm'); + // log(`WASM SIMD: ${await faceapi.tf?.env().getAsync('WASM_HAS_SIMD_SUPPORT')} Threads: ${await faceapi.tf?.env().getAsync('WASM_HAS_MULTITHREAD_SUPPORT') ? 'Multi' : 'Single'}`); // default is webgl backend await faceapi.tf.setBackend('webgl'); await faceapi.tf.ready(); + // tfjs optimizations + if (faceapi.tf?.env().flagRegistry.CANVAS2D_WILL_READ_FREQUENTLY) faceapi.tf.env().set('CANVAS2D_WILL_READ_FREQUENTLY', true); + if (faceapi.tf?.env().flagRegistry.WEBGL_EXP_CONV) faceapi.tf.env().set('WEBGL_EXP_CONV', true); + if (faceapi.tf?.env().flagRegistry.WEBGL_EXP_CONV) faceapi.tf.env().set('WEBGL_EXP_CONV', true); + // check version - log(`Version: FaceAPI ${str(faceapi?.version || '(not loaded)')} TensorFlow/JS ${str(faceapi?.tf?.version_core || '(not loaded)')} Backend: ${str(faceapi?.tf?.getBackend() || '(not loaded)')}`); + log(`Version: FaceAPI ${str(faceapi?.version || '(not loaded)')} TensorFlow/JS ${str(faceapi.tf?.version_core || '(not loaded)')} Backend: ${str(faceapi.tf?.getBackend() || '(not loaded)')}`); await setupFaceAPI(); await setupCamera(); diff --git a/dist/face-api.esm-nobundle.js b/dist/face-api.esm-nobundle.js index 487ce5c..3a6cdcb 100644 --- a/dist/face-api.esm-nobundle.js +++ b/dist/face-api.esm-nobundle.js @@ -4,4 +4,4 @@ author: ' */ -var lr=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var go=Object.getOwnPropertyNames;var xo=Object.prototype.hasOwnProperty;var vo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+o+'" is not supported')});var Ve=(o,t)=>{for(var e in t)lr(o,e,{get:t[e],enumerable:!0})},fr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of go(t))!xo.call(o,a)&&a!==e&&lr(o,a,{get:()=>t[a],enumerable:!(r=bo(t,a))||r.enumerable});return o},P=(o,t,e)=>(fr(o,t,"default"),e&&fr(e,t,"default"));var n={};Ve(n,{version:()=>Po});P(n,mn);P(n,pn);P(n,un);import*as mn from"@tensorflow/tfjs/dist/index.js";import*as pn from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as un from"@tensorflow/tfjs-backend-wasm/dist/index.js";var dr="4.0.0",yo="4.0.0",_o="4.0.0",To="4.0.0",wo="4.0.0",Po={tfjs:dr,"tfjs-core":dr,"tfjs-converter":yo,"tfjs-backend-cpu":_o,"tfjs-backend-webgl":To,"tfjs-backend-wasm":wo};var Wr={};Ve(Wr,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>et,DrawTextFieldOptions:()=>kt,drawContour:()=>Z,drawDetections:()=>No,drawFaceExpressions:()=>So,drawFaceLandmarks:()=>Ao});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},s)=>{let i=t[s];o.moveTo(i.x,i.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var hr={};Ve(hr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>yt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>xt,isTensor1D:()=>Fo,isTensor2D:()=>Ye,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>It,range:()=>U,round:()=>vt});var S=class{constructor(t,e){if(!G(t)||!G(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function xt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function Fo(o){return xt(o,1)}function Ye(o){return xt(o,2)}function K(o){return xt(o,3)}function R(o){return xt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function vt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function yt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function U(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function It(o){return G(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var F=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!F.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},a=[r.left,r.top,r.right,r.bottom].every(G),s=[r.x,r.y,r.width,r.height].every(G);if(!s&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[i,c,m,p]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];F.assertIsValidBox({x:i,y:c,width:m,height:p},"Box.constructor",e),this._x=i,this._y=c,this._width=m,this._height=p}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new F({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new F({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,s=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:i,edy:m,dx:s,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new F({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Nt=class extends F{constructor(t,e,r,a,s=!1){super({left:t,top:e,right:r,bottom:a},s)}};var ct=class{constructor(t,e,r,a,s){this._imageDims=new S(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new F(a).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new F(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new ct(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends ct{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:s}=super.forSize(t,e);return new E(r,a,s)}};function br(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),s=r*a;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function gr(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:i,boxIndex:c})).sort((i,c)=>i.score-c.score).map(i=>i.boxIndex),s=[];for(;a.length>0;){let i=a.pop();s.push(i);let c=a,m=[];for(let p=0;pm[u]<=e)}return s}function X(o,t){return n.tidy(()=>{let[e,r,a]=t,s=n.fill([...o.shape.slice(0,3),1],e,"float32"),i=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([s,i,c],3);return n.sub(o,m)})}function vr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),s=Math.round(a*(t?.5:1)),i=e>r?2:1,c=l=>{let d=o.shape.slice();return d[i]=l,n.fill(d,0,"float32")},m=c(s),p=a-m.shape[i],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,i)})}function Rn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function On(o){return Math.log(o/(1-o))}var St=class extends F{constructor(t,e,r,a,s=!1){super({x:t,y:e,width:r,height:a},s)}};var Do=.5,Eo=.43,Mo=.45,$=class{constructor(t,e,r=new g(0,0)){let{width:a,height:s}=e;this._imgDims=new S(a,s),this._shift=r,this._positions=t.map(i=>i.mul(new g(a,s)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof E?t.box.floor():new F(t);return this.shiftBy(s.x,s.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,s=f=>a.sub(f).magnitude(),i=(s(e)+s(r))/2,c=Math.floor(i/Mo),m=yt(t),p=Math.floor(Math.max(0,m.x-Do*c)),u=Math.floor(Math.max(0,m.y-Eo*c));return new St(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=gr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],yt([t[3],t[4]])]}};var Lt=class extends ${getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(yt)}};var Kt=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${vt(this.distance)})`:""}`}};var Qt=class extends F{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(F.assertIsValidBox(e,r),!G(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var Q=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new Q(t.label,e)}};var _r=class extends Qt{constructor(e,r,a,s){super(e,r);this._score=a,this._classScore=s}static assertIsValidPredictedBox(e,r){if(Qt.assertIsValidLabeledBox(e,r),!It(e.score)||!It(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function tt(o){return o.detection instanceof E}function At(o,t){return{...o,...{detection:t}}}function Ue(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=vo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,s)=>{o.readFile(r,(i,c)=>i?s(i):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:s,fetch:i,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var C;function Co(){if(!C)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return C}function qe(o){C=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Io(o){if(C||Ze(),!C)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=C.Canvas,Image:e=C.Image}=o;C.Canvas=t,C.Image=e,C.createCanvasElement=o.createCanvasElement||(()=>new t),C.createImageElement=o.createImageElement||(()=>new e),C.ImageData=o.ImageData||C.ImageData,C.Video=o.Video||C.Video,C.fetch=o.fetch||C.fetch,C.readFile=o.readFile||C.readFile}var _={getEnv:Co,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Io,isBrowser:Je,isNodejs:te};Ze();function Wt(o){return!_.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function k(o){let{Canvas:t,CanvasRenderingContext2D:e}=_.getEnv();if(o instanceof e)return o;let r=Wt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d");if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),kt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:s,fontStyle:i,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=c||4}},et=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof et?t.text:t,this.anchor=e,this.options=new kt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let b=m+f.x,x=m+f.y+(d+1)*i;r.fillText(l,b,x)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new kt({...i,...s})}},ee=class{constructor(t,e={}){this.box=new F(t),this.options=new de(e)}draw(t){let e=k(t),{boxColor:r,lineWidth:a}=this.options,{x:s,y:i,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(s,i,c,m);let{label:p}=this.options;p&&new et([p],{x:s-a/2,y:i},this.options.drawLabelOptions).draw(t)}};function No(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof E?r.score:tt(r)?r.detection.score:void 0,s=r instanceof E?r.box:tt(r)?r.detection.box:new F(r),i=a?`${vt(a)}`:void 0;new ee(s,{label:i}).draw(o)})}function he(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Tr(o){return new Promise((t,e)=>{(o instanceof _.getEnv().Canvas||he(o))&&t(null);function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),e(s))}function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",a),o.addEventListener("error",r)})}function wr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let a=_.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Bt(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Rt({width:o,height:t}){let{createCanvasElement:e}=_.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=_.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||Bt(o),s=Rt({width:r,height:a});return o instanceof e?k(s).putImageData(o,0,0):k(s).drawImage(o,0,0,r,a),s}async function Pr(o,t){let e=t||_.getEnv().createCanvasElement(),[r,a,s]=o.shape.slice(R(o)?1:0),i=n.tidy(()=>o.as3D(r,a,s).toInt());return await n.browser.toPixels(i,e),i.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=_.getEnv();return o instanceof t||o instanceof e||o instanceof r}function Fr(o,t,e=!1){let{Image:r,Canvas:a}=_.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Rt({width:1,height:1});let s=Bt(o),i=t/Math.max(s.height,s.width),c=i*s.width,m=i*s.height,p=Rt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&k(p).drawImage(u,l,d,c,m),p}var rt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(r)){let i=r.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let s=r instanceof _.getEnv().Canvas?r:be(r);this._canvases[a]=s,this._inputDimensions[a]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return U(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=U(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof n.Tensor){let c=R(i)?i:n.expandDims(i);return c=vr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(i instanceof _.getEnv().Canvas)return n.browser.fromPixels(Fr(i,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return n.stack(r.map(s=>n.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function M(o){if(o instanceof rt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(Wt);return r.forEach((a,s)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let i=a.shape[0];if(i!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&Tr(a))),new rt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=_.getEnv(),r=o;if(!(o instanceof e)){let i=await M(o);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=i.getInput(0);r=c instanceof e?c:await Pr(c)}let a=k(r);return t.map(i=>i instanceof E?i.forSize(r.width,r.height).box.floor():i).map(i=>i.clipAtImageBorders(r.width,r.height)).map(({x:i,y:c,width:m,height:p})=>{let u=Rt({width:m,height:p});return m>0&&p>0&&k(u).putImageData(a.getImageData(i,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof E?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function mt(o,t){let{fetch:e}=_.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Fi(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return wr(e)}async function Dr(o){return(await mt(o)).json()}async function Ii(o){return new Float32Array(await(await mt(o)).arrayBuffer())}function Er(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=_.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function ki(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Er(e)}function ge(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let a=o.split("/").filter(c=>c),s=o.endsWith(".json")?a[a.length-1]:e,i=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return i=o.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Mr(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await Dr(e);return n.io.loadWeights(a,r)}function Vi(o,t,e=!1){let{width:r,height:a}=e?Bt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Mr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=_.getEnv(),{manifestUri:r,modelBaseUri:a}=ge(t,this.getDefaultModelName()),s=p=>Promise.all(p.map(u=>e(u).then(f=>f.buffer))),i=n.io.weightsLoaderFactory(s),c=JSON.parse((await e(r)).toString()),m=await i(c,a);this.loadFromWeightMap(m)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function W(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):W(o,t.conv0,[2,2])),a=W(r,t.conv1,[1,1]),s=n.relu(n.add(r,a)),i=W(s,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,i)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):W(o,t.conv0,r?[2,2]:[1,1])),s=W(a,t.conv1,[1,1]),i=n.relu(n.add(a,s)),c=W(i,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(s,c))),p=W(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(s,n.add(c,p))))})}function _t(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function L(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function $t(o,t){return(e,r,a,s)=>{let i=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:c}}}function ve(o,t){return(e,r,a)=>{let s=n.tensor2d(o(e*r),[e,r]),i=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:s,bias:i}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function Ot(o,t){return(e,r,a)=>{let s=n.tensor4d(o(9*e),[3,3,e,1]),i=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(s,i,c)}}function Ht(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function B(o,t){return(e,r,a)=>{let s=o[e];if(!xt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:a||e}),s}}function A(o){let t=o;function e(a){let s=t.slice(0,a);return t=t.slice(a),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m,p=!1){let u=p?e(i,c,3,`${m}/conv0`):r(i,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function s(i,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(i,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Cr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock4Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c,dense3:m}}}function _e(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function Te(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Ir(o){let t=[],{extractDenseBlock4Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return L(o,t),{params:r,paramMappings:t}}var zt=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=ne(s,e.dense0,!0);return i=ne(i,e.dense1),i=ne(i,e.dense2),i=ne(i,e.dense3),i=n.avgPool(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Ir(t)}extractParams(t){return Cr(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Nr(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:s}=A(o),c=ve(a,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:c}}}function Sr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:r("fc")};return L(o,t),{params:a,paramMappings:t}}function we(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Vt=class extends I{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e;return se(a.as2D(a.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Nr(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=we(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Sr(a)}extractParams(e){let r=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),s=a*r+a,i=e.slice(0,e.length-s),c=e.slice(e.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(c)}};var Lr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],pt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Lr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Lr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Pe=class extends Vt{constructor(t=new zt){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await M(t))}async predictExpressions(t){let e=await M(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async i=>{let c=i.dataSync();return i.dispose(),c}));r.dispose();let s=a.map(i=>new pt(i));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Ar(o){return o.expressions instanceof pt}function tr(o,t){return{...o,...{expressions:t}}}function So(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof pt?s:Ar(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=i.asSortedArray().filter(f=>f.probability>e),p=tt(s)?s.detection.box.bottomLeft:r||new g(0,0);new et(m.map(f=>`${f.expression} (${vt(f.probability)})`),p).draw(o)})}function Yt(o){return tt(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof E}function Lo(o){let t=m=>m*180/Math.PI,e=(m,p)=>Math.sqrt((m._x-p._x)**2+(m._y-p._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},a=(m,p,u)=>{let f=Math.floor(m._x-p._x),l=Math.floor(p._x-u._x);return f-l},s=(m,p)=>{let u=Math.hypot(p._x-m._x,p._y-m._y),f=p._y-m._y,l=Math.asin(f/u),d=t(l),b=Math.floor(90-d),x=p._x-m._x<0?-1:1;return b*x},i=(m,p,u)=>{let f=e(m,u),l={_x:(m._x+u._x)/2,_y:(m._y+u._y)/2},d=e(p,l),b=Math.atan(d/f),x=Math.floor(t(b)),w=l._y-p._y<0?-1:1;return x*w};if(!o||!o._positions||o._positions.length!==68)return r;let c=o._positions;return r.roll=s(c[27],c[66]),r.pitch=i(c[14],c[30],c[2]),r.yaw=a(c[14],c[33],c[2]),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:s}=o.detection,i=new E(o.detection.score,a.rescale(s.reverse()),s),c=Lo(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:i,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=k(t),{drawLines:r,drawPoints:a,lineWidth:s,lineColor:i,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=i,e.lineWidth=s,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function Ao(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var kr="1.7.6";function Bo(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m){let p=r(i,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(i,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function s(i,c){let m=r(i,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=r(i,i,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:s}}function Br(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=A(o),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:c,extractMainBlockParams:m}=Bo(r,e),p=s(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};U(t,0,1).forEach(h=>{d[`main_block_${h}`]=m(128,`middle_flow/main_block_${h}`)});let b=c(128,256,"exit_flow/reduction_block"),x=i(256,512,"exit_flow/separable_conv"),w={reduction_block:b,separable_conv:x};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:w}}}function Ro(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}}function Rr(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}=Ro(o,e),c=r("entry_flow/conv_in"),m=s("entry_flow/reduction_block_0"),p=s("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};U(t,0,1).forEach(x=>{f[`main_block_${x}`]=i(`middle_flow/main_block_${x}`)});let l=s("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),b={reduction_block:l,separable_conv:d};return L(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:b},paramMappings:e}}function $r(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=W(r,t.separable_conv0,[1,1]),r=W(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,$r(o,t.expansion_conv,[2,2])),r}function $o(o,t){let e=W(n.relu(o),t.separable_conv0,[1,1]);return e=W(n.relu(e),t.separable_conv1,[1,1]),e=W(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return n.tidy(()=>{let a=n.cast(e.toBatchTensor(112,!0),"float32"),i=X(a,[122.782,117.001,104.298]).div(255),c=n.relu($r(i,r.entry_flow.conv_in,[2,2]));return c=er(c,r.entry_flow.reduction_block_0,!1),c=er(c,r.entry_flow.reduction_block_1),U(this._numMainBlocks,0,1).forEach(m=>{c=$o(c,r.middle_flow[`main_block_${m}`])}),c=er(c,r.exit_flow.reduction_block),c=n.relu(W(c,r.exit_flow.separable_conv,[1,1])),c})}async forward(e){return this.forwardInput(await M(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Rr(e,this._numMainBlocks)}extractParams(e){return Br(e,this._numMainBlocks)}};function Or(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),a=ve(e,t),s=a(512,1,"fc/age"),i=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Hr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return L(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(e=new Ee(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e,s=n.avgPool(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),i=se(s,r.fc.age).as1D(),c=se(s,r.fc.gender);return{age:i,gender:c}})}forwardInput(e){return n.tidy(()=>{let{age:r,gender:a}=this.runNet(e);return{age:r,gender:n.softmax(a)}})}async forward(e){return this.forwardInput(await M(e))}async predictAgeAndGender(e){let r=await M(e),a=await this.forwardInput(r),s=n.unstack(a.age),i=n.unstack(a.gender),c=s.map((p,u)=>({ageTensor:p,genderTensor:i[u]})),m=await Promise.all(c.map(async({ageTensor:p,genderTensor:u})=>{let f=p.dataSync()[0],l=u.dataSync()[0],d=l>.5,b=d?"male":"female",x=d?l:1-l;return p.dispose(),u.dispose(),{age:f,gender:b,genderProbability:x}}));return a.age.dispose(),a.gender.dispose(),r.isBatchInput?m:m[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Or(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=we(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Hr(a)}extractParams(e){let a=e.slice(0,e.length-1539),s=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Gt=class extends Vt{postProcess(t,e,r){let a=r.map(({width:i,height:c})=>{let m=e/Math.max(c,i);return{width:i*m,height:c*m}}),s=a.length;return n.tidy(()=>{let i=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:b}=a[f];return l(d,b)?Math.abs(d-b)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>di(m(l),p(l))))).div(n.stack(Array.from(Array(s),(f,l)=>i(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await M(t))}async detectLandmarks(t){let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(s,i)=>{let c=Array.from(s.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new g(m[f],p[f])),{height:e.getInputHeight(i),width:e.getInputWidth(i)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var jt=class extends Gt{constructor(t=new zt){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function zr(o){let t=[],{extractDenseBlock3Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return L(o,t),{params:r,paramMappings:t}}function Vr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock3Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=xe(s,e.dense0,!0);return i=xe(i,e.dense1),i=xe(i,e.dense2),i=n.avgPool(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return zr(t)}extractParams(t){return Vr(t)}};var Ie=class extends Gt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Yr=class extends jt{};function Gr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:s,bias:i}=t.conv,c=n.conv2d(o,s,e,a);return c=n.add(c,i),c=Gr(c,t.scale),r?n.relu(c):c}function jr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function Oo(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function s(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function i(c,m,p,u,f=!1){let l=s((f?.5:1)*c,m,p,`${u}/conv1`),d=s(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function Ur(o){let{extractWeights:t,getRemainingWeights:e}=A(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:s}=Oo(t,r),i=a(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),m=s(9216,32,3,"conv32_2"),p=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),f=s(36864,64,3,"conv64_1"),l=s(36864,64,3,"conv64_2"),d=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),x=s(147456,128,3,"conv128_1"),w=s(147456,128,3,"conv128_2"),h=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),D=s(589824,256,3,"conv256_down_out"),N=n.tidy(()=>n.transpose(n.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:i,conv32_1:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:b,conv128_1:x,conv128_2:w,conv256_down:h,conv256_1:y,conv256_2:v,conv256_down_out:D,fc:N},paramMappings:r}}function Ho(o,t){let e=B(o,t);function r(i){let c=e(`${i}/scale/weights`,1),m=e(`${i}/scale/biases`,1);return{weights:c,biases:m}}function a(i){let c=e(`${i}/conv/filters`,4),m=e(`${i}/conv/bias`,1),p=r(i);return{conv:{filters:c,bias:m},scale:p}}function s(i){return{conv1:a(`${i}/conv1`),conv2:a(`${i}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Xr(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Ho(o,t),a=e("conv32_down"),s=r("conv32_1"),i=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),b=r("conv128_2"),x=r("conv256_down"),w=r("conv256_1"),h=r("conv256_2"),y=r("conv256_down_out"),{fc:v}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ye(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let D={conv32_down:a,conv32_1:s,conv32_2:i,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:b,conv256_down:x,conv256_1:w,conv256_2:h,conv256_down_out:y,fc:v};return L(o,t),{params:D,paramMappings:t}}function j(o,t){let e=jr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),s=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=s?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var Ut=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=Ne(s,e.conv32_down);i=n.maxPool(i,3,2,"valid"),i=j(i,e.conv32_1),i=j(i,e.conv32_2),i=j(i,e.conv32_3),i=ce(i,e.conv64_down),i=j(i,e.conv64_1),i=j(i,e.conv64_2),i=j(i,e.conv64_3),i=ce(i,e.conv128_down),i=j(i,e.conv128_1),i=j(i,e.conv128_2),i=ce(i,e.conv256_down),i=j(i,e.conv256_1),i=j(i,e.conv256_2),i=ce(i,e.conv256_down_out);let c=i.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await M(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(i=>i.data()));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Xr(t)}extractParams(t){return Ur(t)}};function bf(o){let t=new Ut;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function yf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Pf(o){return(o.gender==="male"||o.gender==="female")&&It(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function zo(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),b=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:b}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),b=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:b}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function s(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function i(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),f=s(128,128,"mobilenetv1/conv_3"),l=s(128,256,"mobilenetv1/conv_4"),d=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),x=s(512,512,"mobilenetv1/conv_7"),w=s(512,512,"mobilenetv1/conv_8"),h=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),D=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:x,conv_8:w,conv_9:h,conv_10:y,conv_11:v,conv_12:D,conv_13:N}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),b=a(256,64,1,"prediction_layer/conv_6"),x=a(64,128,3,"prediction_layer/conv_7"),w=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),D=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),Y=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),q=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),at=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),st=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),it=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:x,box_predictor_0:{box_encoding_predictor:w,class_predictor:h},box_predictor_1:{box_encoding_predictor:y,class_predictor:v},box_predictor_2:{box_encoding_predictor:D,class_predictor:N},box_predictor_3:{box_encoding_predictor:Y,class_predictor:q},box_predictor_4:{box_encoding_predictor:O,class_predictor:at},box_predictor_5:{box_encoding_predictor:st,class_predictor:it}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:c}}function Jr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:s}=zo(e,t),i=a(),c=s(),p={extra_dim:n.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:i,prediction_layer:c,output_layer:p},paramMappings:t}}function Vo(o,t){let e=B(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,b=e(`${f}/depthwise_weights`,4,`${l}/filters`),x=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),w=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),h=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),y=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:x,batch_norm_offset:w,batch_norm_mean:h,batch_norm_variance:y},pointwise_conv:r("MobilenetV1",p,d)}}function s(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function i(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=i(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=i(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:m}}function qr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Vo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return L(o,t),{params:s,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Yo=.0010000000474974513;function Go(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yo),n.clipByValue(r,0,6)})}function jo(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Zr(o,t){return n.tidy(()=>{let e,r=H(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let c=i+1,m=jo(c);r=Go(r,s.depthwise_conv,m),r=H(r,s.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Uo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(i-a)*(c-s),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let b=Math.max(a,m),x=Math.max(s,p),w=Math.min(i,u),h=Math.min(c,f),y=Math.max(w-b,0)*Math.max(h-x,0);return y/(l+d-y)}function Kr(o,t,e,r,a){let s=o.shape[0],i=Math.min(e,s),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=i)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=Uo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Xo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Jo(o,t){let{sizes:e,centers:r}=Xo(o),a=n.unstack(n.transpose(t,[1,0])),s=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),i=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(i,s),n.sub(m,c),n.add(i,s),n.add(m,c)]),[1,0])}function Qr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Jo(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let s=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),i=n.slice(s,[0,0,0],[-1,-1,1]);i=n.reshape(i,[r,i.shape[1]]);let c=n.unstack(a),m=n.unstack(i);return{boxes:c,scores:m}})}function Tt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(_t(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(_t(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function to(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),s=H(a,e.conv_2,[1,1]),i=H(s,e.conv_3,[2,2]),c=H(i,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=Tt(t,e.box_predictor_0),l=Tt(o,e.box_predictor_1),d=Tt(a,e.box_predictor_2),b=Tt(i,e.box_predictor_3),x=Tt(m,e.box_predictor_4),w=Tt(u,e.box_predictor_5),h=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,b.boxPredictionEncoding,x.boxPredictionEncoding,w.boxPredictionEncoding],1),y=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,b.classPrediction,x.classPrediction,w.classPrediction],1);return{boxPredictions:h,classPredictions:y}})}var z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var wt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),s=Zr(a,e.mobilenetv1),{boxPredictions:i,classPredictions:c}=to(s.out,s.conv11,e.prediction_layer);return Qr(i,c,e.output_layer)})}async forward(t){return this.forwardInput(await M(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),s=await M(t),{boxes:i,scores:c}=this.forwardInput(s),m=i[0],p=c[0];for(let v=1;v{let[D,N]=[Math.max(0,h[v][0]),Math.min(1,h[v][2])].map(O=>O*w),[Y,q]=[Math.max(0,h[v][1]),Math.min(1,h[v][3])].map(O=>O*x);return new E(u[v],new St(Y,D,q-Y,N-D),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return m.dispose(),p.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return qr(t)}extractParams(t){return Jr(t)}};function qo(o){let t=new wt;return t.extractWeights(o),t}function bl(o){return qo(o)}var eo=class extends wt{};var ro=.4,oo=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],no=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],ao=[117.001,114.697,97.404],so="tiny_yolov2_model",io="tiny_yolov2_separable_conv_model";var Se=o=>typeof o=="number";function co(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Se(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Se(t.x)&&Se(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Se)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Xt(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function ot(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Xt(e)})}function nt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Xt(e)})}function Zo(o,t){let e=$t(o,t);function r(i,c){let m=n.tensor1d(o(i)),p=n.tensor1d(o(i));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(i,c,m){let p=e(i,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let s=Ot(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function mo(o,t,e,r){let{extractWeights:a,getRemainingWeights:s}=A(o),i=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=Zo(a,i),u;if(t.withSeparableConvs){let[f,l,d,b,x,w,h,y,v]=r,D=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),N=p(l,d,"conv1"),Y=p(d,b,"conv2"),q=p(b,x,"conv3"),O=p(x,w,"conv4"),at=p(w,h,"conv5"),st=y?p(h,y,"conv6"):void 0,it=v?p(y,v,"conv7"):void 0,gt=c(v||y||h,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}else{let[f,l,d,b,x,w,h,y,v]=r,D=m(f,l,"conv0"),N=m(l,d,"conv1"),Y=m(d,b,"conv2"),q=m(b,x,"conv3"),O=m(x,w,"conv4"),at=m(w,h,"conv5"),st=m(h,y,"conv6"),it=m(y,v,"conv7"),gt=c(v,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function Ko(o,t){let e=B(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function s(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let i=Ht(e);return{extractConvParams:a,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function po(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}=Ko(o,e),i;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:c>7?s("conv6"):void 0,conv7:c>8?s("conv7"):void 0,conv8:r("conv8")}}else i={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return L(o,e),{params:i,paramMappings:e}}var J=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var cr=class extends I{constructor(e){super("TinyYolov2");co(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let a=ot(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=ot(a,r.conv6),a=ot(a,r.conv7),_t(a,r.conv8,"valid",!1)}runMobilenet(e,r){let a=this.config.isFirstLayerConv2d?Xt(_t(e,r.conv0,"valid",!1)):nt(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=r.conv6?nt(a,r.conv6):a,a=r.conv7?nt(a,r.conv7):a,_t(a,r.conv8,"valid",!1)}forwardInput(e,r){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return n.tidy(()=>{let s=n.cast(e.toBatchTensor(r,!1),"float32");return s=this.config.meanRgb?X(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,a):this.runTinyYolov2(s,a)})}async forward(e,r){return this.forwardInput(await M(e),r)}async detect(e,r={}){let{inputSize:a,scoreThreshold:s}=new J(r),i=await M(e),c=await this.forwardInput(i,a),m=n.tidy(()=>n.unstack(c)[0].expandDims()),p={width:i.getInputWidth(0),height:i.getInputHeight(0)},u=await this.extractBoxes(m,i.getReshapedInputDimensions(0),s);c.dispose(),m.dispose();let f=u.map(h=>h.box),l=u.map(h=>h.score),d=u.map(h=>h.classScore),b=u.map(h=>this.config.classes[h.label]);return xr(f.map(h=>h.rescale(a)),l,this.config.iouThreshold,!0).map(h=>new ct(l[h],d[h],b[h],f[h],p))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return po(e,this.config)}extractParams(e){let r=this.config.filterSizes||cr.DEFAULT_FILTER_SIZES,a=r?r.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return mo(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,a){let{width:s,height:i}=r,c=Math.max(s,i),m=c/s,p=c/i,u=e.shape[1],f=this.config.anchors.length,[l,d,b]=n.tidy(()=>{let y=e.reshape([u,u,f,this.boxEncodingSize]),v=y.slice([0,0,0,0],[u,u,f,4]),D=y.slice([0,0,0,4],[u,u,f,1]),N=this.withClassScores?n.softmax(y.slice([0,0,0,5],[u,u,f,this.config.classes.length]),3):n.scalar(0);return[v,D,N]}),x=[],w=await d.array(),h=await l.array();for(let y=0;ya){let Y=(v+fe(h[y][v][D][0]))/u*m,q=(y+fe(h[y][v][D][1]))/u*p,O=Math.exp(h[y][v][D][2])*this.config.anchors[D].x/u*m,at=Math.exp(h[y][v][D][3])*this.config.anchors[D].y/u*p,st=Y-O/2,it=q-at/2,gt={row:y,col:v,anchor:D},{classScore:pr,label:ur}=this.withClassScores?await this.extractPredictedClass(b,gt):{classScore:1,label:0};x.push({box:new Nt(st,it,st+O,it+at),score:N,classScore:N*pr,label:ur,...gt})}}return l.dispose(),d.dispose(),b.dispose(),x}async extractPredictedClass(e,r){let{row:a,col:s,anchor:i}=r,c=await e.array();return Array(this.config.classes.length).fill(0).map((m,p)=>c[a][s][i][p]).map((m,p)=>({classScore:m,label:p})).reduce((m,p)=>m.classScore>p.classScore?m:p)}},Pt=cr;Pt.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Jt=class extends Pt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:ro,classes:["face"],...t?{anchors:no,meanRgb:ao}:{anchors:oo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?io:so}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function id(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Le=class extends J{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var V=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Ft(o,t,e,r,a=({alignedRect:s})=>s){let s=o.map(m=>Yt(m)?a(m):m.detection),i=r||(t instanceof n.Tensor?await oe(t,s):await re(t,s)),c=await e(i);return i.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return Ft([o],t,async s=>e(s[0]),r,a)}var uo=.4,fo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],lo=[117.001,114.697,97.404];var Zt=class extends Pt{constructor(){let t={withSeparableConvs:!0,iouThreshold:uo,classes:["face"],anchors:fo,meanRgb:lo,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var T={ssdMobilenetv1:new wt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new jt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new Ut,faceExpressionNet:new Pe,ageGenderNet:new Me},Qo=(o,t)=>T.ssdMobilenetv1.locateFaces(o,t),Bd=(o,t)=>T.tinyFaceDetector.locateFaces(o,t),Rd=(o,t)=>T.tinyYolov2.locateFaces(o,t),tn=o=>T.faceLandmark68Net.detectLandmarks(o),$d=o=>T.faceLandmark68TinyNet.detectLandmarks(o),Od=o=>T.faceRecognitionNet.computeFaceDescriptor(o),Hd=o=>T.faceExpressionNet.predictExpressions(o),zd=o=>T.ageGenderNet.predictAgeAndGender(o),en=o=>T.ssdMobilenetv1.load(o),Vd=o=>T.tinyFaceDetector.load(o),Yd=o=>T.tinyYolov2.load(o),Gd=o=>T.faceLandmark68Net.load(o),jd=o=>T.faceLandmark68TinyNet.load(o),Ud=o=>T.faceRecognitionNet.load(o),Xd=o=>T.faceExpressionNet.load(o),Jd=o=>T.ageGenderNet.load(o),qd=en,Zd=Qo,Kd=tn;var Ae=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Dt=class extends Ae{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>T.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Mt(this,this.input)}},Et=class extends Ae{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>T.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Ct(this,this.input)}},ut=class extends Dt{withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},ft=class extends Et{withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var We=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Mt=class extends We{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>T.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:s,gender:i,genderProbability:c}=e[a];return sr(ir(r,i,c),s)})}withFaceExpressions(){return new Dt(this,this.input)}},Ct=class extends We{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,s=>T.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new Et(this,this.input)}},lt=class extends Mt{withFaceExpressions(){return new ut(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},dt=class extends Ct{withFaceExpressions(){return new ft(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var ke=class extends V{constructor(e,r){super();this.parentTask=e;this.input=r}},ht=class extends ke{async run(){let t=await this.parentTask;return(await Ft(t,this.input,r=>Promise.all(r.map(a=>T.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}},bt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>T.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}};var Be=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?T.faceLandmark68TinyNet:T.faceLandmark68Net}},Re=class extends Be{async run(){let t=await this.parentTask,e=t.map(i=>i.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(i=>this.landmarkNet.detectLandmarks(i)));return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),t.filter((i,c)=>a[c]).map((i,c)=>ie(i,a[c]))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},$e=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),ie(t,a)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var Oe=class extends V{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends Oe{async run(){let{input:t,options:e}=this,r;if(e instanceof Le)r=T.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=T.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof J)r=T.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(a=>At({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new Re(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Dt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mt(this.runAndExtendWithFaceDetections(),this.input)}},He=class extends Oe{async run(){let t=await new me(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?At({},e):void 0)})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Et(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ct(this.runAndExtendWithFaceDetection(),this.input)}};function Jh(o,t=new z){return new He(o,t)}function mr(o,t=new z){return new me(o,t)}async function rn(o,t){return mr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function eb(o,t={}){return mr(o,new J(t)).withFaceLandmarks().withFaceDescriptors()}var rb=rn;function ho(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((a,s)=>a-r[s]).reduce((a,s)=>a+s*s,0))}var ze=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let a=1,s=()=>`person ${a++}`;this._labeledDescriptors=r.map(i=>{if(i instanceof Q)return i;if(i instanceof Float32Array)return new Q(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Q(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>ho(r,t)).reduce((r,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Q.fromJSON(r));return new ze(e,t.distanceThreshold)}};function yb(o){let t=new Zt;return t.extractWeights(o),t}function on(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(a=>on(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(At(o,a),s)}return tt(o)?At(o,o.detection.forSize(e,r)):o instanceof $||o instanceof E?o.forSize(e,r):o}var Nb=kr;export{Me as AgeGenderNet,Nt as BoundingBox,F as Box,V as ComposableTask,ht as ComputeAllFaceDescriptorsTask,ke as ComputeFaceDescriptorsTaskBase,bt as ComputeSingleFaceDescriptorTask,Re as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Be as DetectFaceLandmarksTaskBase,Oe as DetectFacesTaskBase,$e as DetectSingleFaceLandmarksTask,He as DetectSingleFaceTask,S as Dimensions,Lr as FACE_EXPRESSION_LABELS,E as FaceDetection,eo as FaceDetectionNet,Pe as FaceExpressionNet,pt as FaceExpressions,jt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,Yr as FaceLandmarkNet,$ as FaceLandmarks,yr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,ze as FaceMatcher,Ut as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,Q as LabeledFaceDescriptors,rt as NetInput,I as NeuralNetwork,ct as ObjectDetection,g as Point,_r as PredictedBox,St as Rect,wt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Le as TinyFaceDetectorOptions,Jt as TinyYolov2,J as TinyYolov2Options,rb as allFaces,rn as allFacesSsdMobilenetv1,eb as allFacesTinyYolov2,Tr as awaitMediaLoaded,wr as bufferToImage,Od as computeFaceDescriptor,Rt as createCanvas,be as createCanvasFromMedia,bl as createFaceDetectionNet,bf as createFaceRecognitionNet,qo as createSsdMobilenetv1,yb as createTinyFaceDetector,id as createTinyYolov2,mr as detectAllFaces,tn as detectFaceLandmarks,$d as detectFaceLandmarksTiny,Kd as detectLandmarks,Jh as detectSingleFace,Wr as draw,_ as env,ho as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,At as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Fi as fetchImage,Dr as fetchJson,Ii as fetchNetWeights,mt as fetchOrThrow,ki as fetchVideo,k as getContext2dOrThrow,Bt as getMediaDimensions,Pr as imageTensorToCanvas,Fr as imageToSquare,On as inverseSigmoid,br as iou,Qe as isMediaElement,he as isMediaLoaded,yf as isWithAge,tt as isWithFaceDetection,Ar as isWithFaceExpressions,Yt as isWithFaceLandmarks,Pf as isWithGender,Jd as loadAgeGenderModel,qd as loadFaceDetectionModel,Xd as loadFaceExpressionModel,Gd as loadFaceLandmarkModel,jd as loadFaceLandmarkTinyModel,Ud as loadFaceRecognitionModel,en as loadSsdMobilenetv1Model,Vd as loadTinyFaceDetectorModel,Yd as loadTinyYolov2Model,Mr as loadWeightMap,Zd as locateFaces,Vi as matchDimensions,gr as minBbox,T as nets,xr as nonMaxSuppression,X as normalize,vr as padToSquare,zd as predictAgeAndGender,Hd as recognizeFaceExpressions,on as resizeResults,Wt as resolveInput,Rn as shuffleArray,fe as sigmoid,Qo as ssdMobilenetv1,n as tf,Bd as tinyFaceDetector,Rd as tinyYolov2,M as toNetInput,hr as utils,co as validateConfig,Nb as version}; +var lr=Object.defineProperty;var bo=Object.getOwnPropertyDescriptor;var go=Object.getOwnPropertyNames;var xo=Object.prototype.hasOwnProperty;var vo=(o=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(o,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):o)(function(o){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+o+'" is not supported')});var Ve=(o,t)=>{for(var e in t)lr(o,e,{get:t[e],enumerable:!0})},fr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of go(t))!xo.call(o,a)&&a!==e&&lr(o,a,{get:()=>t[a],enumerable:!(r=bo(t,a))||r.enumerable});return o},P=(o,t,e)=>(fr(o,t,"default"),e&&fr(e,t,"default"));var n={};Ve(n,{version:()=>Po});P(n,mn);P(n,pn);P(n,un);import*as mn from"@tensorflow/tfjs/dist/index.js";import*as pn from"@tensorflow/tfjs-backend-webgl/dist/index.js";import*as un from"@tensorflow/tfjs-backend-wasm/dist/index.js";var dr="4.1.0",yo="4.1.0",_o="4.1.0",To="4.1.0",wo="4.1.0",Po={tfjs:dr,"tfjs-core":dr,"tfjs-converter":yo,"tfjs-backend-cpu":_o,"tfjs-backend-webgl":To,"tfjs-backend-wasm":wo};var Wr={};Ve(Wr,{AnchorPosition:()=>Ke,DrawBox:()=>ee,DrawBoxOptions:()=>de,DrawFaceLandmarks:()=>De,DrawFaceLandmarksOptions:()=>Fe,DrawTextField:()=>et,DrawTextFieldOptions:()=>kt,drawContour:()=>Z,drawDetections:()=>No,drawFaceExpressions:()=>So,drawFaceLandmarks:()=>Ao});function Z(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:a},s)=>{let i=t[s];o.moveTo(i.x,i.y),o.lineTo(r,a)}),e){let r=t[t.length-1],a=t[0];if(!r||!a)return;o.moveTo(r.x,r.y),o.lineTo(a.x,a.y)}o.stroke()}var hr={};Ve(hr,{computeReshapedDimensions:()=>je,getCenterPoint:()=>yt,isDimensions:()=>ue,isEven:()=>pe,isFloat:()=>Ge,isTensor:()=>xt,isTensor1D:()=>Fo,isTensor2D:()=>Ye,isTensor3D:()=>K,isTensor4D:()=>R,isValidNumber:()=>G,isValidProbablitiy:()=>It,range:()=>U,round:()=>vt});var S=class{constructor(t,e){if(!G(t)||!G(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new S(1/this.width,1/this.height)}};function xt(o,t){return o instanceof n.Tensor&&o.shape.length===t}function Fo(o){return xt(o,1)}function Ye(o){return xt(o,2)}function K(o){return xt(o,3)}function R(o){return xt(o,4)}function Ge(o){return o%1!==0}function pe(o){return o%2===0}function vt(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ue(o){return o&&o.width&&o.height}function je({width:o,height:t},e){let r=e/Math.max(t,o);return new S(Math.round(o*r),Math.round(t*r))}function yt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function U(o,t,e){return Array(o).fill(0).map((r,a)=>t+a*e)}function G(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function It(o){return G(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var F=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(G)}static assertIsValidBox(t,e,r=!1){if(!F.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},a=[r.left,r.top,r.right,r.bottom].every(G),s=[r.x,r.y,r.width,r.height].every(G);if(!s&&!a)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[i,c,m,p]=s?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];F.assertIsValidBox({x:i,y:c,width:m,height:p},"Box.constructor",e),this._x=i,this._y=c,this._width=m,this._height=p}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new F({x:t,y:e,width:r,height:a})}floor(){let[t,e,r,a]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new F({x:t,y:e,width:r,height:a})}toSquare(){let{x:t,y:e,width:r,height:a}=this,s=Math.abs(r-a);return re&&(c=-f+e+r,f=e),l>t&&(m=-l+t+a,l=t),p<1&&(m=2-p,p=1),u<1&&(m=2-u,u=1),{dy:i,edy:m,dx:s,edx:c,y:u,ey:l,x:p,ex:f,w:r,h:a}}calibrate(t){return new F({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Nt=class extends F{constructor(t,e,r,a,s=!1){super({left:t,top:e,right:r,bottom:a},s)}};var ct=class{constructor(t,e,r,a,s){this._imageDims=new S(s.width,s.height),this._score=t,this._classScore=e,this._className=r,this._box=new F(a).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new F(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new ct(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var E=class extends ct{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:a,imageDims:s}=super.forSize(t,e);return new E(r,a,s)}};function br(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),a=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),s=r*a;return e?s/(o.area+t.area-s):s/Math.min(o.area,t.area)}function gr(o){let t=o.map(c=>c.x),e=o.map(c=>c.y),r=t.reduce((c,m)=>mmcc({score:i,boxIndex:c})).sort((i,c)=>i.score-c.score).map(i=>i.boxIndex),s=[];for(;a.length>0;){let i=a.pop();s.push(i);let c=a,m=[];for(let p=0;pm[u]<=e)}return s}function X(o,t){return n.tidy(()=>{let[e,r,a]=t,s=n.fill([...o.shape.slice(0,3),1],e,"float32"),i=n.fill([...o.shape.slice(0,3),1],r,"float32"),c=n.fill([...o.shape.slice(0,3),1],a,"float32"),m=n.concat([s,i,c],3);return n.sub(o,m)})}function vr(o,t=!1){return n.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let a=Math.abs(e-r),s=Math.round(a*(t?.5:1)),i=e>r?2:1,c=l=>{let d=o.shape.slice();return d[i]=l,n.fill(d,0,"float32")},m=c(s),p=a-m.shape[i],f=[t&&p?c(p):null,o,m].filter(l=>!!l).map(l=>n.cast(l,"float32"));return n.concat(f,i)})}function Rn(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),a=t[e];t[e]=t[r],t[r]=a}return t}function fe(o){return 1/(1+Math.exp(-o))}function On(o){return Math.log(o/(1-o))}var St=class extends F{constructor(t,e,r,a,s=!1){super({x:t,y:e,width:r,height:a},s)}};var Do=.5,Eo=.43,Mo=.45,$=class{constructor(t,e,r=new g(0,0)){let{width:a,height:s}=e;this._imgDims=new S(a,s),this._shift=r,this._positions=t.map(i=>i.mul(new g(a,s)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let s=t instanceof E?t.box.floor():new F(t);return this.shiftBy(s.x,s.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:a}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(a)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,a]=t,s=f=>a.sub(f).magnitude(),i=(s(e)+s(r))/2,c=Math.floor(i/Mo),m=yt(t),p=Math.floor(Math.max(0,m.x-Do*c)),u=Math.floor(Math.max(0,m.y-Eo*c));return new St(p,u,Math.min(c,this.imageWidth+p),Math.min(c,this.imageHeight+u))}alignMinBbox(t){let e=gr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var yr=class extends ${getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],yt([t[3],t[4]])]}};var Lt=class extends ${getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(yt)}};var Kt=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${vt(this.distance)})`:""}`}};var Qt=class extends F{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(F.assertIsValidBox(e,r),!G(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var Q=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new Q(t.label,e)}};var _r=class extends Qt{constructor(e,r,a,s){super(e,r);this._score=a,this._classScore=s}static assertIsValidPredictedBox(e,r){if(Qt.assertIsValidLabeledBox(e,r),!It(e.score)||!It(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function tt(o){return o.detection instanceof E}function At(o,t){return{...o,...{detection:t}}}function Ue(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function te(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function le(o){let t="";if(!o&&te())try{o=vo("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((a,s)=>{o.readFile(r,(i,c)=>i?s(i):a(c))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Xe(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},a=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,c=le();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:a,createVideoElement:s,fetch:i,...c}}function Je(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var C;function Co(){if(!C)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return C}function qe(o){C=o}function Ze(){return Je()?qe(Ue()):te()?qe(Xe()):null}function Io(o){if(C||Ze(),!C)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=C.Canvas,Image:e=C.Image}=o;C.Canvas=t,C.Image=e,C.createCanvasElement=o.createCanvasElement||(()=>new t),C.createImageElement=o.createImageElement||(()=>new e),C.ImageData=o.ImageData||C.ImageData,C.Video=o.Video||C.Video,C.fetch=o.fetch||C.fetch,C.readFile=o.readFile||C.readFile}var _={getEnv:Co,setEnv:qe,initialize:Ze,createBrowserEnv:Ue,createFileSystem:le,createNodejsEnv:Xe,monkeyPatch:Io,isBrowser:Je,isNodejs:te};Ze();function Wt(o){return!_.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function k(o){let{Canvas:t,CanvasRenderingContext2D:e}=_.getEnv();if(o instanceof e)return o;let r=Wt(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let a=r.getContext("2d");if(!a)throw new Error("resolveContext2d - canvas 2d context is null");return a}var Ke=(a=>(a.TOP_LEFT="TOP_LEFT",a.TOP_RIGHT="TOP_RIGHT",a.BOTTOM_LEFT="BOTTOM_LEFT",a.BOTTOM_RIGHT="BOTTOM_RIGHT",a))(Ke||{}),kt=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:a,fontSize:s,fontStyle:i,padding:c}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=a||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=c||4}},et=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof et?t.text:t,this.anchor=e,this.options=new kt(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,a)=>r{let b=m+f.x,x=m+f.y+(d+1)*i;r.fillText(l,b,x)})}};var de=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:a,drawLabelOptions:s}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=a;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new kt({...i,...s})}},ee=class{constructor(t,e={}){this.box=new F(t),this.options=new de(e)}draw(t){let e=k(t),{boxColor:r,lineWidth:a}=this.options,{x:s,y:i,width:c,height:m}=this.box;e.strokeStyle=r,e.lineWidth=a,e.strokeRect(s,i,c,m);let{label:p}=this.options;p&&new et([p],{x:s-a/2,y:i},this.options.drawLabelOptions).draw(t)}};function No(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof E?r.score:tt(r)?r.detection.score:void 0,s=r instanceof E?r.box:tt(r)?r.detection.box:new F(r),i=a?`${vt(a)}`:void 0;new ee(s,{label:i}).draw(o)})}function he(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function Tr(o){return new Promise((t,e)=>{(o instanceof _.getEnv().Canvas||he(o))&&t(null);function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),e(s))}function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",a),s.currentTarget.removeEventListener("error",r),t(s))}o.addEventListener("load",a),o.addEventListener("error",r)})}function wr(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let a=_.getEnv().createImageElement();a.onload=()=>t(a),a.onerror=e,a.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Bt(o){let{Image:t,Video:e}=_.getEnv();return o instanceof t?new S(o.naturalWidth,o.naturalHeight):o instanceof e?new S(o.videoWidth,o.videoHeight):new S(o.width,o.height)}function Rt({width:o,height:t}){let{createCanvasElement:e}=_.getEnv(),r=e();return r.width=o,r.height=t,r}function be(o,t){let{ImageData:e}=_.getEnv();if(!(o instanceof e)&&!he(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:a}=t||Bt(o),s=Rt({width:r,height:a});return o instanceof e?k(s).putImageData(o,0,0):k(s).drawImage(o,0,0,r,a),s}async function Pr(o,t){let e=t||_.getEnv().createCanvasElement(),[r,a,s]=o.shape.slice(R(o)?1:0),i=n.tidy(()=>o.as3D(r,a,s).toInt());return await n.browser.toPixels(i,e),i.dispose(),e}function Qe(o){let{Image:t,Canvas:e,Video:r}=_.getEnv();return o instanceof t||o instanceof e||o instanceof r}function Fr(o,t,e=!1){let{Image:r,Canvas:a}=_.getEnv();if(!(o instanceof r||o instanceof a))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Rt({width:1,height:1});let s=Bt(o),i=t/Math.max(s.height,s.width),c=i*s.width,m=i*s.height,p=Rt({width:t,height:t}),u=o instanceof a?o:be(o),f=Math.abs(c-m)/2,l=e&&c0&&u.height>0&&k(p).drawImage(u,l,d,c,m),p}var rt=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,a)=>{if(K(r)){this._imageTensors[a]=r,this._inputDimensions[a]=r.shape;return}if(R(r)){let i=r.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[a]=r,this._inputDimensions[a]=r.shape.slice(1);return}let s=r instanceof _.getEnv().Canvas?r:be(r);this._canvases[a]=s,this._inputDimensions[a]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return U(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return je({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,n.tidy(()=>{let r=U(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof n.Tensor){let c=R(i)?i:n.expandDims(i);return c=vr(c,e),(c.shape[1]!==t||c.shape[2]!==t)&&(c=n.image.resizeBilinear(c,[t,t],!1,!1)),c.as3D(t,t,3)}if(i instanceof _.getEnv().Canvas)return n.browser.fromPixels(Fr(i,t,e));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return n.stack(r.map(s=>n.cast(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function M(o){if(o instanceof rt)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=a=>Array.isArray(o)?` at input index ${a}:`:"",r=t.map(Wt);return r.forEach((a,s)=>{if(!Qe(a)&&!K(a)&&!R(a))throw typeof t[s]=="string"?new Error(`toNetInput -${e(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${e(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(R(a)){let i=a.shape[0];if(i!==1)throw new Error(`toNetInput -${e(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(r.map(a=>Qe(a)&&Tr(a))),new rt(r,Array.isArray(o))}async function re(o,t){let{Canvas:e}=_.getEnv(),r=o;if(!(o instanceof e)){let i=await M(o);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let c=i.getInput(0);r=c instanceof e?c:await Pr(c)}let a=k(r);return t.map(i=>i instanceof E?i.forSize(r.width,r.height).box.floor():i).map(i=>i.clipAtImageBorders(r.width,r.height)).map(({x:i,y:c,width:m,height:p})=>{let u=Rt({width:m,height:p});return m>0&&p>0&&k(u).putImageData(a.getImageData(i,c,m,p),0,0),u})}async function oe(o,t){if(!K(o)&&!R(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(R(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return n.tidy(()=>{let[e,r,a]=o.shape.slice(R(o)?1:0);return t.map(c=>c instanceof E?c.forSize(r,e).box:c).map(c=>c.clipAtImageBorders(r,e)).filter(c=>c.width>0&&c.height>0).map(({x:c,y:m,width:p,height:u})=>n.slice3d(o.as3D(e,r,a),[m,c,0],[u,p,a]))})}async function mt(o,t){let{fetch:e}=_.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Fi(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return wr(e)}async function Dr(o){return(await mt(o)).json()}async function Ii(o){return new Float32Array(await(await mt(o)).arrayBuffer())}function Er(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=_.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function ki(o){let t=await mt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Er(e)}function ge(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let a=o.split("/").filter(c=>c),s=o.endsWith(".json")?a[a.length-1]:e,i=r+(o.endsWith(".json")?a.slice(0,a.length-1):a).join("/");return i=o.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function Mr(o,t){let{manifestUri:e,modelBaseUri:r}=ge(o,t),a=await Dr(e);return n.io.loadWeights(a,r)}function Vi(o,t,e=!1){let{width:r,height:a}=e?Bt(t):t;return o.width=r,o.height=a,{width:r,height:a}}var I=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:a}=this.traversePropertyPath(t);r[a].dispose(),r[a]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof n.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof n.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=n.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await Mr(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=_.getEnv(),{manifestUri:r,modelBaseUri:a}=ge(t,this.getDefaultModelName()),s=p=>Promise.all(p.map(u=>e(u).then(f=>f.buffer))),i=n.io.weightsLoaderFactory(s),c=JSON.parse((await e(r)).toString()),m=await i(c,a);this.loadFromWeightMap(m)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:r,objProp:a}=e;if(!r||!a||!(r[a]instanceof n.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:a}}};function W(o,t,e){return n.tidy(()=>{let r=n.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=n.add(r,t.bias),r})}function xe(o,t,e=!1){return n.tidy(()=>{let r=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):W(o,t.conv0,[2,2])),a=W(r,t.conv1,[1,1]),s=n.relu(n.add(r,a)),i=W(s,t.conv2,[1,1]);return n.relu(n.add(r,n.add(a,i)))})}function ne(o,t,e=!1,r=!0){return n.tidy(()=>{let a=n.relu(e?n.add(n.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):W(o,t.conv0,r?[2,2]:[1,1])),s=W(a,t.conv1,[1,1]),i=n.relu(n.add(a,s)),c=W(i,t.conv2,[1,1]),m=n.relu(n.add(a,n.add(s,c))),p=W(m,t.conv3,[1,1]);return n.relu(n.add(a,n.add(s,n.add(c,p))))})}function _t(o,t,e="same",r=!1){return n.tidy(()=>{let a=n.add(n.conv2d(o,t.filters,[1,1],e),t.bias);return r?n.relu(a):a})}function L(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}function $t(o,t){return(e,r,a,s)=>{let i=n.tensor4d(o(e*r*a*a),[a,a,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:c}}}function ve(o,t){return(e,r,a)=>{let s=n.tensor2d(o(e*r),[e,r]),i=n.tensor1d(o(r));return t.push({paramPath:`${a}/weights`},{paramPath:`${a}/bias`}),{weights:s,bias:i}}}var ae=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function Ot(o,t){return(e,r,a)=>{let s=n.tensor4d(o(9*e),[3,3,e,1]),i=n.tensor4d(o(e*r),[1,1,e,r]),c=n.tensor1d(o(r));return t.push({paramPath:`${a}/depthwise_filter`},{paramPath:`${a}/pointwise_filter`},{paramPath:`${a}/bias`}),new ae(s,i,c)}}function Ht(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),a=o(`${t}/bias`,1);return new ae(e,r,a)}}function B(o,t){return(e,r,a)=>{let s=o[e];if(!xt(s,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${s}`);return t.push({originalPath:e,paramPath:a||e}),s}}function A(o){let t=o;function e(a){let s=t.slice(0,a);return t=t.slice(a),s}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function ye(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m,p=!1){let u=p?e(i,c,3,`${m}/conv0`):r(i,c,`${m}/conv0`),f=r(c,c,`${m}/conv1`),l=r(c,c,`${m}/conv2`);return{conv0:u,conv1:f,conv2:l}}function s(i,c,m,p=!1){let{conv0:u,conv1:f,conv2:l}=a(i,c,m,p),d=r(c,c,`${m}/conv3`);return{conv0:u,conv1:f,conv2:l,conv3:d}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Cr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock4Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2"),m=a(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c,dense3:m}}}function _e(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function Te(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function i(c,m=!1){let p=m?r(`${c}/conv0`):a(`${c}/conv0`),u=a(`${c}/conv1`),f=a(`${c}/conv2`),l=a(`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function Ir(o){let t=[],{extractDenseBlock4Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return L(o,t),{params:r,paramMappings:t}}var zt=class extends I{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=ne(s,e.dense0,!0);return i=ne(i,e.dense1),i=ne(i,e.dense2),i=ne(i,e.dense3),i=n.avgPool(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Ir(t)}extractParams(t){return Cr(t)}};function se(o,t){return n.tidy(()=>n.add(n.matMul(o,t.weights),t.bias))}function Nr(o,t,e){let r=[],{extractWeights:a,getRemainingWeights:s}=A(o),c=ve(a,r)(t,e,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:r,params:{fc:c}}}function Sr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:r("fc")};return L(o,t),{params:a,paramMappings:t}}function we(o){let t={},e={};return Object.keys(o).forEach(r=>{let a=r.startsWith("fc")?e:t;a[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Vt=class extends I{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e;return se(a.as2D(a.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Nr(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=we(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Sr(a)}extractParams(e){let r=this.getClassifierChannelsIn(),a=this.getClassifierChannelsOut(),s=a*r+a,i=e.slice(0,e.length-s),c=e.slice(e.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(c)}};var Lr=["neutral","happy","sad","angry","fearful","disgusted","surprised"],pt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);Lr.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return Lr.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Pe=class extends Vt{constructor(t=new zt){super("FaceExpressionNet",t)}forwardInput(t){return n.tidy(()=>n.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await M(t))}async predictExpressions(t){let e=await M(t),r=await this.forwardInput(e),a=await Promise.all(n.unstack(r).map(async i=>{let c=i.dataSync();return i.dispose(),c}));r.dispose();let s=a.map(i=>new pt(i));return e.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function Ar(o){return o.expressions instanceof pt}function tr(o,t){return{...o,...{expressions:t}}}function So(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof pt?s:Ar(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let m=i.asSortedArray().filter(f=>f.probability>e),p=tt(s)?s.detection.box.bottomLeft:r||new g(0,0);new et(m.map(f=>`${f.expression} (${vt(f.probability)})`),p).draw(o)})}function Yt(o){return tt(o)&&o.landmarks instanceof $&&o.unshiftedLandmarks instanceof $&&o.alignedRect instanceof E}function Lo(o){let t=m=>m*180/Math.PI,e=(m,p)=>Math.sqrt((m._x-p._x)**2+(m._y-p._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},a=(m,p,u)=>{let f=Math.floor(m._x-p._x),l=Math.floor(p._x-u._x);return f-l},s=(m,p)=>{let u=Math.hypot(p._x-m._x,p._y-m._y),f=p._y-m._y,l=Math.asin(f/u),d=t(l),b=Math.floor(90-d),x=p._x-m._x<0?-1:1;return b*x},i=(m,p,u)=>{let f=e(m,u),l={_x:(m._x+u._x)/2,_y:(m._y+u._y)/2},d=e(p,l),b=Math.atan(d/f),x=Math.floor(t(b)),w=l._y-p._y<0?-1:1;return x*w};if(!o||!o._positions||o._positions.length!==68)return r;let c=o._positions;return r.roll=s(c[27],c[66]),r.pitch=i(c[14],c[30],c[2]),r.yaw=a(c[14],c[33],c[2]),r}function ie(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),a=r.align(),{imageDims:s}=o.detection,i=new E(o.detection.score,a.rescale(s.reverse()),s),c=Lo(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:i,angle:c}}}var Fe=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=a||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=c||"rgba(255, 0, 255, 1)"}},De=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new Fe(e)}draw(t){let e=k(t),{drawLines:r,drawPoints:a,lineWidth:s,lineColor:i,pointSize:c,pointColor:m}=this.options;if(r&&this.faceLandmarks instanceof Lt&&(e.strokeStyle=i,e.lineWidth=s,Z(e,this.faceLandmarks.getJawOutline()),Z(e,this.faceLandmarks.getLeftEyeBrow()),Z(e,this.faceLandmarks.getRightEyeBrow()),Z(e,this.faceLandmarks.getNose()),Z(e,this.faceLandmarks.getLeftEye(),!0),Z(e,this.faceLandmarks.getRightEye(),!0),Z(e,this.faceLandmarks.getMouth(),!0)),a){e.strokeStyle=m,e.fillStyle=m;let p=u=>{e.beginPath(),e.arc(u.x,u.y,c,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(p)}}};function Ao(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let a=r instanceof $?r:Yt(r)?r.landmarks:void 0;if(!a)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new De(a).draw(o)})}var kr="1.7.7";function Bo(o,t){let e=$t(o,t),r=Ot(o,t);function a(i,c,m){let p=r(i,c,`${m}/separable_conv0`),u=r(c,c,`${m}/separable_conv1`),f=e(i,c,1,`${m}/expansion_conv`);return{separable_conv0:p,separable_conv1:u,expansion_conv:f}}function s(i,c){let m=r(i,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=r(i,i,`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:a,extractMainBlockParams:s}}function Br(o,t){let e=[],{extractWeights:r,getRemainingWeights:a}=A(o),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:c,extractMainBlockParams:m}=Bo(r,e),p=s(3,32,3,"entry_flow/conv_in"),u=c(32,64,"entry_flow/reduction_block_0"),f=c(64,128,"entry_flow/reduction_block_1"),l={conv_in:p,reduction_block_0:u,reduction_block_1:f},d={};U(t,0,1).forEach(h=>{d[`main_block_${h}`]=m(128,`middle_flow/main_block_${h}`)});let b=c(128,256,"exit_flow/reduction_block"),x=i(256,512,"exit_flow/separable_conv"),w={reduction_block:b,separable_conv:x};if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:e,params:{entry_flow:l,middle_flow:d,exit_flow:w}}}function Ro(o,t){let e=B(o,t),r=_e(e),a=Ht(e);function s(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=r(`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function i(c){let m=a(`${c}/separable_conv0`),p=a(`${c}/separable_conv1`),u=a(`${c}/separable_conv2`);return{separable_conv0:m,separable_conv1:p,separable_conv2:u}}return{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}}function Rr(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:a,extractReductionBlockParams:s,extractMainBlockParams:i}=Ro(o,e),c=r("entry_flow/conv_in"),m=s("entry_flow/reduction_block_0"),p=s("entry_flow/reduction_block_1"),u={conv_in:c,reduction_block_0:m,reduction_block_1:p},f={};U(t,0,1).forEach(x=>{f[`main_block_${x}`]=i(`middle_flow/main_block_${x}`)});let l=s("exit_flow/reduction_block"),d=a("exit_flow/separable_conv"),b={reduction_block:l,separable_conv:d};return L(o,e),{params:{entry_flow:u,middle_flow:f,exit_flow:b},paramMappings:e}}function $r(o,t,e){return n.add(n.conv2d(o,t.filters,e,"same"),t.bias)}function er(o,t,e=!0){let r=e?n.relu(o):o;return r=W(r,t.separable_conv0,[1,1]),r=W(n.relu(r),t.separable_conv1,[1,1]),r=n.maxPool(r,[3,3],[2,2],"same"),r=n.add(r,$r(o,t.expansion_conv,[2,2])),r}function $o(o,t){let e=W(n.relu(o),t.separable_conv0,[1,1]);return e=W(n.relu(e),t.separable_conv1,[1,1]),e=W(n.relu(e),t.separable_conv2,[1,1]),e=n.add(e,o),e}var Ee=class extends I{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return n.tidy(()=>{let a=n.cast(e.toBatchTensor(112,!0),"float32"),i=X(a,[122.782,117.001,104.298]).div(255),c=n.relu($r(i,r.entry_flow.conv_in,[2,2]));return c=er(c,r.entry_flow.reduction_block_0,!1),c=er(c,r.entry_flow.reduction_block_1),U(this._numMainBlocks,0,1).forEach(m=>{c=$o(c,r.middle_flow[`main_block_${m}`])}),c=er(c,r.exit_flow.reduction_block),c=n.relu(W(c,r.exit_flow.separable_conv,[1,1])),c})}async forward(e){return this.forwardInput(await M(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Rr(e,this._numMainBlocks)}extractParams(e){return Br(e,this._numMainBlocks)}};function Or(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),a=ve(e,t),s=a(512,1,"fc/age"),i=a(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Hr(o){let t=[],e=B(o,t);function r(s){let i=e(`${s}/weights`,2),c=e(`${s}/bias`,1);return{weights:i,bias:c}}let a={fc:{age:r("fc/age"),gender:r("fc/gender")}};return L(o,t),{params:a,paramMappings:t}}var rr=(e=>(e.FEMALE="female",e.MALE="male",e))(rr||{});var Me=class extends I{constructor(e=new Ee(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return n.tidy(()=>{let a=e instanceof rt?this.faceFeatureExtractor.forwardInput(e):e,s=n.avgPool(a,[7,7],[2,2],"valid").as2D(a.shape[0],-1),i=se(s,r.fc.age).as1D(),c=se(s,r.fc.gender);return{age:i,gender:c}})}forwardInput(e){return n.tidy(()=>{let{age:r,gender:a}=this.runNet(e);return{age:r,gender:n.softmax(a)}})}async forward(e){return this.forwardInput(await M(e))}async predictAgeAndGender(e){let r=await M(e),a=await this.forwardInput(r),s=n.unstack(a.age),i=n.unstack(a.gender),c=s.map((p,u)=>({ageTensor:p,genderTensor:i[u]})),m=await Promise.all(c.map(async({ageTensor:p,genderTensor:u})=>{let f=p.dataSync()[0],l=u.dataSync()[0],d=l>.5,b=d?"male":"female",x=d?l:1-l;return p.dispose(),u.dispose(),{age:f,gender:b,genderProbability:x}}));return a.age.dispose(),a.gender.dispose(),r.isBatchInput?m:m[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:a}=this.extractClassifierParams(e);this._params=r,this._paramMappings=a}extractClassifierParams(e){return Or(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:a}=we(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Hr(a)}extractParams(e){let a=e.slice(0,e.length-1539),s=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(a),this.extractClassifierParams(s)}};var Gt=class extends Vt{postProcess(t,e,r){let a=r.map(({width:i,height:c})=>{let m=e/Math.max(c,i);return{width:i*m,height:c*m}}),s=a.length;return n.tidy(()=>{let i=(f,l)=>n.stack([n.fill([68],f,"float32"),n.fill([68],l,"float32")],1).as2D(1,136).as1D(),c=(f,l)=>{let{width:d,height:b}=a[f];return l(d,b)?Math.abs(d-b)/2:0},m=f=>c(f,(l,d)=>lc(f,(l,d)=>di(m(l),p(l))))).div(n.stack(Array.from(Array(s),(f,l)=>i(a[l].width,a[l].height))))})}forwardInput(t){return n.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,a])=>({height:r,width:a})))})}async forward(t){return this.forwardInput(await M(t))}async detectLandmarks(t){let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(async(s,i)=>{let c=Array.from(s.dataSync()),m=c.filter((u,f)=>pe(f)),p=c.filter((u,f)=>!pe(f));return new Lt(Array(68).fill(0).map((u,f)=>new g(m[f],p[f])),{height:e.getInputHeight(i),width:e.getInputWidth(i)})}));return r.forEach(s=>s.dispose()),e.isBatchInput?a:a[0]}getClassifierChannelsOut(){return 136}};var jt=class extends Gt{constructor(t=new zt){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function zr(o){let t=[],{extractDenseBlock3Params:e}=Te(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return L(o,t),{params:r,paramMappings:t}}function Vr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractDenseBlock3Params:a}=ye(e,t),s=a(3,32,"dense0",!0),i=a(32,64,"dense1"),c=a(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:c}}}var Ce=class extends I{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(112,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=xe(s,e.dense0,!0);return i=xe(i,e.dense1),i=xe(i,e.dense2),i=n.avgPool(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await M(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return zr(t)}extractParams(t){return Vr(t)}};var Ie=class extends Gt{constructor(t=new Ce){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Yr=class extends jt{};function Gr(o,t){return n.add(n.mul(o,t.weights),t.biases)}function or(o,t,e,r,a="same"){let{filters:s,bias:i}=t.conv,c=n.conv2d(o,s,e,a);return c=n.add(c,i),c=Gr(c,t.scale),r?n.relu(c):c}function jr(o,t){return or(o,t,[1,1],!0)}function nr(o,t){return or(o,t,[1,1],!1)}function Ne(o,t){return or(o,t,[2,2],!0,"valid")}function Oo(o,t){function e(c,m,p){let u=o(c),f=u.length/(m*p*p);if(Ge(f))throw new Error(`depth has to be an integer: ${f}, weights.length: ${u.length}, numFilters: ${m}, filterSize: ${p}`);return n.tidy(()=>n.transpose(n.tensor4d(u,[m,f,p,p]),[2,3,1,0]))}function r(c,m,p,u){let f=e(c,m,p),l=n.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/bias`}),{filters:f,bias:l}}function a(c,m){let p=n.tensor1d(o(c)),u=n.tensor1d(o(c));return t.push({paramPath:`${m}/weights`},{paramPath:`${m}/biases`}),{weights:p,biases:u}}function s(c,m,p,u){let f=r(c,m,p,`${u}/conv`),l=a(m,`${u}/scale`);return{conv:f,scale:l}}function i(c,m,p,u,f=!1){let l=s((f?.5:1)*c,m,p,`${u}/conv1`),d=s(c,m,p,`${u}/conv2`);return{conv1:l,conv2:d}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function Ur(o){let{extractWeights:t,getRemainingWeights:e}=A(o),r=[],{extractConvLayerParams:a,extractResidualLayerParams:s}=Oo(t,r),i=a(4704,32,7,"conv32_down"),c=s(9216,32,3,"conv32_1"),m=s(9216,32,3,"conv32_2"),p=s(9216,32,3,"conv32_3"),u=s(36864,64,3,"conv64_down",!0),f=s(36864,64,3,"conv64_1"),l=s(36864,64,3,"conv64_2"),d=s(36864,64,3,"conv64_3"),b=s(147456,128,3,"conv128_down",!0),x=s(147456,128,3,"conv128_1"),w=s(147456,128,3,"conv128_2"),h=s(589824,256,3,"conv256_down",!0),y=s(589824,256,3,"conv256_1"),v=s(589824,256,3,"conv256_2"),D=s(589824,256,3,"conv256_down_out"),N=n.tidy(()=>n.transpose(n.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:i,conv32_1:c,conv32_2:m,conv32_3:p,conv64_down:u,conv64_1:f,conv64_2:l,conv64_3:d,conv128_down:b,conv128_1:x,conv128_2:w,conv256_down:h,conv256_1:y,conv256_2:v,conv256_down_out:D,fc:N},paramMappings:r}}function Ho(o,t){let e=B(o,t);function r(i){let c=e(`${i}/scale/weights`,1),m=e(`${i}/scale/biases`,1);return{weights:c,biases:m}}function a(i){let c=e(`${i}/conv/filters`,4),m=e(`${i}/conv/bias`,1),p=r(i);return{conv:{filters:c,bias:m},scale:p}}function s(i){return{conv1:a(`${i}/conv1`),conv2:a(`${i}/conv2`)}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Xr(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=Ho(o,t),a=e("conv32_down"),s=r("conv32_1"),i=r("conv32_2"),c=r("conv32_3"),m=r("conv64_down"),p=r("conv64_1"),u=r("conv64_2"),f=r("conv64_3"),l=r("conv128_down"),d=r("conv128_1"),b=r("conv128_2"),x=r("conv256_down"),w=r("conv256_1"),h=r("conv256_2"),y=r("conv256_down_out"),{fc:v}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Ye(v))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${v}`);let D={conv32_down:a,conv32_1:s,conv32_2:i,conv32_3:c,conv64_down:m,conv64_1:p,conv64_2:u,conv64_3:f,conv128_down:l,conv128_1:d,conv128_2:b,conv256_down:x,conv256_1:w,conv256_2:h,conv256_down_out:y,fc:v};return L(o,t),{params:D,paramMappings:t}}function j(o,t){let e=jr(o,t.conv1);return e=nr(e,t.conv2),e=n.add(e,o),e=n.relu(e),e}function ce(o,t){let e=Ne(o,t.conv1);e=nr(e,t.conv2);let r=n.avgPool(o,2,2,"valid"),a=n.zeros(r.shape),s=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let c=[...e.shape];c[1]=1;let m=n.zeros(c);e=n.concat([e,m],1);let p=[...e.shape];p[2]=1;let u=n.zeros(p);e=n.concat([e,u],2)}return r=s?n.concat([r,a],3):r,e=n.add(r,e),e=n.relu(e),e}var Ut=class extends I{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(150,!0),"float32"),s=X(r,[122.782,117.001,104.298]).div(255),i=Ne(s,e.conv32_down);i=n.maxPool(i,3,2,"valid"),i=j(i,e.conv32_1),i=j(i,e.conv32_2),i=j(i,e.conv32_3),i=ce(i,e.conv64_down),i=j(i,e.conv64_1),i=j(i,e.conv64_2),i=j(i,e.conv64_3),i=ce(i,e.conv128_down),i=j(i,e.conv128_1),i=j(i,e.conv128_2),i=ce(i,e.conv256_down),i=j(i,e.conv256_1),i=j(i,e.conv256_2),i=ce(i,e.conv256_down_out);let c=i.mean([1,2]);return n.matMul(c,e.fc)})}async forward(t){return this.forwardInput(await M(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let e=await M(t),r=n.tidy(()=>n.unstack(this.forwardInput(e))),a=await Promise.all(r.map(i=>i.data()));return r.forEach(i=>i.dispose()),e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Xr(t)}extractParams(t){return Ur(t)}};function bf(o){let t=new Ut;return t.extractWeights(o),t}function ar(o,t){return{...o,...{descriptor:t}}}function yf(o){return typeof o.age=="number"}function sr(o,t){return{...o,...{age:t}}}function Pf(o){return(o.gender==="male"||o.gender==="female")&&It(o.genderProbability)}function ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}function zo(o,t){function e(m,p){let u=n.tensor4d(o(9*m),[3,3,m,1]),f=n.tensor1d(o(m)),l=n.tensor1d(o(m)),d=n.tensor1d(o(m)),b=n.tensor1d(o(m));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/batch_norm_scale`},{paramPath:`${p}/batch_norm_offset`},{paramPath:`${p}/batch_norm_mean`},{paramPath:`${p}/batch_norm_variance`}),{filters:u,batch_norm_scale:f,batch_norm_offset:l,batch_norm_mean:d,batch_norm_variance:b}}function r(m,p,u,f,l){let d=n.tensor4d(o(m*p*u*u),[u,u,m,p]),b=n.tensor1d(o(p));return t.push({paramPath:`${f}/filters`},{paramPath:`${f}/${l?"batch_norm_offset":"bias"}`}),{filters:d,bias:b}}function a(m,p,u,f){let{filters:l,bias:d}=r(m,p,u,f,!0);return{filters:l,batch_norm_offset:d}}function s(m,p,u){let f=e(m,`${u}/depthwise_conv`),l=a(m,p,1,`${u}/pointwise_conv`);return{depthwise_conv:f,pointwise_conv:l}}function i(){let m=a(3,32,3,"mobilenetv1/conv_0"),p=s(32,64,"mobilenetv1/conv_1"),u=s(64,128,"mobilenetv1/conv_2"),f=s(128,128,"mobilenetv1/conv_3"),l=s(128,256,"mobilenetv1/conv_4"),d=s(256,256,"mobilenetv1/conv_5"),b=s(256,512,"mobilenetv1/conv_6"),x=s(512,512,"mobilenetv1/conv_7"),w=s(512,512,"mobilenetv1/conv_8"),h=s(512,512,"mobilenetv1/conv_9"),y=s(512,512,"mobilenetv1/conv_10"),v=s(512,512,"mobilenetv1/conv_11"),D=s(512,1024,"mobilenetv1/conv_12"),N=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:x,conv_8:w,conv_9:h,conv_10:y,conv_11:v,conv_12:D,conv_13:N}}function c(){let m=a(1024,256,1,"prediction_layer/conv_0"),p=a(256,512,3,"prediction_layer/conv_1"),u=a(512,128,1,"prediction_layer/conv_2"),f=a(128,256,3,"prediction_layer/conv_3"),l=a(256,128,1,"prediction_layer/conv_4"),d=a(128,256,3,"prediction_layer/conv_5"),b=a(256,64,1,"prediction_layer/conv_6"),x=a(64,128,3,"prediction_layer/conv_7"),w=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),y=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),v=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),D=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),N=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),Y=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),q=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),O=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),at=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),st=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),it=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:m,conv_1:p,conv_2:u,conv_3:f,conv_4:l,conv_5:d,conv_6:b,conv_7:x,box_predictor_0:{box_encoding_predictor:w,class_predictor:h},box_predictor_1:{box_encoding_predictor:y,class_predictor:v},box_predictor_2:{box_encoding_predictor:D,class_predictor:N},box_predictor_3:{box_encoding_predictor:Y,class_predictor:q},box_predictor_4:{box_encoding_predictor:O,class_predictor:at},box_predictor_5:{box_encoding_predictor:st,class_predictor:it}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:c}}function Jr(o){let t=[],{extractWeights:e,getRemainingWeights:r}=A(o),{extractMobilenetV1Params:a,extractPredictionLayerParams:s}=zo(e,t),i=a(),c=s(),p={extra_dim:n.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:i,prediction_layer:c,output_layer:p},paramMappings:t}}function Vo(o,t){let e=B(o,t);function r(p,u,f){let l=e(`${p}/Conv2d_${u}_pointwise/weights`,4,`${f}/filters`),d=e(`${p}/Conv2d_${u}_pointwise/convolution_bn_offset`,1,`${f}/batch_norm_offset`);return{filters:l,batch_norm_offset:d}}function a(p){let u=`mobilenetv1/conv_${p}`,f=`MobilenetV1/Conv2d_${p}_depthwise`,l=`${u}/depthwise_conv`,d=`${u}/pointwise_conv`,b=e(`${f}/depthwise_weights`,4,`${l}/filters`),x=e(`${f}/BatchNorm/gamma`,1,`${l}/batch_norm_scale`),w=e(`${f}/BatchNorm/beta`,1,`${l}/batch_norm_offset`),h=e(`${f}/BatchNorm/moving_mean`,1,`${l}/batch_norm_mean`),y=e(`${f}/BatchNorm/moving_variance`,1,`${l}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:x,batch_norm_offset:w,batch_norm_mean:h,batch_norm_variance:y},pointwise_conv:r("MobilenetV1",p,d)}}function s(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:a(1),conv_2:a(2),conv_3:a(3),conv_4:a(4),conv_5:a(5),conv_6:a(6),conv_7:a(7),conv_8:a(8),conv_9:a(9),conv_10:a(10),conv_11:a(11),conv_12:a(12),conv_13:a(13)}}function i(p,u){let f=e(`${p}/weights`,4,`${u}/filters`),l=e(`${p}/biases`,1,`${u}/bias`);return{filters:f,bias:l}}function c(p){let u=i(`Prediction/BoxPredictor_${p}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${p}/box_encoding_predictor`),f=i(`Prediction/BoxPredictor_${p}/ClassPredictor`,`prediction_layer/box_predictor_${p}/class_predictor`);return{box_encoding_predictor:u,class_predictor:f}}function m(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:c(0),box_predictor_1:c(1),box_predictor_2:c(2),box_predictor_3:c(3),box_predictor_4:c(4),box_predictor_5:c(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:m}}function qr(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=Vo(o,t),a=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!K(a))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${a}`);let s={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:a}};return L(o,t),{params:s,paramMappings:t}}function H(o,t,e){return n.tidy(()=>{let r=n.conv2d(o,t.filters,e,"same");return r=n.add(r,t.batch_norm_offset),n.clipByValue(r,0,6)})}var Yo=.0010000000474974513;function Go(o,t,e){return n.tidy(()=>{let r=n.depthwiseConv2d(o,t.filters,e,"same");return r=n.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Yo),n.clipByValue(r,0,6)})}function jo(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Zr(o,t){return n.tidy(()=>{let e,r=H(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let c=i+1,m=jo(c);r=Go(r,s.depthwise_conv,m),r=H(r,s.pointwise_conv,[1,1]),c===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function Uo(o,t,e){let r=o.arraySync(),a=Math.min(r[t][0],r[t][2]),s=Math.min(r[t][1],r[t][3]),i=Math.max(r[t][0],r[t][2]),c=Math.max(r[t][1],r[t][3]),m=Math.min(r[e][0],r[e][2]),p=Math.min(r[e][1],r[e][3]),u=Math.max(r[e][0],r[e][2]),f=Math.max(r[e][1],r[e][3]),l=(i-a)*(c-s),d=(u-m)*(f-p);if(l<=0||d<=0)return 0;let b=Math.max(a,m),x=Math.max(s,p),w=Math.min(i,u),h=Math.min(c,f),y=Math.max(w-b,0)*Math.max(h-x,0);return y/(l+d-y)}function Kr(o,t,e,r,a){let s=o.shape[0],i=Math.min(e,s),c=t.map((u,f)=>({score:u,boxIndex:f})).filter(u=>u.score>a).sort((u,f)=>f.score-u.score),m=u=>u<=r?1:0,p=[];return c.forEach(u=>{if(p.length>=i)return;let f=u.score;for(let l=p.length-1;l>=0;--l){let d=Uo(o,u.boxIndex,p[l]);if(d!==0&&(u.score*=m(d),u.score<=a))break}f===u.score&&p.push(u.boxIndex)}),p}function Xo(o){let t=n.unstack(n.transpose(o,[1,0])),e=[n.sub(t[2],t[0]),n.sub(t[3],t[1])],r=[n.add(t[0],n.div(e[0],2)),n.add(t[1],n.div(e[1],2))];return{sizes:e,centers:r}}function Jo(o,t){let{sizes:e,centers:r}=Xo(o),a=n.unstack(n.transpose(t,[1,0])),s=n.div(n.mul(n.exp(n.div(a[2],5)),e[0]),2),i=n.add(n.mul(n.div(a[0],10),e[0]),r[0]),c=n.div(n.mul(n.exp(n.div(a[3],5)),e[1]),2),m=n.add(n.mul(n.div(a[1],10),e[1]),r[1]);return n.transpose(n.stack([n.sub(i,s),n.sub(m,c),n.add(i,s),n.add(m,c)]),[1,0])}function Qr(o,t,e){return n.tidy(()=>{let r=o.shape[0],a=Jo(n.reshape(n.tile(e.extra_dim,[r,1,1]),[-1,4]),n.reshape(o,[-1,4]));a=n.reshape(a,[r,a.shape[0]/r,4]);let s=n.sigmoid(n.slice(t,[0,0,1],[-1,-1,-1])),i=n.slice(s,[0,0,0],[-1,-1,1]);i=n.reshape(i,[r,i.shape[1]]);let c=n.unstack(a),m=n.unstack(i);return{boxes:c,scores:m}})}function Tt(o,t){return n.tidy(()=>{let e=o.shape[0],r=n.reshape(_t(o,t.box_encoding_predictor),[e,-1,1,4]),a=n.reshape(_t(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:a}})}function to(o,t,e){return n.tidy(()=>{let r=H(o,e.conv_0,[1,1]),a=H(r,e.conv_1,[2,2]),s=H(a,e.conv_2,[1,1]),i=H(s,e.conv_3,[2,2]),c=H(i,e.conv_4,[1,1]),m=H(c,e.conv_5,[2,2]),p=H(m,e.conv_6,[1,1]),u=H(p,e.conv_7,[2,2]),f=Tt(t,e.box_predictor_0),l=Tt(o,e.box_predictor_1),d=Tt(a,e.box_predictor_2),b=Tt(i,e.box_predictor_3),x=Tt(m,e.box_predictor_4),w=Tt(u,e.box_predictor_5),h=n.concat([f.boxPredictionEncoding,l.boxPredictionEncoding,d.boxPredictionEncoding,b.boxPredictionEncoding,x.boxPredictionEncoding,w.boxPredictionEncoding],1),y=n.concat([f.classPrediction,l.classPrediction,d.classPrediction,b.classPrediction,x.classPrediction,w.classPrediction],1);return{boxPredictions:h,classPredictions:y}})}var z=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var wt=class extends I{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return n.tidy(()=>{let r=n.cast(t.toBatchTensor(512,!1),"float32"),a=n.sub(n.div(r,127.5),1),s=Zr(a,e.mobilenetv1),{boxPredictions:i,classPredictions:c}=to(s.out,s.conv11,e.prediction_layer);return Qr(i,c,e.output_layer)})}async forward(t){return this.forwardInput(await M(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:a}=new z(e),s=await M(t),{boxes:i,scores:c}=this.forwardInput(s),m=i[0],p=c[0];for(let v=1;v{let[D,N]=[Math.max(0,h[v][0]),Math.min(1,h[v][2])].map(O=>O*w),[Y,q]=[Math.max(0,h[v][1]),Math.min(1,h[v][3])].map(O=>O*x);return new E(u[v],new St(Y,D,q-Y,N-D),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return m.dispose(),p.dispose(),y}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return qr(t)}extractParams(t){return Jr(t)}};function qo(o){let t=new wt;return t.extractWeights(o),t}function bl(o){return qo(o)}var eo=class extends wt{};var ro=.4,oo=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],no=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],ao=[117.001,114.697,97.404],so="tiny_yolov2_model",io="tiny_yolov2_separable_conv_model";var Se=o=>typeof o=="number";function co(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Se(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Se(t.x)&&Se(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Se)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}function Xt(o){return n.tidy(()=>{let t=n.mul(o,n.scalar(.10000000149011612));return n.add(n.relu(n.sub(o,t)),t)})}function ot(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.conv2d(e,t.conv.filters,[1,1],"valid"),e=n.sub(e,t.bn.sub),e=n.mul(e,t.bn.truediv),e=n.add(e,t.conv.bias),Xt(e)})}function nt(o,t){return n.tidy(()=>{let e=n.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=n.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=n.add(e,t.bias),Xt(e)})}function Zo(o,t){let e=$t(o,t);function r(i,c){let m=n.tensor1d(o(i)),p=n.tensor1d(o(i));return t.push({paramPath:`${c}/sub`},{paramPath:`${c}/truediv`}),{sub:m,truediv:p}}function a(i,c,m){let p=e(i,c,3,`${m}/conv`),u=r(c,`${m}/bn`);return{conv:p,bn:u}}let s=Ot(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function mo(o,t,e,r){let{extractWeights:a,getRemainingWeights:s}=A(o),i=[],{extractConvParams:c,extractConvWithBatchNormParams:m,extractSeparableConvParams:p}=Zo(a,i),u;if(t.withSeparableConvs){let[f,l,d,b,x,w,h,y,v]=r,D=t.isFirstLayerConv2d?c(f,l,3,"conv0"):p(f,l,"conv0"),N=p(l,d,"conv1"),Y=p(d,b,"conv2"),q=p(b,x,"conv3"),O=p(x,w,"conv4"),at=p(w,h,"conv5"),st=y?p(h,y,"conv6"):void 0,it=v?p(y,v,"conv7"):void 0,gt=c(v||y||h,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}else{let[f,l,d,b,x,w,h,y,v]=r,D=m(f,l,"conv0"),N=m(l,d,"conv1"),Y=m(d,b,"conv2"),q=m(b,x,"conv3"),O=m(x,w,"conv4"),at=m(w,h,"conv5"),st=m(h,y,"conv6"),it=m(y,v,"conv7"),gt=c(v,5*e,1,"conv8");u={conv0:D,conv1:N,conv2:Y,conv3:q,conv4:O,conv5:at,conv6:st,conv7:it,conv8:gt}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:u,paramMappings:i}}function Ko(o,t){let e=B(o,t);function r(c){let m=e(`${c}/sub`,1),p=e(`${c}/truediv`,1);return{sub:m,truediv:p}}function a(c){let m=e(`${c}/filters`,4),p=e(`${c}/bias`,1);return{filters:m,bias:p}}function s(c){let m=a(`${c}/conv`),p=r(`${c}/bn`);return{conv:m,bn:p}}let i=Ht(e);return{extractConvParams:a,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function po(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}=Ko(o,e),i;if(t.withSeparableConvs){let c=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?r("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:c>7?s("conv6"):void 0,conv7:c>8?s("conv7"):void 0,conv8:r("conv8")}}else i={conv0:a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:a("conv6"),conv7:a("conv7"),conv8:r("conv8")};return L(o,e),{params:i,paramMappings:e}}var J=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var cr=class extends I{constructor(e){super("TinyYolov2");co(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let a=ot(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=ot(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=ot(a,r.conv6),a=ot(a,r.conv7),_t(a,r.conv8,"valid",!1)}runMobilenet(e,r){let a=this.config.isFirstLayerConv2d?Xt(_t(e,r.conv0,"valid",!1)):nt(e,r.conv0);return a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv1),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv2),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv3),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv4),a=n.maxPool(a,[2,2],[2,2],"same"),a=nt(a,r.conv5),a=n.maxPool(a,[2,2],[1,1],"same"),a=r.conv6?nt(a,r.conv6):a,a=r.conv7?nt(a,r.conv7):a,_t(a,r.conv8,"valid",!1)}forwardInput(e,r){let{params:a}=this;if(!a)throw new Error("TinyYolov2 - load model before inference");return n.tidy(()=>{let s=n.cast(e.toBatchTensor(r,!1),"float32");return s=this.config.meanRgb?X(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,a):this.runTinyYolov2(s,a)})}async forward(e,r){return this.forwardInput(await M(e),r)}async detect(e,r={}){let{inputSize:a,scoreThreshold:s}=new J(r),i=await M(e),c=await this.forwardInput(i,a),m=n.tidy(()=>n.unstack(c)[0].expandDims()),p={width:i.getInputWidth(0),height:i.getInputHeight(0)},u=await this.extractBoxes(m,i.getReshapedInputDimensions(0),s);c.dispose(),m.dispose();let f=u.map(h=>h.box),l=u.map(h=>h.score),d=u.map(h=>h.classScore),b=u.map(h=>this.config.classes[h.label]);return xr(f.map(h=>h.rescale(a)),l,this.config.iouThreshold,!0).map(h=>new ct(l[h],d[h],b[h],f[h],p))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return po(e,this.config)}extractParams(e){let r=this.config.filterSizes||cr.DEFAULT_FILTER_SIZES,a=r?r.length:void 0;if(a!==7&&a!==8&&a!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${a} filterSizes in config`);return mo(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,a){let{width:s,height:i}=r,c=Math.max(s,i),m=c/s,p=c/i,u=e.shape[1],f=this.config.anchors.length,[l,d,b]=n.tidy(()=>{let y=e.reshape([u,u,f,this.boxEncodingSize]),v=y.slice([0,0,0,0],[u,u,f,4]),D=y.slice([0,0,0,4],[u,u,f,1]),N=this.withClassScores?n.softmax(y.slice([0,0,0,5],[u,u,f,this.config.classes.length]),3):n.scalar(0);return[v,D,N]}),x=[],w=await d.array(),h=await l.array();for(let y=0;ya){let Y=(v+fe(h[y][v][D][0]))/u*m,q=(y+fe(h[y][v][D][1]))/u*p,O=Math.exp(h[y][v][D][2])*this.config.anchors[D].x/u*m,at=Math.exp(h[y][v][D][3])*this.config.anchors[D].y/u*p,st=Y-O/2,it=q-at/2,gt={row:y,col:v,anchor:D},{classScore:pr,label:ur}=this.withClassScores?await this.extractPredictedClass(b,gt):{classScore:1,label:0};x.push({box:new Nt(st,it,st+O,it+at),score:N,classScore:N*pr,label:ur,...gt})}}return l.dispose(),d.dispose(),b.dispose(),x}async extractPredictedClass(e,r){let{row:a,col:s,anchor:i}=r,c=await e.array();return Array(this.config.classes.length).fill(0).map((m,p)=>c[a][s][i][p]).map((m,p)=>({classScore:m,label:p})).reduce((m,p)=>m.classScore>p.classScore?m:p)}},Pt=cr;Pt.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Jt=class extends Pt{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:ro,classes:["face"],...t?{anchors:no,meanRgb:ao}:{anchors:oo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?io:so}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function id(o,t=!0){let e=new Jt(t);return e.extractWeights(o),e}var Le=class extends J{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var V=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Ft(o,t,e,r,a=({alignedRect:s})=>s){let s=o.map(m=>Yt(m)?a(m):m.detection),i=r||(t instanceof n.Tensor?await oe(t,s):await re(t,s)),c=await e(i);return i.forEach(m=>m instanceof n.Tensor&&m.dispose()),c}async function qt(o,t,e,r,a){return Ft([o],t,async s=>e(s[0]),r,a)}var uo=.4,fo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],lo=[117.001,114.697,97.404];var Zt=class extends Pt{constructor(){let t={withSeparableConvs:!0,iouThreshold:uo,classes:["face"],anchors:fo,meanRgb:lo,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(a=>new E(a.score,a.relativeBox,{width:a.imageWidth,height:a.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var T={ssdMobilenetv1:new wt,tinyFaceDetector:new Zt,tinyYolov2:new Jt,faceLandmark68Net:new jt,faceLandmark68TinyNet:new Ie,faceRecognitionNet:new Ut,faceExpressionNet:new Pe,ageGenderNet:new Me},Qo=(o,t)=>T.ssdMobilenetv1.locateFaces(o,t),Bd=(o,t)=>T.tinyFaceDetector.locateFaces(o,t),Rd=(o,t)=>T.tinyYolov2.locateFaces(o,t),tn=o=>T.faceLandmark68Net.detectLandmarks(o),$d=o=>T.faceLandmark68TinyNet.detectLandmarks(o),Od=o=>T.faceRecognitionNet.computeFaceDescriptor(o),Hd=o=>T.faceExpressionNet.predictExpressions(o),zd=o=>T.ageGenderNet.predictAgeAndGender(o),en=o=>T.ssdMobilenetv1.load(o),Vd=o=>T.tinyFaceDetector.load(o),Yd=o=>T.tinyYolov2.load(o),Gd=o=>T.faceLandmark68Net.load(o),jd=o=>T.faceLandmark68TinyNet.load(o),Ud=o=>T.faceRecognitionNet.load(o),Xd=o=>T.faceExpressionNet.load(o),Jd=o=>T.ageGenderNet.load(o),qd=en,Zd=Qo,Kd=tn;var Ae=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Dt=class extends Ae{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>T.faceExpressionNet.predictExpressions(a))),this.extractedFaces);return t.map((r,a)=>tr(r,e[a]))}withAgeAndGender(){return new Mt(this,this.input)}},Et=class extends Ae{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>T.faceExpressionNet.predictExpressions(r),this.extractedFaces);return tr(t,e)}withAgeAndGender(){return new Ct(this,this.input)}},ut=class extends Dt{withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},ft=class extends Et{withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var We=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.extractedFaces=a}},Mt=class extends We{async run(){let t=await this.parentTask,e=await Ft(t,this.input,async r=>Promise.all(r.map(a=>T.ageGenderNet.predictAgeAndGender(a))),this.extractedFaces);return t.map((r,a)=>{let{age:s,gender:i,genderProbability:c}=e[a];return sr(ir(r,i,c),s)})}withFaceExpressions(){return new Dt(this,this.input)}},Ct=class extends We{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:a}=await qt(t,this.input,s=>T.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return sr(ir(t,r,a),e)}withFaceExpressions(){return new Et(this,this.input)}},lt=class extends Mt{withFaceExpressions(){return new ut(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},dt=class extends Ct{withFaceExpressions(){return new ft(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var ke=class extends V{constructor(e,r){super();this.parentTask=e;this.input=r}},ht=class extends ke{async run(){let t=await this.parentTask;return(await Ft(t,this.input,r=>Promise.all(r.map(a=>T.faceRecognitionNet.computeFaceDescriptor(a))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,a)=>ar(t[a],r))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}},bt=class extends ke{async run(){let t=await this.parentTask;if(!t)return;let e=await qt(t,this.input,r=>T.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return ar(t,e)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}};var Be=class extends V{constructor(e,r,a){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=a}get landmarkNet(){return this.useTinyLandmarkNet?T.faceLandmark68TinyNet:T.faceLandmark68Net}},Re=class extends Be{async run(){let t=await this.parentTask,e=t.map(i=>i.detection),r=this.input instanceof n.Tensor?await oe(this.input,e):await re(this.input,e),a=await Promise.all(r.map(i=>this.landmarkNet.detectLandmarks(i)));return r.forEach(i=>i instanceof n.Tensor&&i.dispose()),t.filter((i,c)=>a[c]).map((i,c)=>ie(i,a[c]))}withFaceExpressions(){return new ut(this,this.input)}withAgeAndGender(){return new lt(this,this.input)}withFaceDescriptors(){return new ht(this,this.input)}},$e=class extends Be{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof n.Tensor?await oe(this.input,[e]):await re(this.input,[e]),a=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(s=>s instanceof n.Tensor&&s.dispose()),ie(t,a)}withFaceExpressions(){return new ft(this,this.input)}withAgeAndGender(){return new dt(this,this.input)}withFaceDescriptor(){return new bt(this,this.input)}};var Oe=class extends V{constructor(e,r=new z){super();this.input=e;this.options=r}},me=class extends Oe{async run(){let{input:t,options:e}=this,r;if(e instanceof Le)r=T.tinyFaceDetector.locateFaces(t,e);else if(e instanceof z)r=T.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof J)r=T.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(a=>At({},a)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new Re(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Dt(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Mt(this.runAndExtendWithFaceDetections(),this.input)}},He=class extends Oe{async run(){let t=await new me(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?At({},e):void 0)})}withFaceLandmarks(t=!1){return new $e(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Et(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ct(this.runAndExtendWithFaceDetection(),this.input)}};function Jh(o,t=new z){return new He(o,t)}function mr(o,t=new z){return new me(o,t)}async function rn(o,t){return mr(o,new z(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function eb(o,t={}){return mr(o,new J(t)).withFaceLandmarks().withFaceDescriptors()}var rb=rn;function ho(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((a,s)=>a-r[s]).reduce((a,s)=>a+s*s,0))}var ze=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let a=1,s=()=>`person ${a++}`;this._labeledDescriptors=r.map(i=>{if(i instanceof Q)return i;if(i instanceof Float32Array)return new Q(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Q(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>ho(r,t)).reduce((r,a)=>r+a,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new Kt(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>Q.fromJSON(r));return new ze(e,t.distanceThreshold)}};function yb(o){let t=new Zt;return t.extractWeights(o),t}function on(o,t){let{width:e,height:r}=new S(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(a=>on(a,{width:e,height:r}));if(Yt(o)){let a=o.detection.forSize(e,r),s=o.unshiftedLandmarks.forSize(a.box.width,a.box.height);return ie(At(o,a),s)}return tt(o)?At(o,o.detection.forSize(e,r)):o instanceof $||o instanceof E?o.forSize(e,r):o}var Nb=kr;export{Me as AgeGenderNet,Nt as BoundingBox,F as Box,V as ComposableTask,ht as ComputeAllFaceDescriptorsTask,ke as ComputeFaceDescriptorsTaskBase,bt as ComputeSingleFaceDescriptorTask,Re as DetectAllFaceLandmarksTask,me as DetectAllFacesTask,Be as DetectFaceLandmarksTaskBase,Oe as DetectFacesTaskBase,$e as DetectSingleFaceLandmarksTask,He as DetectSingleFaceTask,S as Dimensions,Lr as FACE_EXPRESSION_LABELS,E as FaceDetection,eo as FaceDetectionNet,Pe as FaceExpressionNet,pt as FaceExpressions,jt as FaceLandmark68Net,Ie as FaceLandmark68TinyNet,Yr as FaceLandmarkNet,$ as FaceLandmarks,yr as FaceLandmarks5,Lt as FaceLandmarks68,Kt as FaceMatch,ze as FaceMatcher,Ut as FaceRecognitionNet,rr as Gender,Qt as LabeledBox,Q as LabeledFaceDescriptors,rt as NetInput,I as NeuralNetwork,ct as ObjectDetection,g as Point,_r as PredictedBox,St as Rect,wt as SsdMobilenetv1,z as SsdMobilenetv1Options,Zt as TinyFaceDetector,Le as TinyFaceDetectorOptions,Jt as TinyYolov2,J as TinyYolov2Options,rb as allFaces,rn as allFacesSsdMobilenetv1,eb as allFacesTinyYolov2,Tr as awaitMediaLoaded,wr as bufferToImage,Od as computeFaceDescriptor,Rt as createCanvas,be as createCanvasFromMedia,bl as createFaceDetectionNet,bf as createFaceRecognitionNet,qo as createSsdMobilenetv1,yb as createTinyFaceDetector,id as createTinyYolov2,mr as detectAllFaces,tn as detectFaceLandmarks,$d as detectFaceLandmarksTiny,Kd as detectLandmarks,Jh as detectSingleFace,Wr as draw,_ as env,ho as euclideanDistance,sr as extendWithAge,ar as extendWithFaceDescriptor,At as extendWithFaceDetection,tr as extendWithFaceExpressions,ie as extendWithFaceLandmarks,ir as extendWithGender,oe as extractFaceTensors,re as extractFaces,Fi as fetchImage,Dr as fetchJson,Ii as fetchNetWeights,mt as fetchOrThrow,ki as fetchVideo,k as getContext2dOrThrow,Bt as getMediaDimensions,Pr as imageTensorToCanvas,Fr as imageToSquare,On as inverseSigmoid,br as iou,Qe as isMediaElement,he as isMediaLoaded,yf as isWithAge,tt as isWithFaceDetection,Ar as isWithFaceExpressions,Yt as isWithFaceLandmarks,Pf as isWithGender,Jd as loadAgeGenderModel,qd as loadFaceDetectionModel,Xd as loadFaceExpressionModel,Gd as loadFaceLandmarkModel,jd as loadFaceLandmarkTinyModel,Ud as loadFaceRecognitionModel,en as loadSsdMobilenetv1Model,Vd as loadTinyFaceDetectorModel,Yd as loadTinyYolov2Model,Mr as loadWeightMap,Zd as locateFaces,Vi as matchDimensions,gr as minBbox,T as nets,xr as nonMaxSuppression,X as normalize,vr as padToSquare,zd as predictAgeAndGender,Hd as recognizeFaceExpressions,on as resizeResults,Wt as resolveInput,Rn as shuffleArray,fe as sigmoid,Qo as ssdMobilenetv1,n as tf,Bd as tinyFaceDetector,Rd as tinyYolov2,M as toNetInput,hr as utils,co as validateConfig,Nb as version}; diff --git a/dist/face-api.esm.js b/dist/face-api.esm.js index 65f3bb8..43e2e3d 100644 --- a/dist/face-api.esm.js +++ b/dist/face-api.esm.js @@ -4,65 +4,65 @@ author: ' */ -var aF=Object.defineProperty;var Gr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var ab=(e,t)=>{for(var n in t)aF(e,n,{get:t[n],enumerable:!0})};var Oe={};ab(Oe,{Abs:()=>wl,Acos:()=>kl,Acosh:()=>Il,AdadeltaOptimizer:()=>of,AdagradOptimizer:()=>lf,AdamOptimizer:()=>uf,AdamaxOptimizer:()=>pf,Add:()=>cs,AddN:()=>mi,All:()=>Sl,Any:()=>Tl,ArgMax:()=>fi,ArgMin:()=>sc,Asin:()=>Nl,Asinh:()=>Cl,Atan:()=>_l,Atan2:()=>$l,Atanh:()=>El,AvgPool:()=>gi,AvgPool3D:()=>ic,AvgPool3DGrad:()=>Yh,AvgPoolGrad:()=>Xh,BackendWasm:()=>k$,BatchMatMul:()=>yi,BatchToSpaceND:()=>Al,Bincount:()=>Zh,BroadcastArgs:()=>Jh,BroadcastTo:()=>RI,Callback:()=>JN,CallbackList:()=>nN,Cast:()=>bi,Ceil:()=>xi,ClipByValue:()=>ds,Complex:()=>Qh,ComplexAbs:()=>oc,Concat:()=>Fl,Conv2D:()=>vi,Conv2DBackpropFilter:()=>em,Conv2DBackpropInput:()=>wi,Conv3D:()=>lc,Conv3DBackpropFilterV2:()=>tm,Conv3DBackpropInputV2:()=>nm,Cos:()=>ki,Cosh:()=>Ii,CropAndResize:()=>Rl,Cumprod:()=>Dl,Cumsum:()=>Si,CustomCallback:()=>rN,DataStorage:()=>jh,DenseBincount:()=>am,DepthToSpace:()=>Ml,DepthwiseConv2dNative:()=>Ti,DepthwiseConv2dNativeBackpropFilter:()=>rm,DepthwiseConv2dNativeBackpropInput:()=>sm,Diag:()=>im,Dilation2D:()=>uc,Dilation2DBackpropFilter:()=>gh,Dilation2DBackpropInput:()=>fh,ENV:()=>Ix,EarlyStopping:()=>QN,Einsum:()=>om,Elu:()=>Ci,EluGrad:()=>lm,Environment:()=>FI,Equal:()=>Ol,Erf:()=>Pl,Exp:()=>_i,ExpandDims:()=>Ll,Expm1:()=>zl,FFT:()=>um,Fill:()=>pc,FlipLeftRight:()=>Wl,Floor:()=>Ei,FloorDiv:()=>$i,FromPixels:()=>yh,FusedBatchNorm:()=>Ai,FusedConv2D:()=>Qs,FusedDepthwiseConv2D:()=>ei,GPGPUContext:()=>ph,GatherNd:()=>Vl,GatherV2:()=>Bl,GraphModel:()=>k0,Greater:()=>Ul,GreaterEqual:()=>Fi,History:()=>aN,IFFT:()=>pm,Identity:()=>Di,Imag:()=>cm,InputSpec:()=>zt,IsFinite:()=>Gl,IsInf:()=>Hl,IsNan:()=>jl,KernelBackend:()=>rc,LRN:()=>cc,LRNGrad:()=>hm,LayerVariable:()=>XT,LayersModel:()=>Nr,LeakyRelu:()=>Ri,Less:()=>ql,LessEqual:()=>Kl,LinSpace:()=>dm,Log:()=>Mi,Log1p:()=>Xl,LogSoftmax:()=>PI,LogicalAnd:()=>Yl,LogicalNot:()=>Zl,LogicalOr:()=>Jl,LogicalXor:()=>MI,LowerBound:()=>qF,MathBackendWebGL:()=>Rf,Max:()=>Pi,MaxPool:()=>Li,MaxPool3D:()=>dc,MaxPool3DGrad:()=>fm,MaxPoolGrad:()=>mm,MaxPoolWithArgmax:()=>gm,Maximum:()=>Oi,Mean:()=>zi,Min:()=>Wi,Minimum:()=>Bi,MirrorPad:()=>Vi,Mod:()=>Ql,MomentumOptimizer:()=>cf,Multinomial:()=>ym,Multiply:()=>Ui,Neg:()=>eu,NonMaxSuppressionV3:()=>nu,NonMaxSuppressionV4:()=>au,NonMaxSuppressionV5:()=>ru,NotEqual:()=>tu,OP_SCOPE_SUFFIX:()=>Cx,OneHot:()=>Gi,OnesLike:()=>su,Optimizer:()=>Ar,OptimizerConstructors:()=>Hr,Pack:()=>iu,PadV2:()=>Hi,Pool:()=>KF,Pow:()=>ji,Prelu:()=>qi,Prod:()=>Ki,RMSPropOptimizer:()=>df,RNN:()=>dr,RaggedGather:()=>bm,RaggedRange:()=>xm,RaggedTensorToTensor:()=>vm,Range:()=>hc,Rank:()=>wb,Real:()=>wm,RealDiv:()=>Ni,Reciprocal:()=>ou,Reduction:()=>xn,Relu:()=>Xi,Relu6:()=>Ji,Reshape:()=>lu,ResizeBilinear:()=>Zi,ResizeBilinearGrad:()=>Im,ResizeNearestNeighbor:()=>Yi,ResizeNearestNeighborGrad:()=>km,Reverse:()=>Qi,RotateWithOffset:()=>Su,Round:()=>eo,Rsqrt:()=>to,SGDOptimizer:()=>Bc,ScatterNd:()=>uu,SearchSorted:()=>Sm,Select:()=>pu,Selu:()=>cu,Sequential:()=>hl,Sigmoid:()=>ao,Sign:()=>mu,Sin:()=>no,Sinh:()=>hu,Slice:()=>du,Softmax:()=>io,Softplus:()=>fu,SpaceToBatchND:()=>gu,SparseFillEmptyRows:()=>mc,SparseReshape:()=>bu,SparseSegmentMean:()=>fc,SparseSegmentSum:()=>gc,SparseToDense:()=>Tm,SplitV:()=>yu,Sqrt:()=>ro,Square:()=>yc,SquaredDifference:()=>oo,Step:()=>ms,StridedSlice:()=>xu,StringNGrams:()=>bc,StringSplit:()=>xc,StringToHashBucketFast:()=>vc,Sub:()=>lo,Sum:()=>so,SymbolicTensor:()=>Ba,Tan:()=>uo,Tanh:()=>po,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>hs,TopK:()=>vu,Transform:()=>wu,Transpose:()=>Tr,Unique:()=>Nm,Unpack:()=>ku,UnsortedSegmentSum:()=>wc,UpperBound:()=>XF,Variable:()=>ts,ZerosLike:()=>Iu,_FusedMatMul:()=>Js,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>Am,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,backend:()=>uS,backend_util:()=>N,basicLSTMCell:()=>AS,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>$c,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,broadcast_util:()=>Tu,browser:()=>co,buffer:()=>Pe,callbacks:()=>bH,cast:()=>le,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,constraints:()=>JT,conv1d:()=>Fm,conv2d:()=>At,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,copyRegisteredKernels:()=>QF,cos:()=>Ac,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,customGrad:()=>or,data:()=>I2,denseBincount:()=>Sh,deprecationWarn:()=>Rx,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,deregisterOp:()=>wH,device_util:()=>Tc,diag:()=>RS,dilation2d:()=>pv,disableDeprecationWarnings:()=>CR,dispose:()=>_e,disposeVariables:()=>_R,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enableDebugMode:()=>NR,enableProdMode:()=>TR,enclosingPowerOfTwo:()=>Wv,engine:()=>Na,env:()=>H,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,findBackend:()=>MR,findBackendFactory:()=>PR,floor:()=>_u,floorDiv:()=>$m,forceHalfFloat:()=>V_,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,gather_util:()=>Mx,getBackend:()=>DR,getGradient:()=>xb,getKernel:()=>bh,getKernelsForBackend:()=>xh,getThreadsCount:()=>mpe,gpgpu_util:()=>v_,grad:()=>iO,grads:()=>oO,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,initializers:()=>QT,input:()=>bN,io:()=>Ut,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,keep:()=>Jt,kernel_impls:()=>cr,layers:()=>eN,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,loadGraphModel:()=>S6,loadGraphModelSync:()=>T6,loadLayersModel:()=>xU,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>$T,lowerBound:()=>VS,matMul:()=>Fe,math:()=>lS,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,memory:()=>kh,meshgrid:()=>GS,metrics:()=>XN,min:()=>il,minimum:()=>$u,mirrorPad:()=>Tv,mod:()=>Nv,model:()=>kU,models:()=>YN,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,nextFrame:()=>Gv,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>Ax,prod:()=>_v,profile:()=>ER,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>Au,range:()=>ol,ready:()=>FR,real:()=>sl,reciprocal:()=>Av,registerBackend:()=>Em,registerCallbackConstructor:()=>SU,registerGradient:()=>OI,registerKernel:()=>kc,registerOp:()=>vH,regularizers:()=>ZN,relu:()=>Xe,relu6:()=>Gm,removeBackend:()=>RR,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>xe,scatterND:()=>fT,scatter_util:()=>Px,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,sequential:()=>IU,serialization:()=>ne,setBackend:()=>AR,setPlatform:()=>OR,setThreadsCount:()=>hpe,setWasmPath:()=>cpe,setWasmPaths:()=>dpe,setWebGLContext:()=>GC,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>AT,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,sumOutType:()=>_m,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>Aa,tensor5d:()=>uT,tensor6d:()=>pT,tensor_util:()=>Va,test_util:()=>SS,tidy:()=>P,tile:()=>Ln,time:()=>$R,topk:()=>Mv,train:()=>zs,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unregisterGradient:()=>JF,unregisterKernel:()=>ZF,unsortedSegmentSum:()=>ef,unstack:()=>ct,upcastType:()=>ma,upperBound:()=>cT,util:()=>v,valueAndGrad:()=>lO,valueAndGrads:()=>uO,variable:()=>Ov,variableGrads:()=>BS,version:()=>wpe,version_converter:()=>C6,version_core:()=>fM,version_layers:()=>dw,version_wasm:()=>fpe,version_webgl:()=>rJ,webgl:()=>sJ,webgl_util:()=>UC,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var rF=Object.create,bx=Object.defineProperty,sF=Object.getOwnPropertyDescriptor,iF=Object.getOwnPropertyNames,oF=Object.getPrototypeOf,lF=Object.prototype.hasOwnProperty,vI=(e=>typeof Gr!="undefined"?Gr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Gr!="undefined"?Gr:t)[n]}):e)(function(e){if(typeof Gr!="undefined")return Gr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$e=(e,t)=>{for(var n in t)bx(e,n,{get:t[n],enumerable:!0})},uF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of iF(t))!lF.call(e,r)&&r!==n&&bx(e,r,{get:()=>t[r],enumerable:!(a=sF(t,r))||a.enumerable});return e},us=(e,t,n)=>(n=e!=null?rF(oF(e)):{},uF(t||!e||!e.__esModule?bx(n,"default",{value:e,enumerable:!0}):n,e)),pF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),cF=Bt(()=>{}),dF=Bt(()=>{}),hF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),mF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),fF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),gF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),yF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),xF=Bt(()=>{}),vF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,$=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);${var n=hF(),a=mF(),r=fF(),s=gF(),i=yF(),o=bF(),l=vF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),wI=Bt(()=>{}),xx=Bt(()=>{}),dh=Bt(()=>{}),wF=Bt(()=>{}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&it(ue.buffer),dt}function i(){return ue.buffer!=ze&&it(ue.buffer),Hn}function o(){return ue.buffer!=ze&&it(ue.buffer),Mt}function l(){return ue.buffer!=ze&&it(ue.buffer),sn}function u(){return ue.buffer!=ze&&it(ue.buffer),Fn}function p(){return ue.buffer!=ze&&it(ue.buffer),ia}function d(){return ue.buffer!=ze&&it(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function $(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Rs||J("exiting due to exception: "+D)}if(T){I?E=dh().dirname(E)+"/":E=__dirname+"/";var U,G;typeof vI=="function"&&(U=xx(),G=dh()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?ce(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Rs))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(wa())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=wF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=kF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` +var iF=Object.defineProperty;var jr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var ib=(e,t)=>{for(var n in t)iF(e,n,{get:t[n],enumerable:!0})};var Oe={};ib(Oe,{Abs:()=>Sl,Acos:()=>Tl,Acosh:()=>Nl,AdadeltaOptimizer:()=>lf,AdagradOptimizer:()=>uf,AdamOptimizer:()=>pf,AdamaxOptimizer:()=>cf,Add:()=>fs,AddN:()=>bi,All:()=>Cl,Any:()=>El,ArgMax:()=>xi,ArgMin:()=>ic,Asin:()=>_l,Asinh:()=>Al,Atan:()=>$l,Atan2:()=>Dl,Atanh:()=>Fl,AvgPool:()=>vi,AvgPool3D:()=>oc,AvgPool3DGrad:()=>Zh,AvgPoolGrad:()=>Yh,BackendWasm:()=>TA,BatchMatMul:()=>wi,BatchToSpaceND:()=>Rl,Bincount:()=>Jh,BroadcastArgs:()=>Qh,BroadcastTo:()=>OI,Callback:()=>t2,CallbackList:()=>sN,Cast:()=>ki,Ceil:()=>Ii,ClipByValue:()=>gs,Complex:()=>em,ComplexAbs:()=>lc,Concat:()=>Ml,Conv2D:()=>Si,Conv2DBackpropFilter:()=>tm,Conv2DBackpropInput:()=>Ti,Conv3D:()=>uc,Conv3DBackpropFilterV2:()=>nm,Conv3DBackpropInputV2:()=>am,Cos:()=>Ni,Cosh:()=>Ci,CropAndResize:()=>Ol,Cumprod:()=>Pl,Cumsum:()=>Ei,CustomCallback:()=>oN,DataStorage:()=>qh,DenseBincount:()=>rm,DepthToSpace:()=>Ll,DepthwiseConv2dNative:()=>_i,DepthwiseConv2dNativeBackpropFilter:()=>sm,DepthwiseConv2dNativeBackpropInput:()=>im,Diag:()=>om,Dilation2D:()=>pc,Dilation2DBackpropFilter:()=>yh,Dilation2DBackpropInput:()=>gh,ENV:()=>Nx,EarlyStopping:()=>n2,Einsum:()=>lm,Elu:()=>$i,EluGrad:()=>um,Environment:()=>MI,Equal:()=>Wl,Erf:()=>zl,Exp:()=>Fi,ExpandDims:()=>Bl,Expm1:()=>Vl,FFT:()=>pm,Fill:()=>cc,FlipLeftRight:()=>Ul,Floor:()=>Di,FloorDiv:()=>Ri,FromPixels:()=>bh,FusedBatchNorm:()=>Mi,FusedConv2D:()=>ni,FusedDepthwiseConv2D:()=>ai,GPGPUContext:()=>ch,GatherNd:()=>Hl,GatherV2:()=>Gl,GraphModel:()=>T0,Greater:()=>jl,GreaterEqual:()=>Pi,History:()=>iN,IFFT:()=>cm,Identity:()=>Oi,Imag:()=>dm,InputSpec:()=>zt,IsFinite:()=>ql,IsInf:()=>Kl,IsNan:()=>Li,KernelBackend:()=>sc,LRN:()=>dc,LRNGrad:()=>mm,LayerVariable:()=>JT,LayersModel:()=>Er,LeakyRelu:()=>zi,Less:()=>Xl,LessEqual:()=>Yl,LinSpace:()=>hm,Log:()=>Wi,Log1p:()=>Zl,LogSoftmax:()=>zI,LogicalAnd:()=>Jl,LogicalNot:()=>Ql,LogicalOr:()=>eu,LogicalXor:()=>LI,LowerBound:()=>YF,MathBackendWebGL:()=>Mf,Max:()=>Bi,MaxPool:()=>Ui,MaxPool3D:()=>hc,MaxPool3DGrad:()=>gm,MaxPoolGrad:()=>fm,MaxPoolWithArgmax:()=>ym,Maximum:()=>Vi,Mean:()=>Gi,Min:()=>Hi,Minimum:()=>ji,MirrorPad:()=>qi,Mod:()=>tu,MomentumOptimizer:()=>df,Multinomial:()=>bm,Multiply:()=>Ki,Neg:()=>nu,NonMaxSuppressionV3:()=>ru,NonMaxSuppressionV4:()=>su,NonMaxSuppressionV5:()=>iu,NotEqual:()=>au,OP_SCOPE_SUFFIX:()=>Ax,OneHot:()=>Xi,OnesLike:()=>ou,Optimizer:()=>Dr,OptimizerConstructors:()=>qr,Pack:()=>lu,PadV2:()=>Yi,Pool:()=>ZF,Pow:()=>Zi,Prelu:()=>Ji,Prod:()=>Qi,RMSPropOptimizer:()=>hf,RNN:()=>mr,RaggedGather:()=>xm,RaggedRange:()=>vm,RaggedTensorToTensor:()=>wm,Range:()=>mc,Rank:()=>Nb,Real:()=>km,RealDiv:()=>Ai,Reciprocal:()=>eo,Reduction:()=>vn,Relu:()=>to,Relu6:()=>ro,Reshape:()=>uu,ResizeBilinear:()=>ao,ResizeBilinearGrad:()=>Sm,ResizeNearestNeighbor:()=>no,ResizeNearestNeighborGrad:()=>Im,Reverse:()=>so,RotateWithOffset:()=>Tu,Round:()=>io,Rsqrt:()=>oo,SGDOptimizer:()=>Vc,ScatterNd:()=>pu,SearchSorted:()=>Tm,Select:()=>cu,Selu:()=>du,Sequential:()=>gl,Sigmoid:()=>uo,Sign:()=>fu,Sin:()=>lo,Sinh:()=>mu,Slice:()=>hu,Softmax:()=>ho,Softplus:()=>gu,SpaceToBatchND:()=>yu,SparseFillEmptyRows:()=>fc,SparseReshape:()=>xu,SparseSegmentMean:()=>gc,SparseSegmentSum:()=>yc,SparseToDense:()=>Nm,SplitV:()=>bu,Sqrt:()=>po,Square:()=>bc,SquaredDifference:()=>mo,Step:()=>bs,StridedSlice:()=>vu,StringNGrams:()=>xc,StringSplit:()=>vc,StringToHashBucketFast:()=>wc,Sub:()=>fo,Sum:()=>co,SymbolicTensor:()=>Va,Tan:()=>go,Tanh:()=>yo,Tensor:()=>Te,TensorBuffer:()=>qt,Tile:()=>ys,TopK:()=>wu,Transform:()=>ku,Transpose:()=>Cr,Unique:()=>Cm,Unpack:()=>Iu,UnsortedSegmentSum:()=>kc,UpperBound:()=>JF,Variable:()=>ss,ZerosLike:()=>Su,_FusedMatMul:()=>ti,abs:()=>Lt,acos:()=>Gx,acosh:()=>Hx,add:()=>Y,addN:()=>AS,all:()=>Fm,any:()=>Kp,argMax:()=>ii,argMin:()=>jx,asin:()=>qx,asinh:()=>Kx,atan:()=>Xx,atan2:()=>Yx,atanh:()=>Zx,avgPool:()=>ya,avgPool3d:()=>Qx,backend:()=>dS,backend_util:()=>N,basicLSTMCell:()=>RS,batchNorm:()=>ws,batchNorm2d:()=>ev,batchNorm3d:()=>tv,batchNorm4d:()=>nv,batchToSpaceND:()=>$c,bincount:()=>av,booleanMaskAsync:()=>gT,broadcastArgs:()=>MS,broadcastTo:()=>Zs,broadcast_util:()=>Nu,browser:()=>bo,buffer:()=>Pe,callbacks:()=>kH,cast:()=>le,ceil:()=>rv,clipByValue:()=>tn,clone:()=>sr,complex:()=>_r,concat:()=>Ze,concat1d:()=>sv,concat2d:()=>iv,concat3d:()=>ov,concat4d:()=>lv,constraints:()=>tN,conv1d:()=>Dm,conv2d:()=>Ft,conv2dTranspose:()=>Rm,conv3d:()=>pv,conv3dTranspose:()=>cv,copyRegisteredKernels:()=>nD,cos:()=>Fc,cosh:()=>Mm,cosineWindow:()=>nf,cumprod:()=>Xp,cumsum:()=>Pm,customGrad:()=>ur,data:()=>N2,denseBincount:()=>Th,deprecationWarn:()=>Ox,depthToSpace:()=>dv,depthwiseConv2d:()=>ks,deregisterOp:()=>TH,device_util:()=>Nc,diag:()=>OS,dilation2d:()=>hv,disableDeprecationWarnings:()=>AR,dispose:()=>Ee,disposeVariables:()=>$R,div:()=>me,divNoNan:()=>mv,dot:()=>fv,dropout:()=>Vv,einsum:()=>LS,elu:()=>Cu,enableDebugMode:()=>_R,enableProdMode:()=>ER,enclosingPowerOfTwo:()=>Uv,engine:()=>Ca,env:()=>H,equal:()=>Jn,erf:()=>gv,euclideanNorm:()=>xv,exp:()=>gn,expandDims:()=>Qt,expm1:()=>vv,eye:()=>Om,fft:()=>Wc,fill:()=>yn,findBackend:()=>LR,findBackendFactory:()=>zR,floor:()=>_u,floorDiv:()=>$m,forceHalfFloat:()=>HE,fused:()=>hl,gather:()=>Au,gatherND:()=>vT,gather_util:()=>Lx,getBackend:()=>PR,getGradient:()=>Sb,getKernel:()=>xh,getKernelsForBackend:()=>vh,getThreadsCount:()=>wpe,gpgpu_util:()=>IE,grad:()=>uO,grads:()=>pO,greater:()=>Nn,greaterEqual:()=>$r,ifft:()=>dl,imag:()=>Ec,image:()=>_a,inTopKAsync:()=>wT,initializers:()=>nN,input:()=>wN,io:()=>Gt,irfft:()=>Jm,isFinite:()=>wv,isInf:()=>kv,isNaN:()=>Iv,keep:()=>Ht,kernel_impls:()=>hr,layers:()=>aN,leakyRelu:()=>Dc,less:()=>Lm,lessEqual:()=>Is,linalg:()=>jv,linspace:()=>US,loadGraphModel:()=>_6,loadGraphModelSync:()=>A6,loadLayersModel:()=>vU,localResponseNormalization:()=>Sv,log:()=>Qn,log1p:()=>Rc,logSigmoid:()=>Tv,logSoftmax:()=>Wm,logSumExp:()=>Bm,logicalAnd:()=>$a,logicalNot:()=>Mc,logicalOr:()=>Vm,logicalXor:()=>Nv,losses:()=>DT,lowerBound:()=>HS,matMul:()=>Fe,math:()=>cS,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Cv,maxPoolWithArgmax:()=>jS,maximum:()=>dr,mean:()=>Nt,memory:()=>Ih,meshgrid:()=>qS,metrics:()=>JN,min:()=>pl,minimum:()=>$u,mirrorPad:()=>Ev,mod:()=>_v,model:()=>IU,models:()=>QN,moments:()=>Pc,movingAverage:()=>yT,mul:()=>z,multiRNNCell:()=>KS,multinomial:()=>XS,neg:()=>bt,nextFrame:()=>qv,norm:()=>Eu,notEqual:()=>ui,oneHot:()=>ll,ones:()=>Zn,onesLike:()=>ea,op:()=>L,outerProduct:()=>YS,pad:()=>ba,pad1d:()=>ZS,pad2d:()=>JS,pad3d:()=>QS,pad4d:()=>eT,pool:()=>Av,pow:()=>Ar,prelu:()=>Lc,print:()=>Rx,prod:()=>$v,profile:()=>FR,raggedGather:()=>tT,raggedRange:()=>nT,raggedTensorToTensor:()=>aT,rand:()=>rT,randomGamma:()=>sT,randomNormal:()=>Gm,randomStandardNormal:()=>iT,randomUniform:()=>Fu,range:()=>pi,ready:()=>MR,real:()=>ul,reciprocal:()=>Rv,registerBackend:()=>Am,registerCallbackConstructor:()=>TU,registerGradient:()=>WI,registerKernel:()=>Ic,registerOp:()=>SH,regularizers:()=>e2,relu:()=>Xe,relu6:()=>Hm,removeBackend:()=>OR,reshape:()=>W,reverse:()=>ga,reverse1d:()=>oT,reverse2d:()=>lT,reverse3d:()=>uT,reverse4d:()=>pT,rfft:()=>Bc,round:()=>jm,rsqrt:()=>qm,scalar:()=>xe,scatterND:()=>bT,scatter_util:()=>zx,searchSorted:()=>Um,selu:()=>Km,separableConv2d:()=>Ss,sequential:()=>SU,serialization:()=>ne,setBackend:()=>RR,setPlatform:()=>WR,setThreadsCount:()=>vpe,setWasmPath:()=>bpe,setWasmPaths:()=>xpe,setWebGLContext:()=>qC,setdiff1dAsync:()=>cT,sigmoid:()=>da,sign:()=>Mv,signal:()=>FT,sin:()=>Xm,sinh:()=>Ym,slice:()=>Be,slice1d:()=>zc,slice2d:()=>Zm,slice3d:()=>vo,slice4d:()=>cl,slice_util:()=>Kt,softmax:()=>Xa,softplus:()=>xo,spaceToBatchND:()=>Oc,sparse:()=>RT,sparseToDense:()=>xT,spectral:()=>$T,split:()=>zn,sqrt:()=>un,square:()=>ot,squaredDifference:()=>Qm,squeeze:()=>Ts,stack:()=>$t,step:()=>wo,stridedSlice:()=>Pv,string:()=>MT,sub:()=>pe,sum:()=>fe,sumOutType:()=>_m,tan:()=>Ov,tanh:()=>oi,tensor:()=>mn,tensor1d:()=>Ke,tensor2d:()=>Aa,tensor3d:()=>_c,tensor4d:()=>Da,tensor5d:()=>dT,tensor6d:()=>hT,tensor_util:()=>Ua,test_util:()=>CS,tidy:()=>P,tile:()=>Ln,time:()=>DR,topk:()=>Lv,train:()=>Us,transpose:()=>_e,truncatedNormal:()=>ef,unique:()=>zv,unregisterGradient:()=>tD,unregisterKernel:()=>eD,unsortedSegmentSum:()=>tf,unstack:()=>ut,upcastType:()=>ma,upperBound:()=>mT,util:()=>v,valueAndGrad:()=>cO,valueAndGrads:()=>dO,variable:()=>Wv,variableGrads:()=>GS,version:()=>Epe,version_converter:()=>F6,version_core:()=>bM,version_layers:()=>fw,version_wasm:()=>kpe,version_webgl:()=>uJ,webgl:()=>pJ,webgl_util:()=>jC,where:()=>fn,whereAsync:()=>Bv,zeros:()=>It,zerosLike:()=>qe});var oF=Object.create,kx=Object.defineProperty,lF=Object.getOwnPropertyDescriptor,uF=Object.getOwnPropertyNames,pF=Object.getPrototypeOf,cF=Object.prototype.hasOwnProperty,II=(e=>typeof jr!="undefined"?jr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof jr!="undefined"?jr:t)[n]}):e)(function(e){if(typeof jr!="undefined")return jr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ae=(e,t)=>{for(var n in t)kx(e,n,{get:t[n],enumerable:!0})},dF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of uF(t))!cF.call(e,r)&&r!==n&&kx(e,r,{get:()=>t[r],enumerable:!(a=lF(t,r))||a.enumerable});return e},hs=(e,t,n)=>(n=e!=null?oF(pF(e)):{},dF(t||!e||!e.__esModule?kx(n,"default",{value:e,enumerable:!0}):n,e)),hF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),mF=Bt(()=>{}),fF=Bt(()=>{}),gF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),yF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),bF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),xF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),vF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),wF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),kF=Bt(()=>{}),IF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var _=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),_),R=new f(_),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,_=this,$=0,R=_.i=_.j=0,F=_.S=[];for(C||(I=[C++]);${var n=gF(),a=yF(),r=bF(),s=xF(),i=vF(),o=wF(),l=IF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),SI=Bt(()=>{}),Ix=Bt(()=>{}),hh=Bt(()=>{}),SF=Bt(()=>{}),TF=Bt(()=>{}),NF=Bt(()=>{}),CF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&it(ue.buffer),dt}function i(){return ue.buffer!=ze&&it(ue.buffer),Hn}function o(){return ue.buffer!=ze&&it(ue.buffer),Mt}function l(){return ue.buffer!=ze&&it(ue.buffer),on}function u(){return ue.buffer!=ze&&it(ue.buffer),Fn}function p(){return ue.buffer!=ze&&it(ue.buffer),ia}function d(){return ue.buffer!=ze&&it(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function $(D){return c.locateFile?c.locateFile(D,_):_+D}var R,F,S,M;function B(D){D instanceof Ls||J("exiting due to exception: "+D)}if(T){I?_=hh().dirname(_)+"/":_=__dirname+"/";var U,G;typeof II=="function"&&(U=Ix(),G=hh()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,de)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?de(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Ls))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(ka())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=SF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var de=new XMLHttpRequest;de.open("GET",D,!0),de.responseType="arraybuffer",de.onload=()=>{if(de.status==200||de.status==0&&de.response){j(de.response);return}re()},de.onerror=re,de.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=TF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` `),K=D=>U.writeSync(2,D+` -`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Lo("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||Lo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,Ie=j;D[Ie]&&!(Ie>=ce);)++Ie;if(Ie-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|la&1023)}}return je}function st(D,j){return D?nt(i(),D,j):""}function Je(D,j,re,ce){if(!(ce>0))return 0;for(var Ie=re,je=re+ce-1,Ce=0;Ce=55296&&De<=57343){var Ot=D.charCodeAt(++Ce);De=65536+((De&1023)<<10)|Ot&1023}if(De<=127){if(re>=je)break;j[re++]=De}else if(De<=2047){if(re+1>=je)break;j[re++]=192|De>>6,j[re++]=128|De&63}else if(De<=65535){if(re+2>=je)break;j[re++]=224|De>>12,j[re++]=128|De>>6&63,j[re++]=128|De&63}else{if(re+3>=je)break;j[re++]=240|De>>18,j[re++]=128|De>>12&63,j[re++]=128|De>>6&63,j[re++]=128|De&63}}return j[re]=0,re-Ie}function at(D,j,re){return Je(D,i(),j,re)}var ze,dt,Hn,Mt,sa,sn,Fn,ia,Dn;C&&(ze=c.buffer);function it(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=sn=new Int32Array(D),c.HEAPU8=Hn=new Uint8Array(D),c.HEAPU16=sa=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=ia=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,it(ze);var jn,gr=[],Mo=[],Ja=[],mp=!1;function wa(){return ye}function Po(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)bg(c.preRun.shift());bp(gr)}function Xt(){mp=!0,!C&&bp(Mo)}function bd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)I1(c.postRun.shift());bp(Ja)}}function bg(D){gr.unshift(D)}function xg(D){Mo.unshift(D)}function I1(D){Ja.unshift(D)}var Br=0,Oo=null,yr=null;function S1(D){Br++,c.monitorRunDependencies&&c.monitorRunDependencies(Br)}function T1(D){if(Br--,c.monitorRunDependencies&&c.monitorRunDependencies(Br),Br==0&&(Oo!==null&&(clearInterval(Oo),Oo=null),yr)){var j=yr;yr=null,j()}}function Lo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var vg="data:application/octet-stream;base64,";function xd(D){return D.startsWith(vg)}function fp(D){return D.startsWith("file://")}var yn;yn="tfjs-backend-wasm-threaded-simd.wasm",xd(yn)||(yn=$(yn));function vd(D){try{if(D==yn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Lo(j)}}function wg(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!fp(yn))return fetch(yn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+yn+"'";return D.arrayBuffer()}).catch(function(){return vd(yn)});if(F)return new Promise(function(D,j){F(yn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return vd(yn)})}function kg(){var D={env:Fd,wasi_snapshot_preview1:Fd};function j(Ce,De){var Ot=Ce.exports;if(c.asm=Ot,Fg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,xg(c.asm.__wasm_call_ctors),be=De,!C){var la=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(xr){Ae.loadWasmModuleToWorker(xr,function(){--la||T1("wasm-instantiate")})})}}C||S1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return wg().then(function(De){return WebAssembly.instantiate(De,D)}).then(function(De){return De}).then(Ce,function(De){J("failed to asynchronously prepare wasm: "+De),Lo(De)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!xd(yn)&&!fp(yn)&&!T&&typeof fetch=="function"?fetch(yn,{credentials:"same-origin"}).then(function(Ce){var De=WebAssembly.instantiateStreaming(Ce,D);return De.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Ig,N1,Sg={};function Rs(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Tg(D){var j=Ae.pthreads[D];delete Ae.pthreads[D],j.terminate(),eb(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Ng(D){var j=Ae.pthreads[D];j.postMessage({cmd:"cancel"})}function gp(D){var j=Ae.pthreads[D];Le(j),Ae.returnWorkerToPool(j)}function wd(D){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var kd={varargs:void 0,get:function(){kd.varargs+=4;var D=l()[kd.varargs-4>>2];return D},getStr:function(D){var j=st(D);return j}};function yp(D){if(C)return Vr(1,1,D);Se=D,wa()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new Rs(D))}function C1(D,j){if(Se=D,!j&&C)throw Sd(D),"unwind";yp(D)}var Id=C1;function Cg(D){if(D instanceof Rs||D=="unwind")return Se;x(1,D)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ae.pthreads))Ae.returnWorkerToPool(D);for(var D of Ae.unusedWorkers)D.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(D),1),D.pthread_ptr=0,eb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,Ie=ce.cmd;if(D.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Ld()){var je=Ae.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?xp(ce.queue):Ie==="spawnThread"?wd(ce):Ie==="cleanupThread"?gp(ce.thread):Ie==="killThread"?Tg(ce.thread):Ie==="cancelThread"?Ng(ce.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+ce.threadId+": "+ce.text):Ie==="printErr"?J("Thread "+ce.threadId+": "+ce.text):Ie==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):Ie==="onAbort"?c.onAbort&&c.onAbort(ce.arg):Ie&&J("worker sent an unknown command "+Ie),Ae.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw J(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");Ae.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function bp(D){for(;D.length>0;)D.shift()(c)}function _g(D){var j=tb(),re=D();return zd(j),re}function _1(D){return D}function E1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Eg(){var D=Ld(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;P1(j,ce),zd(j)}c.establishStackSpace=Eg;function Sd(D){if(C)return Vr(2,0,D);try{Id(D)}catch(j){Cg(j)}}var zo=[];function $g(D){var j=zo[D];return j||(D>=zo.length&&(zo.length=D+1),zo[D]=j=jn.get(D)),j}function Ag(D,j){var re=$g(D)(j);wa()?Ae.setExitStatus(re):M1(re)}c.invokeEntryPoint=Ag;function $1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Fg(D){Ae.tlsInitFunctions.push(D)}function Dg(D,j){s().set(D,j)}function Rg(D){F1(D,!I,1,!w),Ae.threadInitTLS()}function Mg(D){C?postMessage({cmd:"cleanupThread",thread:D}):gp(D)}function Td(D,j,re,ce){return C?Vr(3,1,D,j,re,ce):Nd(D,j,re,ce)}function Nd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return Td(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):wd(Ce)}function Pg(){return 2097152}var Og=!0;function Lg(){return Og}function xp(D){Atomics.store(l(),D>>2,1),Ld()&&R1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=xp;function zg(D,j,re,ce){if(D==j)setTimeout(()=>xp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var Ie=Ae.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Wg(D,j,re){return-1}function Bg(){Lo("")}function Ms(D){Ms.shown||(Ms.shown={}),Ms.shown[D]||(Ms.shown[D]=1,T&&(D="warning: "+D),J(D))}function Vg(){T||I||Ms("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Ug(){return Date.now()}function Cd(){return 2147483648}function Gg(){return Cd()}var Wo;T?Wo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Wo=()=>performance.now()-c.__performance_now_clock_drift:Wo=()=>performance.now();function Hg(D,j,re){i().copyWithin(D,j,j+re)}function jg(){return T?IF().cpus().length:navigator.hardwareConcurrency}function Vr(D,j){var re=arguments.length-2,ce=arguments;return _g(()=>{for(var Ie=re,je=Wd(Ie*8),Ce=je>>3,De=0;De>3,Ie=0;Ie>>16),it(ue.buffer),1}catch(j){}}function Xg(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Cd();if(D>re)return!1;let ce=(Ot,la)=>Ot+(la-Ot%la)%la;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),De=Kg(Ce);if(De)return!0}return!1}function Yg(){throw"unwind"}function _d(D){return C?Vr(4,1,D):52}function Ed(D,j,re,ce,Ie){return C?Vr(5,1,D,j,re,ce,Ie):70}var Zg=[null,[],[]];function Jg(D,j){var re=Zg[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function $d(D,j,re,ce){if(C)return Vr(6,1,D,j,re,ce);for(var Ie=0,je=0;je>2],De=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function Ad(D){var j=c["_"+D];return j}function Qg(D,j,re,ce,Ie){var je={string:ua=>{var Go=0;if(ua!=null&&ua!==0){var z1=(ua.length<<2)+1;Go=Wd(z1),at(ua,Go,z1)}return Go},array:ua=>{var Go=Wd(ua.length);return Dg(ua,Go),Go}};function Ce(ua){return j==="string"?st(ua):j==="boolean"?Boolean(ua):ua}var De=Ad(D),Ot=[],la=0;if(ce)for(var xr=0;xrCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!ce?Ad(D):function(){return Qg(D,j,re,arguments,ce)}}Ae.init();var ty=[null,yp,Sd,Td,_d,Ed,$d],Fd={__emscripten_init_main_thread_js:Rg,__emscripten_thread_cleanup:Mg,__pthread_create_js:Nd,_emscripten_default_pthread_stack_size:Pg,_emscripten_get_now_is_monotonic:Lg,_emscripten_notify_task_queue:zg,_emscripten_set_offscreencanvas_size:Wg,abort:Bg,emscripten_check_blocking_allowed:Vg,emscripten_date_now:Ug,emscripten_get_heap_max:Gg,emscripten_get_now:Wo,emscripten_memcpy_big:Hg,emscripten_num_logical_cores:jg,emscripten_receive_on_main_thread_js:qg,emscripten_resize_heap:Xg,emscripten_unwind_to_js_event_loop:Yg,exit:Id,fd_close:_d,fd_seek:Ed,fd_write:$d,memory:ue||c.wasmMemory},A1=kg(),ny=c.___wasm_call_ctors=function(){return(ny=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ay=c._init=function(){return(ay=c._init=c.asm.init).apply(null,arguments)},ry=c._init_with_threads_count=function(){return(ry=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},sy=c._get_threads_count=function(){return(sy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},iy=c._register_tensor=function(){return(iy=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},oy=c._dispose_data=function(){return(oy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},ly=c._dispose=function(){return(ly=c._dispose=c.asm.dispose).apply(null,arguments)},uy=c._Abs=function(){return(uy=c._Abs=c.asm.Abs).apply(null,arguments)},py=c._Add=function(){return(py=c._Add=c.asm.Add).apply(null,arguments)},cy=c._AddN=function(){return(cy=c._AddN=c.asm.AddN).apply(null,arguments)},dy=c._All=function(){return(dy=c._All=c.asm.All).apply(null,arguments)},hy=c._Any=function(){return(hy=c._Any=c.asm.Any).apply(null,arguments)},my=c._ArgMax=function(){return(my=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},fy=c._AvgPool=function(){return(fy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},gy=c._BatchMatMul=function(){return(gy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},yy=c._Ceil=function(){return(yy=c._Ceil=c.asm.Ceil).apply(null,arguments)},by=c._ClipByValue=function(){return(by=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},xy=c._Conv2D=function(){return(xy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},vy=c._Conv2DBackpropInput=function(){return(vy=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},wy=c._Cos=function(){return(wy=c._Cos=c.asm.Cos).apply(null,arguments)},ky=c._Cosh=function(){return(ky=c._Cosh=c.asm.Cosh).apply(null,arguments)},Iy=c._CropAndResize=function(){return(Iy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Sy=c._Cumprod=function(){return(Sy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ty=c._Cumsum=function(){return(Ty=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ny=c._DepthToSpace=function(){return(Ny=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Cy=c._DepthwiseConv2dNative=function(){return(Cy=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},_y=c._Elu=function(){return(_y=c._Elu=c.asm.Elu).apply(null,arguments)},Ey=c._Equal=function(){return(Ey=c._Equal=c.asm.Equal).apply(null,arguments)},$y=c._Exp=function(){return($y=c._Exp=c.asm.Exp).apply(null,arguments)},Ay=c._FlipLeftRight=function(){return(Ay=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Fy=c._Floor=function(){return(Fy=c._Floor=c.asm.Floor).apply(null,arguments)},Dy=c._FloorDiv=function(){return(Dy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Ry=c._FusedBatchNorm=function(){return(Ry=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},My=c._FusedConv2D=function(){return(My=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Py=c._FusedDepthwiseConv2D=function(){return(Py=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Oy=c._Gather=function(){return(Oy=c._Gather=c.asm.Gather).apply(null,arguments)},Ly=c._GatherNd=function(){return(Ly=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},zy=c._Greater=function(){return(zy=c._Greater=c.asm.Greater).apply(null,arguments)},Wy=c._GreaterEqual=function(){return(Wy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},By=c._LeakyRelu=function(){return(By=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Vy=c._Less=function(){return(Vy=c._Less=c.asm.Less).apply(null,arguments)},Uy=c._LessEqual=function(){return(Uy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Gy=c._Log=function(){return(Gy=c._Log=c.asm.Log).apply(null,arguments)},Hy=c._LogicalAnd=function(){return(Hy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},jy=c._LogicalNot=function(){return(jy=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},qy=c._LogicalOr=function(){return(qy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Ky=c._LogicalXor=function(){return(Ky=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Xy=c._Max=function(){return(Xy=c._Max=c.asm.Max).apply(null,arguments)},Dd=c._MaxPool=function(){return(Dd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Rd=c._Maximum=function(){return(Rd=c._Maximum=c.asm.Maximum).apply(null,arguments)},wp=c._Mean=function(){return(wp=c._Mean=c.asm.Mean).apply(null,arguments)},Yy=c._Min=function(){return(Yy=c._Min=c.asm.Min).apply(null,arguments)},Zy=c._Minimum=function(){return(Zy=c._Minimum=c.asm.Minimum).apply(null,arguments)},Bo=c._MirrorPad=function(){return(Bo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Md=c._Multiply=function(){return(Md=c._Multiply=c.asm.Multiply).apply(null,arguments)},Vo=c._Neg=function(){return(Vo=c._Neg=c.asm.Neg).apply(null,arguments)},Uo=c._NonMaxSuppressionV3=function(){return(Uo=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Jy=c._NonMaxSuppressionV4=function(){return(Jy=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},oa=c._Relu6=function(){return(oa=c._Relu6=c.asm.Relu6).apply(null,arguments)},br=c._ResizeBilinear=function(){return(br=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Pd=c._ResizeNearestNeighbor=function(){return(Pd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},kp=c._Reverse=function(){return(kp=c._Reverse=c.asm.Reverse).apply(null,arguments)},Qy=c._RotateWithOffset=function(){return(Qy=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Ur=c._Rsqrt=function(){return(Ur=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Od=c._ScatterNd=function(){return(Od=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},SA=c._SelectV2=function(){return(SA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},TA=c._Sigmoid=function(){return(TA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},NA=c._Sin=function(){return(NA=c._Sin=c.asm.Sin).apply(null,arguments)},CA=c._Softmax=function(){return(CA=c._Softmax=c.asm.Softmax).apply(null,arguments)},_A=c._SparseFillEmptyRows=function(){return(_A=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},EA=c._SparseReshape=function(){return(EA=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},$A=c._SparseSegmentReduction=function(){return($A=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},AA=c._Sqrt=function(){return(AA=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},FA=c._Square=function(){return(FA=c._Square=c.asm.Square).apply(null,arguments)},DA=c._SquaredDifference=function(){return(DA=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},RA=c._Step=function(){return(RA=c._Step=c.asm.Step).apply(null,arguments)},MA=c._StridedSlice=function(){return(MA=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},PA=c._Sub=function(){return(PA=c._Sub=c.asm.Sub).apply(null,arguments)},OA=c._Sum=function(){return(OA=c._Sum=c.asm.Sum).apply(null,arguments)},LA=c._Tan=function(){return(LA=c._Tan=c.asm.Tan).apply(null,arguments)},zA=c._Tanh=function(){return(zA=c._Tanh=c.asm.Tanh).apply(null,arguments)},WA=c._Tile=function(){return(WA=c._Tile=c.asm.Tile).apply(null,arguments)},BA=c._TopK=function(){return(BA=c._TopK=c.asm.TopK).apply(null,arguments)},VA=c._Transform=function(){return(VA=c._Transform=c.asm.Transform).apply(null,arguments)},UA=c._Transpose=function(){return(UA=c._Transpose=c.asm.Transpose).apply(null,arguments)},GA=c.__FusedMatMul=function(){return(GA=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},HA=c._malloc=function(){return(HA=c._malloc=c.asm.malloc).apply(null,arguments)},jA=c._free=function(){return(jA=c._free=c.asm.free).apply(null,arguments)},qA=c.__emscripten_tls_init=function(){return(qA=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Ld=c._pthread_self=function(){return(Ld=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},KA=c.___errno_location=function(){return(KA=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},F1=c.__emscripten_thread_init=function(){return(F1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},XA=c.__emscripten_thread_crashed=function(){return(XA=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},YA=c._emscripten_main_thread_process_queued_calls=function(){return(YA=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},ZA=c._emscripten_main_browser_thread_id=function(){return(ZA=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},D1=c._emscripten_run_in_main_runtime_thread_js=function(){return(D1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},JA=c._emscripten_dispatch_to_thread_=function(){return(JA=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},R1=c.__emscripten_proxy_execute_task_queue=function(){return(R1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},eb=c.__emscripten_thread_free_data=function(){return(eb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},M1=c.__emscripten_thread_exit=function(){return(M1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},P1=c._emscripten_stack_set_limits=function(){return(P1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},tb=c.stackSave=function(){return(tb=c.stackSave=c.asm.stackSave).apply(null,arguments)},zd=c.stackRestore=function(){return(zd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Wd=c.stackAlloc=function(){return(Wd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},QA=c.dynCall_iijjiiii=function(){return(QA=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},eF=c.dynCall_jiji=function(){return(eF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=wa,c.wasmMemory=ue,c.cwrap=ey,c.ExitStatus=Rs,c.PThread=Ae;var Bd;yr=function D(){Bd||O1(),Bd||(yr=D)};function O1(D){if(D=D||y,Br>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Po(),Br>0)return;function j(){Bd||(Bd=!0,c.calledRun=!0,!ke&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),bd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();O1();var Vd;f&&(Vd={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var Ud;if(typeof WasmBackendModule!="undefined")Ud=WasmBackendModule;else if(typeof r!="undefined")Ud=r;else throw new Error("Could not find wasm module in post.js");if(Vd){var tF=Ud._dispose;Ud._dispose=function(){tF(),Vd.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),Vd.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),TF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),NF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Oo||R("exiting due to exception: "+X)}if(f){m?g=dh().dirname(g)+"/":g=__dirname+"/";var C,E;typeof vI=="function"&&(C=xx(),E=dh()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Oo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(Hn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Ja("no native wasm support detected");var B,U=!1,G;function q(X,se){X||Ja(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|oa&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ve(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,st,Je=[],at=[],ze=[],dt=!1;function Hn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());yr(Je)}function sa(){dt=!0,yr(at)}function sn(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());yr(ze)}function Fn(X){Je.unshift(X)}function ia(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var it=0,Rn=null,jn=null;function gr(X){it++,s.monitorRunDependencies&&s.monitorRunDependencies(it)}function Mo(X){if(it--,s.monitorRunDependencies&&s.monitorRunDependencies(it),it==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var se=jn;jn=null,se()}}function Ja(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var mp="data:application/octet-stream;base64,";function wa(X){return X.startsWith(mp)}function Po(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",wa(Xt)||(Xt=y(Xt));function bd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){Ja(se)}}function bg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Po(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return bd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return bd(Xt)})}function xg(){var X={env:yp,wasi_snapshot_preview1:yp};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),st=s.asm.__indirect_function_table,ia(s.asm.__wasm_call_ctors),Mo("wasm-instantiate")}gr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return bg().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),Ja(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!wa(Xt)&&!Po(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var I1,Br;function Oo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function yr(X){for(;X.length>0;)X.shift()(s)}function S1(X){return X}function T1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Lo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function vg(X,se){ie.set(X,se)}function xd(){Ja("")}function fp(){return 2147483648}function yn(){return fp()}function vd(X,se,we){oe.copyWithin(X,se,se+we)}function wg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function kg(X){var se=oe.length;X=X>>>0;var we=fp();if(X>we)return!1;let He=(Pt,oa)=>Pt+(oa-Pt%oa)%oa;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=wg(Ue);if(We)return!0}return!1}var Ig={varargs:void 0,get:function(){Ig.varargs+=4;var X=be[Ig.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function N1(X){return 52}function Sg(X,se,we,He,wt){return 70}var Rs=[null,[],[]];function Tg(X,se){var we=Rs[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Ng(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function gp(X){var se=s["_"+X];return se}function wd(X,se,we,He,wt){var kt={string:Mn=>{var Ur=0;if(Mn!=null&&Mn!==0){var Od=(Mn.length<<2)+1;Ur=wp(Od),ae(Mn,Ur,Od)}return Ur},array:Mn=>{var Ur=wp(Mn.length);return vg(Mn,Ur),Ur}};function Ue(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=gp(X),Pt=[],oa=0;if(He)for(var br=0;brUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?gp(X):function(){return wd(X,se,we,arguments,He)}}var yp={abort:xd,emscripten_get_heap_max:yn,emscripten_memcpy_big:vd,emscripten_resize_heap:kg,fd_close:N1,fd_seek:Sg,fd_write:Ng},C1=xg(),Id=s.___wasm_call_ctors=function(){return(Id=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Cg=s._init=function(){return(Cg=s._init=s.asm.init).apply(null,arguments)},Ae=s._init_with_threads_count=function(){return(Ae=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},bp=s._get_threads_count=function(){return(bp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},_g=s._register_tensor=function(){return(_g=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},_1=s._dispose_data=function(){return(_1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},E1=s._dispose=function(){return(E1=s._dispose=s.asm.dispose).apply(null,arguments)},Eg=s._Abs=function(){return(Eg=s._Abs=s.asm.Abs).apply(null,arguments)},Sd=s._Add=function(){return(Sd=s._Add=s.asm.Add).apply(null,arguments)},zo=s._AddN=function(){return(zo=s._AddN=s.asm.AddN).apply(null,arguments)},$g=s._All=function(){return($g=s._All=s.asm.All).apply(null,arguments)},Ag=s._Any=function(){return(Ag=s._Any=s.asm.Any).apply(null,arguments)},$1=s._ArgMax=function(){return($1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Fg=s._AvgPool=function(){return(Fg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Dg=s._BatchMatMul=function(){return(Dg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Rg=s._Ceil=function(){return(Rg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Mg=s._ClipByValue=function(){return(Mg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Td=s._Conv2D=function(){return(Td=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Nd=s._Conv2DBackpropInput=function(){return(Nd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Pg=s._Cos=function(){return(Pg=s._Cos=s.asm.Cos).apply(null,arguments)},Og=s._Cosh=function(){return(Og=s._Cosh=s.asm.Cosh).apply(null,arguments)},Lg=s._CropAndResize=function(){return(Lg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},xp=s._Cumprod=function(){return(xp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},zg=s._Cumsum=function(){return(zg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Wg=s._DepthToSpace=function(){return(Wg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Bg=s._DepthwiseConv2dNative=function(){return(Bg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ms=s._Elu=function(){return(Ms=s._Elu=s.asm.Elu).apply(null,arguments)},Vg=s._Equal=function(){return(Vg=s._Equal=s.asm.Equal).apply(null,arguments)},Ug=s._Exp=function(){return(Ug=s._Exp=s.asm.Exp).apply(null,arguments)},Cd=s._FlipLeftRight=function(){return(Cd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Gg=s._Floor=function(){return(Gg=s._Floor=s.asm.Floor).apply(null,arguments)},Wo=s._FloorDiv=function(){return(Wo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Hg=s._FusedBatchNorm=function(){return(Hg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},jg=s._FusedConv2D=function(){return(jg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Vr=s._FusedDepthwiseConv2D=function(){return(Vr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},vp=s._Gather=function(){return(vp=s._Gather=s.asm.Gather).apply(null,arguments)},qg=s._GatherNd=function(){return(qg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Kg=s._Greater=function(){return(Kg=s._Greater=s.asm.Greater).apply(null,arguments)},Xg=s._GreaterEqual=function(){return(Xg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Yg=s._LeakyRelu=function(){return(Yg=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},_d=s._Less=function(){return(_d=s._Less=s.asm.Less).apply(null,arguments)},Ed=s._LessEqual=function(){return(Ed=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Zg=s._Log=function(){return(Zg=s._Log=s.asm.Log).apply(null,arguments)},Jg=s._LogicalAnd=function(){return(Jg=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},$d=s._LogicalNot=function(){return($d=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Ad=s._LogicalOr=function(){return(Ad=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},Qg=s._LogicalXor=function(){return(Qg=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ey=s._Max=function(){return(ey=s._Max=s.asm.Max).apply(null,arguments)},ty=s._MaxPool=function(){return(ty=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},Fd=s._Maximum=function(){return(Fd=s._Maximum=s.asm.Maximum).apply(null,arguments)},A1=s._Mean=function(){return(A1=s._Mean=s.asm.Mean).apply(null,arguments)},ny=s._Min=function(){return(ny=s._Min=s.asm.Min).apply(null,arguments)},ay=s._Minimum=function(){return(ay=s._Minimum=s.asm.Minimum).apply(null,arguments)},ry=s._MirrorPad=function(){return(ry=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},sy=s._Multiply=function(){return(sy=s._Multiply=s.asm.Multiply).apply(null,arguments)},iy=s._Neg=function(){return(iy=s._Neg=s.asm.Neg).apply(null,arguments)},oy=s._NonMaxSuppressionV3=function(){return(oy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},ly=s._NonMaxSuppressionV4=function(){return(ly=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},uy=s._NonMaxSuppressionV5=function(){return(uy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},py=s._NotEqual=function(){return(py=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},cy=s._OneHot=function(){return(cy=s._OneHot=s.asm.OneHot).apply(null,arguments)},dy=s._PadV2=function(){return(dy=s._PadV2=s.asm.PadV2).apply(null,arguments)},hy=s._Pow=function(){return(hy=s._Pow=s.asm.Pow).apply(null,arguments)},my=s._Prelu=function(){return(my=s._Prelu=s.asm.Prelu).apply(null,arguments)},fy=s._Prod=function(){return(fy=s._Prod=s.asm.Prod).apply(null,arguments)},gy=s._RealDiv=function(){return(gy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},yy=s._Relu=function(){return(yy=s._Relu=s.asm.Relu).apply(null,arguments)},by=s._Relu6=function(){return(by=s._Relu6=s.asm.Relu6).apply(null,arguments)},xy=s._ResizeBilinear=function(){return(xy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},vy=s._ResizeNearestNeighbor=function(){return(vy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},wy=s._Reverse=function(){return(wy=s._Reverse=s.asm.Reverse).apply(null,arguments)},ky=s._RotateWithOffset=function(){return(ky=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Iy=s._Round=function(){return(Iy=s._Round=s.asm.Round).apply(null,arguments)},Sy=s._Rsqrt=function(){return(Sy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ty=s._ScatterNd=function(){return(Ty=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ny=s._SelectV2=function(){return(Ny=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Cy=s._Sigmoid=function(){return(Cy=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},_y=s._Sin=function(){return(_y=s._Sin=s.asm.Sin).apply(null,arguments)},Ey=s._Softmax=function(){return(Ey=s._Softmax=s.asm.Softmax).apply(null,arguments)},$y=s._SparseFillEmptyRows=function(){return($y=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Ay=s._SparseReshape=function(){return(Ay=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Fy=s._SparseSegmentReduction=function(){return(Fy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Dy=s._Sqrt=function(){return(Dy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Ry=s._Square=function(){return(Ry=s._Square=s.asm.Square).apply(null,arguments)},My=s._SquaredDifference=function(){return(My=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Py=s._Step=function(){return(Py=s._Step=s.asm.Step).apply(null,arguments)},Oy=s._StridedSlice=function(){return(Oy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Ly=s._Sub=function(){return(Ly=s._Sub=s.asm.Sub).apply(null,arguments)},zy=s._Sum=function(){return(zy=s._Sum=s.asm.Sum).apply(null,arguments)},Wy=s._Tan=function(){return(Wy=s._Tan=s.asm.Tan).apply(null,arguments)},By=s._Tanh=function(){return(By=s._Tanh=s.asm.Tanh).apply(null,arguments)},Vy=s._Tile=function(){return(Vy=s._Tile=s.asm.Tile).apply(null,arguments)},Uy=s._TopK=function(){return(Uy=s._TopK=s.asm.TopK).apply(null,arguments)},Gy=s._Transform=function(){return(Gy=s._Transform=s.asm.Transform).apply(null,arguments)},Hy=s._Transpose=function(){return(Hy=s._Transpose=s.asm.Transpose).apply(null,arguments)},jy=s.__FusedMatMul=function(){return(jy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},qy=s._malloc=function(){return(qy=s._malloc=s.asm.malloc).apply(null,arguments)},Ky=s._free=function(){return(Ky=s._free=s.asm.free).apply(null,arguments)},Xy=s.___errno_location=function(){return(Xy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Dd=s.stackSave=function(){return(Dd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Rd=s.stackRestore=function(){return(Rd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},wp=s.stackAlloc=function(){return(wp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Yy=s.dynCall_iijjiiii=function(){return(Yy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},Zy=s.dynCall_jiji=function(){return(Zy=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=kd;var Bo;jn=function X(){Bo||Md(),Bo||(jn=X)};function Md(X){if(X=X||p,it>0||(Mt(),it>0))return;function se(){Bo||(Bo=!0,s.calledRun=!0,!U&&(sa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),sn()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Md();var Vo;l&&(Vo={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var Uo;if(typeof r!="undefined")Uo=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Uo=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(Vo){var Jy=Uo._dispose;Uo._dispose=function(){Jy(),Vo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),Vo.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),jh=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},rc=class{refCount(e){return qn("refCount")}incRef(e){return qn("incRef")}timerAvailable(){return!0}time(e){return qn("time")}read(e){return qn("read")}readSync(e){return qn("readSync")}readToGPU(e,t){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(e,t){return qn("disposeData")}write(e,t,n){return qn("write")}move(e,t,n,a,r){return qn("move")}createTensorFromTexture(e,t,n){return qn("createTensorFromTexture")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function kI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,hh(e,t,n)}function CF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,hh(e,n,a),hh(t,n,a)}function Vp(e,t,n){return Math.max(e,Math.min(t,n))}function _F(e){return e%2===0?e:e+1}function hh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function EF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function hi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Zs(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function OF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function $a(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>tl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function II(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:$a(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function SI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function TI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function NI(e,t){for(let n=0;nt+=n.length),t}function Kr(e){return typeof e=="string"||e instanceof String}function EI(e){return typeof e=="boolean"}function $I(e){return typeof e=="number"}function qh(e){return Array.isArray(e)?qh(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":$I(e)?"float32":Kr(e)?"string":EI(e)?"bool":"float32"}function es(e){return!!(e&&e.constructor&&e.call&&e.apply)}function mh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function AI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return AI(0,e,t,n)}function vx(e,t){let n=Kh(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return Zo(e,new Float32Array(n));if(t==="int32")return Zo(e,new Int32Array(n));if(t==="bool")return Zo(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function wx(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function WF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=GF(n,a)})}};function VF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(UF(t,a[0],a[1]),a.join("="))),t}function UF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function GF(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Ix}var Ix=null;function HF(e){Ix=e}var rb;function DI(){if(rb==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");rb=e}return rb}function jF(){let e=DI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Sx(e,t){let n=jF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var wl="Abs",kl="Acos",Il="Acosh",cs="Add",mi="AddN",Sl="All",Tl="Any",fi="ArgMax",sc="ArgMin",Nl="Asin",Cl="Asinh",_l="Atan",El="Atanh",$l="Atan2",gi="AvgPool",Xh="AvgPoolGrad",ic="AvgPool3D",Yh="AvgPool3DGrad",yi="BatchMatMul",Al="BatchToSpaceND",Zh="Bincount",RI="BroadcastTo",Jh="BroadcastArgs",bi="Cast",xi="Ceil",ds="ClipByValue",Qh="Complex",oc="ComplexAbs",Fl="Concat",vi="Conv2D",em="Conv2DBackpropFilter",wi="Conv2DBackpropInput",lc="Conv3D",tm="Conv3DBackpropFilterV2",nm="Conv3DBackpropInputV2",ki="Cos",Ii="Cosh",Dl="Cumprod",Si="Cumsum",Rl="CropAndResize",am="DenseBincount",Ml="DepthToSpace",Ti="DepthwiseConv2dNative",rm="DepthwiseConv2dNativeBackpropFilter",sm="DepthwiseConv2dNativeBackpropInput",im="Diag",uc="Dilation2D",fh="Dilation2DBackpropInput",gh="Dilation2DBackpropFilter",Ni="RealDiv",om="Einsum",Ci="Elu",lm="EluGrad",Pl="Erf",Ol="Equal",_i="Exp",Ll="ExpandDims",zl="Expm1",um="FFT",pc="Fill",Wl="FlipLeftRight",Ei="Floor",$i="FloorDiv",Ai="FusedBatchNorm",Bl="GatherV2",Vl="GatherNd",Ul="Greater",Fi="GreaterEqual",Di="Identity",pm="IFFT",cm="Imag",Gl="IsFinite",Hl="IsInf",jl="IsNan",Ri="LeakyRelu",ql="Less",Kl="LessEqual",dm="LinSpace",Mi="Log",Xl="Log1p",Yl="LogicalAnd",Zl="LogicalNot",Jl="LogicalOr",MI="LogicalXor",PI="LogSoftmax",qF="LowerBound",cc="LRN",hm="LRNGrad",Pi="Max",Oi="Maximum",Li="MaxPool",mm="MaxPoolGrad",dc="MaxPool3D",fm="MaxPool3DGrad",gm="MaxPoolWithArgmax",zi="Mean",Wi="Min",Bi="Minimum",Vi="MirrorPad",Ql="Mod",ym="Multinomial",Ui="Multiply",eu="Neg",tu="NotEqual",nu="NonMaxSuppressionV3",au="NonMaxSuppressionV4",ru="NonMaxSuppressionV5",su="OnesLike",Gi="OneHot",iu="Pack",Hi="PadV2",KF="Pool",ji="Pow",qi="Prelu",Ki="Prod",bm="RaggedGather",xm="RaggedRange",vm="RaggedTensorToTensor",hc="Range",wm="Real",ou="Reciprocal",Xi="Relu",lu="Reshape",Yi="ResizeNearestNeighbor",km="ResizeNearestNeighborGrad",Zi="ResizeBilinear",Im="ResizeBilinearGrad",Ji="Relu6",Qi="Reverse",eo="Round",to="Rsqrt",uu="ScatterNd",Sm="SearchSorted",pu="Select",cu="Selu",du="Slice",no="Sin",hu="Sinh",mu="Sign",ao="Sigmoid",fu="Softplus",ro="Sqrt",so="Sum",gu="SpaceToBatchND",yu="SplitV",io="Softmax",mc="SparseFillEmptyRows",bu="SparseReshape",fc="SparseSegmentMean",gc="SparseSegmentSum",Tm="SparseToDense",oo="SquaredDifference",yc="Square",xu="StridedSlice",bc="StringNGrams",xc="StringSplit",vc="StringToHashBucketFast",lo="Sub",uo="Tan",po="Tanh",hs="Tile",vu="TopK",wu="Transform",Tr="Transpose",Nm="Unique",ku="Unpack",wc="UnsortedSegmentSum",XF="UpperBound",Iu="ZerosLike",ms="Step",yh="FromPixels",Su="RotateWithOffset",Js="_FusedMatMul",Qs="FusedConv2D",ei="FusedDepthwiseConv2D";function qr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function YF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var nl=Sx("kernelRegistry",()=>new Map),Up=Sx("gradRegistry",()=>new Map);function bh(e,t){let n=Tx(e,t);return nl.get(n)}function xb(e){return Up.get(e)}function xh(e){let t=nl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function kc(e){let{kernelName:t,backendName:n}=e,a=Tx(t,n);nl.has(a)&&qr(`The kernel '${t}' for backend '${n}' is already registered`),nl.set(a,e)}function OI(e){let{kernelName:t}=e;Up.has(t)&&H().getBool("DEBUG")&&qr(`Overriding the gradient for '${t}'`),Up.set(t,e)}function ZF(e,t){let n=Tx(e,t);if(!nl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);nl.delete(n)}function JF(e){if(!Up.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Up.delete(e)}function QF(e,t){xh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});kc(a)})}function Tx(e,t){return`${t}_${e}`}var v={};$e(v,{arraysEqual:()=>ps,assert:()=>A,assertNonNegativeIntegerDimensions:()=>wx,assertNonNull:()=>hi,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>_I,bytesPerElement:()=>bb,checkConversionForErrors:()=>NI,clamp:()=>Vp,computeStrides:()=>vl,createScalarValue:()=>sD,createShuffledIndices:()=>MF,decodeString:()=>vh,distSquared:()=>AF,encodeString:()=>Sc,fetch:()=>oD,fingerPrint64:()=>rD,flatten:()=>Zs,getArrayFromDType:()=>TI,getTypedArrayFromDType:()=>SI,hasEncodingLoss:()=>LF,hexToLong:()=>Ic,indexToLoc:()=>BF,inferDtype:()=>qh,inferFromImplicitShape:()=>OF,isBoolean:()=>EI,isFunction:()=>es,isInt:()=>tl,isNumber:()=>$I,isPromise:()=>kx,isScalarShape:()=>FF,isString:()=>Kr,isTypedArray:()=>hn,isValidDtype:()=>CI,locToIndex:()=>WF,makeOnesTypedArray:()=>vx,makeZerosNestedTypedArray:()=>zF,makeZerosTypedArray:()=>Kh,nearestDivisor:()=>mh,nearestLargerEven:()=>_F,now:()=>Gp,parseAxisParam:()=>$a,randUniform:()=>$F,repeatedTry:()=>PF,rightPad:()=>Lp,shuffle:()=>kI,shuffleCombo:()=>CF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>RF,squeezeShape:()=>II,sum:()=>EF,swap:()=>hh,tanh:()=>DF,toNestedArray:()=>Zo,toTypedArray:()=>Cm});var B1=us(pF()),Ws=B1.default||B1;function Ic(e){return Ws.fromString(e,!0,16)}var LI=Ic("c3a5c85c97cb3127"),Ls=Ic("b492b66fbe98f273"),bn=Ic("9ae16a3b2f90404f");function vb(e){return e.xor(e.shru(47))}function zI(e,t,n){let a=e.slice(t,t+n);return Ws.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return zI(e,t,8)}function V1(e,t){return zI(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function Zr(e,t,n=Ic("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function eD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function Gd(e,t,n,a){return eD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function tD(e,t=e.length){if(t>=8){let n=bn.add(t*2),a=ht(e,0).add(bn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return Zr(s,i,n)}if(t>=4){let n=bn.add(t*2),a=V1(e,0);return Zr(a.shl(3).add(t),V1(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return vb(bn.mul(s).xor(LI.mul(i))).mul(bn)}return bn}function nD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(Ls),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn);return Zr(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(bn),18)).add(s),n)}function aD(e,t=e.length){let n=bn.add(t*2),a=ht(e,0).mul(bn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(bn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=Zr(o,a.add(Yt(r.add(bn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return Zr(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function rD(e,t=e.length){let n=Ws.fromNumber(81,!0);if(t<=32)return t<=16?tD(e,t):nD(e,t);if(t<=64)return aD(e,t);let a=n,r=n.mul(Ls).add(113),s=vb(r.mul(bn).add(113)).mul(bn),i=[Ws.UZERO,Ws.UZERO],o=[Ws.UZERO,Ws.UZERO];a=a.mul(bn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(Ls),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(Ls),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(Ls),i=Gd(e,l,i[1].mul(Ls),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Ls.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=Gd(e,l,i[1].mul(d),a.add(o[0])),o=Gd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],Zr(Zr(i[0],o[0],d).add(vb(r).mul(LI)).add(s),Zr(i[1],o[1],d).add(a),d)}function sD(e,t){return t==="string"?Sc(e):Cm([e],t)}function iD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Cm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Zs(e)),H().getBool("DEBUG")&&NI(e,t),iD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Gp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Gp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{uD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function uD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function cD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!ps(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var U1=20,Ip=3,sb=7;function hD(e,t,n,a){let r=vl(t),s=mD(e,t,n,r),i=t.length,o=ah(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Uo("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||Uo(j)}var Ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var de=j+re,Ie=j;D[Ie]&&!(Ie>=de);)++Ie;if(Ie-j>16&&D.buffer&&Ue)return Ue.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|la&1023)}}return je}function st(D,j){return D?nt(i(),D,j):""}function Qe(D,j,re,de){if(!(de>0))return 0;for(var Ie=re,je=re+de-1,Ce=0;Ce=55296&&De<=57343){var Ot=D.charCodeAt(++Ce);De=65536+((De&1023)<<10)|Ot&1023}if(De<=127){if(re>=je)break;j[re++]=De}else if(De<=2047){if(re+1>=je)break;j[re++]=192|De>>6,j[re++]=128|De&63}else if(De<=65535){if(re+2>=je)break;j[re++]=224|De>>12,j[re++]=128|De>>6&63,j[re++]=128|De&63}else{if(re+3>=je)break;j[re++]=240|De>>18,j[re++]=128|De>>12&63,j[re++]=128|De>>6&63,j[re++]=128|De&63}}return j[re]=0,re-Ie}function at(D,j,re){return Qe(D,i(),j,re)}var ze,dt,Hn,Mt,sa,on,Fn,ia,Dn;C&&(ze=c.buffer);function it(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=on=new Int32Array(D),c.HEAPU8=Hn=new Uint8Array(D),c.HEAPU16=sa=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=ia=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,it(ze);var jn,br=[],Wo=[],Qa=[],fp=!1;function ka(){return ye}function Bo(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)xg(c.preRun.shift());xp(br)}function Zt(){fp=!0,!C&&xp(Wo)}function xd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)N1(c.postRun.shift());xp(Qa)}}function xg(D){br.unshift(D)}function vg(D){Wo.unshift(D)}function N1(D){Qa.unshift(D)}var Ur=0,Vo=null,xr=null;function C1(D){Ur++,c.monitorRunDependencies&&c.monitorRunDependencies(Ur)}function E1(D){if(Ur--,c.monitorRunDependencies&&c.monitorRunDependencies(Ur),Ur==0&&(Vo!==null&&(clearInterval(Vo),Vo=null),xr)){var j=xr;xr=null,j()}}function Uo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var wg="data:application/octet-stream;base64,";function vd(D){return D.startsWith(wg)}function gp(D){return D.startsWith("file://")}var bn;bn="tfjs-backend-wasm-threaded-simd.wasm",vd(bn)||(bn=$(bn));function wd(D){try{if(D==bn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Uo(j)}}function kg(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!gp(bn))return fetch(bn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+bn+"'";return D.arrayBuffer()}).catch(function(){return wd(bn)});if(F)return new Promise(function(D,j){F(bn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return wd(bn)})}function Ig(){var D={env:Dd,wasi_snapshot_preview1:Dd};function j(Ce,De){var Ot=Ce.exports;if(c.asm=Ot,Dg(c.asm._emscripten_tls_init),jn=c.asm.__indirect_function_table,vg(c.asm.__wasm_call_ctors),be=De,!C){var la=$e.unusedWorkers.length;$e.unusedWorkers.forEach(function(wr){$e.loadWasmModuleToWorker(wr,function(){--la||E1("wasm-instantiate")})})}}C||C1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function de(Ce){return kg().then(function(De){return WebAssembly.instantiate(De,D)}).then(function(De){return De}).then(Ce,function(De){J("failed to asynchronously prepare wasm: "+De),Uo(De)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!vd(bn)&&!gp(bn)&&!T&&typeof fetch=="function"?fetch(bn,{credentials:"same-origin"}).then(function(Ce){var De=WebAssembly.instantiateStreaming(Ce,D);return De.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),de(re)})}):de(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Sg,_1,Tg={};function Ls(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Ng(D){var j=$e.pthreads[D];delete $e.pthreads[D],j.terminate(),ab(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Cg(D){var j=$e.pthreads[D];j.postMessage({cmd:"cancel"})}function yp(D){var j=$e.pthreads[D];Le(j),$e.returnWorkerToPool(j)}function kd(D){var j=$e.getNewWorker();if(!j)return 6;$e.runningWorkers.push(j),$e.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var Id={varargs:void 0,get:function(){Id.varargs+=4;var D=l()[Id.varargs-4>>2];return D},getStr:function(D){var j=st(D);return j}};function bp(D){if(C)return Gr(1,1,D);Se=D,ka()||($e.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new Ls(D))}function A1(D,j){if(Se=D,!j&&C)throw Td(D),"unwind";bp(D)}var Sd=A1;function Eg(D){if(D instanceof Ls||D=="unwind")return Se;x(1,D)}var $e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?$e.initWorker():$e.initMainThread()},initMainThread:function(){for(var D=8;D--;)$e.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values($e.pthreads))$e.returnWorkerToPool(D);for(var D of $e.unusedWorkers)D.terminate();$e.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete $e.pthreads[j],$e.unusedWorkers.push(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(D),1),D.pthread_ptr=0,ab(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){$e.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var de=re.data,Ie=de.cmd;if(D.pthread_ptr&&($e.currentProxiedOperationCallerThread=D.pthread_ptr),de.targetThread&&de.targetThread!=zd()){var je=$e.pthreads[de.targetThread];je?je.postMessage(de,de.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+de.targetThread+", but that thread no longer exists!"),$e.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?vp(de.queue):Ie==="spawnThread"?kd(de):Ie==="cleanupThread"?yp(de.thread):Ie==="killThread"?Ng(de.thread):Ie==="cancelThread"?Cg(de.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+de.threadId+": "+de.text):Ie==="printErr"?J("Thread "+de.threadId+": "+de.text):Ie==="alert"?alert("Thread "+de.threadId+": "+de.text):de.target==="setimmediate"?D.postMessage(de):Ie==="onAbort"?c.onAbort&&c.onAbort(de.arg):Ie&&J("worker sent an unknown command "+Ie),$e.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var de="worker sent an error!";throw J(de+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");$e.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return $e.unusedWorkers.length==0&&($e.allocateUnusedWorker(),$e.loadWasmModuleToWorker($e.unusedWorkers[0])),$e.unusedWorkers.pop()}};c.PThread=$e;function xp(D){for(;D.length>0;)D.shift()(c)}function _g(D){var j=rb(),re=D();return Wd(j),re}function $1(D){return D}function F1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var de=re;return re===de?re:de+" ["+re+"]"})}function Ag(){var D=zd(),j=l()[D+44>>2],re=l()[D+48>>2],de=j-re;z1(j,de),Wd(j)}c.establishStackSpace=Ag;function Td(D){if(C)return Gr(2,0,D);try{Sd(D)}catch(j){Eg(j)}}var Go=[];function $g(D){var j=Go[D];return j||(D>=Go.length&&(Go.length=D+1),Go[D]=j=jn.get(D)),j}function Fg(D,j){var re=$g(D)(j);ka()?$e.setExitStatus(re):L1(re)}c.invokeEntryPoint=Fg;function D1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Dg(D){$e.tlsInitFunctions.push(D)}function Rg(D,j){s().set(D,j)}function Mg(D){M1(D,!I,1,!w),$e.threadInitTLS()}function Pg(D){C?postMessage({cmd:"cleanupThread",thread:D}):yp(D)}function Nd(D,j,re,de){return C?Gr(3,1,D,j,re,de):Cd(D,j,re,de)}function Cd(D,j,re,de){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return Nd(D,j,re,de);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:de,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):kd(Ce)}function Og(){return 2097152}var Lg=!0;function zg(){return Lg}function vp(D){Atomics.store(l(),D>>2,1),zd()&&O1(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=vp;function Wg(D,j,re,de){if(D==j)setTimeout(()=>vp(de));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:de});else{var Ie=$e.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:de})}return 1}function Bg(D,j,re){return-1}function Vg(){Uo("")}function zs(D){zs.shown||(zs.shown={}),zs.shown[D]||(zs.shown[D]=1,T&&(D="warning: "+D),J(D))}function Ug(){T||I||zs("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Gg(){return Date.now()}function Ed(){return 2147483648}function Hg(){return Ed()}var Ho;T?Ho=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Ho=()=>performance.now()-c.__performance_now_clock_drift:Ho=()=>performance.now();function jg(D,j,re){i().copyWithin(D,j,j+re)}function qg(){return T?NF().cpus().length:navigator.hardwareConcurrency}function Gr(D,j){var re=arguments.length-2,de=arguments;return _g(()=>{for(var Ie=re,je=Bd(Ie*8),Ce=je>>3,De=0;De>3,Ie=0;Ie>>16),it(ue.buffer),1}catch(j){}}function Yg(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Ed();if(D>re)return!1;let de=(Ot,la)=>Ot+(la-Ot%la)%la;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,de(Math.max(D,je),65536)),De=Xg(Ce);if(De)return!0}return!1}function Zg(){throw"unwind"}function _d(D){return C?Gr(4,1,D):52}function Ad(D,j,re,de,Ie){return C?Gr(5,1,D,j,re,de,Ie):70}var Jg=[null,[],[]];function Qg(D,j){var re=Jg[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function $d(D,j,re,de){if(C)return Gr(6,1,D,j,re,de);for(var Ie=0,je=0;je>2],De=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function Fd(D){var j=c["_"+D];return j}function ey(D,j,re,de,Ie){var je={string:ua=>{var Xo=0;if(ua!=null&&ua!==0){var V1=(ua.length<<2)+1;Xo=Bd(V1),at(ua,Xo,V1)}return Xo},array:ua=>{var Xo=Bd(ua.length);return Rg(ua,Xo),Xo}};function Ce(ua){return j==="string"?st(ua):j==="boolean"?Boolean(ua):ua}var De=Fd(D),Ot=[],la=0;if(de)for(var wr=0;wrCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!de?Fd(D):function(){return ey(D,j,re,arguments,de)}}$e.init();var ny=[null,bp,Td,Nd,_d,Ad,$d],Dd={__emscripten_init_main_thread_js:Mg,__emscripten_thread_cleanup:Pg,__pthread_create_js:Cd,_emscripten_default_pthread_stack_size:Og,_emscripten_get_now_is_monotonic:zg,_emscripten_notify_task_queue:Wg,_emscripten_set_offscreencanvas_size:Bg,abort:Vg,emscripten_check_blocking_allowed:Ug,emscripten_date_now:Gg,emscripten_get_heap_max:Hg,emscripten_get_now:Ho,emscripten_memcpy_big:jg,emscripten_num_logical_cores:qg,emscripten_receive_on_main_thread_js:Kg,emscripten_resize_heap:Yg,emscripten_unwind_to_js_event_loop:Zg,exit:Sd,fd_close:_d,fd_seek:Ad,fd_write:$d,memory:ue||c.wasmMemory},R1=Ig(),ay=c.___wasm_call_ctors=function(){return(ay=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},ry=c._init=function(){return(ry=c._init=c.asm.init).apply(null,arguments)},sy=c._init_with_threads_count=function(){return(sy=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},iy=c._get_threads_count=function(){return(iy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},oy=c._register_tensor=function(){return(oy=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},ly=c._dispose_data=function(){return(ly=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},uy=c._dispose=function(){return(uy=c._dispose=c.asm.dispose).apply(null,arguments)},py=c._Abs=function(){return(py=c._Abs=c.asm.Abs).apply(null,arguments)},cy=c._Add=function(){return(cy=c._Add=c.asm.Add).apply(null,arguments)},dy=c._AddN=function(){return(dy=c._AddN=c.asm.AddN).apply(null,arguments)},hy=c._All=function(){return(hy=c._All=c.asm.All).apply(null,arguments)},my=c._Any=function(){return(my=c._Any=c.asm.Any).apply(null,arguments)},fy=c._ArgMax=function(){return(fy=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},gy=c._AvgPool=function(){return(gy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},yy=c._BatchMatMul=function(){return(yy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},by=c._Ceil=function(){return(by=c._Ceil=c.asm.Ceil).apply(null,arguments)},xy=c._ClipByValue=function(){return(xy=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},vy=c._Conv2D=function(){return(vy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},wy=c._Conv2DBackpropInput=function(){return(wy=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},ky=c._Cos=function(){return(ky=c._Cos=c.asm.Cos).apply(null,arguments)},Iy=c._Cosh=function(){return(Iy=c._Cosh=c.asm.Cosh).apply(null,arguments)},Sy=c._CropAndResize=function(){return(Sy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Ty=c._Cumprod=function(){return(Ty=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ny=c._Cumsum=function(){return(Ny=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Cy=c._DepthToSpace=function(){return(Cy=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Ey=c._DepthwiseConv2dNative=function(){return(Ey=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},_y=c._Elu=function(){return(_y=c._Elu=c.asm.Elu).apply(null,arguments)},Ay=c._Equal=function(){return(Ay=c._Equal=c.asm.Equal).apply(null,arguments)},$y=c._Exp=function(){return($y=c._Exp=c.asm.Exp).apply(null,arguments)},Fy=c._FlipLeftRight=function(){return(Fy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Dy=c._Floor=function(){return(Dy=c._Floor=c.asm.Floor).apply(null,arguments)},Ry=c._FloorDiv=function(){return(Ry=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},My=c._FusedBatchNorm=function(){return(My=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Py=c._FusedConv2D=function(){return(Py=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Oy=c._FusedDepthwiseConv2D=function(){return(Oy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Ly=c._Gather=function(){return(Ly=c._Gather=c.asm.Gather).apply(null,arguments)},zy=c._GatherNd=function(){return(zy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Wy=c._Greater=function(){return(Wy=c._Greater=c.asm.Greater).apply(null,arguments)},By=c._GreaterEqual=function(){return(By=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Vy=c._IsNan=function(){return(Vy=c._IsNan=c.asm.IsNan).apply(null,arguments)},Uy=c._LeakyRelu=function(){return(Uy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Gy=c._Less=function(){return(Gy=c._Less=c.asm.Less).apply(null,arguments)},Hy=c._LessEqual=function(){return(Hy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},jy=c._Log=function(){return(jy=c._Log=c.asm.Log).apply(null,arguments)},qy=c._LogicalAnd=function(){return(qy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},Ky=c._LogicalNot=function(){return(Ky=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},Xy=c._LogicalOr=function(){return(Xy=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},Yy=c._LogicalXor=function(){return(Yy=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},Zy=c._Max=function(){return(Zy=c._Max=c.asm.Max).apply(null,arguments)},Jy=c._MaxPool=function(){return(Jy=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Rd=c._Maximum=function(){return(Rd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Md=c._Mean=function(){return(Md=c._Mean=c.asm.Mean).apply(null,arguments)},kp=c._Min=function(){return(kp=c._Min=c.asm.Min).apply(null,arguments)},Qy=c._Minimum=function(){return(Qy=c._Minimum=c.asm.Minimum).apply(null,arguments)},eb=c._MirrorPad=function(){return(eb=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},jo=c._Multiply=function(){return(jo=c._Multiply=c.asm.Multiply).apply(null,arguments)},Pd=c._Neg=function(){return(Pd=c._Neg=c.asm.Neg).apply(null,arguments)},qo=c._NonMaxSuppressionV3=function(){return(qo=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},Ko=c._NonMaxSuppressionV4=function(){return(Ko=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},tb=c._NonMaxSuppressionV5=function(){return(tb=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},X=c._NotEqual=function(){return(X=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},se=c._OneHot=function(){return(se=c._OneHot=c.asm.OneHot).apply(null,arguments)},we=c._PadV2=function(){return(we=c._PadV2=c.asm.PadV2).apply(null,arguments)},He=c._Pow=function(){return(He=c._Pow=c.asm.Pow).apply(null,arguments)},wt=c._Prelu=function(){return(wt=c._Prelu=c.asm.Prelu).apply(null,arguments)},kt=c._Prod=function(){return(kt=c._Prod=c.asm.Prod).apply(null,arguments)},Ge=c._RealDiv=function(){return(Ge=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},We=c._Reciprocal=function(){return(We=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},oa=c._Relu6=function(){return(oa=c._Relu6=c.asm.Relu6).apply(null,arguments)},vr=c._ResizeBilinear=function(){return(vr=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Od=c._ResizeNearestNeighbor=function(){return(Od=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},Ip=c._Reverse=function(){return(Ip=c._Reverse=c.asm.Reverse).apply(null,arguments)},nb=c._RotateWithOffset=function(){return(nb=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Hr=c._Rsqrt=function(){return(Hr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Ld=c._ScatterNd=function(){return(Ld=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},C$=c._SelectV2=function(){return(C$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},E$=c._Sigmoid=function(){return(E$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},_$=c._Sin=function(){return(_$=c._Sin=c.asm.Sin).apply(null,arguments)},A$=c._Softmax=function(){return(A$=c._Softmax=c.asm.Softmax).apply(null,arguments)},$$=c._SparseFillEmptyRows=function(){return($$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},F$=c._SparseReshape=function(){return(F$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},D$=c._SparseSegmentReduction=function(){return(D$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},R$=c._Sqrt=function(){return(R$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},M$=c._Square=function(){return(M$=c._Square=c.asm.Square).apply(null,arguments)},P$=c._SquaredDifference=function(){return(P$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},O$=c._Step=function(){return(O$=c._Step=c.asm.Step).apply(null,arguments)},L$=c._StridedSlice=function(){return(L$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},z$=c._Sub=function(){return(z$=c._Sub=c.asm.Sub).apply(null,arguments)},W$=c._Sum=function(){return(W$=c._Sum=c.asm.Sum).apply(null,arguments)},B$=c._Tan=function(){return(B$=c._Tan=c.asm.Tan).apply(null,arguments)},V$=c._Tanh=function(){return(V$=c._Tanh=c.asm.Tanh).apply(null,arguments)},U$=c._Tile=function(){return(U$=c._Tile=c.asm.Tile).apply(null,arguments)},G$=c._TopK=function(){return(G$=c._TopK=c.asm.TopK).apply(null,arguments)},H$=c._Transform=function(){return(H$=c._Transform=c.asm.Transform).apply(null,arguments)},j$=c._Transpose=function(){return(j$=c._Transpose=c.asm.Transpose).apply(null,arguments)},q$=c.__FusedMatMul=function(){return(q$=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},K$=c._malloc=function(){return(K$=c._malloc=c.asm.malloc).apply(null,arguments)},X$=c._free=function(){return(X$=c._free=c.asm.free).apply(null,arguments)},Y$=c.__emscripten_tls_init=function(){return(Y$=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},zd=c._pthread_self=function(){return(zd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},Z$=c.___errno_location=function(){return(Z$=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},M1=c.__emscripten_thread_init=function(){return(M1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},J$=c.__emscripten_thread_crashed=function(){return(J$=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},Q$=c._emscripten_main_thread_process_queued_calls=function(){return(Q$=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},eF=c._emscripten_main_browser_thread_id=function(){return(eF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},P1=c._emscripten_run_in_main_runtime_thread_js=function(){return(P1=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},tF=c._emscripten_dispatch_to_thread_=function(){return(tF=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},O1=c.__emscripten_proxy_execute_task_queue=function(){return(O1=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},ab=c.__emscripten_thread_free_data=function(){return(ab=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},L1=c.__emscripten_thread_exit=function(){return(L1=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},z1=c._emscripten_stack_set_limits=function(){return(z1=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},rb=c.stackSave=function(){return(rb=c.stackSave=c.asm.stackSave).apply(null,arguments)},Wd=c.stackRestore=function(){return(Wd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},Bd=c.stackAlloc=function(){return(Bd=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},nF=c.dynCall_iijjiiii=function(){return(nF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},aF=c.dynCall_jiji=function(){return(aF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=ka,c.wasmMemory=ue,c.cwrap=ty,c.ExitStatus=Ls,c.PThread=$e;var Vd;xr=function D(){Vd||W1(),Vd||(xr=D)};function W1(D){if(D=D||y,Ur>0)return;if(C){h(c),Zt(),postMessage({cmd:"loaded"});return}if(Bo(),Ur>0)return;function j(){Vd||(Vd=!0,c.calledRun=!0,!ke&&(Zt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),xd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();W1();var Ud;f&&(Ud={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var Gd;if(typeof WasmBackendModule!="undefined")Gd=WasmBackendModule;else if(typeof r!="undefined")Gd=r;else throw new Error("Could not find wasm module in post.js");if(Ud){var rF=Gd._dispose;Gd._dispose=function(){rF(),Ud.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),Ud.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),EF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),_F=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Vo||R("exiting due to exception: "+X)}if(f){m?g=hh().dirname(g)+"/":g=__dirname+"/";var C,_;typeof II=="function"&&(C=Ix(),_=hh()),b=(X,se)=>(X=_.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=_.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Vo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(Hn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&Qa("no native wasm support detected");var B,U=!1,G;function q(X,se){X||Qa(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|oa&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ge=0;Ge=55296&&We<=57343){var Pt=X.charCodeAt(++Ge);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ue(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,st,Qe=[],at=[],ze=[],dt=!1;function Hn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());xr(Qe)}function sa(){dt=!0,xr(at)}function on(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());xr(ze)}function Fn(X){Qe.unshift(X)}function ia(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var it=0,Rn=null,jn=null;function br(X){it++,s.monitorRunDependencies&&s.monitorRunDependencies(it)}function Wo(X){if(it--,s.monitorRunDependencies&&s.monitorRunDependencies(it),it==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),jn)){var se=jn;jn=null,se()}}function Qa(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var fp="data:application/octet-stream;base64,";function ka(X){return X.startsWith(fp)}function Bo(X){return X.startsWith("file://")}var Zt;Zt="tfjs-backend-wasm.wasm",ka(Zt)||(Zt=y(Zt));function xd(X){try{if(X==Zt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){Qa(se)}}function xg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Bo(Zt))return fetch(Zt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Zt+"'";return X.arrayBuffer()}).catch(function(){return xd(Zt)});if(x)return new Promise(function(X,se){x(Zt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return xd(Zt)})}function vg(){var X={env:bp,wasi_snapshot_preview1:bp};function se(Ge,We){var Pt=Ge.exports;s.asm=Pt,B=s.asm.memory,Ue(B.buffer),st=s.asm.__indirect_function_table,ia(s.asm.__wasm_call_ctors),Wo("wasm-instantiate")}br("wasm-instantiate");function we(Ge){se(Ge.instance)}function He(Ge){return xg().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ge,function(We){R("failed to asynchronously prepare wasm: "+We),Qa(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!ka(Zt)&&!Bo(Zt)&&!f&&typeof fetch=="function"?fetch(Zt,{credentials:"same-origin"}).then(function(Ge){var We=WebAssembly.instantiateStreaming(Ge,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ge){R("Module.instantiateWasm callback failed with error: "+Ge),o(Ge)}return wt().catch(o),{}}var N1,Ur;function Vo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function xr(X){for(;X.length>0;)X.shift()(s)}function C1(X){return X}function E1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Uo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function wg(X,se){ie.set(X,se)}function vd(){Qa("")}function gp(){return 2147483648}function bn(){return gp()}function wd(X,se,we){oe.copyWithin(X,se,se+we)}function kg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ue(B.buffer),1}catch(se){}}function Ig(X){var se=oe.length;X=X>>>0;var we=gp();if(X>we)return!1;let He=(Pt,oa)=>Pt+(oa-Pt%oa)%oa;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ge=Math.min(we,He(Math.max(X,kt),65536)),We=kg(Ge);if(We)return!0}return!1}var Sg={varargs:void 0,get:function(){Sg.varargs+=4;var X=be[Sg.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function _1(X){return 52}function Tg(X,se,we,He,wt){return 70}var Ls=[null,[],[]];function Ng(X,se){var we=Ls[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Cg(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function yp(X){var se=s["_"+X];return se}function kd(X,se,we,He,wt){var kt={string:Mn=>{var Hr=0;if(Mn!=null&&Mn!==0){var Ld=(Mn.length<<2)+1;Hr=kp(Ld),ae(Mn,Hr,Ld)}return Hr},array:Mn=>{var Hr=kp(Mn.length);return wg(Mn,Hr),Hr}};function Ge(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=yp(X),Pt=[],oa=0;if(He)for(var vr=0;vrGe==="number"||Ge==="boolean"),kt=se!=="string";return kt&&wt&&!He?yp(X):function(){return kd(X,se,we,arguments,He)}}var bp={abort:vd,emscripten_get_heap_max:bn,emscripten_memcpy_big:wd,emscripten_resize_heap:Ig,fd_close:_1,fd_seek:Tg,fd_write:Cg},A1=vg(),Sd=s.___wasm_call_ctors=function(){return(Sd=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Eg=s._init=function(){return(Eg=s._init=s.asm.init).apply(null,arguments)},$e=s._init_with_threads_count=function(){return($e=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},xp=s._get_threads_count=function(){return(xp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},_g=s._register_tensor=function(){return(_g=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},$1=s._dispose_data=function(){return($1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},F1=s._dispose=function(){return(F1=s._dispose=s.asm.dispose).apply(null,arguments)},Ag=s._Abs=function(){return(Ag=s._Abs=s.asm.Abs).apply(null,arguments)},Td=s._Add=function(){return(Td=s._Add=s.asm.Add).apply(null,arguments)},Go=s._AddN=function(){return(Go=s._AddN=s.asm.AddN).apply(null,arguments)},$g=s._All=function(){return($g=s._All=s.asm.All).apply(null,arguments)},Fg=s._Any=function(){return(Fg=s._Any=s.asm.Any).apply(null,arguments)},D1=s._ArgMax=function(){return(D1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Dg=s._AvgPool=function(){return(Dg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Rg=s._BatchMatMul=function(){return(Rg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Mg=s._Ceil=function(){return(Mg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Pg=s._ClipByValue=function(){return(Pg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Nd=s._Conv2D=function(){return(Nd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Cd=s._Conv2DBackpropInput=function(){return(Cd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Og=s._Cos=function(){return(Og=s._Cos=s.asm.Cos).apply(null,arguments)},Lg=s._Cosh=function(){return(Lg=s._Cosh=s.asm.Cosh).apply(null,arguments)},zg=s._CropAndResize=function(){return(zg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},vp=s._Cumprod=function(){return(vp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},Wg=s._Cumsum=function(){return(Wg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Bg=s._DepthToSpace=function(){return(Bg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Vg=s._DepthwiseConv2dNative=function(){return(Vg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},zs=s._Elu=function(){return(zs=s._Elu=s.asm.Elu).apply(null,arguments)},Ug=s._Equal=function(){return(Ug=s._Equal=s.asm.Equal).apply(null,arguments)},Gg=s._Exp=function(){return(Gg=s._Exp=s.asm.Exp).apply(null,arguments)},Ed=s._FlipLeftRight=function(){return(Ed=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Hg=s._Floor=function(){return(Hg=s._Floor=s.asm.Floor).apply(null,arguments)},Ho=s._FloorDiv=function(){return(Ho=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},jg=s._FusedBatchNorm=function(){return(jg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},qg=s._FusedConv2D=function(){return(qg=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Gr=s._FusedDepthwiseConv2D=function(){return(Gr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},wp=s._Gather=function(){return(wp=s._Gather=s.asm.Gather).apply(null,arguments)},Kg=s._GatherNd=function(){return(Kg=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},Xg=s._Greater=function(){return(Xg=s._Greater=s.asm.Greater).apply(null,arguments)},Yg=s._GreaterEqual=function(){return(Yg=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},Zg=s._IsNan=function(){return(Zg=s._IsNan=s.asm.IsNan).apply(null,arguments)},_d=s._LeakyRelu=function(){return(_d=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Ad=s._Less=function(){return(Ad=s._Less=s.asm.Less).apply(null,arguments)},Jg=s._LessEqual=function(){return(Jg=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},Qg=s._Log=function(){return(Qg=s._Log=s.asm.Log).apply(null,arguments)},$d=s._LogicalAnd=function(){return($d=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Fd=s._LogicalNot=function(){return(Fd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},ey=s._LogicalOr=function(){return(ey=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},ty=s._LogicalXor=function(){return(ty=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ny=s._Max=function(){return(ny=s._Max=s.asm.Max).apply(null,arguments)},Dd=s._MaxPool=function(){return(Dd=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},R1=s._Maximum=function(){return(R1=s._Maximum=s.asm.Maximum).apply(null,arguments)},ay=s._Mean=function(){return(ay=s._Mean=s.asm.Mean).apply(null,arguments)},ry=s._Min=function(){return(ry=s._Min=s.asm.Min).apply(null,arguments)},sy=s._Minimum=function(){return(sy=s._Minimum=s.asm.Minimum).apply(null,arguments)},iy=s._MirrorPad=function(){return(iy=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},oy=s._Multiply=function(){return(oy=s._Multiply=s.asm.Multiply).apply(null,arguments)},ly=s._Neg=function(){return(ly=s._Neg=s.asm.Neg).apply(null,arguments)},uy=s._NonMaxSuppressionV3=function(){return(uy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},py=s._NonMaxSuppressionV4=function(){return(py=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},cy=s._NonMaxSuppressionV5=function(){return(cy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},dy=s._NotEqual=function(){return(dy=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},hy=s._OneHot=function(){return(hy=s._OneHot=s.asm.OneHot).apply(null,arguments)},my=s._PadV2=function(){return(my=s._PadV2=s.asm.PadV2).apply(null,arguments)},fy=s._Pow=function(){return(fy=s._Pow=s.asm.Pow).apply(null,arguments)},gy=s._Prelu=function(){return(gy=s._Prelu=s.asm.Prelu).apply(null,arguments)},yy=s._Prod=function(){return(yy=s._Prod=s.asm.Prod).apply(null,arguments)},by=s._RealDiv=function(){return(by=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},xy=s._Reciprocal=function(){return(xy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},vy=s._Relu=function(){return(vy=s._Relu=s.asm.Relu).apply(null,arguments)},wy=s._Relu6=function(){return(wy=s._Relu6=s.asm.Relu6).apply(null,arguments)},ky=s._ResizeBilinear=function(){return(ky=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},Iy=s._ResizeNearestNeighbor=function(){return(Iy=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Sy=s._Reverse=function(){return(Sy=s._Reverse=s.asm.Reverse).apply(null,arguments)},Ty=s._RotateWithOffset=function(){return(Ty=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Ny=s._Round=function(){return(Ny=s._Round=s.asm.Round).apply(null,arguments)},Cy=s._Rsqrt=function(){return(Cy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Ey=s._ScatterNd=function(){return(Ey=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},_y=s._SelectV2=function(){return(_y=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Ay=s._Sigmoid=function(){return(Ay=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},$y=s._Sin=function(){return($y=s._Sin=s.asm.Sin).apply(null,arguments)},Fy=s._Softmax=function(){return(Fy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Dy=s._SparseFillEmptyRows=function(){return(Dy=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Ry=s._SparseReshape=function(){return(Ry=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},My=s._SparseSegmentReduction=function(){return(My=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Py=s._Sqrt=function(){return(Py=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Oy=s._Square=function(){return(Oy=s._Square=s.asm.Square).apply(null,arguments)},Ly=s._SquaredDifference=function(){return(Ly=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},zy=s._Step=function(){return(zy=s._Step=s.asm.Step).apply(null,arguments)},Wy=s._StridedSlice=function(){return(Wy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},By=s._Sub=function(){return(By=s._Sub=s.asm.Sub).apply(null,arguments)},Vy=s._Sum=function(){return(Vy=s._Sum=s.asm.Sum).apply(null,arguments)},Uy=s._Tan=function(){return(Uy=s._Tan=s.asm.Tan).apply(null,arguments)},Gy=s._Tanh=function(){return(Gy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Hy=s._Tile=function(){return(Hy=s._Tile=s.asm.Tile).apply(null,arguments)},jy=s._TopK=function(){return(jy=s._TopK=s.asm.TopK).apply(null,arguments)},qy=s._Transform=function(){return(qy=s._Transform=s.asm.Transform).apply(null,arguments)},Ky=s._Transpose=function(){return(Ky=s._Transpose=s.asm.Transpose).apply(null,arguments)},Xy=s.__FusedMatMul=function(){return(Xy=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},Yy=s._malloc=function(){return(Yy=s._malloc=s.asm.malloc).apply(null,arguments)},Zy=s._free=function(){return(Zy=s._free=s.asm.free).apply(null,arguments)},Jy=s.___errno_location=function(){return(Jy=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Rd=s.stackSave=function(){return(Rd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Md=s.stackRestore=function(){return(Md=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},kp=s.stackAlloc=function(){return(kp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},Qy=s.dynCall_iijjiiii=function(){return(Qy=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},eb=s.dynCall_jiji=function(){return(eb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Id;var jo;jn=function X(){jo||Pd(),jo||(jn=X)};function Pd(X){if(X=X||p,it>0||(Mt(),it>0))return;function se(){jo||(jo=!0,s.calledRun=!0,!U&&(sa(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),on()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Pd();var qo;l&&(qo={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var Ko;if(typeof r!="undefined")Ko=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")Ko=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(qo){var tb=Ko._dispose;Ko._dispose=function(){tb(),qo.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),qo.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),qh=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},sc=class{refCount(e){return qn("refCount")}incRef(e){return qn("incRef")}timerAvailable(){return!0}time(e){return qn("time")}read(e){return qn("read")}readSync(e){return qn("readSync")}readToGPU(e,t){return qn("readToGPU")}numDataIds(){return qn("numDataIds")}disposeData(e,t){return qn("disposeData")}write(e,t,n){return qn("write")}move(e,t,n,a,r){return qn("move")}createTensorFromTexture(e,t,n){return qn("createTensorFromTexture")}memory(){return qn("memory")}floatPrecision(){return qn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return qn("dispose")}};function qn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function TI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,mh(e,t,n)}function AF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,mh(e,n,a),mh(t,n,a)}function Up(e,t,n){return Math.max(e,Math.min(t,n))}function $F(e){return e%2===0?e:e+1}function mh(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function FF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function yi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ei(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function WF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function Fa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>sl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function NI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Fa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function CI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function EI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function _I(e,t){for(let n=0;nt+=n.length),t}function Zr(e){return typeof e=="string"||e instanceof String}function FI(e){return typeof e=="boolean"}function DI(e){return typeof e=="number"}function Kh(e){return Array.isArray(e)?Kh(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":DI(e)?"float32":Zr(e)?"string":FI(e)?"bool":"float32"}function rs(e){return!!(e&&e.constructor&&e.call&&e.apply)}function fh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function RI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return RI(0,e,t,n)}function Sx(e,t){let n=Xh(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return tl(e,new Float32Array(n));if(t==="int32")return tl(e,new Int32Array(n));if(t==="bool")return tl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function na(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function UF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=qF(n,a)})}};function HF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(jF(t,a[0],a[1]),a.join("="))),t}function jF(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function qF(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Nx}var Nx=null;function KF(e){Nx=e}var ob;function PI(){if(ob==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");ob=e}return ob}function XF(){let e=PI();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Cx(e,t){let n=XF();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Sl="Abs",Tl="Acos",Nl="Acosh",fs="Add",bi="AddN",Cl="All",El="Any",xi="ArgMax",ic="ArgMin",_l="Asin",Al="Asinh",$l="Atan",Fl="Atanh",Dl="Atan2",vi="AvgPool",Yh="AvgPoolGrad",oc="AvgPool3D",Zh="AvgPool3DGrad",wi="BatchMatMul",Rl="BatchToSpaceND",Jh="Bincount",OI="BroadcastTo",Qh="BroadcastArgs",ki="Cast",Ii="Ceil",gs="ClipByValue",em="Complex",lc="ComplexAbs",Ml="Concat",Si="Conv2D",tm="Conv2DBackpropFilter",Ti="Conv2DBackpropInput",uc="Conv3D",nm="Conv3DBackpropFilterV2",am="Conv3DBackpropInputV2",Ni="Cos",Ci="Cosh",Pl="Cumprod",Ei="Cumsum",Ol="CropAndResize",rm="DenseBincount",Ll="DepthToSpace",_i="DepthwiseConv2dNative",sm="DepthwiseConv2dNativeBackpropFilter",im="DepthwiseConv2dNativeBackpropInput",om="Diag",pc="Dilation2D",gh="Dilation2DBackpropInput",yh="Dilation2DBackpropFilter",Ai="RealDiv",lm="Einsum",$i="Elu",um="EluGrad",zl="Erf",Wl="Equal",Fi="Exp",Bl="ExpandDims",Vl="Expm1",pm="FFT",cc="Fill",Ul="FlipLeftRight",Di="Floor",Ri="FloorDiv",Mi="FusedBatchNorm",Gl="GatherV2",Hl="GatherNd",jl="Greater",Pi="GreaterEqual",Oi="Identity",cm="IFFT",dm="Imag",ql="IsFinite",Kl="IsInf",Li="IsNan",zi="LeakyRelu",Xl="Less",Yl="LessEqual",hm="LinSpace",Wi="Log",Zl="Log1p",Jl="LogicalAnd",Ql="LogicalNot",eu="LogicalOr",LI="LogicalXor",zI="LogSoftmax",YF="LowerBound",dc="LRN",mm="LRNGrad",Bi="Max",Vi="Maximum",Ui="MaxPool",fm="MaxPoolGrad",hc="MaxPool3D",gm="MaxPool3DGrad",ym="MaxPoolWithArgmax",Gi="Mean",Hi="Min",ji="Minimum",qi="MirrorPad",tu="Mod",bm="Multinomial",Ki="Multiply",nu="Neg",au="NotEqual",ru="NonMaxSuppressionV3",su="NonMaxSuppressionV4",iu="NonMaxSuppressionV5",ou="OnesLike",Xi="OneHot",lu="Pack",Yi="PadV2",ZF="Pool",Zi="Pow",Ji="Prelu",Qi="Prod",xm="RaggedGather",vm="RaggedRange",wm="RaggedTensorToTensor",mc="Range",km="Real",eo="Reciprocal",to="Relu",uu="Reshape",no="ResizeNearestNeighbor",Im="ResizeNearestNeighborGrad",ao="ResizeBilinear",Sm="ResizeBilinearGrad",ro="Relu6",so="Reverse",io="Round",oo="Rsqrt",pu="ScatterNd",Tm="SearchSorted",cu="Select",du="Selu",hu="Slice",lo="Sin",mu="Sinh",fu="Sign",uo="Sigmoid",gu="Softplus",po="Sqrt",co="Sum",yu="SpaceToBatchND",bu="SplitV",ho="Softmax",fc="SparseFillEmptyRows",xu="SparseReshape",gc="SparseSegmentMean",yc="SparseSegmentSum",Nm="SparseToDense",mo="SquaredDifference",bc="Square",vu="StridedSlice",xc="StringNGrams",vc="StringSplit",wc="StringToHashBucketFast",fo="Sub",go="Tan",yo="Tanh",ys="Tile",wu="TopK",ku="Transform",Cr="Transpose",Cm="Unique",Iu="Unpack",kc="UnsortedSegmentSum",JF="UpperBound",Su="ZerosLike",bs="Step",bh="FromPixels",Tu="RotateWithOffset",ti="_FusedMatMul",ni="FusedConv2D",ai="FusedDepthwiseConv2D";function Yr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function QF(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var il=Cx("kernelRegistry",()=>new Map),Gp=Cx("gradRegistry",()=>new Map);function xh(e,t){let n=Ex(e,t);return il.get(n)}function Sb(e){return Gp.get(e)}function vh(e){let t=il.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function Ic(e){let{kernelName:t,backendName:n}=e,a=Ex(t,n);il.has(a)&&Yr(`The kernel '${t}' for backend '${n}' is already registered`),il.set(a,e)}function WI(e){let{kernelName:t}=e;Gp.has(t)&&H().getBool("DEBUG")&&Yr(`Overriding the gradient for '${t}'`),Gp.set(t,e)}function eD(e,t){let n=Ex(e,t);if(!il.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);il.delete(n)}function tD(e){if(!Gp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Gp.delete(e)}function nD(e,t){vh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});Ic(a)})}function Ex(e,t){return`${t}_${e}`}var v={};Ae(v,{arraysEqual:()=>ms,assert:()=>A,assertNonNegativeIntegerDimensions:()=>na,assertNonNull:()=>yi,assertShapesMatch:()=>Sn,bytesFromStringArray:()=>$I,bytesPerElement:()=>Ib,checkConversionForErrors:()=>_I,clamp:()=>Up,computeStrides:()=>Il,createScalarValue:()=>lD,createShuffledIndices:()=>LF,decodeString:()=>wh,distSquared:()=>RF,encodeString:()=>Tc,fetch:()=>pD,fingerPrint64:()=>oD,flatten:()=>ei,getArrayFromDType:()=>EI,getTypedArrayFromDType:()=>CI,hasEncodingLoss:()=>BF,hexToLong:()=>Sc,indexToLoc:()=>GF,inferDtype:()=>Kh,inferFromImplicitShape:()=>WF,isBoolean:()=>FI,isFunction:()=>rs,isInt:()=>sl,isNumber:()=>DI,isPromise:()=>Tx,isScalarShape:()=>MF,isString:()=>Zr,isTypedArray:()=>hn,isValidDtype:()=>AI,locToIndex:()=>UF,makeOnesTypedArray:()=>Sx,makeZerosNestedTypedArray:()=>VF,makeZerosTypedArray:()=>Xh,nearestDivisor:()=>fh,nearestLargerEven:()=>$F,now:()=>Hp,parseAxisParam:()=>Fa,randUniform:()=>DF,repeatedTry:()=>zF,rightPad:()=>zp,shuffle:()=>TI,shuffleCombo:()=>AF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>OF,squeezeShape:()=>NI,sum:()=>FF,swap:()=>mh,tanh:()=>PF,toNestedArray:()=>tl,toTypedArray:()=>Em});var G1=hs(hF()),Gs=G1.default||G1;function Sc(e){return Gs.fromString(e,!0,16)}var BI=Sc("c3a5c85c97cb3127"),Vs=Sc("b492b66fbe98f273"),xn=Sc("9ae16a3b2f90404f");function Tb(e){return e.xor(e.shru(47))}function VI(e,t,n){let a=e.slice(t,t+n);return Gs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return VI(e,t,8)}function H1(e,t){return VI(e,t,4)}function Jt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ts(e,t,n=Sc("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function aD(e,t,n,a,r,s){r=r.add(e),s=Jt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Jt(r,44)),[r.add(a),s.add(i)]}function Hd(e,t,n,a){return aD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function rD(e,t=e.length){if(t>=8){let n=xn.add(t*2),a=ht(e,0).add(xn),r=ht(e,t-8),s=Jt(r,37).mul(n).add(a),i=Jt(a,25).add(r).mul(n);return ts(s,i,n)}if(t>=4){let n=xn.add(t*2),a=H1(e,0);return ts(a.shl(3).add(t),H1(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return Tb(xn.mul(s).xor(BI.mul(i))).mul(xn)}return xn}function sD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(Vs),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn);return ts(Jt(a.add(r),43).add(Jt(s,30)).add(i),a.add(Jt(r.add(xn),18)).add(s),n)}function iD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(xn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn),o=Jt(a.add(r),43).add(Jt(s,30)).add(i),l=ts(o,a.add(Jt(r.add(xn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return ts(Jt(u.add(p),43).add(Jt(d,30)).add(c),u.add(Jt(p.add(a),18)).add(d),n)}function oD(e,t=e.length){let n=Gs.fromNumber(81,!0);if(t<=32)return t<=16?rD(e,t):sD(e,t);if(t<=64)return iD(e,t);let a=n,r=n.mul(Vs).add(113),s=Tb(r.mul(xn).add(113)).mul(xn),i=[Gs.UZERO,Gs.UZERO],o=[Gs.UZERO,Gs.UZERO];a=a.mul(xn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Jt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(Vs),r=Jt(r.add(i[1]).add(ht(e,l+48)),42).mul(Vs),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Jt(s.add(o[0]),33).mul(Vs),i=Hd(e,l,i[1].mul(Vs),a.add(o[0])),o=Hd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Vs.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Jt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Jt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Jt(s.add(o[0]),33).mul(d),i=Hd(e,l,i[1].mul(d),a.add(o[0])),o=Hd(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],ts(ts(i[0],o[0],d).add(Tb(r).mul(BI)).add(s),ts(i[1],o[1],d).add(a),d)}function lD(e,t){return t==="string"?Tc(e):Em([e],t)}function uD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Em(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ei(e)),H().getBool("DEBUG")&&_I(e,t),uD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Hp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Hp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{dD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function dD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function mD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!ms(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var j1=20,Sp=3,lb=7;function gD(e,t,n,a){let r=Il(t),s=yD(e,t,n,r),i=t.length,o=rh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function mD(e,t,n,a){let r=mt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?_p(e):e;if(o>1)for(let u=0;uU1){let f=Ip*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Ip)*i,o*i));return n==="complex64"&&(g=_p(g),y=_p(y)),["["+g.map((b,x)=>Cp(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>Cp(b,r[o-Ip+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?_p(e):Array.from(e)).map((f,g)=>Cp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>U1){for(let f=0;f1)for(let u=0;uj1){let f=Sp*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Sp)*i,o*i));return n==="complex64"&&(g=Ap(g),y=Ap(y)),["["+g.map((b,x)=>_p(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>_p(b,r[o-Sp+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Ap(e):Array.from(e)).map((f,g)=>_p(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>j1){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||TI(t,this.size),this.strides=vl(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;avh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>vh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Ko.print(this,e)}clone(){return this.throwIfDisposed(),Ko.clone(this)}toString(e=!1){let t=this.dataSync();return hD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Ko.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Sx("Tensor",()=>Te)}Q();var ts=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!ps(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ts,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};$e(Va,{assertTypesMatch:()=>BI,getTensorsInContainer:()=>Nx,isTensorInList:()=>vD,makeTypesMatch:()=>_t});var wb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(wb||(wb={}));var kb;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(kb||(kb={}));var Ib;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ib||(Ib={}));var Sb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Sb||(Sb={}));var Tb;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Tb||(Tb={}));var xD={float32:Sb,int32:kb,bool:Ib,complex64:Tb};function ma(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return xD[e][t]}function _m(e){return ma(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=ma(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function BI(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function vD(e,t){return t.some(n=>n.id===e.id)}function Nx(e){let t=[];return VI(e,t,new Set),t}function VI(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!wD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),VI(s,t,n))}}function wD(e){return Array.isArray(e)||typeof e=="object"}function ib(e){return e.kernelName!=null}var G1=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Hp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new G1}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){xh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof rc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Hp.nextTensorId++}nextVariableId(){return Hp.nextVariableId++}clone(e){let t=O.runKernel(Di,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(bi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,bh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ib(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ib(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=bh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=ib(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=xb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Kr(e[0])&&(r=e.map(o=>Sc(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=_I(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new ts(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*bb(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof ts||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*bb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=xb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Kh(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Nx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=cD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?kD(r.shape):n,dD(i,s,l=>this.tidy(l),ID);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(es(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(es(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Gp(),n=await this.backend.time(e);return n.wallMs=Gp()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new G1;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Hp.nextTensorId=0;Hp.nextVariableId=0;function kD(e){let t=vx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function UI(){let e=DI();if(e._tfengine==null){let t=new FI(e);e._tfengine=new Hp(t)}return HF(e._tfengine.ENV),gD(()=>e._tfengine),e._tfengine}var O=UI();function ID(e,t){let n={a:e,b:t};return O.runKernel(cs,n)}var Tc={};$e(Tc,{isBrowser:()=>GI,isMobile:()=>ND,mockIsMobile:()=>TD});function SD(){return typeof navigator!="undefined"&&navigator!=null}var Nb;function TD(e){Nb=e}function ND(e){if(Nb!==void 0)return Nb;if(e||SD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function GI(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Jn=H();Jn.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Jn.registerFlag("IS_BROWSER",()=>GI());Jn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Jn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Jn.registerFlag("PROD",()=>!1);Jn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Jn.getBool("DEBUG"));Jn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Jn.registerFlag("IS_TEST",()=>!1);Jn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Jn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Jn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Jn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Jn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function ir(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&HI(e,a,[]),a}function HI(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),H1(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=ir(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Cm(e,r):Zs(e,[],!0);return O.makeTensor(i,s,r)}function jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Cx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Cx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return kx(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function CD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(Qh,r)}var Cr=L({complex_:CD});function fs(e,t,n,a){if(a==null&&(a=qh(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){wx(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Cm(e,a):Zs(e,[],!0),O.makeTensor(e,t,a)}function kn(e,t,n){let a=ir(e,n);return fs(e,t,a,n)}var Cb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},wh=4;async function _D(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+wh*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var _x=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function j1(e){return _x?Buffer.byteLength(e):new Blob([e]).size}function $D(e){if(_x)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function q1(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function qI(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function KI(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function $x(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),KI(e,n,a)}function Nc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:j1(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:j1(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function XI(e){let t=[];for(let n of e)t.push(...n.weights);return t}function FD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function DD(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function RD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function MD(){let e=FD(),t=DD(),n=RD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var $t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return $t.instance==null&&($t.instance=new $t),$t.instance}static registerSaveRouter(e){$t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){$t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return $t.getHandlers(e,"save")}static getLoadHandlers(e,t){return $t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?$t.getInstance().loadRouters:$t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},PD=e=>$t.registerSaveRouter(e),OD=e=>$t.registerLoadRouter(e),LD=e=>$t.getSaveHandlers(e),zD=(e,t)=>$t.getLoadHandlers(e,t),_b="tensorflowjs",Eb=1,Gs="models_store",Xr="model_info_store";function YI(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function $b(e){let t=e.result;t.createObjectStore(Gs,{keyPath:"modelPath"}),t.createObjectStore(Xr,{keyPath:"modelPath"})}var ti=class{constructor(e){if(this.indexedDB=YI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(_b,Eb);r.onupgradeneeded=()=>$b(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Gs,"readonly"),o=i.objectStore(Gs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Nc(t),o=s.transaction(Xr,"readwrite"),l=o.objectStore(Xr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Gs,"readwrite");let d=p.objectStore(Gs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(Xr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ti.URL_SCHEME="indexeddb://";var ZI=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ti.URL_SCHEME)?WD(e.slice(ti.URL_SCHEME.length)):null;$t.registerSaveRouter(ZI);$t.registerLoadRouter(ZI);function WD(e){return new ti(e)}function BD(e){return e.startsWith(ti.URL_SCHEME)?e.slice(ti.URL_SCHEME.length):e}var VD=class{constructor(){this.indexedDB=YI()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(_b,Eb);n.onupgradeneeded=()=>$b(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Xr,"readonly"),s=r.objectStore(Xr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=BD(e),new Promise((t,n)=>{let a=this.indexedDB.open(_b,Eb);a.onupgradeneeded=()=>$b(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Xr,"readwrite"),i=s.objectStore(Xr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Gs,"readwrite");let d=l.objectStore(Gs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Ir="/",Xo="tensorflowjs_models",JI="info",UD="model_topology",GD="weight_specs",HD="weight_data",jD="model_metadata";function QI(e){return{info:[Xo,e,JI].join(Ir),topology:[Xo,e,UD].join(Ir),weightSpecs:[Xo,e,GD].join(Ir),weightData:[Xo,e,HD].join(Ir),modelMetadata:[Xo,e,jD].join(Ir)}}function eS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function qD(e){let t=e.split(Ir);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Ir)}function KD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var ni=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=QI(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Nc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,$D(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw eS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=AD(s),t}};ni.URL_SCHEME="localstorage://";var tS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?XD(e.slice(ni.URL_SCHEME.length)):null;$t.registerSaveRouter(tS);$t.registerLoadRouter(tS);function XD(e){return new ni(e)}var YD=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Xo+Ir,n=Ir+JI;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(Jo)&&(e=e.slice(0,e.indexOf(Jo))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function rh(e){if(e.indexOf(Jo)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(Jo)[0],path:e.split(Jo)[1]}}async function nS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=$t.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=$t.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=rh(e).scheme,l=rh(e).path,u=o===rh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function ZD(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+Jo+r;t[s]=a[r]}}return t}async function JD(e){let t=rh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function QD(e,t){return nS(e,t,!1)}async function eR(e,t){return nS(e,t,!0)}var tR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new tR);try{Pn.registerManager(ni.URL_SCHEME,new YD)}catch(e){}try{Pn.registerManager(ti.URL_SCHEME,new VD)}catch(e){}}var nR={importFetch:()=>cF()},ob,aR=class{constructor(){this.util=dF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(ob==null&&(ob=nR.importFetch()),ob(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new aR);function Pe(e,t="float32",n){return t=t||"float32",wx(e),new Ht(e,t,n)}function rR(e,t){let n=_(e,"x","cast");if(!CI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(bi,a,r)}var le=L({cast_:rR});function sR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Di,t)}var rr=L({clone_:sR});function Ax(e,t=!1){console.log(e.toString(t))}UI();var iR={buffer:Pe,cast:le,clone:rr,print:Ax};yD(iR);var Ut={};$e(Ut,{browserFiles:()=>hR,browserHTTPRequest:()=>bR,concatenateArrayBuffers:()=>Ex,copyModel:()=>QD,decodeWeights:()=>jI,encodeWeights:()=>_D,fromMemory:()=>vR,fromMemorySync:()=>oS,getLoadHandlers:()=>zD,getModelArtifactsForJSON:()=>$x,getModelArtifactsForJSONSync:()=>KI,getModelArtifactsInfoForJSON:()=>Nc,getSaveHandlers:()=>LD,getWeightSpecs:()=>XI,http:()=>Dx,isHTTPScheme:()=>Ab,listModels:()=>ZD,loadWeights:()=>mR,moveModel:()=>eR,registerLoadRouter:()=>OD,registerSaveRouter:()=>PD,removeModel:()=>JD,weightsLoaderFactory:()=>rS,withSaveHandler:()=>wR,withSaveHandlerSync:()=>kR});var oR="model",lR=".json",uR=".weights.bin";function K1(e){return new Promise(t=>setTimeout(t)).then(e)}var al=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(al.URL_SCHEME)&&(e=e.slice(al.URL_SCHEME.length)),(e==null||e.length===0)&&(e=oR),this.modelJsonFileName=e+lR,this.weightDataFileName=e+uR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=qI(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await K1(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await K1(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Nc(e)}}}};al.URL_SCHEME="downloads://";var pR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=$x(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ex(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>q1(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=q1(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},cR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(al.URL_SCHEME)?dR(e.slice(al.URL_SCHEME.length)):null;$t.registerSaveRouter(cR);function dR(e="model"){return new al(e)}function hR(e){return new pR(e)}function X1(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function aS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await X1(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await X1(i,t.onProgress,o,l)}async function mR(e,t="",n,a){return rS(r=>aS(r,{requestInit:a}))(e,t,n)}function rS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Cb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=jI(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var fR="application/octet-stream",gR="application/json",Fx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=qI(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:gR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:fR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Nc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return $x(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=yR(t),r=this.weightPathPrefix||n,s=XI(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await aS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ex(l)]}};Fx.URL_SCHEME_REGEX=/^https?:\/\//;function yR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Ab(e){return e.match(Fx.URL_SCHEME_REGEX)!=null}var sS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Ab(a)):n=Ab(e),n)return Dx(e,t)}return null};$t.registerSaveRouter(sS);$t.registerLoadRouter(sS);function Dx(e,t){return new Fx(e,t)}function bR(e,t){return Dx(e,t)}var lb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},iS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},xR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function vR(e,t,n,a){let r=arguments;return new xR(oS(...r))}function oS(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new lb(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new lb({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new lb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function wR(e){return new iS(e)}function kR(e){return new iS(e)}var lS={};$e(lS,{confusionMatrix:()=>UR});function IR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(yi,i,o)}var Fe=L({matMul_:IR});function SR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Gi,s,i)}var rl=L({oneHot_:SR});function TR(){H().set("PROD",!0)}function NR(){H().set("DEBUG",!0)}function CR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Rx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}bD(Rx);function _R(){O.disposeVariables()}function Na(){return O}function kh(){return O.memory()}function ER(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Nx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function $R(e){return O.time(e)}function AR(e){return O.setBackend(e)}function FR(){return O.ready()}function DR(){return O.backendName}function RR(e){O.removeBackend(e)}function MR(e){return O.findBackend(e)}function PR(e){return O.findBackendFactory(e)}function Em(e,t,n=1){return O.registerBackend(e,t,n)}function uS(){return O.backend}function OR(e,t){H().setPlatform(e,t)}function LR(e){let t={input:_(e,"input","imag")};return O.runKernel(cm,t)}var Cc=L({imag_:LR});function zR(e){let t={x:_(e,"x","neg")};return O.runKernel(eu,t)}var bt=L({neg_:zR});function WR(e){let t={input:_(e,"input","real")};return O.runKernel(wm,t)}var sl=L({real_:WR});function BR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=sl(a),o=Cc(a);return i=O.runKernel(Tr,{x:i},s),o=O.runKernel(Tr,{x:o},s),n&&(o=bt(o)),Cr(i,o)}):O.runKernel(Tr,r,s)}var Ee=L({transpose_:BR});function VR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=rl(le(a,"int32"),n),i=rl(le(r,"int32"),n),o=Ee(s),l=Fe(o,i);return le(l,"int32")}var UR=L({confusionMatrix_:VR}),Tu={};$e(Tu,{assertAndGetBroadcastShape:()=>lt,getBroadcastDims:()=>pS,getReductionAxes:()=>Wt});function pS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function lt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rYR,fromPixelsAsync:()=>KR,toPixels:()=>XR});function _c(e,t,n){if(hi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=ir(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}var Ps;function cS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(bh(yh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(yh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Ps==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ps=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ps=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ps.canvas.width=l,Ps.canvas.height=u,Ps.drawImage(e,0,0,l,u),p=Ps.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var YR=L({fromPixels_:cS}),Mx={};$e(Mx,{prepareAndValidate:()=>dS});function dS(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Px={};$e(Px,{calculateShapes:()=>hS,validateInput:()=>Lx,validateUpdateShape:()=>Ox});function Ox(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;dJR,computeFlatOffset:()=>aM,computeOutShape:()=>eM,getNormalizedAxes:()=>tM,isSliceContinous:()=>nM,maskToAxes:()=>QR,parseSliceParams:()=>kS,sliceInfo:()=>rM,startForAxis:()=>vS,startIndicesWithElidedDims:()=>yS,stopForAxis:()=>wS,stopIndicesWithElidedDims:()=>bS,stridesForAxis:()=>xS,stridesWithElidedDims:()=>mS});var Fb=-2,ZR=-1;function JR(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function QR(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function eM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=yS(i,h,m,a,e),d=bS(o,h,m,r,e),c=mS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=fS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=fS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Vp(0,i,l-1),i}function wS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Vp(0,i,l):i=Vp(-1,i,l-1),i}function nM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function aM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function rM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=Y1(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=Y1(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,$=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],$=!0):x?(E=1,$=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,$=!0),$){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Fb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Fb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function sM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};$e(ne,{Serializable:()=>IS,SerializationMap:()=>Bs,registerClass:()=>gs});var IS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Bs=class{constructor(){this.classNameMap={}}static getMap(){return Bs.instance==null&&(Bs.instance=new Bs),Bs.instance}static register(e){Bs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function gs(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Bs.register(e)}var SS={};$e(SS,{TEST_EPSILON_FLOAT16:()=>TS,createVideoElement:()=>hM,encodeStrings:()=>NS,expectArrayBuffersEqual:()=>dM,expectArraysClose:()=>oM,expectArraysEqual:()=>uM,expectNumbersClose:()=>pM,expectPromiseToFail:()=>lM,expectValuesInRange:()=>cM,play:()=>mM,testEpsilon:()=>zx});var iM=.001,TS=.1;function oM(e,t,n){return n==null&&(n=zx()),Db(e,t,(a,r)=>Wx(a,r,n))}function zx(){return O.backend.floatPrecision()===32?iM:TS}function Db(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=ir(e),o=ir(t);if(!ps(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Zs(e),s=hn(t)?t:Zs(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function Ap(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||EI(t,this.size),this.strides=Il(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;awh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Wa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Wa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>wh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Wa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Wa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return Jo.print(this,e)}clone(){return this.throwIfDisposed(),Jo.clone(this)}toString(e=!1){let t=this.dataSync();return gD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),Jo.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Wa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Cx("Tensor",()=>Te)}Q();var ss=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!ms(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Wa().disposeTensor(this),this.dataId=e.dataId,Wa().incRef(this,null)}dispose(){Wa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ss,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ae(Ua,{assertTypesMatch:()=>GI,getTensorsInContainer:()=>_x,isTensorInList:()=>ID,makeTypesMatch:()=>Et});var Nb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Nb||(Nb={}));var Cb;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Cb||(Cb={}));var Eb;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Eb||(Eb={}));var _b;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(_b||(_b={}));var Ab;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Ab||(Ab={}));var kD={float32:_b,int32:Cb,bool:Eb,complex64:Ab};function ma(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return kD[e][t]}function _m(e){return ma(e,"int32")}function Et(e,t){if(e.dtype===t.dtype)return[e,t];let n=ma(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function GI(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function ID(e,t){return t.some(n=>n.id===e.id)}function _x(e){let t=[];return HI(e,t,new Set),t}function HI(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!SD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),HI(s,t,n))}}function SD(e){return Array.isArray(e)||typeof e=="object"}function ub(e){return e.kernelName!=null}var q1=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},jp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new q1}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){vh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof sc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return jp.nextTensorId++}nextVariableId(){return jp.nextVariableId++}clone(e){let t=O.runKernel(Oi,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(ki,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,xh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=ub(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(ub(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=xh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=ub(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Sb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Zr(e[0])&&(r=e.map(o=>Tc(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=$I(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new ss(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Ib(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof ss||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Ib(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Sb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=Xh(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=_x(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=mD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?TD(r.shape):n,fD(i,s,l=>this.tidy(l),ND);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(rs(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(rs(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Hp(),n=await this.backend.time(e);return n.wallMs=Hp()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new q1;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};jp.nextTensorId=0;jp.nextVariableId=0;function TD(e){let t=Sx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function jI(){let e=PI();if(e._tfengine==null){let t=new MI(e);e._tfengine=new jp(t)}return KF(e._tfengine.ENV),xD(()=>e._tfengine),e._tfengine}var O=jI();function ND(e,t){let n={a:e,b:t};return O.runKernel(fs,n)}var Nc={};Ae(Nc,{isBrowser:()=>qI,isMobile:()=>_D,mockIsMobile:()=>ED});function CD(){return typeof navigator!="undefined"&&navigator!=null}var $b;function ED(e){$b=e}function _D(e){if($b!==void 0)return $b;if(e||CD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function qI(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var fa=H();fa.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});fa.registerFlag("IS_BROWSER",()=>qI());fa.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");fa.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));fa.registerFlag("PROD",()=>!1);fa.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>fa.getBool("DEBUG"));fa.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);fa.registerFlag("IS_TEST",()=>!1);fa.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);fa.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);fa.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);fa.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&KI(e,a,[]),a}function KI(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),K1(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=lr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Em(e,r):ei(e,[],!0);return O.makeTensor(i,s,r)}function qp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var Ax="__op";function L(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Ax;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return Tx(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function AD(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Sn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(em,r)}var _r=L({complex_:AD});function xs(e,t,n,a){if(a==null&&(a=Kh(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){na(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Em(e,a):ei(e,[],!0),O.makeTensor(e,t,a)}function mn(e,t,n){let a=lr(e,n);return xs(e,t,a,n)}var Fb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},kh=4;async function $D(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+kh*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var $x=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function X1(e){return $x?Buffer.byteLength(e):new Blob([e]).size}function DD(e){if($x)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function Y1(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function YI(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function ZI(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Dx(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),ZI(e,n,a)}function Cc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:X1(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:X1(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function JI(e){let t=[];for(let n of e)t.push(...n.weights);return t}function MD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function PD(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function OD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function LD(){let e=MD(),t=PD(),n=OD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var At=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return At.instance==null&&(At.instance=new At),At.instance}static registerSaveRouter(e){At.getInstance().saveRouters.push(e)}static registerLoadRouter(e){At.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return At.getHandlers(e,"save")}static getLoadHandlers(e,t){return At.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?At.getInstance().loadRouters:At.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},zD=e=>At.registerSaveRouter(e),WD=e=>At.registerLoadRouter(e),BD=e=>At.getSaveHandlers(e),VD=(e,t)=>At.getLoadHandlers(e,t),Db="tensorflowjs",Rb=1,Ks="models_store",Jr="model_info_store";function QI(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Mb(e){let t=e.result;t.createObjectStore(Ks,{keyPath:"modelPath"}),t.createObjectStore(Jr,{keyPath:"modelPath"})}var ri=class{constructor(e){if(this.indexedDB=QI(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(Db,Rb);r.onupgradeneeded=()=>Mb(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Ks,"readonly"),o=i.objectStore(Ks).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Cc(t),o=s.transaction(Jr,"readwrite"),l=o.objectStore(Jr),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Ks,"readwrite");let d=p.objectStore(Ks).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(Jr);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ri.URL_SCHEME="indexeddb://";var eS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ri.URL_SCHEME)?UD(e.slice(ri.URL_SCHEME.length)):null;At.registerSaveRouter(eS);At.registerLoadRouter(eS);function UD(e){return new ri(e)}function GD(e){return e.startsWith(ri.URL_SCHEME)?e.slice(ri.URL_SCHEME.length):e}var HD=class{constructor(){this.indexedDB=QI()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Db,Rb);n.onupgradeneeded=()=>Mb(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(Jr,"readonly"),s=r.objectStore(Jr).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=GD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Db,Rb);a.onupgradeneeded=()=>Mb(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(Jr,"readwrite"),i=s.objectStore(Jr),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Ks,"readwrite");let d=l.objectStore(Ks).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Nr="/",Qo="tensorflowjs_models",tS="info",jD="model_topology",qD="weight_specs",KD="weight_data",XD="model_metadata";function nS(e){return{info:[Qo,e,tS].join(Nr),topology:[Qo,e,jD].join(Nr),weightSpecs:[Qo,e,qD].join(Nr),weightData:[Qo,e,KD].join(Nr),modelMetadata:[Qo,e,XD].join(Nr)}}function aS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function YD(e){let t=e.split(Nr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Nr)}function ZD(e){return e.startsWith(si.URL_SCHEME)?e.slice(si.URL_SCHEME.length):e}var si=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=nS(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Cc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,DD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw aS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=RD(s),t}};si.URL_SCHEME="localstorage://";var rS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(si.URL_SCHEME)?JD(e.slice(si.URL_SCHEME.length)):null;At.registerSaveRouter(rS);At.registerLoadRouter(rS);function JD(e){return new si(e)}var QD=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=Qo+Nr,n=Nr+tS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(nl)&&(e=e.slice(0,e.indexOf(nl))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function sh(e){if(e.indexOf(nl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(nl)[0],path:e.split(nl)[1]}}async function sS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=At.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=At.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=sh(e).scheme,l=sh(e).path,u=o===sh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function eR(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+nl+r;t[s]=a[r]}}return t}async function tR(e){let t=sh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function nR(e,t){return sS(e,t,!1)}async function aR(e,t){return sS(e,t,!0)}var rR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new rR);try{Pn.registerManager(si.URL_SCHEME,new QD)}catch(e){}try{Pn.registerManager(ri.URL_SCHEME,new HD)}catch(e){}}var sR={importFetch:()=>mF()},pb,iR=class{constructor(){this.util=fF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(pb==null&&(pb=sR.importFetch()),pb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new iR);function Pe(e,t="float32",n){return t=t||"float32",na(e),new qt(e,t,n)}function oR(e,t){let n=E(e,"x","cast");if(!AI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(ki,a,r)}var le=L({cast_:oR});function lR(e){let t={x:E(e,"x","clone","string_or_numeric")};return O.runKernel(Oi,t)}var sr=L({clone_:lR});function Rx(e,t=!1){console.log(e.toString(t))}jI();var uR={buffer:Pe,cast:le,clone:sr,print:Rx};vD(uR);var Gt={};Ae(Gt,{browserFiles:()=>gR,browserHTTPRequest:()=>wR,concatenateArrayBuffers:()=>Fx,copyModel:()=>nR,decodeWeights:()=>XI,encodeWeights:()=>$D,fromMemory:()=>IR,fromMemorySync:()=>pS,getLoadHandlers:()=>VD,getModelArtifactsForJSON:()=>Dx,getModelArtifactsForJSONSync:()=>ZI,getModelArtifactsInfoForJSON:()=>Cc,getSaveHandlers:()=>BD,getWeightSpecs:()=>JI,http:()=>Px,isHTTPScheme:()=>Pb,listModels:()=>eR,loadWeights:()=>yR,moveModel:()=>aR,registerLoadRouter:()=>WD,registerSaveRouter:()=>zD,removeModel:()=>tR,weightsLoaderFactory:()=>oS,withSaveHandler:()=>SR,withSaveHandlerSync:()=>TR});var pR="model",cR=".json",dR=".weights.bin";function Z1(e){return new Promise(t=>setTimeout(t)).then(e)}var ol=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(ol.URL_SCHEME)&&(e=e.slice(ol.URL_SCHEME.length)),(e==null||e.length===0)&&(e=pR),this.modelJsonFileName=e+cR,this.weightDataFileName=e+dR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=YI(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await Z1(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await Z1(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Cc(e)}}}};ol.URL_SCHEME="downloads://";var hR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Dx(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Fx(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>Y1(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=Y1(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},mR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ol.URL_SCHEME)?fR(e.slice(ol.URL_SCHEME.length)):null;At.registerSaveRouter(mR);function fR(e="model"){return new ol(e)}function gR(e){return new hR(e)}function J1(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function iS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await J1(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await J1(i,t.onProgress,o,l)}async function yR(e,t="",n,a){return oS(r=>iS(r,{requestInit:a}))(e,t,n)}function oS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Fb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=XI(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var bR="application/octet-stream",xR="application/json",Mx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=YI(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:xR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:bR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Cc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Dx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=vR(t),r=this.weightPathPrefix||n,s=JI(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await iS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Fx(l)]}};Mx.URL_SCHEME_REGEX=/^https?:\/\//;function vR(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Pb(e){return e.match(Mx.URL_SCHEME_REGEX)!=null}var lS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Pb(a)):n=Pb(e),n)return Px(e,t)}return null};At.registerSaveRouter(lS);At.registerLoadRouter(lS);function Px(e,t){return new Mx(e,t)}function wR(e,t){return Px(e,t)}var cb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},uS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},kR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function IR(e,t,n,a){let r=arguments;return new kR(pS(...r))}function pS(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new cb(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new cb({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new cb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function SR(e){return new uS(e)}function TR(e){return new uS(e)}var cS={};Ae(cS,{confusionMatrix:()=>jR});function NR(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Et(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(wi,i,o)}var Fe=L({matMul_:NR});function CR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Xi,s,i)}var ll=L({oneHot_:CR});function ER(){H().set("PROD",!0)}function _R(){H().set("DEBUG",!0)}function AR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Ox(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}wD(Ox);function $R(){O.disposeVariables()}function Ca(){return O}function Ih(){return O.memory()}function FR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function Ee(e){_x(e).forEach(t=>t.dispose())}function Ht(e){return O.keep(e)}function DR(e){return O.time(e)}function RR(e){return O.setBackend(e)}function MR(){return O.ready()}function PR(){return O.backendName}function OR(e){O.removeBackend(e)}function LR(e){return O.findBackend(e)}function zR(e){return O.findBackendFactory(e)}function Am(e,t,n=1){return O.registerBackend(e,t,n)}function dS(){return O.backend}function WR(e,t){H().setPlatform(e,t)}function BR(e){let t={input:E(e,"input","imag")};return O.runKernel(dm,t)}var Ec=L({imag_:BR});function VR(e){let t={x:E(e,"x","neg")};return O.runKernel(nu,t)}var bt=L({neg_:VR});function UR(e){let t={input:E(e,"input","real")};return O.runKernel(km,t)}var ul=L({real_:UR});function GR(e,t,n){let a=E(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=ul(a),o=Ec(a);return i=O.runKernel(Cr,{x:i},s),o=O.runKernel(Cr,{x:o},s),n&&(o=bt(o)),_r(i,o)}):O.runKernel(Cr,r,s)}var _e=L({transpose_:GR});function HR(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=ll(le(a,"int32"),n),i=ll(le(r,"int32"),n),o=_e(s),l=Fe(o,i);return le(l,"int32")}var jR=L({confusionMatrix_:HR}),Nu={};Ae(Nu,{assertAndGetBroadcastShape:()=>lt,getBroadcastDims:()=>hS,getReductionAxes:()=>Wt});function hS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function lt(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rQR,fromPixelsAsync:()=>ZR,toPixels:()=>JR});function _c(e,t,n){if(yi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return xs(e,t,a,n)}var Ws;function mS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(xh(bh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(bh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Ws==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ws=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ws=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ws.canvas.width=l,Ws.canvas.height=u,Ws.drawImage(e,0,0,l,u),p=Ws.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var QR=L({fromPixels_:mS}),Lx={};Ae(Lx,{prepareAndValidate:()=>fS});function fS(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var zx={};Ae(zx,{calculateShapes:()=>gS,validateInput:()=>Bx,validateUpdateShape:()=>Wx});function Wx(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;dtM,computeFlatOffset:()=>iM,computeOutShape:()=>aM,getNormalizedAxes:()=>rM,isSliceContinous:()=>sM,maskToAxes:()=>nM,parseSliceParams:()=>TS,sliceInfo:()=>oM,startForAxis:()=>IS,startIndicesWithElidedDims:()=>vS,stopForAxis:()=>SS,stopIndicesWithElidedDims:()=>wS,stridesForAxis:()=>kS,stridesWithElidedDims:()=>yS});var Ob=-2,eM=-1;function tM(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function nM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function aM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=vS(i,h,m,a,e),d=wS(o,h,m,r,e),c=yS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=bS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=bS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Up(0,i,l-1),i}function SS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Up(0,i,l):i=Up(-1,i,l-1),i}function sM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function iM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function oM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=Q1(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=Q1(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let _,$=!1;if(c.beginValid&&c.endValid?(_=c.end[b]-c.begin[b],$=!0):x?(_=1,$=!0):C&&w>=0&&(c.strides[b]<0?_=-w:_=w,$=!0),$){let R;_===0||_<0!=c.strides[b]<0?R=0:R=Math.trunc(_/c.strides[b])+(_%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Ob&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Ob),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function lM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};Ae(ne,{Serializable:()=>NS,SerializationMap:()=>Hs,registerClass:()=>vs});var NS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Hs=class{constructor(){this.classNameMap={}}static getMap(){return Hs.instance==null&&(Hs.instance=new Hs),Hs.instance}static register(e){Hs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function vs(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Hs.register(e)}var CS={};Ae(CS,{TEST_EPSILON_FLOAT16:()=>ES,createVideoElement:()=>gM,encodeStrings:()=>_S,expectArrayBuffersEqual:()=>fM,expectArraysClose:()=>pM,expectArraysEqual:()=>dM,expectNumbersClose:()=>hM,expectPromiseToFail:()=>cM,expectValuesInRange:()=>mM,play:()=>yM,testEpsilon:()=>Vx});var uM=.001,ES=.1;function pM(e,t,n){return n==null&&(n=Vx()),Lb(e,t,(a,r)=>Ux(a,r,n))}function Vx(){return O.backend.floatPrecision()===32?uM:ES}function Lb(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=lr(e),o=lr(t);if(!ms(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:ei(e),s=hn(t)?t:ei(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function uM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Kr(e)||Kr(e[0])||Kr(t)||Kr(t[0])?Db(e,n,(a,r)=>a==r):Db(e,t,(a,r)=>Wx(a,r,0))}function pM(e,t,n){if(n==null&&(n=zx()),!Wx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Wx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function cM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function dM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function mM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var fM="4.0.0";function gM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cs,r)}var Y=L({add_:gM});function yM(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel($i,r)}var $m=L({floorDiv_:yM});function bM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return $m(n,a);let r={a:n,b:a},s={};return O.runKernel(Ni,r,s)}var he=L({div_:bM});function xM(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ui,r)}var z=L({mul_:xM});function vM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(oc,n)}else{let n={x:t};return O.runKernel(wl,n)}}var Lt=L({abs_:vM});function wM(e){let t={x:_(e,"x","acos")};return O.runKernel(kl,t)}var Bx=L({acos_:wM});function kM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Il,t)}var Vx=L({acosh_:kM});function IM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!ps(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(mi,a)}var CS=L({addN_:IM});function SM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Sl,a,r)}var Am=L({all_:SM});function TM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Tl,a,r)}var qp=L({any_:TM});function NM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(fi,n,a)}var ai=L({argMax_:NM});function CM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(sc,n,a)}var Ux=L({argMin_:CM});function _M(e){let t={x:_(e,"x","asin")};return O.runKernel(Nl,t)}var Gx=L({asin_:_M});function EM(e){let t={x:_(e,"x","asinh")};return O.runKernel(Cl,t)}var Hx=L({asinh_:EM});function $M(e){let t={x:_(e,"x","atan")};return O.runKernel(_l,t)}var jx=L({atan_:$M});function AM(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel($l,r)}var qx=L({atan2_:AM});function FM(e){let t={x:_(e,"x","atanh")};return O.runKernel(El,t)}var Kx=L({atanh_:FM});function DM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=$S(r);return Ec(e,o,n,s,a,null,null,l)}function _S(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Ih(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Ec(e,u,n,a,r,s,!1,i)}function RM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Rb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return ES(e,p,n,a,r,!1,d,s)}function Ec(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Ih(n),[y,b]=Ih(a),x=Qo(c,y),w=Qo(h,b),{padInfo:I,outHeight:T,outWidth:C}=OM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,$;return o==="channelsFirst"?$=[l,E,T,C]:o==="channelsLast"&&($=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function ES(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Rb(n),[w,I,T]=Rb(a),C=Qo(h,w),E=Qo(m,I),$=Qo(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=LM(r,u,p,d,y,b,x,C,E,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function MM(e,t,n,a,r){a==null&&(a=Xx(e,t,n));let s=e[0],i=e[1],o=qs((s-t+2*a)/n+1,r),l=qs((i-t+2*a)/n+1,r);return[o,l]}function PM(e,t,n,a,r,s){r==null&&(r=Xx(e,t,a));let i=e[0],o=e[1],l=e[2],u=qs((i-t+2*r)/a+1,s),p=qs((o-t+2*r)/a+1,s),d=qs((l-t+2*r)/a+1,s);return[u,p,d,n]}function Xx(e,t,n,a=1){let r=Qo(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Ih(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Rb(e){return typeof e=="number"?[e,e,e]:e}function Qo(e,t){return t<=1?e:e+(e-1)*(t-1)}function OM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=MM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=qs((t-s+c+h)/a+1,o),d=qs((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function LM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=PM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function qs(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function ns(e){let[t,n,a]=Ih(e);return t===1&&n===1&&a===1}function ur(e,t){return ns(e)||ns(t)}function $S(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(tl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(tl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function zM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(lu,n,a)}var W=L({reshape_:zM});function WM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(ur(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(gi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ga=L({avgPool_:WM});function BM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(ic,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Yx=L({avgPool3d_:BM});function VM(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return rr(n[0]);let a=n,r={axis:t};return O.runKernel(Fl,a,r)}var Ze=L({concat_:VM});function UM(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ao,t)}var da=L({sigmoid_:UM});function GM(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(du,r,s)}var Be=L({slice_:GM});function HM(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(po,t)}var ri=L({tanh_:HM});function jM(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(da(b),ri(x)),z(p,da(Y(i,w)))),C=z(ri(T),da(I));return[T,C]}var AS=L({basicLSTMCell_:jM});function qM(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Al,s,i)}var $c=L({batchToSpaceND_:qM});function KM(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function XM(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:KM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Ai,d,c);return W(h,i.shape)}var ys=L({batchNorm_:XM});function YM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Zx=L({batchNorm2d_:YM});function ZM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Jx=L({batchNorm3d_:ZM});function JM(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ys(i,o,l,p,u,s)}var Qx=L({batchNorm4d_:JM});function QM(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(Zh,s,i)}var ev=L({bincount_:QM});function eP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(Jh,r)}var FS=L({broadcastArgs_:eP});function tP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return rr(n);let i={x:n},o={reps:s};return O.runKernel(hs,i,o)}var Ks=L({broadcastTo_:tP});function nP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(xi,t)}var tv=L({ceil_:nP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(pc,{},a)}function aP(e,t,n){let a=_(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ds,r,s)}var en=L({clipByValue_:aP});function rP(e){return Ze(e,0)}var nv=L({concat1d_:rP});function sP(e,t){return Ze(e,t)}var av=L({concat2d_:sP});function iP(e,t){return Ze(e,t)}var rv=L({concat3d_:iP});function oP(e,t){return Ze(e,t)}var sv=L({concat4d_:oP});function lP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(vi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=L({conv2d_:lP});function uP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Tn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(ur(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=At(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Fm=L({conv1d_:uP});function pP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(wi,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var iv=L({conv2DBackpropInput_:pP});function cP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return iv(n,i,o,a,r,"NHWC",s)}var Dm=L({conv2dTranspose_:cP});function dP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(ur(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(lc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var ov=L({conv3d_:dP});function hP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(nm,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var DS=L({conv3DBackpropInput_:hP});function mP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return DS(n,s,i,a,r)}var lv=L({conv3dTranspose_:mP});function fP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(ki,t)}var Ac=L({cos_:fP});function gP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Ii,t)}var Rm=L({cosh_:gP});function yP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Dl,r,s)}var Kp=L({cumprod_:yP});function bP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Si,r,s)}var Mm=L({cumsum_:bP});function xP(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(am,i,o)}var Sh=L({denseBincount_:xP});function vP(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function cM(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function dM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Zr(e)||Zr(e[0])||Zr(t)||Zr(t[0])?Lb(e,n,(a,r)=>a==r):Lb(e,t,(a,r)=>Ux(a,r,0))}function hM(e,t,n){if(n==null&&(n=Vx()),!Ux(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Ux(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function mM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function fM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function yM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var bM="4.1.0";function xM(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(fs,r)}var Y=L({add_:xM});function vM(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Ri,r)}var $m=L({floorDiv_:vM});function wM(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Et(n,a),n.dtype==="int32"&&a.dtype==="int32")return $m(n,a);let r={a:n,b:a},s={};return O.runKernel(Ai,r,s)}var me=L({div_:wM});function kM(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Ki,r)}var z=L({mul_:kM});function IM(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(lc,n)}else{let n={x:t};return O.runKernel(Sl,n)}}var Lt=L({abs_:IM});function SM(e){let t={x:E(e,"x","acos")};return O.runKernel(Tl,t)}var Gx=L({acos_:SM});function TM(e){let t={x:E(e,"x","acosh")};return O.runKernel(Nl,t)}var Hx=L({acosh_:TM});function NM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!ms(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(bi,a)}var AS=L({addN_:NM});function CM(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Cl,a,r)}var Fm=L({all_:CM});function EM(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(El,a,r)}var Kp=L({any_:EM});function _M(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return O.runKernel(xi,n,a)}var ii=L({argMax_:_M});function AM(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return O.runKernel(ic,n,a)}var jx=L({argMin_:AM});function $M(e){let t={x:E(e,"x","asin")};return O.runKernel(_l,t)}var qx=L({asin_:$M});function FM(e){let t={x:E(e,"x","asinh")};return O.runKernel(Al,t)}var Kx=L({asinh_:FM});function DM(e){let t={x:E(e,"x","atan")};return O.runKernel($l,t)}var Xx=L({atan_:DM});function RM(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Dl,r)}var Yx=L({atan2_:RM});function MM(e){let t={x:E(e,"x","atanh")};return O.runKernel(Fl,t)}var Zx=L({atanh_:MM});function PM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=DS(r);return Ac(e,o,n,s,a,null,null,l)}function $S(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Sh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Ac(e,u,n,a,r,s,!1,i)}function OM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=zb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return FS(e,p,n,a,r,!1,d,s)}function Ac(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Sh(n),[y,b]=Sh(a),x=al(c,y),w=al(h,b),{padInfo:I,outHeight:T,outWidth:C}=WM(r,u,p,f,g,x,w,s,o),_=i?m*d:m,$;return o==="channelsFirst"?$=[l,_,T,C]:o==="channelsLast"&&($=[l,T,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function FS(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=zb(n),[w,I,T]=zb(a),C=al(h,w),_=al(m,I),$=al(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=BM(r,u,p,d,y,b,x,C,_,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function LM(e,t,n,a,r){a==null&&(a=Jx(e,t,n));let s=e[0],i=e[1],o=Ys((s-t+2*a)/n+1,r),l=Ys((i-t+2*a)/n+1,r);return[o,l]}function zM(e,t,n,a,r,s){r==null&&(r=Jx(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ys((i-t+2*r)/a+1,s),p=Ys((o-t+2*r)/a+1,s),d=Ys((l-t+2*r)/a+1,s);return[u,p,d,n]}function Jx(e,t,n,a=1){let r=al(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Sh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function zb(e){return typeof e=="number"?[e,e,e]:e}function al(e,t){return t<=1?e:e+(e-1)*(t-1)}function WM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=LM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Ys((t-s+c+h)/a+1,o),d=Ys((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function BM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=zM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Ys(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function is(e){let[t,n,a]=Sh(e);return t===1&&n===1&&a===1}function cr(e,t){return is(e)||is(t)}function DS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Tn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(sl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(sl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function VM(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(uu,n,a)}var W=L({reshape_:VM});function UM(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(cr(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Tn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(vi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:UM});function GM(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(oc,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Qx=L({avgPool3d_:GM});function HM(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=qp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return sr(n[0]);let a=n,r={axis:t};return O.runKernel(Ml,a,r)}var Ze=L({concat_:HM});function jM(e){let t={x:E(e,"x","sigmoid","float32")};return O.runKernel(uo,t)}var da=L({sigmoid_:jM});function qM(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(hu,r,s)}var Be=L({slice_:qM});function KM(e){let t={x:E(e,"x","tanh","float32")};return O.runKernel(yo,t)}var oi=L({tanh_:KM});function XM(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(da(b),oi(x)),z(p,da(Y(i,w)))),C=z(oi(T),da(I));return[T,C]}var RS=L({basicLSTMCell_:XM});function YM(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Rl,s,i)}var $c=L({batchToSpaceND_:YM});function ZM(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function JM(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:ZM(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Mi,d,c);return W(h,i.shape)}var ws=L({batchNorm_:JM});function QM(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ws(i,o,l,p,u,s)}var ev=L({batchNorm2d_:QM});function eP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ws(i,o,l,p,u,s)}var tv=L({batchNorm3d_:eP});function tP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ws(i,o,l,p,u,s)}var nv=L({batchNorm4d_:tP});function nP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(Jh,s,i)}var av=L({bincount_:nP});function aP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(Qh,r)}var MS=L({broadcastArgs_:aP});function rP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(na(t),t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return sr(n);let i={x:n},o={reps:s};return O.runKernel(ys,i,o)}var Zs=L({broadcastTo_:rP});function sP(e){let t={x:E(e,"x","ceil","float32")};return O.runKernel(Ii,t)}var rv=L({ceil_:sP});function yn(e,t,n){na(e);let a={shape:e,value:t,dtype:n};return O.runKernel(cc,{},a)}function iP(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(gs,r,s)}var tn=L({clipByValue_:iP});function oP(e){return Ze(e,0)}var sv=L({concat1d_:oP});function lP(e,t){return Ze(e,t)}var iv=L({concat2d_:lP});function uP(e,t){return Ze(e,t)}var ov=L({concat3d_:uP});function pP(e,t){return Ze(e,t)}var lv=L({concat4d_:pP});function cP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Tn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Si,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ft=L({conv2d_:cP});function dP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Tn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Ft(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Dm=L({conv1d_:dP});function hP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Tn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(Ti,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var uv=L({conv2DBackpropInput_:hP});function mP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return uv(n,i,o,a,r,"NHWC",s)}var Rm=L({conv2dTranspose_:mP});function fP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(cr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(uc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var pv=L({conv3d_:fP});function gP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(am,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var PS=L({conv3DBackpropInput_:gP});function yP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return PS(n,s,i,a,r)}var cv=L({conv3dTranspose_:yP});function bP(e){let t={x:E(e,"x","cos","float32")};return O.runKernel(Ni,t)}var Fc=L({cos_:bP});function xP(e){let t={x:E(e,"x","cosh","float32")};return O.runKernel(Ci,t)}var Mm=L({cosh_:xP});function vP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Pl,r,s)}var Xp=L({cumprod_:vP});function wP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ei,r,s)}var Pm=L({cumsum_:wP});function kP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(rm,i,o)}var Th=L({denseBincount_:kP});function IP(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(Ml,o,l)}var uv=L({depthToSpace_:vP});function wP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ti,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var bs=L({depthwiseConv2d_:wP});function kP(e){let t={x:_(e,"x","diag")};return O.runKernel(im,t)}var RS=L({diag_:kP});function IP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(uc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var pv=L({dilation2d_:IP});function SP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Ol,r)}var Qn=L({equal_:SP});function TP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=lt(lt(s.shape,a.shape),r.shape),o=Ks(s,i),l=Ks(a,i),u=Ks(r,i),p={condition:o,t:l,e:u};return O.runKernel(pu,p)}var mn=L({where_:TP});function NP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Iu,t)}var qe=L({zerosLike_:NP});function CP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=Qn(a,s);return mn(i,s,r)}var cv=L({divNoNan_:CP});function _P(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var dv=L({dot_:_P});function EP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(om,n,a)}var MS=L({einsum_:EP});function $P(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(Ci,t)}var Nu=L({elu_:$P});function AP(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(Pl,n)}var hv=L({erf_:AP});function mv(e,t){for(let n=0;ne[s]);return[n,r]}function si(e,t){let n=t.map(a=>1);return PS(e,n,t)}function FP(e,t,n){A(mv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function LS(e,t){if(mv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function fv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function DP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Ll,a,r)}var Zt=L({expandDims_:UP});function GP(e){let t={x:_(e,"x","expm1")};return O.runKernel(zl,t)}var yv=L({expm1_:GP});function HP(e,t){let n=_(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(hs,a,r)}var Ln=L({tile_:HP});function jP(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),A(tl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(cc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var wv=L({localResponseNormalization_:aO});function rO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Mi,t)}var ea=L({log_:rO});function sO(e){let t={x:_(e,"x","log1p")};return O.runKernel(Xl,t)}var Dc=L({log1p_:sO});function iO(e){return A(es(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Lm(i),i[0]})}}function oO(e){return A(es(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(i),i})}}function lO(e){return A(es(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Lm(a),{grad:a[0],value:r}}}function uO(e){return A(es(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Lm(a.grads),a}}function BS(e,t){A(es(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ts),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function or(e){return O.customGrad(e)}function Lm(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function pO(e){let t={x:_(e,"x","softplus")};return O.runKernel(fu,t)}var ho=L({softplus_:pO});function cO(e){let t=_(e,"x","logSigmoid");return or(n=>({value:bt(ho(bt(n))),gradFunc:a=>z(a,da(bt(n)))}))(t)}var kv=L({logSigmoid_:cO});function dO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(lo,r)}var pe=L({sub_:dO});function hO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return or((a,r)=>{let s=ha(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),ea(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var zm=L({logSoftmax_:hO});function mO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=$a(t,a.shape),s=ha(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ea(l),p=Y(W(s,u.shape),u);if(n){let d=si(p.shape,r);return W(p,d)}return p}var Wm=L({logSumExp_:mO});function fO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Yl,r)}var Ea=L({logicalAnd_:fO});function gO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(Zl,t)}var Rc=L({logicalNot_:gO});function yO(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Jl,r)}var Bm=L({logicalOr_:yO});function bO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return lt(n.shape,a.shape),Ea(Bm(e,t),Rc(Ea(e,t)))}var Iv=L({logicalXor_:bO}),Hd=2147483648;function xO(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=Hd)throw new Error(`values tensor size must less than ${Hd}`);if(o.shape[1]>=Hd)throw new Error(`trailing dim_size must less than ${Hd} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Sm,u,p)}var Vm=L({searchSorted_:xO});function VS(e,t){return Vm(e,t,"left")}function vO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(ur(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Li,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:vO});function wO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Sv=L({maxPool3d_:wO});function kO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(gm,s,i);return{result:o[0],indexes:o[1]}}var US=L({maxPoolWithArgmax_:kO});function IO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Oi,r)}var pr=L({maximum_:IO});function SO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(zi,a,r)}var Nt=L({mean_:SO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=Kh(mt(e),t);return O.makeTensor(n,e,t)}function Zn(e,t="float32"){if(t==="complex64"){let a=Zn(e,"float32"),r=It(e,"float32");return Cr(a,r)}let n=vx(mt(e),t);return O.makeTensor(n,e,t)}function GS(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Zn([i,1],a.dtype),a),Fe(r,Zn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Zn([1,i],a.dtype)),Fe(Zn([s,1],r.dtype),r)])}function TO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Bi,r)}var $u=L({minimum_:TO});function NO(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Vi,i,s)}var Tv=L({mirrorPad_:NO});function CO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ql,r)}var Nv=L({mod_:CO});function _O(e,t=null,n=!1){e=_(e,"x","moments");let a=$a(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=si(r.shape,a));let i=ot(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Mc=L({moments_:_O});function EO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=jp(n,"c","multiRNNCell"),i=jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(ym,o,l);return i===1?W(u,[u.size]):u}var jS=L({multinomial_:$O});function AO(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(tu,r)}var ii=L({notEqual_:AO});function FO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(su,t)}var ta=L({onesLike_:FO});function DO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var qS=L({outerProduct_:DO});function RO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(Hi,s,r)}var ya=L({pad_:RO});function MO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ya(e,[t],n)}var KS=L({pad1d_:MO});function PO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var XS=L({pad2d_:PO});function OO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var YS=L({pad3d_:OO});function LO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ya(e,t,n)}var ZS=L({pad4d_:LO});function zO(e,t,n){let a=_(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(gu,r,s)}var Pc=L({spaceToBatchND_:zO});function WO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(ur(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=_S(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=VO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=BO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Pc(l,d,m),b=(n==="avg"?()=>ga(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:$c(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function BO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function VO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Cv=L({pool_:WO});function UO(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(qi,r)}var Oc=L({prelu_:UO});function GO(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Ki,r,s)}var _v=L({prod_:GO});function HO(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(bm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var JS=L({raggedGather_:HO});function jO(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(xm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var QS=L({raggedRange_:jO});function qO(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(vm,u,p)}var eT=L({raggedTensorToTensor_:qO});function KO(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},XO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ev.alea(r.toString()),this.randn=new $v(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ev.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function ZO(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new XO(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),fa(t,0)}var rT=L({reverse1d_:s3});function i3(e,t){let n=_(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),fa(n,t)}var sT=L({reverse2d_:i3});function o3(e,t){let n=_(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),fa(n,t)}var iT=L({reverse3d_:o3});function l3(e,t){let n=_(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),fa(n,t)}var oT=L({reverse4d_:l3});function u3(e){let t={x:_(e,"x","round")};return O.runKernel(eo,t)}var Hm=L({round_:u3});function p3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(to,t)}var jm=L({rsqrt_:p3});function c3(e){let t={x:_(e,"x","selu")};return O.runKernel(cu,t)}var qm=L({selu_:c3});function d3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=bs(p,l,a,r,i,s),f=At(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var vs=L({separableConv2d_:d3});async function h3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Lc=L({slice1d_:y3});function b3(e,t,n){let a=_(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Ym=L({slice2d_:b3});function x3(e,t,n){let a=_(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var mo=L({slice3d_:x3});function v3(e,t,n){let a=_(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var ll=L({slice4d_:v3});function w3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return O.runKernel(io,a,r)}var Ka=L({softmax_:w3});function k3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(um,t)}var zc=L({fft_:k3});function I3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(pm,t)}var ul=L({ifft_:I3});function S3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=ul(r)}else{let r=[n,2*(t-1)],s=W(sl(e),[n,t]),i=W(Cc(e),[n,t]),o=fa(Be(s,[0,1],[n,t-2]),1),l=z(fa(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(Cr(u,p),[r[0],r[1]]);a=ul(d)}if(a=sl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Zm=L({irfft_:S3});function T3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(yu,a,r)}var zn=L({split_:T3});function N3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Cr(r,s),[a,n]),o=zc(i),l=Math.floor(n/2)+1,u=sl(o),p=Cc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Cr(d[0],c[0]),h)}var Wc=L({rfft_:N3});function C3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),lt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(oo,r,s)}var Jm=L({squaredDifference_:C3});function _3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,II(n.shape,t).newShape)}var ws=L({squeeze_:_3});function E3(e,t=0){let n=jp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(iu,a,r)}var Ft=L({stack_:E3});function $3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(ms,n,a)}var fo=L({step_:$3});function A3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(xu,u,p)}var Dv=L({stridedSlice_:A3});function F3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(uo,t)}var Rv=L({tan_:F3});function Ke(e,t){hi(e);let n=ir(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return fs(e,null,n,t)}function _a(e,t,n){if(hi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=ir(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return fs(e,t,a,n)}function Aa(e,t,n){if(hi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=ir(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function uT(e,t,n){if(hi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=ir(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return fs(e,t,a,n)}function pT(e,t,n){if(hi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=ir(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,fs(e,t,a,n)}function D3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(vu,s,i);return{values:o,indices:l}}var Mv=L({topk_:D3});function R3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new $v(t,n,a,!0,r),i=Pe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Nm,a,r);return{values:s,indices:i}}var Pv=L({unique_:M3});function P3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(tl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(wc,s,i)}var ef=L({unsortedSegmentSum_:P3});function O3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(ku,a,r)}var ct=L({unstack_:O3});function cT(e,t){return Vm(e,t,"right")}function Ov(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function dT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,_r(o,d)))}return Y(s,p)}var mT=L({movingAverage_:W3});function B3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");Lx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(uu,s,i)}var fT=L({scatterND_:B3});function V3(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function U3(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);V3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Tm,o,l)}var gT=L({sparseToDense_:U3});function G3(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Vl,a)}var yT=L({gatherND_:G3});function H3(e,t){if(t==null)return e.shape.slice();if(ps(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=H3(r,n),i=1-t,o=he(_u(Y(Au(s,0,1,"float32",a),i)),i);return z(r,o)}var zv=L({dropout_:j3});function Wv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function tf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=SI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fY3,depthwiseConv2d:()=>eL,matMul:()=>nL});function K3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(em,d,c)}var Bv=L({conv2DBackpropFilter_:K3});function nf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,fo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function af(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function rf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Nu(e);if(t==="relu6")return Gm(e);if(t==="prelu")return Oc(e,n);if(t==="leakyrelu")return Fc(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var sf=(e,t)=>!(e>0)||t==="linear";function X3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",sf(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=At(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),rf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(ur(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Ec(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?lt(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{lt(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,$,R,F]=C,S=nf(T,R,l);A(ns(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=iv($.shape,S,E,n,a),B=Bv($,S,E.shape,n,a),U=[M,B];if(F!=null){let G=af(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((T,C,E)=>{let $=O.runKernel(Qs,w,I);return E([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):or((T,C,E,$)=>{let R=O.runKernel(Qs,w,I);return $([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var Y3=L({fusedConv2d_:X3});function Z3(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(rm,u,p)}var xT=L({depthwiseConv2dNativeBackpropFilter_:Z3});function J3(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(sm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var vT=L({depthwiseConv2dNativeBackpropInput_:J3});function Q3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(sf(O.state.gradientDepth,l)===!1){let I=bs(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),rf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(ur(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=Ec(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),lt(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(ns(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,$,R]=T,F=nf(I,$,l),S=vT(E.shape,F,C,n,a,s,i),M=xT(E,F,C.shape,n,a,s,i);if(R!=null){let B=af(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?or((I,T,C)=>{let E=O.runKernel(ei,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):or((I,T,C,E)=>{let $=O.runKernel(ei,x,w);return E([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var eL=L({fusedDepthwiseConv2d_:Q3});function tL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(sf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),rf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=lt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),lt(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=nf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=af(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?or((R,F,S)=>{let M=O.runKernel(Js,E,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):or((R,F,S,M)=>{let B=O.runKernel(Js,E,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var nL=L({fusedMatMul_:tL});function aL(e){return tf(e,.54,.46)}var rL=L({hammingWindow_:aL});function sL(e){return tf(e,.5,.5)}var wT=L({hannWindow_:sL});function iL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(Rl,p,d)}var pL=L({cropAndResize_:uL});function cL(e){let t=_(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Wl,n,{})}var dL=L({flipLeftRight_:cL});function hL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var mL=L({grayscaleToRGB_:hL});function fL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Su,s,i)}var gL=L({rotateWithOffset_:fL});function Fu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function yL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(nu,{boxes:s,scores:i},l)}var bL=L({nonMaxSuppression_:yL});function xL(e,t,n){let a=vL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function vL(e,t,n){return kL(e,t,n||wL)}function wL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function IT(e,t,n,a,r){return Vv(e,t,n,a,r,0)}function ST(e,t,n,a,r,s){return Vv(e,t,n,a,r,0,!1,s,!0)}function TT(e,t,n,a,r,s){return Vv(e,t,n,a,r,s,!0)}function Vv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(Z1);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=IL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*SL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&xL(u,g,Z1))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function IL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function SL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function Z1(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function TL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Fu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=IT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var NL=TL;function CL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(ru,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var _L=L({nonMaxSuppressionWithScore_:CL});async function EL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=TT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var $L=EL;function AL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(au,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var FL=L({nonMaxSuppressionPadded_:AL});async function DL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Fu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=ST(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var RL=DL;function ML(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var NT=L({resizeBilinear_:ML});function PL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Yi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var CT=L({resizeNearestNeighbor_:PL});function OL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=ev(le(Hm(h),"int32"),kn([]),256);u=LL(f,l)}let m=n?xs(h,u):Nn(h,u);return le(z(m,255),"int32")}function LL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(wu,l,u)}var BL=L({transform_:WL});function VL(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=W(ol(0,s,1,"int32"),[-1,1]),l=ol(0,i,1,"int32"),u=pe(o,l),p=Ea(xs(u,xe(+t,"int32")),Er(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var UL=L({bandPart_:VL});function GL(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>ws(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return J1(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=J1(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function J1(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Pm(n),s=rr(e),i=_a([[1]],[1,1]),o=rr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Cu(h),f=Be(s,[u,u],[1,1]),g=mn(Nn(f,0),_a([[-1]]),_a([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=rr(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=bt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let $=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var qL=L({qr_:jL}),xn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(xn||(xn={}));function KL(e,t,n=xn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===xn.NONE)return s;if(n===xn.SUM)return fe(s);if(n===xn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===xn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Zn(a.shape)),o=le(fe(ii(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var $r=L({computeWeightedLoss_:KL});function XL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return $r(o,i,a)}var YL=L({absoluteDifference_:XL});function ZL(e,t,n,a,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return $r(u,o,r)}var JL=L({cosineDistance_:ZL});function QL(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return $r(l,i,a)}var ez=L({hingeLoss_:QL});function tz(e,t,n,a=1,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=$u(u,l),d=pe(u,p),c=Y(z(xe(.5),ot(p)),z(l,d));return $r(c,o,r)}var nz=L({huberLoss_:tz});function az(e,t,n,a=1e-7,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=bt(z(s,ea(Y(i,u)))),d=z(pe(l,s),ea(Y(pe(l,i),u))),c=pe(p,d);return $r(c,o,r)}var rz=L({logLoss_:az});function sz(e,t,n,a=xn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Jm(r,s);return $r(o,i,a)}var iz=L({meanSquaredError_:sz});function oz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=Dc(fn(bt(Lt(a))));return Y(pe(r,s),i)}function lz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=oz(s,i);return $r(l,o,r)}var uz=L({sigmoidCrossEntropy_:lz});function pz(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return or((a,r,s)=>{let i=Wm(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=bt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=si(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),le(d,"float32")))]}}})(e,t)}function cz(e,t,n,a=0,r=xn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=pz(s,i);return $r(l,o,r)}var dz=L({softmaxCrossEntropy_:cz});function hz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(mc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var mz=L({sparseFillEmptyRows_:hz});function fz(e,t,n){let a=_(e,"inputIndices","sparseReshape","int32"),r=_(t,"inputShape","sparseReshape","int32"),s=_(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel(bu,i);return{outputIndices:o[0],outputShape:o[1]}}var gz=L({sparseReshape_:fz});function yz(e,t,n){let a=_(e,"data","sparseSegmentMean"),r=_(t,"indices","sparseSegmentMean","int32"),s=_(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(Ll,o,l)}var dv=L({depthToSpace_:IP});function SP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Tn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(_i,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var ks=L({depthwiseConv2d_:SP});function TP(e){let t={x:E(e,"x","diag")};return O.runKernel(om,t)}var OS=L({diag_:TP});function NP(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(pc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var hv=L({dilation2d_:NP});function CP(e,t){let n=E(e,"a","equal","string_or_numeric"),a=E(t,"b","equal","string_or_numeric");[n,a]=Et(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Wl,r)}var Jn=L({equal_:CP});function EP(e,t,n){let a=E(t,"a","where"),r=E(n,"b","where"),s=E(e,"condition","where","bool"),i=lt(lt(s.shape,a.shape),r.shape),o=Zs(s,i),l=Zs(a,i),u=Zs(r,i),p={condition:o,t:l,e:u};return O.runKernel(cu,p)}var fn=L({where_:EP});function _P(e){let t={x:E(e,"x","zerosLike")};return O.runKernel(Su,t)}var qe=L({zerosLike_:_P});function AP(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Et(n,a);let r=me(n,a),s=qe(r),i=Jn(a,s);return fn(i,s,r)}var mv=L({divNoNan_:AP});function $P(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var fv=L({dot_:$P});function FP(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(lm,n,a)}var LS=L({einsum_:FP});function DP(e){let t={x:E(e,"x","elu","float32")};return O.runKernel($i,t)}var Cu=L({elu_:DP});function RP(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(zl,n)}var gv=L({erf_:RP});function yv(e,t){for(let n=0;ne[s]);return[n,r]}function li(e,t){let n=t.map(a=>1);return zS(e,n,t)}function MP(e,t,n){A(yv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function BS(e,t){if(yv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function bv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function PP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Bl,a,r)}var Qt=L({expandDims_:jP});function qP(e){let t={x:E(e,"x","expm1")};return O.runKernel(Vl,t)}var vv=L({expm1_:qP});function KP(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(ys,a,r)}var Ln=L({tile_:KP});function XP(e,t,n,a="float32"){t==null&&(t=e);let r=Pe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(sl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(dc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Sv=L({localResponseNormalization_:iO});function oO(e){let t={x:E(e,"x","log","float32")};return O.runKernel(Wi,t)}var Qn=L({log_:oO});function lO(e){let t={x:E(e,"x","log1p")};return O.runKernel(Zl,t)}var Rc=L({log1p_:lO});function uO(e){return A(rs(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),zm(i),i[0]})}}function pO(e){return A(rs(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=qp(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Sn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),zm(i),i})}}function cO(e){return A(rs(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return zm(a),{grad:a[0],value:r}}}function dO(e){return A(rs(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Sn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),zm(a.grads),a}}function GS(e,t){A(rs(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ss),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return O.customGrad(e)}function zm(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function hO(e){let t={x:E(e,"x","softplus")};return O.runKernel(gu,t)}var xo=L({softplus_:hO});function mO(e){let t=E(e,"x","logSigmoid");return ur(n=>({value:bt(xo(bt(n))),gradFunc:a=>z(a,da(bt(n)))}))(t)}var Tv=L({logSigmoid_:mO});function fO(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(fo,r)}var pe=L({sub_:fO});function gO(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return ur((a,r)=>{let s=ha(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),Qn(fe(gn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=gn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var Wm=L({logSoftmax_:gO});function yO(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Fa(t,a.shape),s=ha(a,r,!0),i=pe(a,s),o=gn(i),l=fe(o,r),u=Qn(l),p=Y(W(s,u.shape),u);if(n){let d=li(p.shape,r);return W(p,d)}return p}var Bm=L({logSumExp_:yO});function bO(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Jl,r)}var $a=L({logicalAnd_:bO});function xO(e){let t={x:E(e,"x","logicalNot","bool")};return O.runKernel(Ql,t)}var Mc=L({logicalNot_:xO});function vO(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(eu,r)}var Vm=L({logicalOr_:vO});function wO(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return lt(n.shape,a.shape),$a(Vm(e,t),Mc($a(e,t)))}var Nv=L({logicalXor_:wO}),jd=2147483648;function kO(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=jd)throw new Error(`values tensor size must less than ${jd}`);if(o.shape[1]>=jd)throw new Error(`trailing dim_size must less than ${jd} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Tm,u,p)}var Um=L({searchSorted_:kO});function HS(e,t){return Um(e,t,"left")}function IO(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(cr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Tn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Ui,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:IO});function SO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Tn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(hc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Cv=L({maxPool3d_:SO});function TO(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(ym,s,i);return{result:o[0],indexes:o[1]}}var jS=L({maxPoolWithArgmax_:TO});function NO(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Et(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Vi,r)}var dr=L({maximum_:NO});function CO(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Gi,a,r)}var Nt=L({mean_:CO});function It(e,t="float32"){if(na(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return _r(a,r)}let n=Xh(mt(e),t);return O.makeTensor(n,e,t)}function Zn(e,t="float32"){if(na(e),t==="complex64"){let a=Zn(e,"float32"),r=It(e,"float32");return _r(a,r)}let n=Sx(mt(e),t);return O.makeTensor(n,e,t)}function qS(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Zn([i,1],a.dtype),a),Fe(r,Zn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Zn([1,i],a.dtype)),Fe(Zn([s,1],r.dtype),r)])}function EO(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Et(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(ji,r)}var $u=L({minimum_:EO});function _O(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(qi,i,s)}var Ev=L({mirrorPad_:_O});function AO(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(tu,r)}var _v=L({mod_:AO});function $O(e,t=null,n=!1){e=E(e,"x","moments");let a=Fa(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=li(r.shape,a));let i=ot(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Pc=L({moments_:$O});function FO(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=qp(n,"c","multiRNNCell"),i=qp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(bm,o,l);return i===1?W(u,[u.size]):u}var XS=L({multinomial_:DO});function RO(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=Et(n,a),lt(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(au,r)}var ui=L({notEqual_:RO});function MO(e){let t={x:E(e,"x","onesLike")};return O.runKernel(ou,t)}var ea=L({onesLike_:MO});function PO(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var YS=L({outerProduct_:PO});function OO(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(Yi,s,r)}var ba=L({pad_:OO});function LO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var ZS=L({pad1d_:LO});function zO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var JS=L({pad2d_:zO});function WO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var QS=L({pad3d_:WO});function BO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var eT=L({pad4d_:BO});function VO(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(yu,r,s)}var Oc=L({spaceToBatchND_:VO});function UO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(cr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=$S(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=HO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=GO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Oc(l,d,m),b=(n==="avg"?()=>ya(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:$c(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function GO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function HO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Av=L({pool_:UO});function jO(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Ji,r)}var Lc=L({prelu_:jO});function qO(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Qi,r,s)}var $v=L({prod_:qO});function KO(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(xm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var tT=L({raggedGather_:KO});function XO(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(vm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var nT=L({raggedRange_:XO});function YO(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(wm,u,p)}var aT=L({raggedTensorToTensor_:YO});function ZO(e,t,n){na(e);let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},JO=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Fv.alea(r.toString()),this.randn=new Dv(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Fv.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function e3(e,t,n=1,a="float32",r){if(na(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new JO(t,n,a,r),i=Pe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ga(t,0)}var oT=L({reverse1d_:l3});function u3(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ga(n,t)}var lT=L({reverse2d_:u3});function p3(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ga(n,t)}var uT=L({reverse3d_:p3});function c3(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ga(n,t)}var pT=L({reverse4d_:c3});function d3(e){let t={x:E(e,"x","round")};return O.runKernel(io,t)}var jm=L({round_:d3});function h3(e){let t={x:E(e,"x","rsqrt","float32")};return O.runKernel(oo,t)}var qm=L({rsqrt_:h3});function m3(e){let t={x:E(e,"x","selu")};return O.runKernel(du,t)}var Km=L({selu_:m3});function f3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=ks(p,l,a,r,i,s),f=Ft(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ss=L({separableConv2d_:f3});async function g3(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var zc=L({slice1d_:v3});function w3(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Zm=L({slice2d_:w3});function k3(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var vo=L({slice3d_:k3});function I3(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var cl=L({slice4d_:I3});function S3(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return O.runKernel(ho,a,r)}var Xa=L({softmax_:S3});function T3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(pm,t)}var Wc=L({fft_:T3});function N3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(cm,t)}var dl=L({ifft_:N3});function C3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=dl(r)}else{let r=[n,2*(t-1)],s=W(ul(e),[n,t]),i=W(Ec(e),[n,t]),o=ga(Be(s,[0,1],[n,t-2]),1),l=z(ga(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(_r(u,p),[r[0],r[1]]);a=dl(d)}if(a=ul(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var Jm=L({irfft_:C3});function E3(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(bu,a,r)}var zn=L({split_:E3});function _3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(_r(r,s),[a,n]),o=Wc(i),l=Math.floor(n/2)+1,u=ul(o),p=Ec(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(_r(d[0],c[0]),h)}var Bc=L({rfft_:_3});function A3(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Et(n,a),lt(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(mo,r,s)}var Qm=L({squaredDifference_:A3});function $3(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,NI(n.shape,t).newShape)}var Ts=L({squeeze_:$3});function F3(e,t=0){let n=qp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(lu,a,r)}var $t=L({stack_:F3});function D3(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return O.runKernel(bs,n,a)}var wo=L({step_:D3});function R3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(vu,u,p)}var Pv=L({stridedSlice_:R3});function M3(e){let t={x:E(e,"x","tan","float32")};return O.runKernel(go,t)}var Ov=L({tan_:M3});function Ke(e,t){yi(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return xs(e,null,n,t)}function Aa(e,t,n){if(yi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return xs(e,t,a,n)}function Da(e,t,n){if(yi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return xs(e,t,a,n)}function dT(e,t,n){if(yi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return xs(e,t,a,n)}function hT(e,t,n){if(yi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,xs(e,t,a,n)}function P3(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(wu,s,i);return{values:o,indices:l}}var Lv=L({topk_:P3});function O3(e,t=0,n=1,a,r){if(na(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Dv(t,n,a,!0,r),i=Pe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Cm,a,r);return{values:s,indices:i}}var zv=L({unique_:L3});function z3(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(sl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(kc,s,i)}var tf=L({unsortedSegmentSum_:z3});function W3(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(Iu,a,r)}var ut=L({unstack_:W3});function mT(e,t){return Um(e,t,"right")}function Wv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function fT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Sn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=me(p,pe(l,Ar(o,d)))}return Y(s,p)}var yT=L({movingAverage_:U3});function G3(e,t,n){na(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");Bx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(pu,s,i)}var bT=L({scatterND_:G3});function H3(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function j3(e,t,n,a=0){na(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);H3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Nm,o,l)}var xT=L({sparseToDense_:j3});function q3(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(Hl,a)}var vT=L({gatherND_:q3});function K3(e,t){if(t==null)return e.shape.slice();if(ms(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=K3(r,n),i=1-t,o=me(_u(Y(Fu(s,0,1,"float32",a),i)),i);return z(r,o)}var Vv=L({dropout_:X3});function Uv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function nf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Sn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=CI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fQ3,depthwiseConv2d:()=>aL,matMul:()=>sL});function Z3(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Tn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(tm,d,c)}var Gv=L({conv2DBackpropFilter_:Z3});function af(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,wo(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function rf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function sf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Cu(e);if(t==="relu6")return Hm(e);if(t==="prelu")return Lc(e,n);if(t==="leakyrelu")return Dc(e,a);if(t==="sigmoid")return da(e);throw new Error(`Unknown fused activation ${t}.`)}var of=(e,t)=>!(e>0)||t==="linear";function J3({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",of(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=Ft(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),sf(T,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Tn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Ac(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=E(o,"bias","fused conv2d"),[y]=Et(y,d),r==="NHWC"?lt(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{lt(T,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}b=E(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,$,R,F]=C,S=af(T,R,l);A(is(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=uv($.shape,S,_,n,a),B=Gv($,S,_.shape,n,a),U=[M,B];if(F!=null){let G=rf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,_)=>{let $=O.runKernel(ni,w,I);return _([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):ur((T,C,_,$)=>{let R=O.runKernel(ni,w,I);return $([C,T,R,_]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var Q3=L({fusedConv2d_:J3});function eL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(sm,u,p)}var kT=L({depthwiseConv2dNativeBackpropFilter_:eL});function tL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(im,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var IT=L({depthwiseConv2dNativeBackpropInput_:tL});function nL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(of(O.state.gradientDepth,l)===!1){let I=ks(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),sf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(cr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Tn("fused depthwiseConv2d",a,i);let f=Ac(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Et(g,d),lt(f.outShape,g.shape));let y;u!=null&&(y=E(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(is(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,$,R]=T,F=af(I,$,l),S=IT(_.shape,F,C,n,a,s,i),M=kT(_,F,C.shape,n,a,s,i);if(R!=null){let B=rf(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((I,T,C)=>{let _=O.runKernel(ai,x,w);return C([T,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:b}})(h,c):ur((I,T,C,_)=>{let $=O.runKernel(ai,x,w);return _([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var aL=L({fusedDepthwiseConv2d_:nL});function rL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(of(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),sf(R,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=Et(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=lt(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=Et(I,l),lt(b,I.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=af(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=rf(U,G);return[q,K,Z]}else return[q,K]},_={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((R,F,S)=>{let M=O.runKernel(ti,_,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):ur((R,F,S,M)=>{let B=O.runKernel(ti,_,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var sL=L({fusedMatMul_:rL});function iL(e){return nf(e,.54,.46)}var oL=L({hammingWindow_:iL});function lL(e){return nf(e,.5,.5)}var ST=L({hannWindow_:lL});function uL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(Ol,p,d)}var hL=L({cropAndResize_:dL});function mL(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Ul,n,{})}var fL=L({flipLeftRight_:mL});function gL(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var yL=L({grayscaleToRGB_:gL});function bL(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Tu,s,i)}var xL=L({rotateWithOffset_:bL});function Du(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function vL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=Du(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(ru,{boxes:s,scores:i},l)}var wL=L({nonMaxSuppression_:vL});function kL(e,t,n){let a=IL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function IL(e,t,n){return TL(e,t,n||SL)}function SL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function NT(e,t,n,a,r){return Hv(e,t,n,a,r,0)}function CT(e,t,n,a,r,s){return Hv(e,t,n,a,r,0,!1,s,!0)}function ET(e,t,n,a,r,s){return Hv(e,t,n,a,r,s,!0)}function Hv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(ek);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=NL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*CL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&kL(u,g,ek))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function NL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function CL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function ek(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function EL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Du(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=NT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var _L=EL;function AL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Du(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(iu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var $L=L({nonMaxSuppressionWithScore_:AL});async function FL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Du(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=ET(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var DL=FL;function RL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Du(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(su,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var ML=L({nonMaxSuppressionPadded_:RL});async function PL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Du(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=CT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var OL=PL;function LL(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(ao,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var _T=L({resizeBilinear_:LL});function zL(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(no,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var AT=L({resizeNearestNeighbor_:zL});function WL(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=av(le(jm(h),"int32"),mn([]),256);u=BL(f,l)}let m=n?Is(h,u):Nn(h,u);return le(z(m,255),"int32")}function BL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(ku,l,u)}var GL=L({transform_:UL});function HL(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=W(pi(0,s,1,"int32"),[-1,1]),l=pi(0,i,1,"int32"),u=pe(o,l),p=$a(Is(u,xe(+t,"int32")),$r(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W($t(ut(W(a,[-1,s,i])).map(c=>fn(p,c,d))),r)}var jL=L({bandPart_:HL});function qL(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>Ts(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return tk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ut(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=tk(l,t);r.push(u),s.push(p)});let i=W($t(r,0),e.shape),o=W($t(s,0),e.shape);return[i,o]}}function tk(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Om(n),s=sr(e),i=Aa([[1]],[1,1]),o=sr(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Eu(h),f=Be(s,[u,u],[1,1]),g=fn(Nn(f,0),Aa([[-1]]),Aa([[1]])),y=pe(f,z(g,m)),b=me(h,y);b.shape[0]===1?o=sr(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=bt(me(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=_e(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=_e(I),_=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,Fe(Fe(_,o),C));else{let $=pe(_,Fe(Fe(_,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var YL=L({qr_:XL}),vn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(vn||(vn={}));function ZL(e,t,n=vn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===vn.NONE)return s;if(n===vn.SUM)return fe(s);if(n===vn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=me(fe(s),fe(r));return i>1?me(o,xe(i)):o}}if(n===vn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return me(fe(s),xe(a.size));{let i=z(r,Zn(a.shape)),o=le(fe(ui(i,xe(0))),"float32");return me(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Fr=L({computeWeightedLoss_:ZL});function JL(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Sn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Fr(o,i,a)}var QL=L({absoluteDifference_:JL});function ez(e,t,n,a,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Sn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Fr(u,o,r)}var tz=L({cosineDistance_:ez});function nz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Sn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return Fr(l,i,a)}var az=L({hingeLoss_:nz});function rz(e,t,n,a=1,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Sn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=$u(u,l),d=pe(u,p),c=Y(z(xe(.5),ot(p)),z(l,d));return Fr(c,o,r)}var sz=L({huberLoss_:rz});function iz(e,t,n,a=1e-7,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Sn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=bt(z(s,Qn(Y(i,u)))),d=z(pe(l,s),Qn(Y(pe(l,i),u))),c=pe(p,d);return Fr(c,o,r)}var oz=L({logLoss_:iz});function lz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Sn(r.shape,s.shape,"Error in meanSquaredError: ");let o=Qm(r,s);return Fr(o,i,a)}var uz=L({meanSquaredError_:lz});function pz(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Sn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=Rc(gn(bt(Lt(a))));return Y(pe(r,s),i)}function cz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),Sn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=pz(s,i);return Fr(l,o,r)}var dz=L({sigmoidCrossEntropy_:cz});function hz(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return ur((a,r,s)=>{let i=Bm(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=bt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=li(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),gn(c))),z(W(u,h),pe(gn(c),le(d,"float32")))]}}})(e,t)}function mz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),Sn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),me(u,d))}let l=hz(s,i);return Fr(l,o,r)}var fz=L({softmaxCrossEntropy_:mz});function gz(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(fc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var yz=L({sparseFillEmptyRows_:gz});function bz(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel(xu,i);return{outputIndices:o[0],outputShape:o[1]}}var xz=L({sparseReshape_:bz});function vz(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(fc,i)}var bz=L({sparseSegmentMean_:yz});function xz(e,t,n){let a=_(e,"data","sparseSegmentSum"),r=_(t,"indices","sparseSegmentSum","int32"),s=_(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(gc,i)}var wz=L({sparseSegmentMean_:vz});function kz(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(gc,i)}var vz=L({sparseSegmentSum_:xz});function wz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(bc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var kz=L({stringNGrams_:wz});function Iz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(xc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Sz=L({stringSplit_:Iz});function Tz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(vc,r,a)}var Nz=L({stringToHashBucketFast_:Tz}),_T={fft:zc,ifft:ul,rfft:Wc,irfft:Zm},ET={hammingWindow:rL,hannWindow:wT,frame:kT,stft:lL},za={flipLeftRight:dL,grayscaleToRGB:mL,resizeNearestNeighbor:CT,resizeBilinear:NT,rotateWithOffset:gL,cropAndResize:pL,nonMaxSuppression:bL,nonMaxSuppressionAsync:NL,nonMaxSuppressionWithScore:_L,nonMaxSuppressionWithScoreAsync:$L,nonMaxSuppressionPadded:FL,nonMaxSuppressionPaddedAsync:RL,threshold:zL,transform:BL},Uv={bandPart:UL,gramSchmidt:HL,qr:qL},$T={absoluteDifference:YL,computeWeightedLoss:$r,cosineDistance:JL,hingeLoss:ez,huberLoss:nz,logLoss:rz,meanSquaredError:iz,sigmoidCrossEntropy:uz,softmaxCrossEntropy:dz},AT={sparseFillEmptyRows:mz,sparseReshape:gz,sparseSegmentMean:bz,sparseSegmentSum:vz},FT={stringNGrams:kz,stringSplit:Sz,stringToHashBucketFast:Nz},Ar=class extends IS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return BS(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Ar,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var of=class extends Ar{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(ot(s),1-this.rho)),u=z(he(ln(Y(o,this.epsilon)),ln(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(ot(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};of.className="Adadelta";gs(of);var lf=class extends Ar{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,ot(r));s.assign(i);let o=Y(z(he(r,ln(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};lf.className="Adagrad";gs(lf);var uf=class extends Ar{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(ot(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(ln(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(_r(this.beta1,this.iterations_+1)),this.accBeta2.assign(_r(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};uf.className="Adam";gs(uf);var pf=class extends Ar{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=pr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};pf.className="Adamax";gs(pf);var Bc=class extends Ar{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Bc.className="SGD";gs(Bc);var cf=class extends Bc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};cf.className="Momentum";gs(cf);var df=class extends Ar{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(ot(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),ln(pe(l,Y(ot(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(ot(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),ln(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};df.className="RMSProp";gs(df);var Hr=class{static sgd(e){return new Bc(e)}static momentum(e,t,n=!1){return new cf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new df(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new uf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new of(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new pf(e,t,n,a,r)}static adagrad(e,t=.1){return new lf(e,t)}},zs={sgd:Hr.sgd,momentum:Hr.momentum,adadelta:Hr.adadelta,adagrad:Hr.adagrad,rmsprop:Hr.rmsprop,adamax:Hr.adamax,adam:Hr.adam},Cz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Gv(){return new Promise(e=>Cz(()=>e()))}var N={};$e(N,{ERF_A1:()=>Vz,ERF_A2:()=>Uz,ERF_A3:()=>Gz,ERF_A4:()=>Hz,ERF_A5:()=>jz,ERF_P:()=>Bz,PARALLELIZE_THRESHOLD:()=>Hv,RowPartitionType:()=>er,SELU_SCALE:()=>RT,SELU_SCALEALPHA:()=>DT,applyActivation:()=>rf,assertAndGetBroadcastShape:()=>lt,assertAxesAreInnerMostDims:()=>FP,assertParamsConsistent:()=>_z,assignToTypedArray:()=>Jz,axesAreInnerMostDims:()=>mv,calculateShapes:()=>hS,checkEinsumDimSizes:()=>rW,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>PS,combineRaggedTensorToTensorShapes:()=>$z,complexWithEvenIndex:()=>Xz,complexWithOddIndex:()=>Yz,computeConv2DInfo:()=>Ec,computeConv3DInfo:()=>ES,computeDefaultPad:()=>Xx,computeDilation2DInfo:()=>DM,computeOptimalWindowSize:()=>Rz,computeOutAndReduceShapes:()=>OS,computeOutShape:()=>Ez,computePool2DInfo:()=>_S,computePool3DInfo:()=>RM,convertConv2DDataFormat:()=>$S,decodeEinsumEquation:()=>nW,eitherStridesOrDilationsAreOne:()=>ur,expandShapeToKeepDim:()=>si,exponent:()=>eW,exponents:()=>Qz,fromStringArrayToUint8:()=>TW,fromUint8ToStringArray:()=>SW,getAxesPermutation:()=>LS,getBroadcastDims:()=>pS,getComplexWithIndex:()=>Zz,getEinsumComputePath:()=>sW,getEinsumPermutation:()=>aW,getFusedBiasGradient:()=>af,getFusedDyActivation:()=>nf,getImageCenter:()=>Mz,getInnerMostAxes:()=>DP,getPermuted:()=>Oz,getRaggedRank:()=>Fz,getReductionAxes:()=>Wt,getReshaped:()=>Pz,getReshapedPermuted:()=>Lz,getRowPartitionTypesHelper:()=>Az,getSliceBeginCoords:()=>zz,getSliceSize:()=>Wz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>uW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>pW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>cW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>mW,getSparseReshapeInputOutputMismatchErrorMessage:()=>gW,getSparseReshapeInputOutputMultipleErrorMessage:()=>fW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>dW,getSparseReshapeNegativeOutputDimErrorMessage:()=>hW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>vW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>yW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>bW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>xW,getUndoAxesPermutation:()=>fv,isIdentityPermutation:()=>iW,log:()=>YF,mergeRealAndImagArrays:()=>qz,prepareAndValidate:()=>dS,prepareSplitSize:()=>lW,segment_util:()=>MT,shouldFuse:()=>sf,slice_util:()=>jt,splitRealAndImagArrays:()=>Kz,tupleValuesAreOne:()=>ns,upcastType:()=>ma,validateDefaultValueShape:()=>Dz,validateInput:()=>Lx,validateUpdateShape:()=>Ox,warn:()=>qr});function _z(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Ez(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Az(e){let t={FIRST_DIM_SIZE:er.FIRST_DIM_SIZE,VALUE_ROWIDS:er.VALUE_ROWIDS,ROW_LENGTHS:er.ROW_LENGTHS,ROW_SPLITS:er.ROW_SPLITS,ROW_LIMITS:er.ROW_LIMITS,ROW_STARTS:er.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Fz(e){return e.length===0?0:e[0]===er.FIRST_DIM_SIZE?e.length-1:e.length}function Dz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Hv=30;function Rz(e){return e<=Hv?e:mh(e,Math.floor(Math.sqrt(e)))}function Mz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Pz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Lz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Q1=",",ek="...";function nW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(tW,"").length)/ub.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${ub}").`);let[a,r]=e.split(ub);A(a.indexOf(ek)===-1,()=>`The ellipsis notation ("${ek}") is not supported yet.`);let s=a.split(Q1),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function rW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function sW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function oW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function uW(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function pW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function cW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function dW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function hW(e,t){return`size ${e} must be non-negative, not ${t}`}function mW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function fW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function gW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function yW(){return"segment ids must be >= 0"}function bW(){return"segment ids are not increasing"}function xW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function vW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var MT={};$e(MT,{collectGatherOpShapeInfo:()=>IW,computeOutShape:()=>kW,segOpComputeOptimalWindowSize:()=>wW});function wW(e,t){let n=!1,a;for(e<=Hv?(a=e,n=!0):a=mh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=mh(e,a+1);return a}function kW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nvh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function TW(e){return e.map(t=>Sc(t))}var cr={};$e(cr,{nonMaxSuppressionV3Impl:()=>IT,nonMaxSuppressionV4Impl:()=>ST,nonMaxSuppressionV5Impl:()=>TT,whereImpl:()=>dT});var PT={kernelName:wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fo(le(n,"float32"),-1))}}},NW={kernelName:kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(le(n,"float32")),r=ln(pe(xe(1),a));return bt(he(e,r))}}}},CW={kernelName:Il,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(pe(ot(le(n,"float32")),1));return he(e,a)}}}},_W={kernelName:cs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},EW={kernelName:mi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},$W={kernelName:fi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},AW={kernelName:sc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},FW={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ln(pe(xe(1),ot(le(n,"float32")))))}}},DW={kernelName:Cl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ln(Y(xe(1),ot(le(n,"float32"))));return he(e,a)}}}},RW={kernelName:$l,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Y(ot(n),ot(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(ot(n),ot(a)),i=bt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},MW={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(ot(le(n,"float32")),1))}}},PW={kernelName:El,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),ot(le(n,"float32"))))}}};function OW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Yh,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var LW=L({avgPool3dGrad_:OW}),zW={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>LW(e,a,r,s,i,o)}}};function WW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(Xh,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var BW=L({avgPoolGrad_:WW}),VW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>BW(e,a,r,s,i)}}},UW={kernelName:yi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},GW={kernelName:Al,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Pc(e,a,r)}}},HW={kernelName:RI,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},jW={kernelName:bi,gradFunc:e=>({x:()=>e.clone()})},qW={kernelName:xi,gradFunc:e=>({x:()=>qe(e)})},KW={kernelName:ds,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Ea(Er(a,r),xs(a,s)),e,qe(e))}}},XW={kernelName:oc,inputsToSave:["x"],gradFunc:PT.gradFunc},YW={kernelName:Fl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=$a(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},ZW={kernelName:vi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(ns(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>iv(a.shape,e,r,i,o,l),filter:()=>Bv(a,e,r.shape,i,o,l)}}},JW={kernelName:wi,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>Bv(e,a,r.shape,s,i,o,l)}}};function QW(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(tm,o,l)}var eB=L({conv3DBackpropFilter_:QW}),tB={kernelName:lc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(ns(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>DS(i.shape,e,o,r,s),filter:()=>eB(i,e,o.shape,r,s)}}},nB={kernelName:ki,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(bt(Km(le(n,"float32"))),e)}}},aB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(le(n,"float32")),e)}}},rB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=LS([r],a.rank),l=Mm(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},sB={kernelName:Ti,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(ns(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),A(ur(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>vT(l.shape,e,u,r,s,o,i),filter:()=>xT(l,e,u.shape,r,s,o,i)}}},iB={kernelName:uc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel(fh,s,n),filter:()=>O.runKernel(gh,i,n)}}},oB={kernelName:Ci,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(lm,a)}}},lB={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(bt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},uB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},pB={kernelName:Ll,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},cB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},dB={kernelName:Ei,gradFunc:e=>({x:()=>qe(e)})},hB={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,le(o,"float32")))}}}},mB={kernelName:Ai,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},fB={kernelName:Bl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=$a(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=tk(0,p),m=tk(p+1,p+1+c),f=nk([u,[l],d]),g=W(e,f),y=W(r,[l]),b=nk([[p],h,m]),x=Ee(g,b),w=ef(x,y,a.shape[i]),I=fv(b);return w=Ee(w,I),w},indices:()=>r}}};function tk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},yB={kernelName:Di,gradFunc:e=>({x:()=>le(e,"float32")})},bB={kernelName:Gl,gradFunc:e=>({x:()=>qe(e)})},xB={kernelName:Hl,gradFunc:e=>({x:()=>qe(e)})},vB={kernelName:jl,gradFunc:e=>({x:()=>qe(e)})},wB={kernelName:Ri,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Nn(a,0);return{x:()=>mn(s,e,z(e,r))}}},kB={kernelName:Xl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},IB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,le(n,"float32"))}}},SB={kernelName:PI,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function TB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(hm,o,l)}var NB=L({localResponseNormalizationBackprop_:TB}),CB={kernelName:cc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>NB(a,r,e,s,i,o,l)}}};function OT(e,t,n,a){return t.rankz(e,le(Qn(n,t),e.dtype))}}var ak={kernelName:Pi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=$a(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},_B={kernelName:Oi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Er(n,a),"float32")),b:()=>z(e,le(Om(n,a),"float32"))}}};function EB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(fm,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var $B=L({maxPool3dGrad_:EB}),AB={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>$B(e,a,r,s,i,o,l)}}};function FB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(mm,p,d)}var DB=L({maxPoolGrad_:FB}),RB={kernelName:Li,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>DB(e,a,r,s,i,o)}}},MB={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=$a(r,a.shape),i=OS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Zn(a.shape,"float32")),o)}}}},PB={kernelName:Wi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=$a(r,s.shape),l=OT(e,i,s,o);return{x:()=>l.x()}}},OB={kernelName:Bi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(xs(n,a),"float32")),b:()=>z(e,le(Nn(n,a),"float32"))}}},LB={kernelName:Vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},zB={kernelName:Ql,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,bt(_u(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},WB={kernelName:Ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},BB={kernelName:eu,gradFunc:e=>({x:()=>bt(e)})},VB={kernelName:Gi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},UB={kernelName:su,gradFunc:e=>({x:()=>qe(e)})},GB={kernelName:iu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},rk={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},HB={kernelName:ji,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=lt(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,_r(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Nn(s,0),u=mn(l,ea(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},jB={kernelName:qi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Nn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function qB(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Kp(e,n,!0,!1),i=Kp(e,n,!0,!0),o=z(s,i);return z(r,o)}function KB(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=qB(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var XB={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>KB(a,e,s)}}},YB={kernelName:Ni,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(he(s,le(o,"float32")))}}}},ZB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,bt(ot(n)))}}},JB={kernelName:Ji,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(xs(n,6),fo(n));return{x:()=>z(e,le(a,"float32"))}}},QB={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(fo(n),"float32"))}}},e4={kernelName:lu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},t4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Im,r,n)}}},n4={kernelName:Yi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(km,r,n)}}},a4={kernelName:Qi,gradFunc:(e,t,n)=>{let{dims:a}=n,r=$a(a,e.shape);return{x:()=>fa(e,r)}}},r4={kernelName:eo,gradFunc:e=>({x:()=>qe(e)})},s4={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>bt(he(e,z(_r(n,1.5),2)))}}},i4={kernelName:pu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Rc(n),e.dtype))}}},o4={kernelName:cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Nn(n,xe(0)),r=xe(DT),s=xe(RT),i=z(e,s),o=z(z(e,r),fn(le(n,"float32")));return mn(a,i,o)}}}},l4={kernelName:ao,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},u4={kernelName:mu,gradFunc:e=>({x:()=>qe(e)})},p4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Ac(le(n,"float32")),e)}}},c4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Rm(le(n,"float32")),e)}}},d4={kernelName:du,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=kS(a,r,s),u=[];for(let p=0;pya(e,u)}}},h4={kernelName:io,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},m4={kernelName:fu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,da(n))}}},sk={kernelName:gu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>$c(e,a,r)}}},ik={kernelName:yu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},f4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(ln(le(n,"float32")),2))}}},g4={kernelName:yc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},y4={kernelName:oo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},b4={kernelName:ms,gradFunc:e=>({x:()=>qe(e)})},x4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(bt(s),a.shape)}}}},v4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;$a(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Zn(a.shape,"float32"));return{x:()=>o}}},w4={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,ot(Ac(n)))}}},k4={kernelName:po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),ot(n)),e)}}},I4={kernelName:hs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=fv(r);return{x:()=>Ee(e,s)}}},T4={kernelName:ku,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},N4={kernelName:wc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>C4(e,n)}}};function C4(e,t){let n=pr(t,qe(t)),a=Eu(e,n),r=Er(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},E4=[PT,NW,CW,_W,EW,$W,AW,FW,DW,RW,MW,PW,zW,VW,UW,GW,HW,jW,qW,KW,XW,YW,JW,ZW,tB,nB,aB,rB,sB,iB,YB,oB,lB,uB,pB,cB,hB,dB,mB,fB,gB,yB,bB,xB,vB,wB,kB,IB,SB,CB,ak,ak,_B,AB,RB,MB,PB,OB,LB,zB,WB,BB,VB,UB,GB,rk,rk,HB,jB,XB,ZB,JB,QB,e4,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,d4,h4,m4,sk,sk,ik,ik,f4,y4,g4,b4,x4,v4,w4,k4,I4,S4,T4,N4,_4];for(let e of E4)OI(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Bx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Vx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Am(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),qp(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ai(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Ux(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Gx(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Hx(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),jx(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),qx(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Kx(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ga(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$c(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ys(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Ks(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),tv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Fm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Dm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Ac(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Rm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Kp(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Mm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),uv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),bs(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),pv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),cv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),dv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Nu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),hv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),gv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),yv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),zc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),_u(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),$m(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Eu(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Er(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Nn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),ul(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),Zm(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),bv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),xv(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),vv(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Fc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),xs(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Om(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),wv(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),kv(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),zm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Wm(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),Dc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Ea(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Rc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),Bm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Iv(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ha(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),pr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),il(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),$u(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Tv(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Nv(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),bt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Cu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),ii(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),rl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),ya(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Cv(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),_r(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Oc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),_v(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Av(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Gm(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),NT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),CT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),fa(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),Hm(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),jm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),qm(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),vs(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Fv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),Km(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),ho(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),ln(this)};Q().prototype.square=function(){return this.throwIfDisposed(),ot(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Jm(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),ws(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),fo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Dv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Rv(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),ri(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Mv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Pv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),ef(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var vr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,vr.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Re=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Re.prototype)}},LT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,LT.prototype)}},zT=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var ka={};function jv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Mb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Mb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Mb(a))}}}function Vc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in ka)i=ka[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(yc,i)}var Iz=L({sparseSegmentSum_:kz});function Sz(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(xc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Tz=L({stringNGrams_:Sz});function Nz(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(vc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Cz=L({stringSplit_:Nz});function Ez(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(wc,r,a)}var _z=L({stringToHashBucketFast_:Ez}),$T={fft:Wc,ifft:dl,rfft:Bc,irfft:Jm},FT={hammingWindow:oL,hannWindow:ST,frame:TT,stft:cL},_a={flipLeftRight:fL,grayscaleToRGB:yL,resizeNearestNeighbor:AT,resizeBilinear:_T,rotateWithOffset:xL,cropAndResize:hL,nonMaxSuppression:wL,nonMaxSuppressionAsync:_L,nonMaxSuppressionWithScore:$L,nonMaxSuppressionWithScoreAsync:DL,nonMaxSuppressionPadded:ML,nonMaxSuppressionPaddedAsync:OL,threshold:VL,transform:GL},jv={bandPart:jL,gramSchmidt:KL,qr:YL},DT={absoluteDifference:QL,computeWeightedLoss:Fr,cosineDistance:tz,hingeLoss:az,huberLoss:sz,logLoss:oz,meanSquaredError:uz,sigmoidCrossEntropy:dz,softmaxCrossEntropy:fz},RT={sparseFillEmptyRows:yz,sparseReshape:xz,sparseSegmentMean:wz,sparseSegmentSum:Iz},MT={stringNGrams:Tz,stringSplit:Cz,stringToHashBucketFast:_z},Dr=class extends NS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Ee(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return GS(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Dr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var lf=class extends Dr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(ot(s),1-this.rho)),u=z(me(un(Y(o,this.epsilon)),un(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(ot(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ee(this.accumulatedGrads.map(e=>e.variable)),Ee(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};lf.className="Adadelta";vs(lf);var uf=class extends Dr{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,ot(r));s.assign(i);let o=Y(z(me(r,un(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ee(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};uf.className="Adagrad";vs(uf);var pf=class extends Dr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(ot(l),1-this.beta2)),h=me(d,n),m=me(c,a);u.assign(d),p.assign(c);let f=Y(z(me(h,Y(un(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ee(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(Ar(this.beta1,this.iterations_+1)),this.accBeta2.assign(Ar(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};pf.className="Adam";vs(pf);var cf=class extends Dr{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=me(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=Y(z(me(a,n),me(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ee(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};cf.className="Adamax";vs(cf);var Vc=class extends Dr{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Vc.className="SGD";vs(Vc);var df=class extends Vc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ee(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};df.className="Momentum";vs(df);var hf=class extends Dr{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(ot(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=me(z(s,this.learningRate),un(pe(l,Y(ot(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(ot(s),1-this.decay)),p=Y(z(o,this.momentum),me(z(s,this.learningRate),un(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ee(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ee(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ee(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};hf.className="RMSProp";vs(hf);var qr=class{static sgd(e){return new Vc(e)}static momentum(e,t,n=!1){return new df(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new hf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new pf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new lf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new cf(e,t,n,a,r)}static adagrad(e,t=.1){return new uf(e,t)}},Us={sgd:qr.sgd,momentum:qr.momentum,adadelta:qr.adadelta,adagrad:qr.adagrad,rmsprop:qr.rmsprop,adamax:qr.adamax,adam:qr.adam},Az=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function qv(){return new Promise(e=>Az(()=>e()))}var N={};Ae(N,{ERF_A1:()=>Hz,ERF_A2:()=>jz,ERF_A3:()=>qz,ERF_A4:()=>Kz,ERF_A5:()=>Xz,ERF_P:()=>Gz,PARALLELIZE_THRESHOLD:()=>Kv,RowPartitionType:()=>tr,SELU_SCALE:()=>OT,SELU_SCALEALPHA:()=>PT,applyActivation:()=>sf,assertAndGetBroadcastShape:()=>lt,assertAxesAreInnerMostDims:()=>MP,assertParamsConsistent:()=>$z,assignToTypedArray:()=>tW,axesAreInnerMostDims:()=>yv,calculateShapes:()=>gS,checkEinsumDimSizes:()=>oW,checkPadOnDimRoundingMode:()=>Tn,combineLocations:()=>zS,combineRaggedTensorToTensorShapes:()=>Dz,complexWithEvenIndex:()=>Jz,complexWithOddIndex:()=>Qz,computeConv2DInfo:()=>Ac,computeConv3DInfo:()=>FS,computeDefaultPad:()=>Jx,computeDilation2DInfo:()=>PM,computeOptimalWindowSize:()=>Oz,computeOutAndReduceShapes:()=>WS,computeOutShape:()=>Fz,computePool2DInfo:()=>$S,computePool3DInfo:()=>OM,convertConv2DDataFormat:()=>DS,decodeEinsumEquation:()=>sW,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>li,exponent:()=>aW,exponents:()=>nW,fromStringArrayToUint8:()=>EW,fromUint8ToStringArray:()=>CW,getAxesPermutation:()=>BS,getBroadcastDims:()=>hS,getComplexWithIndex:()=>eW,getEinsumComputePath:()=>lW,getEinsumPermutation:()=>iW,getFusedBiasGradient:()=>rf,getFusedDyActivation:()=>af,getImageCenter:()=>Lz,getInnerMostAxes:()=>PP,getPermuted:()=>Wz,getRaggedRank:()=>Mz,getReductionAxes:()=>Wt,getReshaped:()=>zz,getReshapedPermuted:()=>Bz,getRowPartitionTypesHelper:()=>Rz,getSliceBeginCoords:()=>Vz,getSliceSize:()=>Uz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>dW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>hW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>mW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>yW,getSparseReshapeInputOutputMismatchErrorMessage:()=>xW,getSparseReshapeInputOutputMultipleErrorMessage:()=>bW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>fW,getSparseReshapeNegativeOutputDimErrorMessage:()=>gW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>IW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>vW,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>wW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>kW,getUndoAxesPermutation:()=>bv,isIdentityPermutation:()=>uW,log:()=>QF,mergeRealAndImagArrays:()=>Yz,prepareAndValidate:()=>fS,prepareSplitSize:()=>cW,segment_util:()=>LT,shouldFuse:()=>of,slice_util:()=>Kt,splitRealAndImagArrays:()=>Zz,tupleValuesAreOne:()=>is,upcastType:()=>ma,validateDefaultValueShape:()=>Pz,validateInput:()=>Bx,validateUpdateShape:()=>Wx,warn:()=>Yr});function $z(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Fz(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Rz(e){let t={FIRST_DIM_SIZE:tr.FIRST_DIM_SIZE,VALUE_ROWIDS:tr.VALUE_ROWIDS,ROW_LENGTHS:tr.ROW_LENGTHS,ROW_SPLITS:tr.ROW_SPLITS,ROW_LIMITS:tr.ROW_LIMITS,ROW_STARTS:tr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Mz(e){return e.length===0?0:e[0]===tr.FIRST_DIM_SIZE?e.length-1:e.length}function Pz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Kv=30;function Oz(e){return e<=Kv?e:fh(e,Math.floor(Math.sqrt(e)))}function Lz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function zz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Bz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,nk=",",ak="...";function sW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(rW,"").length)/db.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${db}").`);let[a,r]=e.split(db);A(a.indexOf(ak)===-1,()=>`The ellipsis notation ("${ak}") is not supported yet.`);let s=a.split(nk),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function oW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function lW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function pW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function dW(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function hW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function mW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function fW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function gW(e,t){return`size ${e} must be non-negative, not ${t}`}function yW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function bW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function xW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function vW(){return"segment ids must be >= 0"}function wW(){return"segment ids are not increasing"}function kW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function IW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var LT={};Ae(LT,{collectGatherOpShapeInfo:()=>NW,computeOutShape:()=>TW,segOpComputeOptimalWindowSize:()=>SW});function SW(e,t){let n=!1,a;for(e<=Kv?(a=e,n=!0):a=fh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=fh(e,a+1);return a}function TW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nwh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function EW(e){return e.map(t=>Tc(t))}var hr={};Ae(hr,{nonMaxSuppressionV3Impl:()=>NT,nonMaxSuppressionV4Impl:()=>CT,nonMaxSuppressionV5Impl:()=>ET,whereImpl:()=>fT});var zT={kernelName:Sl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,wo(le(n,"float32"),-1))}}},_W={kernelName:Tl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=ot(le(n,"float32")),r=un(pe(xe(1),a));return bt(me(e,r))}}}},AW={kernelName:Nl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(pe(ot(le(n,"float32")),1));return me(e,a)}}}},$W={kernelName:fs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},FW={kernelName:bi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},DW={kernelName:xi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},RW={kernelName:ic,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},MW={kernelName:_l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,un(pe(xe(1),ot(le(n,"float32")))))}}},PW={kernelName:Al,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(Y(xe(1),ot(le(n,"float32"))));return me(e,a)}}}},OW={kernelName:Dl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Y(ot(n),ot(a)),i=z(e,me(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(ot(n),ot(a)),i=bt(z(e,me(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},LW={kernelName:$l,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,Y(ot(le(n,"float32")),1))}}},zW={kernelName:Fl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,pe(xe(1),ot(le(n,"float32"))))}}};function WW(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Tn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(Zh,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var BW=L({avgPool3dGrad_:WW}),VW={kernelName:oc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>BW(e,a,r,s,i,o)}}};function UW(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(Yh,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var GW=L({avgPoolGrad_:UW}),HW={kernelName:vi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>GW(e,a,r,s,i)}}},jW={kernelName:wi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},qW={kernelName:Rl,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Oc(e,a,r)}}},KW={kernelName:OI,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},XW={kernelName:ki,gradFunc:e=>({x:()=>e.clone()})},YW={kernelName:Ii,gradFunc:e=>({x:()=>qe(e)})},ZW={kernelName:gs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>fn($a($r(a,r),Is(a,s)),e,qe(e))}}},JW={kernelName:lc,inputsToSave:["x"],gradFunc:zT.gradFunc},QW={kernelName:Ml,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Fa(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},eB={kernelName:Si,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(is(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>uv(a.shape,e,r,i,o,l),filter:()=>Gv(a,e,r.shape,i,o,l)}}},tB={kernelName:Ti,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Ft(e,r,s,i,o,1,l),filter:()=>Gv(e,a,r.shape,s,i,o,l)}}};function nB(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(nm,o,l)}var aB=L({conv3DBackpropFilter_:nB}),rB={kernelName:uc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(is(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>PS(i.shape,e,o,r,s),filter:()=>aB(i,e,o.shape,r,s)}}},sB={kernelName:Ni,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(bt(Xm(le(n,"float32"))),e)}}},iB={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Ym(le(n,"float32")),e)}}},oB={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=BS([r],a.rank),l=Pm(e,r,s,!i);return o!=null&&(l=_e(l,o)),l}}}},lB={kernelName:_i,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(is(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),A(cr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Tn("depthwiseConv2d",s,i),{x:()=>IT(l.shape,e,u,r,s,o,i),filter:()=>kT(l,e,u.shape,r,s,o,i)}}},uB={kernelName:pc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel(gh,s,n),filter:()=>O.runKernel(yh,i,n)}}},pB={kernelName:$i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(um,a)}}},cB={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(gn(bt(ot(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},dB={kernelName:Fi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},hB={kernelName:Bl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},mB={kernelName:Vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,gn(n))}}},fB={kernelName:Di,gradFunc:e=>({x:()=>qe(e)})},gB={kernelName:Ri,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=me(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(me(s,le(o,"float32")))}}}},yB={kernelName:Mi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},bB={kernelName:Gl,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Fa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=rk(0,p),m=rk(p+1,p+1+c),f=sk([u,[l],d]),g=W(e,f),y=W(r,[l]),b=sk([[p],h,m]),x=_e(g,b),w=tf(x,y,a.shape[i]),I=bv(b);return w=_e(w,I),w},indices:()=>r}}};function rk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},vB={kernelName:Oi,gradFunc:e=>({x:()=>le(e,"float32")})},wB={kernelName:ql,gradFunc:e=>({x:()=>qe(e)})},kB={kernelName:Kl,gradFunc:e=>({x:()=>qe(e)})},IB={kernelName:Li,gradFunc:e=>({x:()=>qe(e)})},SB={kernelName:zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Nn(a,0);return{x:()=>fn(s,e,z(e,r))}}},TB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,Y(n,1))}}},NB={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,le(n,"float32"))}}},CB={kernelName:zI,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=gn(a);return pe(e,z(fe(e,r,!0),s))}}}};function EB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(mm,o,l)}var _B=L({localResponseNormalizationBackprop_:EB}),AB={kernelName:dc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>_B(a,r,e,s,i,o,l)}}};function WT(e,t,n,a){return t.rankz(e,le(Jn(n,t),e.dtype))}}var ik={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Fa(r,s.shape),l=WT(e,i,s,o);return{x:()=>l.x()}}},$B={kernelName:Vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le($r(n,a),"float32")),b:()=>z(e,le(Lm(n,a),"float32"))}}};function FB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Tn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel(gm,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var DB=L({maxPool3dGrad_:FB}),RB={kernelName:hc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>DB(e,a,r,s,i,o,l)}}};function MB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Tn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(fm,p,d)}var PB=L({maxPoolGrad_:MB}),OB={kernelName:Ui,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>PB(e,a,r,s,i,o)}}},LB={kernelName:Gi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Fa(r,a.shape),i=WS(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return me(z(u,Zn(a.shape,"float32")),o)}}}},zB={kernelName:Hi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Fa(r,s.shape),l=WT(e,i,s,o);return{x:()=>l.x()}}},WB={kernelName:ji,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Is(n,a),"float32")),b:()=>z(e,le(Nn(n,a),"float32"))}}},BB={kernelName:qi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},VB={kernelName:tu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,bt(_u(me(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},UB={kernelName:Ki,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},GB={kernelName:nu,gradFunc:e=>({x:()=>bt(e)})},HB={kernelName:Xi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},jB={kernelName:ou,gradFunc:e=>({x:()=>qe(e)})},qB={kernelName:lu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ut(e,a).map(r=>()=>r)}},ok={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},KB={kernelName:Zi,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=lt(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,Ar(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Nn(s,0),u=fn(l,Qn(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},XB={kernelName:Ji,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Nn(n,0);return{x:()=>fn(r,e,z(e,a)),alpha:()=>{let s=fn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function YB(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=Xp(e,n,!0,!1),i=Xp(e,n,!0,!0),o=z(s,i);return z(r,o)}function ZB(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=_e(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=YB(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=_e(p,d)}return p}var JB={kernelName:Qi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>ZB(a,e,s)}}},QB={kernelName:Ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=me(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=ot(a);return bt(me(s,le(o,"float32")))}}}},e4={kernelName:eo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,bt(ot(n)))}}},t4={kernelName:ro,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Is(n,6),wo(n));return{x:()=>z(e,le(a,"float32"))}}},n4={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(wo(n),"float32"))}}},a4={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},r4={kernelName:ao,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Sm,r,n)}}},s4={kernelName:no,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Im,r,n)}}},i4={kernelName:so,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Fa(a,e.shape);return{x:()=>ga(e,r)}}},o4={kernelName:io,gradFunc:e=>({x:()=>qe(e)})},l4={kernelName:oo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>bt(me(e,z(Ar(n,1.5),2)))}}},u4={kernelName:cu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Mc(n),e.dtype))}}},p4={kernelName:du,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Nn(n,xe(0)),r=xe(PT),s=xe(OT),i=z(e,s),o=z(z(e,r),gn(le(n,"float32")));return fn(a,i,o)}}}},c4={kernelName:uo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},d4={kernelName:fu,gradFunc:e=>({x:()=>qe(e)})},h4={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Fc(le(n,"float32")),e)}}},m4={kernelName:mu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Mm(le(n,"float32")),e)}}},f4={kernelName:hu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=TS(a,r,s),u=[];for(let p=0;pba(e,u)}}},g4={kernelName:ho,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},y4={kernelName:gu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,da(n))}}},lk={kernelName:yu,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>$c(e,a,r)}}},uk={kernelName:bu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},b4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,z(un(le(n,"float32")),2))}}},x4={kernelName:bc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},v4={kernelName:mo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},w4={kernelName:bs,gradFunc:e=>({x:()=>qe(e)})},k4={kernelName:fo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=lt(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(bt(s),a.shape)}}}},I4={kernelName:co,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Fa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Zn(a.shape,"float32"));return{x:()=>o}}},S4={kernelName:go,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,ot(Fc(n)))}}},T4={kernelName:yo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),ot(n)),e)}}},N4={kernelName:ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=bv(r);return{x:()=>_e(e,s)}}},E4={kernelName:Iu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},_4={kernelName:kc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>A4(e,n)}}};function A4(e,t){let n=dr(t,qe(t)),a=Au(e,n),r=$r(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},F4=[zT,_W,AW,$W,FW,DW,RW,MW,PW,OW,LW,zW,VW,HW,jW,qW,KW,XW,YW,ZW,JW,QW,tB,eB,rB,sB,iB,oB,lB,uB,QB,pB,cB,dB,hB,mB,gB,fB,yB,bB,xB,vB,wB,kB,IB,SB,TB,NB,CB,AB,ik,ik,$B,RB,OB,LB,zB,WB,BB,VB,UB,GB,HB,jB,qB,ok,ok,KB,XB,JB,e4,t4,n4,a4,r4,s4,i4,o4,l4,u4,p4,c4,d4,h4,m4,f4,g4,y4,lk,lk,uk,uk,b4,v4,x4,w4,k4,I4,S4,T4,N4,C4,E4,_4,$4];for(let e of F4)WI(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Gx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Hx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),Fm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),Kp(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ii(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),jx(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),qx(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Kx(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),Xx(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),Yx(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),Zx(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),$c(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ws(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Zs(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),rv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),tn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Dm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Rm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ft(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Fc(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Mm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),Xp(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Pm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),dv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),ks(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),hv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),mv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),me(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),fv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Cu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Jn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),gv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),xv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),gn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Qt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),vv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),_u(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),$m(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Au(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),$r(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Nn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),dl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),Jm(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),wv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),kv(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),Iv(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Dc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Is(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Lm(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Sv(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),Tv(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),Wm(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),Bm(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),Qn(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),Rc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),$a(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Mc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),Vm(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Nv(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ha(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),pl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),$u(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Ev(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),_v(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),bt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Eu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),ui(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),ll(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),ba(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Av(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Ar(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Lc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),$v(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Rv(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),Hm(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),_T(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),AT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ga(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),Bc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),jm(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),qm(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),Km(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ss(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),da(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Mv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),Ym(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),xo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Oc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),un(this)};Q().prototype.square=function(){return this.throwIfDisposed(),ot(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),Qm(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Ts(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return $t(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),wo(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Pv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Ov(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),oi(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Lv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),_e(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),zv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),tf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ut(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),fn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var kr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,kr.prototype)}},Ba=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ba.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Re=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Re.prototype)}},BT=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,BT.prototype)}},VT=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Ia={};function Xv(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Wb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Wb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Wb(a))}}}function Uc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in Ia)i=Ia[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in ka?[o,l]=ka.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in Ia?[o,l]=Ia.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(ka))u[h]=ka[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},ka);for(let h of Object.keys(n))ka[h]=n[h];Mb(s.config);let c=l(o,s.config,n,r);return ka=Object.assign({},d),c}else{let u=Object.assign({},ka);for(let d of Object.keys(n))ka[d]=n[d];let p=new o(s.config);return ka=Object.assign({},u),p}}}function $4(e,t){return et?1:0}function jd(e,t){return-1*$4(e,t)}function Jr(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function A4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function go(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function qv(e,t,n=0,a=1/0){return tr(n>=0),tr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${WT(e)}.`)}function WT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>WT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function F4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return Ho.set(n,1),n}else return e}var B4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function jT(e){return!!e.match(B4)}function V4(e){return e===parseInt(e.toString(),10)}function Qr(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Uc(e,1);return Pb(n,[1,t,1])})}function G4(e){let t=[Qr(e.shape)];return W(e,t)}function H4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],Qr(e.shape,1)];return W(e,t)}function Ys(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[t,0],[n,e.shape[1]]);case 3:return mo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return ll(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function cb(e,t,n){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:return Ym(e,[0,t],[e.shape[0],n]);case 3:return mo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return ll(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kd(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Lc(e,t,n);case 2:switch(a){case 1:return Ys(e,t,n);case 2:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Ys(e,t,n);case 2:return mo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Ys(e,t,n);case 2:return ll(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return ll(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return cb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Kv(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function uk(e,t){switch(e.rank){case 1:return nv([e,t]);case 2:return av([e,t],0);case 3:return rv([e,t],0);case 4:return sv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Pb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function mf(e,t=0,n=1,a,r){return Um(e,t,n,a,r)}function sr(e,t,n,a){if(e.rank<2||t.rank<2)throw new Re(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Re(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2)return pl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Ob(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(pl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Ob(e.rank,a,ja()):null,activation:n}),d)}}function qT(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Eu(e,t,n)))}function Gc(e){return z(e,e)}function Ob(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Ob(e.rank,t,n))))}function j4(e,t=1){if(t!==1)throw new Re(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Nu(e)}function q4(e){return P(()=>he(e,Y(Lt(e),1)))}function KT(e,t,n,a){return P(()=>zv(e,t,n,a))}function K4(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Hc(e,t,n=!1){return n?e():t()}var X4=["fanIn","fanOut","fanAvg"],Y4=["normal","uniform","truncatedNormal"];function Z4(e){go(X4,"FanMode",e)}function J4(e){go(Y4,"Distribution",e)}var Fa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Xv=class extends Fa{apply(e,t){return It(e,t)}};Xv.className="Zeros";ne.registerClass(Xv);var ff=class extends Fa{apply(e,t){return Zn(e,t)}};ff.className="Ones";ne.registerClass(ff);var Yv=class extends Fa{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Zn(e,t)))}getConfig(){return{value:this.value}}};Yv.className="Constant";ne.registerClass(Yv);var Zv=class extends Fa{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Au(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Zv.className="RandomUniform";ne.registerClass(Zv);var Jv=class extends Fa{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`randomNormal does not support dType ${t}.`);return mf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Jv.className="RandomNormal";ne.registerClass(Jv);var Qv=class extends Fa{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`truncatedNormal does not support dType ${t}.`);return Qm(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Qv.className="TruncatedNormal";ne.registerClass(Qv);var ew=class extends Fa{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Pm(e[0]))})}getConfig(){return{gain:this.gain}}};ew.className="Identity";ne.registerClass(ew);function Q4(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=Qr(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=Qr(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=Qr(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Fa{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,Z4(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,J4(this.distribution),this.seed=e.seed}apply(e,t){let n=Q4(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`${this.getClassName()} does not support dType ${t}.`);return Qm(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Au(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var gf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};gf.className="GlorotUniform";ne.registerClass(gf);var yf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};yf.className="GlorotNormal";ne.registerClass(yf);var bf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};bf.className="HeNormal";ne.registerClass(bf);var xf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="HeUniform";ne.registerClass(xf);var vf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};vf.className="LeCunNormal";ne.registerClass(vf);var wf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};wf.className="LeCunNormal";ne.registerClass(wf);var tw=class extends Fa{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Re("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Re("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=mf(n,0,1,"float32"),r=Uv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};tw.className="Orthogonal";ne.registerClass(tw);var pk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function ck(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return jv(e)}function St(e){if(typeof e=="string"){let t=e in pk?pk[e]:e;if(t==="GlorotNormal")return new yf;if(t==="GlorotUniform")return new gf;if(t==="HeNormal")return new bf;if(t==="HeUniform")return new xf;if(t==="LeCunNormal")return new vf;if(t==="LeCunUniform")return new wf;{let n={};return n.className=t,n.config={},ck(n)}}else return e instanceof Fa?e:ck(e)}function Lb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Th(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Qe(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Nh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var dk="Variable",XT=class{constructor(e,t="float32",n=dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=VT(),n=n==null?dk:n,this.originalName=GT(n),this.name=HT(this.originalName),this.trainable_=a,this.constraint=r,this.val=Ov(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),eV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function eV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function zb(e){return e.map(t=>t.read())}function nw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=VT(),s!=null&&(this.originalName=GT(s),this.name=HT(this.originalName)),this.rank=t.length}},tV=0,kf=class{constructor(e,t){this.callArgs=t,this.id=tV++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},nV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=nV++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=wr(n)+"_"+hf(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=aV(e),i=this.computeOutputShape(s),o,l=rV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,yt(e),t,this.name,p)):o=new Ba(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new vr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Nh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return zb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=zb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=Th(r),s=Th(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new kf({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function aV(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function rV(e){return"float32"}function YT(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Ch.get(p),c;if(d==null){let m=oV(i,t);d=m.sorted,c=m.recipientCounts,Ch.put(p,d),_h.put(p,c)}c={},r||Object.assign(c,_h.get(p));let h=new Hs(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=hk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=hk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:lV(a)}}function lV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function hk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function uV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,iV);var JT={};$e(JT,{maxNorm:()=>cV,minMaxNorm:()=>mV,nonNeg:()=>hV,unitNorm:()=>dV});function aw(e,t){return P(()=>ln(fe(z(e,e),t,!0)))}var jc=class extends ne.Serializable{getConfig(){return{}}},rw=class extends jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};rw.className="MaxNorm";ne.registerClass(rw);var sw=class extends jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),aw(e,this.axis))))}getConfig(){return{axis:this.axis}}};sw.className="UnitNorm";ne.registerClass(sw);var iw=class extends jc{apply(e){return Xe(e)}};iw.className="NonNeg";ne.registerClass(iw);var ow=class extends jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=aw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};ow.className="MinMaxNorm";ne.registerClass(ow);var mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return jv(e)}function fk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in mk?mk[e]:e,config:{}};return fk(t)}else return e instanceof jc?e:fk(e)}function cV(e){return new rw(e)}function dV(e){return new sw(e)}function hV(){return new iw}function mV(e){return new ow(e)}var QT={};$e(QT,{constant:()=>yV,glorotNormal:()=>SV,glorotUniform:()=>IV,heNormal:()=>TV,heUniform:()=>NV,identity:()=>wV,leCunNormal:()=>CV,leCunUniform:()=>_V,ones:()=>gV,orthogonal:()=>EV,randomNormal:()=>xV,randomUniform:()=>bV,truncatedNormal:()=>vV,varianceScaling:()=>kV,zeros:()=>fV});function fV(){return new Xv}function gV(){return new ff}function yV(e){return new Yv(e)}function bV(e){return new Zv(e)}function xV(e){return new Jv(e)}function vV(e){return new Qv(e)}function wV(e){return new ew(e)}function kV(e){return new Bn(e)}function IV(e){return new gf(e)}function SV(e){return new yf(e)}function TV(e){return new bf(e)}function NV(e){return new xf(e)}function CV(e){return new vf(e)}function _V(e){return new wf(e)}function EV(e){return new tw(e)}var eN={};$e(eN,{Layer:()=>Ge,RNN:()=>dr,RNNCell:()=>Zc,activation:()=>nG,add:()=>cG,alphaDropout:()=>KG,average:()=>dG,averagePooling1d:()=>y0,averagePooling2d:()=>b0,averagePooling3d:()=>x0,avgPool1d:()=>wG,avgPool2d:()=>IG,avgPool3d:()=>TG,avgPooling1d:()=>kG,avgPooling2d:()=>SG,avgPooling3d:()=>NG,batchNormalization:()=>bG,bidirectional:()=>WG,categoryEncoding:()=>JG,concatenate:()=>hG,conv1d:()=>qU,conv2d:()=>KU,conv2dTranspose:()=>XU,conv3d:()=>YU,conv3dTranspose:()=>ZU,convLstm2d:()=>PG,convLstm2dCell:()=>OG,cropping2D:()=>QU,dense:()=>aG,depthwiseConv2d:()=>tG,dot:()=>yG,dropout:()=>rG,elu:()=>BU,embedding:()=>pG,flatten:()=>iG,gaussianDropout:()=>qG,gaussianNoise:()=>jG,globalAveragePooling1d:()=>CG,globalAveragePooling2d:()=>_G,globalMaxPool1d:()=>VG,globalMaxPool2d:()=>UG,globalMaxPooling1d:()=>HN,globalMaxPooling2d:()=>jN,gru:()=>$G,gruCell:()=>AG,input:()=>bN,inputLayer:()=>WU,layerNormalization:()=>xG,leakyReLU:()=>UU,lstm:()=>FG,lstmCell:()=>DG,masking:()=>XG,maxPool1d:()=>GG,maxPool2d:()=>HG,maxPooling1d:()=>qN,maxPooling2d:()=>KN,maxPooling3d:()=>EG,maximum:()=>mG,minimum:()=>fG,multiply:()=>gG,permute:()=>uG,prelu:()=>GU,reLU:()=>VU,repeatVector:()=>oG,rescaling:()=>YG,reshape:()=>lG,resizing:()=>ZG,rnn:()=>LG,separableConv2d:()=>JU,simpleRNN:()=>RG,simpleRNNCell:()=>MG,softmax:()=>HU,spatialDropout1d:()=>sG,stackedRNNCells:()=>zG,thresholdedReLU:()=>jU,timeDistributed:()=>BG,upSampling2d:()=>eG,zeroPadding2d:()=>vG});async function jr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},aN=class extends dl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew rN(n,t))}var Ta=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ta.checkForDuplicate(t),Ta.constructors[e]==null&&(Ta.constructors[e]=[]),Ta.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ta.constructors)Ta.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ta.constructors={}}static createCallbacks(e){let t=[];for(let n in Ta.constructors){let a=+n;e>=a&&t.push(...Ta.constructors[a])}return t.map(n=>new n)}};Ta.constructors={};function iN(e,t,n,a,r,s,i,o,l){let u=new aN,p=[new AV,...Ta.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new nN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Eh(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Gc(e),t,!0),a=gn(n.shape,Gt()),r=ln(pr(n,a));return he(e,r)})}function bo(e,t){return P(()=>Nt(Gc(pe(t,e)),-1))}function If(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Ru(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function FV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ea(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ea(Y(1,r));return Nt(Gc(pe(a,s)),-1)})}function DV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(Gc(n),-1)})}function RV(e,t){return P(()=>{let n=pr(0,pe(1,z(e,t)));return Nt(n,-1)})}function MV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ha(z(pe(1,e),t),-1);return pr(0,Y(1,pe(a,n)))})}function PV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,ho(z(-2,a))),n);return Nt(r,-1)})}function Xp(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),bt(fe(z(le(e,"float32"),ea(t)),t.shape.length-1))})}function $h(e,t,n=!1){return P(()=>{let a=le(_u(G4(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(rl(a,r[r.length-1]),r);return Xp(s,t,n)})}function OV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=bt(Lt(t));return Y(pe(n,z(t,e)),Dc(fn(a)))})}function Sf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ea(he(n,pe(1,n))),Nt(OV(e,n),-1)})}function LV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ea(he(n,a))),-1)})}function zV(e,t){return P(()=>{let n=ea(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function lw(e,t){return P(()=>{let n=Eh(e,-1),a=Eh(t,-1),r=z(n,a);return bt(fe(r,-1))})}var Ah={meanSquaredError:bo,meanAbsoluteError:If,meanAbsolutePercentageError:Ru,meanSquaredLogarithmicError:FV,squaredHinge:DV,hinge:RV,categoricalHinge:MV,logcosh:PV,categoricalCrossentropy:Xp,sparseCategoricalCrossentropy:$h,binaryCrossentropy:Sf,kullbackLeiblerDivergence:LV,poisson:zV,cosineProximity:lw};function db(e){if(typeof e=="string"){if(e in Ah)return Ah[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function uw(e,t){return P(()=>{let n=z(.5,ta(t)),a=yo(Nn(t,n),e.dtype);return Nt(Qn(e,a),-1)})}function pw(e,t){return P(()=>yo(Qn(ai(e,-1),ai(t,-1)),"float32"))}function oN(e,t){return P(()=>le(fe(Ea(Qn(e,1),Qn(t,1))),"float32"))}function WV(e,t){return P(()=>le(fe(Ea(Qn(e,1),Qn(t,0))),"float32"))}function BV(e,t){return P(()=>le(fe(Ea(Qn(e,0),Qn(t,1))),"float32"))}function lN(e,t){return P(()=>{let n=oN(e,t),a=BV(e,t),r=Y(n,a);return le(mn(Nn(r,0),he(n,r),0),"float32")})}function VV(e,t){return P(()=>{let n=oN(e,t),a=WV(e,t),r=Y(n,a);return le(mn(Nn(r,0),he(n,r),0),"float32")})}function uN(e,t){return Sf(e,t)}function pN(e,t){return e.rank===t.rank&&(e=ws(e,[e.rank-1])),t=ai(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(Qn(e,t),"float32")}var UV=bo,GV=bo,HV=If,jV=If,qV=Ru,KV=Ru,cw=Xp,XV=lw,cN=$h,Fh={binaryAccuracy:uw,categoricalAccuracy:pw,precision:lN,categoricalCrossentropy:cw,sparseCategoricalCrossentropy:cN,mse:UV,MSE:GV,mae:HV,MAE:jV,mape:qV,MAPE:KV,cosine:XV};function YV(e){if(typeof e=="string"&&e in Fh)return Fh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Xd(e){if(tr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Ah))if(Ah[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Fh))if(Fh[n]===e){t=n;break}return t!==void 0?t:e.name}}function ZV(e){let t={Adagrad:()=>zs.adagrad(.01),Adadelta:()=>zs.adadelta(1,.95,Gt()),Adam:()=>zs.adam(.001,.9,.999,Gt()),Adamax:()=>zs.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>zs.rmsprop(.001,.9,0,Gt()),SGD:()=>zs.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}function yk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Wb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function Wb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Wb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Wb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function JV(e,t,n,a=console.log){let r=eU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Dh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Dh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function tU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Dh(o,t,n)}function nU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);Jr(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;tr(x===0,"input layer has >1 nodes"),tr(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(Qa.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(jd);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof Qa&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(jd);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}nw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${dw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Bb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=yt(e);let n=new Hs;for(let a=0;a{e=yt(e);let n;return t==null?n=oi(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Th(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(jd);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(jd);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=yt(p.call(x,m)),b=yt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=yt(p.call(f,m)),b=yt(p.computeMask(f,g));if(p.activityRegularizer)throw new Re("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!A4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];tr(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function aU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function hN(e,t){return aU(e,t,"classWeight")}async function mN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return rr(e);if(e.shape.length===2){if(e.shape[1]>1)return ai(e,1);if(e.shape[1]===1)return W(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function rU(e,t){return z(e,t)}var sU=32;function fN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=bk("input",e.inputNames,n),i=bk("output",e.outputNames,a),o=s[0].shape[0];v.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),v.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function bk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function iU(e){if(e.length===3)throw new Re("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function oU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(xk(n.validationData))v.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=iU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=sN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=iN(p,d,n.epochs,null,null,lU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;xk(n.validationData)?w=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?sU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Re("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=uU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=fN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function $p(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Ys(a,t,n-t)):Ys(e,t,n-t)}function hw(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>hw(n,t)):qT(e,t.dtype==="int32"?t:le(t,"int32")))}function Ub(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function cU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=iN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Ys(T,R,F-R);$.batch=E,$.size=F-R;let M=hw(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Re("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,$=await e.standardizeUserData(l,u,null,null,E,h);p=$[0],d=$[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),$=r[0].shape[0];p=$p(r,E,$),i=r,r=$p(r,0,E),d=$p(s,E,$),o=s,s=$p(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=sN(a.callbacks,a.yieldEvery);return await cU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function gN(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function hU(e){return e instanceof Te}function Gb(e){return Array.isArray(e)}function vk(e){return!hU(e)&&!Gb(e)}function wk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Gb(e)&&e.length>0)i=!0;else if(vk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(vk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Gb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=gN(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function mU(e,t,n){let a=Jr(e.map(s=>s.shape[0]));a.sort();let r=Jr(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function fU(e,t,n){let a=[bo,Sf,Xp];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var yU="layers-model",Nr=class extends Qa{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");JV(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=ZV(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Ar))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(db(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>db(s))}else{let s=db(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=gU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Xs("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Sf?["accuracy","acc"].indexOf(c)!==-1?p=uw:["crossentropy","ce"].indexOf(c)!==-1&&(p=uN):this.lossFunctions[s]===$h?["accuracy","acc"].indexOf(c)!==-1?p=pN:["crossentropy","ce"].indexOf(c)!==-1&&(p=cN):["accuracy","acc"].indexOf(c)!==-1?p=pw:["crossentropy","ce"].indexOf(c)!==-1&&(p=cw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=YV(c),u=l+Xd(c);let h;Xs(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Vb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),pU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Hs;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Re("Verbose predictLoop() is not implemented yet.");let r=Ub(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=$p(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=gN(e);kk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Vb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){kk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=hN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Re("Verbose mode is not implemented yet.");if(r!=null)throw new Re("steps mode in testLoop() is not implemented yet");{let o=Ub(s,n),l=Ke(Ha(0,s));for(let u=0;u1){let s=ok(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lwr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=wr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[wr(Xd(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>wr(Xd(e)));{let e={};for(let t in this.metrics)e[t]=wr(Xd(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Yp(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Vs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Vs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Vs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Vs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Vs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:yU,generatedBy:`TensorFlow.js tfjs-layers v${dw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(yk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){yk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Nr.className="Model";ne.registerClass(Nr);var yN=class extends Nr{};yN.className="Functional";ne.registerClass(yN);async function bU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Yp(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function xU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return vU(e,void 0,t)}async function vU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(Yp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=wU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function wU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var hl=class extends Nr{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:hf("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof hl||e instanceof Nr,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=ZT({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=YT(this.outputs[0])}this.inboundNodes=[],new kf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:oi(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Qe(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Nr({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof hl))throw new Re(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};hl.className="Sequential";ne.registerClass(hl);function kU(e){return new Nr(e)}function IU(e){return new hl(e)}function bN(e){return ZT(e)}function SU(e,t){Ta.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},xN=class extends Un{apply(e,t=1){return j4(e,t)}};xN.className="elu";ne.registerClass(xN);var vN=class extends Un{apply(e){return qm(e)}};vN.className="selu";ne.registerClass(vN);var wN=class extends Un{apply(e){return Xe(e)}};wN.className="relu";ne.registerClass(wN);var kN=class extends Un{apply(e){return P(()=>$u(6,Xe(e)))}};kN.className="relu6";ne.registerClass(kN);var IN=class extends Un{apply(e){return e}};IN.className="linear";ne.registerClass(IN);var SN=class extends Un{apply(e){return da(e)}};SN.className="sigmoid";ne.registerClass(SN);var TN=class extends Un{apply(e){return K4(e)}};TN.className="hardSigmoid";ne.registerClass(TN);var NN=class extends Un{apply(e){return ho(e)}};NN.className="softplus";ne.registerClass(NN);var CN=class extends Un{apply(e){return q4(e)}};CN.className="softsign";ne.registerClass(CN);var _N=class extends Un{apply(e){return ri(e)}};_N.className="tanh";ne.registerClass(_N);var mw=class extends Un{apply(e,t=-1){return Ka(e,t)}};mw.className="softmax";ne.registerClass(mw);var EN=class extends Un{apply(e,t=-1){return zm(e,t)}};EN.className="logSoftmax";ne.registerClass(EN);var $N=class extends Un{apply(e,t=1){return P(()=>z(da(z(e,t)),e))}};$N.className="swish";ne.registerClass($N);var AN=class extends Un{apply(e){return P(()=>z(e,ri(ho(e))))}};AN.className="mish";ne.registerClass(AN);function rs(e){return e.getClassName()}function hb(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ss(e){if(e==null){let t={};return t.className="linear",t.config={},hb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},hb(t)}else return e instanceof Un?e:hb(e)}function fw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var FN=class extends ne.Serializable{},qc=class extends FN{constructor(e){super(),fw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Gc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};qc.className="L1L2";ne.registerClass(qc);function TU(e){return fw(e),new qc({l1:e!=null?e.l1:null,l2:0})}function NU(e){return fw(e),new qc({l2:e!=null?e.l2:null,l1:0})}var Ik={l1l2:"L1L2"};function pt(e){return jv(e)}function Sk(e,t={}){return Vc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Ik?Ik[e]:e,config:{}};return Sk(t)}else return e instanceof FN?e:Sk(e)}var gw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};gw.className="ReLU";ne.registerClass(gw);var yw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Fc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};yw.className="LeakyReLU";ne.registerClass(yw);var bw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Qe(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function DN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function CU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Fm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function Tk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=kw(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=pl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function _U(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=DN(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=ov(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var Iw=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Iw.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Re(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=el(t.kernelSize,e,"kernelSize"),this.strides=el(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,ba(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ss(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=el(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(tr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:rs(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Kc=class extends Iw{constructor(e,t){super(e,t),this.kernel=null,Kc.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=BT(this.activation.getClassName());if(r!=null&&this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=CU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Tk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=_U(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Re("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Qe(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Xc=class extends Kc{constructor(e){super(2,e),Xc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Xc.className="Conv2D";ne.registerClass(Xc);var Yc=class extends Kc{constructor(e){super(3,e),Yc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Yc.className="Conv3D";ne.registerClass(Yc);var Sw=class extends Xc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=nr(o,d,u,this.padding),m=nr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Dm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=nr(t[a],o,s,this.padding),t[r]=nr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Sw.className="Conv2DTranspose";ne.registerClass(Sw);var Tw=class extends Yc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Qe(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=nr(l,m,d,this.padding),b=nr(u,f,c,this.padding),x=nr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=lv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Qe(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=nr(t[a],u,i,this.padding),t[r]=nr(t[r],p,o,this.padding),t[s]=nr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Tw.className="Conv3DTranspose";ne.registerClass(Tw);var RN=class extends Kc{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=Qe(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Re("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=vs(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};RN.className="SeparableConv";var Nw=class extends RN{constructor(e){super(2,e)}};Nw.className="SeparableConv2D";ne.registerClass(Nw);var Tf=class extends Kc{constructor(e){super(1,e),Tf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!qv(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Tf.className="Conv1D";ne.registerClass(Tf);var Cw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=Kd(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Kd(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Kd(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Kd(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Cw.className="Cropping2D";ne.registerClass(Cw);var _w=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,z4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};_w.className="UpSampling2D";ne.registerClass(_w);function EU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=kw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=bs(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ew=class extends Iw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=Qe(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n=EU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ew.className="DepthwiseConv2D";ne.registerClass(Ew);function MN(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function PN(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Re("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=fa(t,0),r!=null&&(r=fa(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(ta(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var dr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new _f({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Lb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=PN((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Uc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Pb(t,[1,n]):t):this.cell.stateSize>1?[Pb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===dr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};dr.className="RNN";ne.registerClass(dr);var Zc=class extends Ge{},Nf=class extends Zc{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0ta(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ta(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=sr(z(e,s),this.kernel.read()):r=sr(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,sr(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Nf.className="SimpleRNNCell";ne.registerClass(Nf);var $w=class extends dr{constructor(e){e.cell=new Nf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};$w.className="SimpleRNN";ne.registerClass($w);var Cf=class extends Zc{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Qe(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0ta(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Aw.className="GRU";ne.registerClass(Aw);var Jc=class extends Zc{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ss(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=cl([1,as([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=cl([1,as([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Qe(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Fa{apply(i,o){let l=r.apply([s]),u=new ff().apply([s]),p=r.apply([s*2]);return uk(uk(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0ta(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Fw.className="LSTM";ne.registerClass(Fw);var _f=class extends Zc{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Xs(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return zb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):KT(t(),n),o=()=>Hc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var $U=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new vr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};ON.className="ConvRNN2D";var Ef=class extends Jc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=el(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=el(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",ba(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=el(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=Qe(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Fa{apply(p,d){let c=l.apply([u]),h=Zn([u]),m=l.apply([u*2]);return Kv([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0ta(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ta(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=$U(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Ef.className="ConvLSTM2DCell";ne.registerClass(Ef);var Dw=class extends ON{constructor(e){let t=new Ef(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Dw.className="ConvLSTM2D";ne.registerClass(Dw);var $f=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0KT(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};$f.className="Dropout";ne.registerClass($f);var Rw=class extends $f{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Rw.className="SpatialDropout1D";ne.registerClass(Rw);var Mw=class extends Ge{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ss(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Qe(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Qe(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=BT(this.activation.getClassName()),r;return a!=null?r=sr(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=sr(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:rs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Dense";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Qe(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],Qr(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:rs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Activation";ne.registerClass(Ow);var Lw=class extends Ge{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return P(()=>(e=Ne(e),U4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Lw.className="RepeatVector";ne.registerClass(Lw);var zw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};zw.className="Reshape";ne.registerClass(zw);var Ww=class extends Ge{constructor(e){if(super(e),e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Qe(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Ww.className="Permute";ne.registerClass(Ww);var Bw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return qp(ii(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=qp(ii(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Bw.className="Masking";ne.registerClass(Bw);var Vw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return P(()=>this.maskZero?(e=Ne(e),ii(e,qe(e))):null)}computeOutputShape(e){if(e=Qe(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=yo(n,"int32"));let a=qT(this.embeddings.read(),W(n,[n.size]));return W(a,Qe(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Vw.className="Embedding";ne.registerClass(Vw);var xo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Re}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&Jr(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=as(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>Kv(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Re("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Re("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Sp(r,e[s].shape.length)):a=[Sp(this.axes,t.shape.length),Sp(this.axes,n.shape.length)],this.normalize&&(t=Eh(t,a[0]),n=Eh(n,a[1])),AU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Sp(this.axes,e.length),Sp(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Xw.className="Dot";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Hc(()=>Y(mf(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Yw.className="GaussianNoise";ne.registerClass(Yw);var Zw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Hc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,mf(n.shape,1,a))},()=>n,t.training||!1):n})}};Zw.className="GaussianDropout";ne.registerClass(Zw);var Jw=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Hc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Er(Au(n),this.rate);o=yo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};Jw.className="AlphaDropout";ne.registerClass(Jw);function Zp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=Zx(e,t,n,a,r,s);else if(e.rank===3)i=Jx(e,t,n,a,r,s);else if(e.rank===4)i=Qx(e,t,n,a,r,s);else throw new Re(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function FU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance;return[Zp(e,i,o,n,t,r),i,o]})}function DU(e,t,n,a,r=.001){return P(()=>{let s=Mc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Zp(e,u,p,c,d,r),i,o]})}function RU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?FU(e,t,n,a,r):DU(e,t,n,a,r)}var Qw=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=Qe(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=oi(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Zp(a,g,y,b,x,this.epsilon)}else return Zp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=RU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Qw.className="BatchNormalization";ne.registerClass(Qw);var e0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Qe(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==Jr(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Mc(n,this.axis,!0),o=oi(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ya(e,a)})}var t0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>MU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};t0.className="ZeroPadding2D";ne.registerClass(t0);function Af(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=kw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ga(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function LN(e,t,n,a,r,s){return P(()=>{Rt(r),UT(s),ba(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=DN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Sv(e,t,n,o):i=Yx(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var zN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,ba(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Qe(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Uc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return ws(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},n0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"max")}};n0.className="MaxPooling1D";ne.registerClass(n0);var a0=class extends zN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"avg")}};a0.className="AveragePooling1D";ne.registerClass(a0);var WN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},r0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"max")}};r0.className="MaxPooling2D";ne.registerClass(r0);var s0=class extends WN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),Af(e,t,n,a,r,"avg")}};s0.className="AveragePooling2D";ne.registerClass(s0);var BN=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),ba(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Qe(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},i0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"max")}};i0.className="MaxPooling3D";ne.registerClass(i0);var o0=class extends BN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),ba(a),LN(e,t,n,a,r,"avg")}};o0.className="AveragePooling3D";ne.registerClass(o0);var VN=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Re}},l0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};l0.className="GlobalAveragePooling1D";ne.registerClass(l0);var u0=class extends VN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ha(n,1)})}};u0.className="GlobalMaxPooling1D";ne.registerClass(u0);var UN=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Re}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};p0.className="GlobalAveragePooling2D";ne.registerClass(p0);var c0=class extends UN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ha(n,[1,2]):ha(n,[2,3])})}};c0.className="GlobalMaxPooling2D";ne.registerClass(c0);var GN=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},d0=class extends GN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Qe(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Qe(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),PN((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};d0.className="TimeDistributed";ne.registerClass(d0);function PU(e){go(L4,"BidirectionalMergeMode",e)}var OU="concat",h0=class extends GN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?OU:e.mergeMode,PU(this.mergeMode),e.weights)throw new Re("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=MN(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Re("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=fa(r,1));let i;return this.mergeMode==="concat"?i=Kv([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Xs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Xs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Re("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};h0.className="Bidirectional";ne.registerClass(h0);var m0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=yo(e,"float32")),Y(z(e,this.scale),this.offset)))}};m0.className="Rescaling";ne.registerClass(m0);var LU=["bilinear","nearest"],Nk=new Set(LU),f0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(Nk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=Qe(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...Nk]} are supported`)})}};f0.className="Resizing";ne.registerClass(f0);function zU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=yo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Sh(o,a,n,i):l=Sh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var g0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Qe(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=yo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ha(e),r=il(e),s=Nn(this.numTokens,a).bufferSync().get(0),i=Er(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return zU(e,this.outputMode,this.numTokens,n)})}};g0.className="CategoryEncoding";ne.registerClass(g0);function WU(e){return new Du(e)}function BU(e){return new xw(e)}function VU(e){return new gw(e)}function UU(e){return new yw(e)}function GU(e){return new bw(e)}function HU(e){return new ww(e)}function jU(e){return new vw(e)}function qU(e){return new Tf(e)}function KU(e){return new Xc(e)}function XU(e){return new Sw(e)}function YU(e){return new Yc(e)}function ZU(e){return new Tw(e)}function JU(e){return new Nw(e)}function QU(e){return new Cw(e)}function eG(e){return new _w(e)}function tG(e){return new Ew(e)}function nG(e){return new Ow(e)}function aG(e){return new Mw(e)}function rG(e){return new $f(e)}function sG(e){return new Rw(e)}function iG(e){return new Pw(e)}function oG(e){return new Lw(e)}function lG(e){return new zw(e)}function uG(e){return new Ww(e)}function pG(e){return new Vw(e)}function cG(e){return new Uw(e)}function dG(e){return new Hw(e)}function hG(e){return new Kw(e)}function mG(e){return new jw(e)}function fG(e){return new qw(e)}function gG(e){return new Gw(e)}function yG(e){return new Xw(e)}function bG(e){return new Qw(e)}function xG(e){return new e0(e)}function vG(e){return new t0(e)}function y0(e){return new a0(e)}function wG(e){return y0(e)}function kG(e){return y0(e)}function b0(e){return new s0(e)}function IG(e){return b0(e)}function SG(e){return b0(e)}function x0(e){return new o0(e)}function TG(e){return x0(e)}function NG(e){return x0(e)}function CG(e){return new l0(e)}function _G(e){return new p0(e)}function HN(e){return new u0(e)}function jN(e){return new c0(e)}function qN(e){return new n0(e)}function KN(e){return new r0(e)}function EG(e){return new i0(e)}function $G(e){return new Aw(e)}function AG(e){return new Cf(e)}function FG(e){return new Fw(e)}function DG(e){return new Jc(e)}function RG(e){return new $w(e)}function MG(e){return new Nf(e)}function PG(e){return new Dw(e)}function OG(e){return new Ef(e)}function LG(e){return new dr(e)}function zG(e){return new _f(e)}function WG(e){return new h0(e)}function BG(e){return new d0(e)}var VG=HN,UG=jN,GG=qN,HG=KN;function jG(e){return new Yw(e)}function qG(e){return new Zw(e)}function KG(e){return new Jw(e)}function XG(e){return new Bw(e)}function YG(e){return new m0(e)}function ZG(e){return new f0(e)}function JG(e){return new g0(e)}var XN={};$e(XN,{MAPE:()=>uH,MSE:()=>dH,binaryAccuracy:()=>QG,binaryCrossentropy:()=>eH,categoricalAccuracy:()=>nH,categoricalCrossentropy:()=>aH,cosineProximity:()=>iH,mape:()=>pH,meanAbsoluteError:()=>oH,meanAbsolutePercentageError:()=>lH,meanSquaredError:()=>cH,mse:()=>hH,precision:()=>rH,recall:()=>sH,sparseCategoricalAccuracy:()=>tH});function QG(e,t){return uw(e,t)}function eH(e,t){return uN(e,t)}function tH(e,t){return pN(e,t)}function nH(e,t){return pw(e,t)}function aH(e,t){return cw(e,t)}function rH(e,t){return lN(e,t)}function sH(e,t){return VV(e,t)}function iH(e,t){return lw(e,t)}function oH(e,t){return If(e,t)}function lH(e,t){return Ru(e,t)}function uH(e,t){return Ru(e,t)}function pH(e,t){return Ru(e,t)}function cH(e,t){return bo(e,t)}function dH(e,t){return bo(e,t)}function hH(e,t){return bo(e,t)}var YN={};$e(YN,{modelFromJSON:()=>bU});var ZN={};$e(ZN,{l1:()=>fH,l1l2:()=>mH,l2:()=>gH});function mH(e){return new qc(e)}function fH(e){return TU(e)}function gH(e){return NU(e)}var JN=class extends dl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Nr))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Yd(e,t){return et}var QN=class extends JN{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Re("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Yd:this.mode==="max"?this.monitorFunc=Ck:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Ck:this.monitorFunc=Yd,this.monitorFunc===Yd&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Yd?1/0:-1/0}async onEpochEnd(e,t){await jr(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function yH(e){return new QN(e)}var bH={earlyStopping:yH},xH=H();xH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Sa;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Sa||(Sa={}));var _k;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(_k||(_k={}));var v0={};function vH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};v0[e]=n}function e2(e){return v0[e]}function wH(e){delete v0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return vn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>vn(d,n,a,r));let u=vn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function vn(e,t,n,a){let[r,s]=Xn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Rh(r,o)]);return i!==void 0?t[Rh(r,i)][s]:void 0}function kH(e,t,n){return t[Rh(e,n.currentContextId)]}function ar(e,t){let[n,a,r]=Xn(e);return[Rh(n,t&&t.currentContextId),a,r]}function Rh(e,t){return t?`${e}-${t}`:e}function Xn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function sh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function kr(e){return e.kept?e:rr(e)}var t2={};$e(t2,{json:()=>IH});var IH=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],n2={};$e(n2,{json:()=>SH});var SH=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],a2={};$e(a2,{json:()=>TH});var TH=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],r2={};$e(r2,{json:()=>NH});var NH=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],s2={};$e(s2,{json:()=>CH});var CH=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],i2={};$e(i2,{json:()=>_H});var _H=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],o2={};$e(o2,{json:()=>EH});var EH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],l2={};$e(l2,{json:()=>$H});var $H=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],u2={};$e(u2,{json:()=>AH});var AH=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],p2={};$e(p2,{json:()=>FH});var FH=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],c2={};$e(c2,{json:()=>DH});var DH=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],d2={};$e(d2,{json:()=>RH});var RH=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],h2={};$e(h2,{json:()=>MH});var MH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],m2={};$e(m2,{json:()=>PH});var PH=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],f2={};$e(f2,{json:()=>OH});var OH=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],g2={};$e(g2,{json:()=>LH});var LH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],y2={};$e(y2,{json:()=>zH});var zH=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],b2={};$e(b2,{json:()=>WH});var WH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],x2={};$e(x2,{json:()=>BH});var BH=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Ek=class{constructor(){let e=[t2,n2,a2,r2,s2,i2,o2,l2,u2,p2,c2,d2,h2,m2,f2,g2,y2,b2,x2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=ar(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=ar(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=ar(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=e2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Hb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Hb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=Jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=qb(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=Zb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=Yb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Kb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Kb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=Xb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=$k(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=$k(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=ar(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:w0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=ar(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=ar(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function VH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function v2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):VH(e);return t?n:n.toLowerCase()}function Hb(e,t,n,a=!1){let r=e[t];return r!=null?v2(r.s,a):n}function jb(e,t,n){let a=e[t];return a?a.b:n}function qb(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function w0(e){switch(typeof e=="string"&&(e=Sa[e]),e){case Sa.DT_FLOAT:case Sa.DT_HALF:return"float32";case Sa.DT_INT32:case Sa.DT_INT64:case Sa.DT_INT8:case Sa.DT_UINT8:return"int32";case Sa.DT_BOOL:return"bool";case Sa.DT_DOUBLE:return"float32";case Sa.DT_STRING:return"string";default:return null}}function $k(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Kb(e,t,n){let a=e[t];return a&&a.type?w0(a.type):n}function Xb(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>w0(r)):n}function w2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Yb(e,t,n){let a=e[t];return a&&a.shape?w2(a.shape):n}function Zb(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function Jb(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>v2(s,a)):n}function Qb(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>w2(r)):n}function ex(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var UH=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return vn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return vn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return qb(this.node.rawAttrs,e,t);if(n.s!=null)return Hb(this.node.rawAttrs,e,t);if(n.b!=null)return jb(this.node.rawAttrs,e,t);if(n.shape!=null)return Yb(this.node.rawAttrs,e,t);if(n.type!=null)return Kb(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Zb(this.node.rawAttrs,e,t);if(n.list.s!=null)return Jb(this.node.rawAttrs,e,t);if(n.list.shape!=null)return Qb(this.node.rawAttrs,e,t);if(n.list.b!=null)return ex(this.node.rawAttrs,e,t);if(n.list.type!=null)return Xb(this.node.rawAttrs,e,t)}return t}},un={};$e(un,{OP_SCOPE_SUFFIX:()=>Cx,abs:()=>Lt,acos:()=>Bx,acosh:()=>Vx,add:()=>Y,addN:()=>CS,all:()=>Am,any:()=>qp,argMax:()=>ai,argMin:()=>Ux,asin:()=>Gx,asinh:()=>Hx,atan:()=>jx,atan2:()=>qx,atanh:()=>Kx,avgPool:()=>ga,avgPool3d:()=>Yx,basicLSTMCell:()=>AS,batchNorm:()=>ys,batchNorm2d:()=>Zx,batchNorm3d:()=>Jx,batchNorm4d:()=>Qx,batchToSpaceND:()=>$c,bincount:()=>ev,booleanMaskAsync:()=>hT,broadcastArgs:()=>FS,broadcastTo:()=>Ks,buffer:()=>Pe,cast:()=>le,ceil:()=>tv,clipByValue:()=>en,clone:()=>rr,complex:()=>Cr,concat:()=>Ze,concat1d:()=>nv,concat2d:()=>av,concat3d:()=>rv,concat4d:()=>sv,conv1d:()=>Fm,conv2d:()=>At,conv2dTranspose:()=>Dm,conv3d:()=>ov,conv3dTranspose:()=>lv,cos:()=>Ac,cosh:()=>Rm,cosineWindow:()=>tf,cumprod:()=>Kp,cumsum:()=>Mm,denseBincount:()=>Sh,depthToSpace:()=>uv,depthwiseConv2d:()=>bs,diag:()=>RS,dilation2d:()=>pv,div:()=>he,divNoNan:()=>cv,dot:()=>dv,dropout:()=>zv,einsum:()=>MS,elu:()=>Nu,enclosingPowerOfTwo:()=>Wv,equal:()=>Qn,erf:()=>hv,euclideanNorm:()=>gv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>yv,eye:()=>Pm,fft:()=>zc,fill:()=>gn,floor:()=>_u,floorDiv:()=>$m,fused:()=>pl,gather:()=>Eu,gatherND:()=>yT,greater:()=>Nn,greaterEqual:()=>Er,ifft:()=>ul,imag:()=>Cc,image:()=>za,inTopKAsync:()=>bT,irfft:()=>Zm,isFinite:()=>bv,isInf:()=>xv,isNaN:()=>vv,leakyRelu:()=>Fc,less:()=>Om,lessEqual:()=>xs,linalg:()=>Uv,linspace:()=>WS,localResponseNormalization:()=>wv,log:()=>ea,log1p:()=>Dc,logSigmoid:()=>kv,logSoftmax:()=>zm,logSumExp:()=>Wm,logicalAnd:()=>Ea,logicalNot:()=>Rc,logicalOr:()=>Bm,logicalXor:()=>Iv,losses:()=>$T,lowerBound:()=>VS,matMul:()=>Fe,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Sv,maxPoolWithArgmax:()=>US,maximum:()=>pr,mean:()=>Nt,meshgrid:()=>GS,min:()=>il,minimum:()=>$u,mirrorPad:()=>Tv,mod:()=>Nv,moments:()=>Mc,movingAverage:()=>mT,mul:()=>z,multiRNNCell:()=>HS,multinomial:()=>jS,neg:()=>bt,norm:()=>Cu,notEqual:()=>ii,oneHot:()=>rl,ones:()=>Zn,onesLike:()=>ta,op:()=>L,outerProduct:()=>qS,pad:()=>ya,pad1d:()=>KS,pad2d:()=>XS,pad3d:()=>YS,pad4d:()=>ZS,pool:()=>Cv,pow:()=>_r,prelu:()=>Oc,print:()=>Ax,prod:()=>_v,raggedGather:()=>JS,raggedRange:()=>QS,raggedTensorToTensor:()=>eT,rand:()=>tT,randomGamma:()=>nT,randomNormal:()=>Um,randomStandardNormal:()=>aT,randomUniform:()=>Au,range:()=>ol,real:()=>sl,reciprocal:()=>Av,relu:()=>Xe,relu6:()=>Gm,reshape:()=>W,reverse:()=>fa,reverse1d:()=>rT,reverse2d:()=>sT,reverse3d:()=>iT,reverse4d:()=>oT,rfft:()=>Wc,round:()=>Hm,rsqrt:()=>jm,scalar:()=>xe,scatterND:()=>fT,searchSorted:()=>Vm,selu:()=>qm,separableConv2d:()=>vs,setdiff1dAsync:()=>lT,sigmoid:()=>da,sign:()=>Fv,signal:()=>ET,sin:()=>Km,sinh:()=>Xm,slice:()=>Be,slice1d:()=>Lc,slice2d:()=>Ym,slice3d:()=>mo,slice4d:()=>ll,softmax:()=>Ka,softplus:()=>ho,spaceToBatchND:()=>Pc,sparse:()=>AT,sparseToDense:()=>gT,spectral:()=>_T,split:()=>zn,sqrt:()=>ln,square:()=>ot,squaredDifference:()=>Jm,squeeze:()=>ws,stack:()=>Ft,step:()=>fo,stridedSlice:()=>Dv,string:()=>FT,sub:()=>pe,sum:()=>fe,tan:()=>Rv,tanh:()=>ri,tensor:()=>kn,tensor1d:()=>Ke,tensor2d:()=>_a,tensor3d:()=>_c,tensor4d:()=>Aa,tensor5d:()=>uT,tensor6d:()=>pT,tile:()=>Ln,topk:()=>Mv,transpose:()=>Ee,truncatedNormal:()=>Qm,unique:()=>Pv,unsortedSegmentSum:()=>ef,unstack:()=>ct,upperBound:()=>cT,variable:()=>Ov,where:()=>mn,whereAsync:()=>Lv,zeros:()=>It,zerosLike:()=>qe});var GH=(e,t,n,a=un)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},HH=(e,t,n,a=un)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(vn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(vn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ca(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Ak(e){return!(typeof e=="number"||e.some(t=>t<0))}function Tp(e,t,n){let a=tx(e,n),r=!Ak(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=tx(s.shape,a)}),!Ak(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function tx(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var jH=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ca(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,Jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Ia))u[h]=Ia[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Ia);for(let h of Object.keys(n))Ia[h]=n[h];Wb(s.config);let c=l(o,s.config,n,r);return Ia=Object.assign({},d),c}else{let u=Object.assign({},Ia);for(let d of Object.keys(n))Ia[d]=n[d];let p=new o(s.config);return Ia=Object.assign({},u),p}}}function D4(e,t){return et?1:0}function qd(e,t){return-1*D4(e,t)}function ns(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function R4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function ko(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function Yv(e,t,n=0,a=1/0){return nr(n>=0),nr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function en(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>en(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${UT(e)}.`)}function UT(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>UT(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function M4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return Yo.set(n,1),n}else return e}var G4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function XT(e){return!!e.match(G4)}function H4(e){return e===parseInt(e.toString(),10)}function as(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function ja(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Gc(e,1);return Bb(n,[1,t,1])})}function q4(e){let t=[as(e.shape)];return W(e,t)}function K4(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],as(e.shape,1)];return W(e,t)}function Qs(e,t,n){return P(()=>{switch(e.rank){case 1:return zc(e,t,n);case 2:return Zm(e,[t,0],[n,e.shape[1]]);case 3:return vo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return cl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function mb(e,t,n){return P(()=>{switch(e.rank){case 1:return zc(e,t,n);case 2:return Zm(e,[0,t],[e.shape[0],n]);case 3:return vo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return cl(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Xd(e,t,n,a){return P(()=>{switch(e.rank){case 1:return zc(e,t,n);case 2:switch(a){case 1:return Qs(e,t,n);case 2:return mb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Qs(e,t,n);case 2:return vo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return mb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Qs(e,t,n);case 2:return cl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return cl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return mb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function Zv(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function dk(e,t){switch(e.rank){case 1:return sv([e,t]);case 2:return iv([e,t],0);case 3:return ov([e,t],0);case 4:return lv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Bb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function ff(e,t=0,n=1,a,r){return Gm(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Re(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Re(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2)return hl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Vb(e.rank,a,qa()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(_e(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(hl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Vb(e.rank,a,qa()):null,activation:n}),d)}}function YT(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Au(e,t,n)))}function Hc(e){return z(e,e)}function Vb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ya(e,t,n){return P(()=>(n==null&&(n=qa()),Rt(n),Y(e,Vb(e.rank,t,n))))}function X4(e,t=1){if(t!==1)throw new Re(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Cu(e)}function Y4(e){return P(()=>me(e,Y(Lt(e),1)))}function ZT(e,t,n,a){return P(()=>Vv(e,t,n,a))}function Z4(e){return P(()=>{let t=Y(.5,z(.2,e));return tn(t,0,1)})}function jc(e,t,n=!1){return n?e():t()}var J4=["fanIn","fanOut","fanAvg"],Q4=["normal","uniform","truncatedNormal"];function eV(e){ko(J4,"FanMode",e)}function tV(e){ko(Q4,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Jv=class extends Ra{apply(e,t){return It(e,t)}};Jv.className="Zeros";ne.registerClass(Jv);var gf=class extends Ra{apply(e,t){return Zn(e,t)}};gf.className="Ones";ne.registerClass(gf);var Qv=class extends Ra{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Zn(e,t)))}getConfig(){return{value:this.value}}};Qv.className="Constant";ne.registerClass(Qv);var ew=class extends Ra{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Fu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};ew.className="RandomUniform";ne.registerClass(ew);var tw=class extends Ra{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`randomNormal does not support dType ${t}.`);return ff(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};tw.className="RandomNormal";ne.registerClass(tw);var nw=class extends Ra{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`truncatedNormal does not support dType ${t}.`);return ef(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};nw.className="TruncatedNormal";ne.registerClass(nw);var aw=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Om(e[0]))})}getConfig(){return{gain:this.gain}}};aw.className="Identity";ne.registerClass(aw);function nV(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=as(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=as(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=as(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Ra{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,eV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,tV(this.distribution),this.seed=e.seed}apply(e,t){let n=nV(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Re(`${this.getClassName()} does not support dType ${t}.`);return ef(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Fu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var yf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};yf.className="GlorotUniform";ne.registerClass(yf);var bf=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};bf.className="GlorotNormal";ne.registerClass(bf);var xf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};xf.className="HeNormal";ne.registerClass(xf);var vf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};vf.className="HeUniform";ne.registerClass(vf);var wf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};wf.className="LeCunNormal";ne.registerClass(wf);var kf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};kf.className="LeCunNormal";ne.registerClass(kf);var rw=class extends Ra{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Re("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Re("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=ff(n,0,1,"float32"),r=jv.gramSchmidt(a);return e[0]>e[1]&&(r=_e(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};rw.className="Orthogonal";ne.registerClass(rw);var hk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function mk(e,t={}){return Uc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return Xv(e)}function St(e){if(typeof e=="string"){let t=e in hk?hk[e]:e;if(t==="GlorotNormal")return new bf;if(t==="GlorotUniform")return new yf;if(t==="HeNormal")return new xf;if(t==="HeUniform")return new vf;if(t==="LeCunNormal")return new wf;if(t==="LeCunUniform")return new kf;{let n={};return n.className=t,n.config={},mk(n)}}else return e instanceof Ra?e:mk(e)}function Ub(e){return Array.isArray(e)&&Array.isArray(e[0])}function Nh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Je(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Ch(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var fk="Variable",JT=class{constructor(e,t="float32",n=fk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=HT(),n=n==null?fk:n,this.originalName=qT(n),this.name=KT(this.originalName),this.trainable_=a,this.constraint=r,this.val=Wv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),aV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function aV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Gb(e){return e.map(t=>t.read())}function sw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Va=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=HT(),s!=null&&(this.originalName=qT(s),this.name=KT(this.originalName)),this.rank=t.length}},rV=0,If=class{constructor(e,t){this.callArgs=t,this.id=rV++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},sV=0,Ve=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=sV++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Ir(n)+"_"+mf(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ba(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new kr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new kr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=yt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=yt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of yt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=yt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=iV(e),i=this.computeOutputShape(s),o,l=oV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Va(l,u,this,yt(e),t,this.name,p)):o=new Va(l,i,this,yt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Re("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new kr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new kr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ba(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Ch(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Gb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Gb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=yt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=yt(e);t=yt(t),n=yt(n),a=yt(a),r=Nh(r),s=Nh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new If({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function iV(e){e=yt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function oV(e){return"float32"}function QT(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Eh.get(p),c;if(d==null){let m=pV(i,t);d=m.sorted,c=m.recipientCounts,Eh.put(p,d),_h.put(p,c)}c={},r||Object.assign(c,_h.get(p));let h=new Xs(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=gk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=gk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:cV(a)}}function cV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function gk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function dV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,uV);var tN={};Ae(tN,{maxNorm:()=>mV,minMaxNorm:()=>yV,nonNeg:()=>gV,unitNorm:()=>fV});function iw(e,t){return P(()=>un(fe(z(e,e),t,!0)))}var qc=class extends ne.Serializable{getConfig(){return{}}},ow=class extends qc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=iw(e,this.axis),n=tn(t,0,this.maxValue);return z(e,me(n,Y(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};ow.className="MaxNorm";ne.registerClass(ow);var lw=class extends qc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>me(e,Y(jt(),iw(e,this.axis))))}getConfig(){return{axis:this.axis}}};lw.className="UnitNorm";ne.registerClass(lw);var uw=class extends qc{apply(e){return Xe(e)}};uw.className="NonNeg";ne.registerClass(uw);var pw=class extends qc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=iw(e,this.axis),n=Y(z(this.rate,tn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,me(n,Y(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};pw.className="MinMaxNorm";ne.registerClass(pw);var yk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return Xv(e)}function bk(e,t={}){return Uc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in yk?yk[e]:e,config:{}};return bk(t)}else return e instanceof qc?e:bk(e)}function mV(e){return new ow(e)}function fV(e){return new lw(e)}function gV(){return new uw}function yV(e){return new pw(e)}var nN={};Ae(nN,{constant:()=>vV,glorotNormal:()=>CV,glorotUniform:()=>NV,heNormal:()=>EV,heUniform:()=>_V,identity:()=>SV,leCunNormal:()=>AV,leCunUniform:()=>$V,ones:()=>xV,orthogonal:()=>FV,randomNormal:()=>kV,randomUniform:()=>wV,truncatedNormal:()=>IV,varianceScaling:()=>TV,zeros:()=>bV});function bV(){return new Jv}function xV(){return new gf}function vV(e){return new Qv(e)}function wV(e){return new ew(e)}function kV(e){return new tw(e)}function IV(e){return new nw(e)}function SV(e){return new aw(e)}function TV(e){return new Bn(e)}function NV(e){return new yf(e)}function CV(e){return new bf(e)}function EV(e){return new xf(e)}function _V(e){return new vf(e)}function AV(e){return new wf(e)}function $V(e){return new kf(e)}function FV(e){return new rw(e)}var aN={};Ae(aN,{Layer:()=>Ve,RNN:()=>mr,RNNCell:()=>Jc,activation:()=>sG,add:()=>mG,alphaDropout:()=>ZG,average:()=>fG,averagePooling1d:()=>v0,averagePooling2d:()=>w0,averagePooling3d:()=>k0,avgPool1d:()=>SG,avgPool2d:()=>NG,avgPool3d:()=>EG,avgPooling1d:()=>TG,avgPooling2d:()=>CG,avgPooling3d:()=>_G,batchNormalization:()=>wG,bidirectional:()=>UG,categoryEncoding:()=>nH,centerCrop:()=>eH,concatenate:()=>gG,conv1d:()=>YU,conv2d:()=>ZU,conv2dTranspose:()=>JU,conv3d:()=>QU,conv3dTranspose:()=>eG,convLstm2d:()=>zG,convLstm2dCell:()=>WG,cropping2D:()=>nG,dense:()=>iG,depthwiseConv2d:()=>rG,dot:()=>vG,dropout:()=>oG,elu:()=>GU,embedding:()=>hG,flatten:()=>uG,gaussianDropout:()=>YG,gaussianNoise:()=>XG,globalAveragePooling1d:()=>AG,globalAveragePooling2d:()=>$G,globalMaxPool1d:()=>HG,globalMaxPool2d:()=>jG,globalMaxPooling1d:()=>KN,globalMaxPooling2d:()=>XN,gru:()=>DG,gruCell:()=>RG,input:()=>wN,inputLayer:()=>UU,layerNormalization:()=>kG,leakyReLU:()=>jU,lstm:()=>MG,lstmCell:()=>PG,masking:()=>JG,maxPool1d:()=>qG,maxPool2d:()=>KG,maxPooling1d:()=>YN,maxPooling2d:()=>ZN,maxPooling3d:()=>FG,maximum:()=>yG,minimum:()=>bG,multiply:()=>xG,permute:()=>dG,prelu:()=>qU,reLU:()=>HU,repeatVector:()=>pG,rescaling:()=>QG,reshape:()=>cG,resizing:()=>tH,rnn:()=>BG,separableConv2d:()=>tG,simpleRNN:()=>OG,simpleRNNCell:()=>LG,softmax:()=>KU,spatialDropout1d:()=>lG,stackedRNNCells:()=>VG,thresholdedReLU:()=>XU,timeDistributed:()=>GG,upSampling2d:()=>aG,zeroPadding2d:()=>IG});async function Kr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(me(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},iN=class extends fl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew oN(n,t))}var Na=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Na.checkForDuplicate(t),Na.constructors[e]==null&&(Na.constructors[e]=[]),Na.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Na.constructors)Na.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Na.constructors={}}static createCallbacks(e){let t=[];for(let n in Na.constructors){let a=+n;e>=a&&t.push(...Na.constructors[a])}return t.map(n=>new n)}};Na.constructors={};function uN(e,t,n,a,r,s,i,o,l){let u=new iN,p=[new RV,...Na.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new sN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ga(e,t={},n=!1){return Uc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Ah(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Hc(e),t,!0),a=yn(n.shape,jt()),r=un(dr(n,a));return me(e,r)})}function Io(e,t){return P(()=>Nt(Hc(pe(t,e)),-1))}function Sf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function Mu(e,t){return P(()=>{let n=pe(e,t),a=tn(Lt(e),jt(),Number.MAX_VALUE),r=Lt(me(n,a));return z(100,Nt(r,-1))})}function MV(e,t){return P(()=>{let n=tn(t,jt(),Number.MAX_VALUE),a=Qn(Y(1,n)),r=tn(e,jt(),Number.MAX_VALUE),s=Qn(Y(1,r));return Nt(Hc(pe(a,s)),-1)})}function PV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(Hc(n),-1)})}function OV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(n,-1)})}function LV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ha(z(pe(1,e),t),-1);return dr(0,Y(1,pe(a,n)))})}function zV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,xo(z(-2,a))),n);return Nt(r,-1)})}function Yp(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=me(t,a)}return t=tn(t,jt(),1-jt()),bt(fe(z(le(e,"float32"),Qn(t)),t.shape.length-1))})}function $h(e,t,n=!1){return P(()=>{let a=le(_u(q4(e)),"int32");t=tn(t,jt(),1-jt());let r=t.shape,s=W(ll(a,r[r.length-1]),r);return Yp(s,t,n)})}function WV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=bt(Lt(t));return Y(pe(n,z(t,e)),Rc(gn(a)))})}function Tf(e,t){return P(()=>{let n;return n=tn(t,jt(),1-jt()),n=Qn(me(n,pe(1,n))),Nt(WV(e,n),-1)})}function BV(e,t){return P(()=>{let n=tn(e,jt(),1),a=tn(t,jt(),1);return fe(z(e,Qn(me(n,a))),-1)})}function VV(e,t){return P(()=>{let n=Qn(Y(jt(),t));return Nt(pe(t,z(e,n)),-1)})}function cw(e,t){return P(()=>{let n=Ah(e,-1),a=Ah(t,-1),r=z(n,a);return bt(fe(r,-1))})}var Fh={meanSquaredError:Io,meanAbsoluteError:Sf,meanAbsolutePercentageError:Mu,meanSquaredLogarithmicError:MV,squaredHinge:PV,hinge:OV,categoricalHinge:LV,logcosh:zV,categoricalCrossentropy:Yp,sparseCategoricalCrossentropy:$h,binaryCrossentropy:Tf,kullbackLeiblerDivergence:BV,poisson:VV,cosineProximity:cw};function fb(e){if(typeof e=="string"){if(e in Fh)return Fh[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function dw(e,t){return P(()=>{let n=z(.5,ea(t)),a=ir(Nn(t,n),e.dtype);return Nt(Jn(e,a),-1)})}function hw(e,t){return P(()=>ir(Jn(ii(e,-1),ii(t,-1)),"float32"))}function pN(e,t){return P(()=>le(fe($a(Jn(e,1),Jn(t,1))),"float32"))}function UV(e,t){return P(()=>le(fe($a(Jn(e,1),Jn(t,0))),"float32"))}function GV(e,t){return P(()=>le(fe($a(Jn(e,0),Jn(t,1))),"float32"))}function cN(e,t){return P(()=>{let n=pN(e,t),a=GV(e,t),r=Y(n,a);return le(fn(Nn(r,0),me(n,r),0),"float32")})}function HV(e,t){return P(()=>{let n=pN(e,t),a=UV(e,t),r=Y(n,a);return le(fn(Nn(r,0),me(n,r),0),"float32")})}function dN(e,t){return Tf(e,t)}function hN(e,t){return e.rank===t.rank&&(e=Ts(e,[e.rank-1])),t=ii(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(Jn(e,t),"float32")}var jV=Io,qV=Io,KV=Sf,XV=Sf,YV=Mu,ZV=Mu,mw=Yp,JV=cw,mN=$h,Dh={binaryAccuracy:dw,categoricalAccuracy:hw,precision:cN,categoricalCrossentropy:mw,sparseCategoricalCrossentropy:mN,mse:jV,MSE:qV,mae:KV,MAE:XV,mape:YV,MAPE:ZV,cosine:JV};function QV(e){if(typeof e=="string"&&e in Dh)return Dh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function Yd(e){if(nr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(Fh))if(Fh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Dh))if(Dh[n]===e){t=n;break}return t!==void 0?t:e.name}}function eU(e){let t={Adagrad:()=>Us.adagrad(.01),Adadelta:()=>Us.adadelta(1,.95,jt()),Adam:()=>Us.adam(.001,.9,.999,jt()),Adamax:()=>Us.adamax(.002,.9,.999,jt(),0),RMSProp:()=>Us.rmsprop(.001,.9,0,jt()),SGD:()=>Us.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}function vk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Hb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function Hb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Hb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Hb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function tU(e,t,n,a=console.log){let r=aU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Rh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Rh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function rU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Rh(o,t,n)}function sU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);ns(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;nr(x===0,"input layer has >1 nodes"),nr(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(er.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let _=C.inboundLayers.length;for(let $=0;$<_;$++){let R=C.inputTensors[$],F=C.inboundLayers[$],S=C.nodeIndices[$],M=C.tensorIndices[$];o(R,b,x,F,S,M)}for(b.push(C);x.indexOf(C)>=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(qd);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof er&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(qd);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Ba(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Ba(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new If({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}sw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${fw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=jb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=yt(e);let n=new Xs;for(let a=0;a{e=yt(e);let n;return t==null?n=ci(null,e.length):n=yt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Nh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(qd);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(qd);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=yt(p.call(x,m)),b=yt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=yt(p.call(f,m)),b=yt(p.computeMask(f,g));if(p.activityRegularizer)throw new Re("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ga(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!R4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];nr(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];nr(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function iU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function gN(e,t){return iU(e,t,"classWeight")}async function yN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return sr(e);if(e.shape.length===2){if(e.shape[1]>1)return ii(e,1);if(e.shape[1]===1)return W(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ee(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function oU(e,t){return z(e,t)}var lU=32;function bN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=wk("input",e.inputNames,n),i=wk("output",e.outputNames,a),o=s[0].shape[0];v.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),v.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function wk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function uU(e){if(e.length===3)throw new Re("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function pU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(kk(n.validationData))v.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=uU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=lN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=uN(p,d,n.epochs,null,null,cU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;kk(n.validationData)?w=yt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=yt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?lU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Re("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=dU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=bN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(Ee(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&Ee(y)}Ee(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Tp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Qs(a,t,n-t)):Qs(e,t,n-t)}function qb(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>qb(n,t)):YT(e,t.dtype==="int32"?t:le(t,"int32")))}function yb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function xN(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function mU(e){return e instanceof Te}function Kb(e){return Array.isArray(e)}function Ik(e){return!mU(e)&&!Kb(e)}function Sk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Kb(e)&&e.length>0)i=!0;else if(Ik(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Ik(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Kb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=xN(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function fU(e,t,n){let a=ns(e.map(s=>s.shape[0]));a.sort();let r=ns(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function gU(e,t,n){let a=[Io,Tf,Yp];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var bU="layers-model",Er=class extends er{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");tU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=eU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Dr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(fb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>fb(s))}else{let s=fb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=yU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Js("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Tf?["accuracy","acc"].indexOf(c)!==-1?p=dw:["crossentropy","ce"].indexOf(c)!==-1&&(p=dN):this.lossFunctions[s]===$h?["accuracy","acc"].indexOf(c)!==-1?p=hN:["crossentropy","ce"].indexOf(c)!==-1&&(p=mN):["accuracy","acc"].indexOf(c)!==-1?p=hw:["crossentropy","ce"].indexOf(c)!==-1&&(p=mw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=QV(c),u=l+Yd(c);let h;Js(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;gb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{za(s[0],e),za(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),hU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Xs;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Re("Verbose predictLoop() is not implemented yet.");let r=yb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Tp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=xN(e);Tk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return gb(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){Tk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Ba("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=gN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Re("Verbose mode is not implemented yet.");if(r!=null)throw new Re("steps mode in testLoop() is not implemented yet");{let o=yb(s,n),l=Ke(ja(0,s));for(let u=0;u1){let s=pk(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;l0){if(f=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new Re("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let C=!0,_=await this.standardizeUserData(o,l,null,null,C,c);u=_[0],p=_[1],g=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){f=!0;let C=Math.floor(a[0].shape[0]*(1-n.validationSplit)),_=a[0].shape[0];u=Tp(a,C,_),s=a,a=Tp(a,0,C),p=Tp(r,C,_),i=r,r=Tp(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let y=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),x=this.getDedupedMetricsNames(),w,I;f?(this.makeTestFunction(),w=this.testFunction,I=x.slice().concat(x.map(C=>"val_"+C))):(w=null,g=[],I=x.slice());let T=lN(n.callbacks,n.yieldEvery);return await this.fitLoop(b,y,x,c,n.epochs,n.verbose,T,w,g,n.shuffle,I,n.initialEpoch,null,null)}finally{this.isTraining=!1,za(a,e),za(r,t),za(s,e),za(i,t),za(u,o),za(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=ja(0,f)),s==null&&(s=1);let{callbackList:y,history:b}=uN(i,s,r,d,f,c,a,m,p);y.setModel(this),this.history=b,await y.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let $=T[C][0],R=T[C][1],F=Qs(I,$,R-$);_.batch=C,_.size=R-$;let S=qb(t,F),M=e(S);for(let B=0;BIr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Ir(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Ir(Yd(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Ir(Yd(e)));{let e={};for(let t in this.metrics)e[t]=Ir(Yd(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=Zp(e.optimizer_config),n=Ga(t),a;if(typeof e.loss=="string")a=js(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>js(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=js(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>js(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=js(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Gt.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Gt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:bU,generatedBy:`TensorFlow.js tfjs-layers v${fw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Gt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Gt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(vk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){vk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var vN=class extends Er{};vN.className="Functional";ne.registerClass(vN);async function xU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=Zp(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await Gt.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ee(s)}return r}async function vU(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Gt.getLoadHandlers(e,t);if(n.length===0)n.push(Gt.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return wU(e,void 0,t)}async function wU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ga(Zp(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=kU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function kU(e,t){let n=Gt.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var gl=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:mf("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof gl||e instanceof Er,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=eN({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=QT(this.outputs[0])}this.inboundNodes=[],new If({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:ci(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Je(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Er({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof gl))throw new Re(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ga(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};gl.className="Sequential";ne.registerClass(gl);function IU(e){return new Er(e)}function SU(e){return new gl(e)}function wN(e){return eN(e)}function TU(e,t){Na.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},kN=class extends Un{apply(e,t=1){return X4(e,t)}};kN.className="elu";ne.registerClass(kN);var IN=class extends Un{apply(e){return Km(e)}};IN.className="selu";ne.registerClass(IN);var SN=class extends Un{apply(e){return Xe(e)}};SN.className="relu";ne.registerClass(SN);var TN=class extends Un{apply(e){return P(()=>$u(6,Xe(e)))}};TN.className="relu6";ne.registerClass(TN);var NN=class extends Un{apply(e){return e}};NN.className="linear";ne.registerClass(NN);var CN=class extends Un{apply(e){return da(e)}};CN.className="sigmoid";ne.registerClass(CN);var EN=class extends Un{apply(e){return Z4(e)}};EN.className="hardSigmoid";ne.registerClass(EN);var _N=class extends Un{apply(e){return xo(e)}};_N.className="softplus";ne.registerClass(_N);var AN=class extends Un{apply(e){return Y4(e)}};AN.className="softsign";ne.registerClass(AN);var $N=class extends Un{apply(e){return oi(e)}};$N.className="tanh";ne.registerClass($N);var gw=class extends Un{apply(e,t=-1){return Xa(e,t)}};gw.className="softmax";ne.registerClass(gw);var FN=class extends Un{apply(e,t=-1){return Wm(e,t)}};FN.className="logSoftmax";ne.registerClass(FN);var DN=class extends Un{apply(e,t=1){return P(()=>z(da(z(e,t)),e))}};DN.className="swish";ne.registerClass(DN);var RN=class extends Un{apply(e){return P(()=>z(e,oi(xo(e))))}};RN.className="mish";ne.registerClass(RN);function ls(e){return e.getClassName()}function bb(e,t={}){return Uc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function us(e){if(e==null){let t={};return t.className="linear",t.config={},bb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},bb(t)}else return e instanceof Un?e:bb(e)}function yw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var MN=class extends ne.Serializable{},Kc=class extends MN{constructor(e){super(),yw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Hc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Kc.className="L1L2";ne.registerClass(Kc);function NU(e){return yw(e),new Kc({l1:e!=null?e.l1:null,l2:0})}function CU(e){return yw(e),new Kc({l2:e!=null?e.l2:null,l1:0})}var Nk={l1l2:"L1L2"};function ct(e){return Xv(e)}function Ck(e,t={}){return Uc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Nk?Nk[e]:e,config:{}};return Ck(t)}else return e instanceof MN?e:Ck(e)}var bw=class extends Ve{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=tn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};bw.className="ReLU";ne.registerClass(bw);var xw=class extends Ve{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Dc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};xw.className="LeakyReLU";ne.registerClass(xw);var vw=class extends Ve{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Yt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Je(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?_e(e,[0,2,3,1]):e))}function PN(e,t){return P(()=>(Rt(t),t==="channelsFirst"?_e(e,[0,2,3,4,1]):e))}function EU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=_e(e,[0,2,1])),r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Dm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ya(o,n)),o})}function Ek(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Sw(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=hl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=_e(l,[0,3,1,2])),l})}function _U(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=PN(e,s);if(r==="causal")throw new Re("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=pv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=_e(o,[0,4,1,2,3])),o})}var Tw=class extends Ve{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Tw.verifyArgs(t),this.rank=e,en(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Re(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=rl(t.kernelSize,e,"kernelSize"),this.strides=rl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,xa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=us(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=rl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(nr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!Yv(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:ls(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},Xc=class extends Tw{constructor(e,t){super(e,t),this.kernel=null,Xc.verifyArgs(t),this.filters=t.filters,en(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=GT(this.activation.getClassName());if(r!=null&&this.rank===2)n=Ek(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=EU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Ek(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=_U(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Re("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Je(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},Yc=class extends Xc{constructor(e){super(2,e),Yc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Yv(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};Yc.className="Conv2D";ne.registerClass(Yc);var Zc=class extends Xc{constructor(e){super(3,e),Zc.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};Zc.className="Conv3D";ne.registerClass(Zc);var Nw=class extends Yc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=ar(o,d,u,this.padding),m=ar(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=_e(n,[0,2,3,1]));let g=Rm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=_e(g,[0,3,1,2])),this.bias!=null&&(g=Ya(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=ar(t[a],o,s,this.padding),t[r]=ar(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Nw.className="Conv2DTranspose";ne.registerClass(Nw);var Cw=class extends Zc{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=ar(l,m,d,this.padding),b=ar(u,f,c,this.padding),x=ar(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=_e(n,[0,2,3,4,1]));let I=cv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=_e(I,[0,4,1,2,3])),this.bias!==null&&(I=Ya(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=ar(t[a],u,i,this.padding),t[r]=ar(t[r],p,o,this.padding),t[s]=ar(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Cw.className="Conv3DTranspose";ne.registerClass(Cw);var ON=class extends Xc{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Re("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=_e(e,[0,2,3,1])),n=Ss(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ya(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=_e(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=ct(this.depthwiseRegularizer),e.pointwiseRegularizer=ct(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};ON.className="SeparableConv";var Ew=class extends ON{constructor(e){super(2,e)}};Ew.className="SeparableConv2D";ne.registerClass(Ew);var Nf=class extends Xc{constructor(e){super(1,e),Nf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!Yv(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Nf.className="Conv1D";ne.registerClass(Nf);var _w=class extends Ve{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=Xd(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Xd(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Xd(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Xd(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};_w.className="Cropping2D";ne.registerClass(_w);var Aw=class extends Ve{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,V4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=_e(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?_a.resizeNearestNeighbor(n,[r,s]):_a.resizeBilinear(n,[r,s]);return _e(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?_a.resizeNearestNeighbor(n,[r,s]):_a.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};Aw.className="UpSampling2D";ne.registerClass(Aw);function AU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=qa()),Rt(r);let i=Sw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=ks(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=_e(i,[0,3,1,2])),i})}var $w=class extends Tw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=Je(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n=AU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ya(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ha(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ha(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=ct(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};$w.className="DepthwiseConv2D";ne.registerClass($w);function LN(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function zN(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(ja(2,l));if(t=_e(t,u),s!=null)throw new Re("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Qt(r,-1)),r=_e(r,u)),a&&(t=ga(t,0),r!=null&&(r=ga(r,0)));let p=[],d,c=n,h=t.shape[0],m=ut(t),f;r!=null&&(f=ut(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(ea(I),I),C=Y(z(x[0],I),z(c[0],T)),_=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:_}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=$t(p,1)),[d,g,c]})}var mr=class extends Ve{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new _f({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return ja(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Ub(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let a=0;aHt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=LN(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Va){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=zN((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Gc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Bb(t,[1,n]):t):this.cell.stateSize>1?[Bb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===mr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ga(a,n);return new e(Object.assign(t,{cell:r}))}};mr.className="RNN";ne.registerClass(mr);var Jc=class extends Ve{},Cf=class extends Jc{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,en(this.units,"units"),this.activation=us(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=ml([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ml([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0ea(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ea(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Ya(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,or(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:ls(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:ct(this.kernelRegularizer),recurrentRegularizer:ct(this.recurrentRegularizer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Cf.className="SimpleRNNCell";ne.registerClass(Cf);var Fw=class extends mr{constructor(e){e.cell=new Cf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Fw.className="SimpleRNN";ne.registerClass(Fw);var Ef=class extends Jc{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,en(this.units,"units"),this.activation=us(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=us(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=ml([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ml([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0ea(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Dw.className="GRU";ne.registerClass(Dw);var Qc=class extends Jc{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,en(this.units,"units"),this.activation=us(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=us(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=ml([1,os([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=ml([1,os([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Ra{apply(i,o){let l=r.apply([s]),u=new gf().apply([s]),p=r.apply([s*2]);return dk(dk(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0ea(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ea(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Rw.className="LSTM";ne.registerClass(Rw);var _f=class extends Jc{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Js(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ga(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Gb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):ZT(t(),n),o=()=>jc(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var $U=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new kr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let s=0;sHt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ha(l,a[0],r,s[0],i[0]),d=Ha(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};WN.className="ConvRNN2D";var Af=class extends Qc{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,en(this.filters,"filters"),this.kernelSize=rl(n,2,"kernelSize"),this.kernelSize.forEach(o=>en(o,"kernelSize")),this.strides=rl(a||1,2,"strides"),this.strides.forEach(o=>en(o,"strides")),this.padding=r||"valid",xa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=rl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>en(o,"dilationRate"))}build(e){var t;e=Je(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Ra{apply(p,d){let c=l.apply([u]),h=Zn([u]),m=l.apply([u*2]);return Zv([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0ea(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ea(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,_,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,_,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=$U(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=Ft(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ya(r,n,this.dataFormat):r}recurrentConv(e,t){return Ft(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Af.className="ConvLSTM2DCell";ne.registerClass(Af);var Mw=class extends WN{constructor(e){let t=new Af(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Mw.className="ConvLSTM2D";ne.registerClass(Mw);var $f=class extends Ve{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0ZT(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};$f.className="Dropout";ne.registerClass($f);var Pw=class extends $f{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Pw.className="SpatialDropout1D";ne.registerClass(Pw);var Ow=class extends Ve{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,en(this.units,"units"),this.activation=us(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=GT(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Ya(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:ls(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:ct(this.kernelRegularizer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Dense";ne.registerClass(Ow);var Lw=class extends Ve{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],as(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:ls(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};zw.className="Activation";ne.registerClass(zw);var Ww=class extends Ve{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return P(()=>(e=Ne(e),j4(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Ww.className="RepeatVector";ne.registerClass(Ww);var Bw=class extends Ve{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Bw.className="Reshape";ne.registerClass(Bw);var Vw=class extends Ve{constructor(e){if(super(e),e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=ja(1,e.dims.length+1);if(!v.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return _e(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Vw.className="Permute";ne.registerClass(Vw);var Uw=class extends Ve{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return Kp(ui(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=Kp(ui(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Uw.className="Masking";ne.registerClass(Uw);var Gw=class extends Ve{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(yt(e.inputLength))}this.inputDim=e.inputDim,en(this.inputDim,"inputDim"),this.outputDim=e.outputDim,en(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Yt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return P(()=>this.maskZero?(e=Ne(e),ui(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=yt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=ir(n,"int32"));let a=YT(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:ct(this.embeddingsRegularizer),activityRegularizer:ct(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Gw.className="Embedding";ne.registerClass(Gw);var So=class extends Ve{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Re}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&ns(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=os(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=ja(1,l).concat([0]);n.push(_e(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(_e(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(ja(0,i-1));s=_e(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Qt(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>Zv(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Re("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Re("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Np(r,e[s].shape.length)):a=[Np(this.axes,t.shape.length),Np(this.axes,n.shape.length)],this.normalize&&(t=Ah(t,a[0]),n=Ah(n,a[1])),FU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Np(this.axes,e.length),Np(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Re("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};Zw.className="Dot";ne.registerClass(Zw);var Jw=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return jc(()=>Y(ff(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};Jw.className="GaussianNoise";ne.registerClass(Jw);var Qw=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?jc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,ff(n.shape,1,a))},()=>n,t.training||!1):n})}};Qw.className="GaussianDropout";ne.registerClass(Qw);var e0=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return jc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=$r(Fu(n),this.rate);o=ir(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};e0.className="AlphaDropout";ne.registerClass(e0);function Jp(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=ev(e,t,n,a,r,s);else if(e.rank===3)i=tv(e,t,n,a,r,s);else if(e.rank===4)i=nv(e,t,n,a,r,s);else throw new Re(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function DU(e,t,n,a,r=.001){return P(()=>{let s=Pc(e,a),i=s.mean,o=s.variance;return[Jp(e,i,o,n,t,r),i,o]})}function RU(e,t,n,a,r=.001){return P(()=>{let s=Pc(e,a),i=s.mean,o=s.variance,l=[];for(let h of ja(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[Jp(e,u,p,c,d,r),i,o]})}function MU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),ja(0,e.rank-1))?DU(e,t,n,a,r):RU(e,t,n,a,r)}var t0=class extends Ve{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=Je(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=ja(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=ci(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,ja(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return Jp(a,g,y,b,x,this.epsilon)}else return Jp(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=MU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:ct(this.betaRegularizer),gammaRegularizer:ct(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};t0.className="BatchNormalization";ne.registerClass(t0);var n0=class extends Ve{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==ns(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Pc(n,this.axis,!0),o=ci(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=qa()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ba(e,a)})}var a0=class extends Ve{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?qa():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>PU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};a0.className="ZeroPadding2D";ne.registerClass(a0);function Ff(e,t,n,a,r,s){return P(()=>{Rt(r),jT(s),xa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=qa()),s==null&&(s="max"),e=Sw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=_e(i,[0,3,1,2])),i})}function BN(e,t,n,a,r,s){return P(()=>{Rt(r),jT(s),xa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=qa()),s==null&&(s="max"),e=PN(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Cv(e,t,n,o):i=Qx(e,t,n,o),r==="channelsFirst"&&(i=_e(i,[0,4,1,2,3])),i})}var VN=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(en(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,xa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Ha(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Gc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ts(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},r0=class extends VN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),Ff(e,t,n,a,r,"max")}};r0.className="MaxPooling1D";ne.registerClass(r0);var s0=class extends VN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),Ff(e,t,n,a,r,"avg")}};s0.className="AveragePooling1D";ne.registerClass(s0);var UN=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ha(t,this.poolSize[0],this.padding,this.strides[0]),n=Ha(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},i0=class extends UN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),Ff(e,t,n,a,r,"max")}};i0.className="MaxPooling2D";ne.registerClass(i0);var o0=class extends UN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),Ff(e,t,n,a,r,"avg")}};o0.className="AveragePooling2D";ne.registerClass(o0);var GN=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ha(t,this.poolSize[0],this.padding,this.strides[0]),n=Ha(n,this.poolSize[1],this.padding,this.strides[1]),a=Ha(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},l0=class extends GN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),BN(e,t,n,a,r,"max")}};l0.className="MaxPooling3D";ne.registerClass(l0);var u0=class extends GN{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),BN(e,t,n,a,r,"avg")}};u0.className="AveragePooling3D";ne.registerClass(u0);var HN=class extends Ve{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Re}},p0=class extends HN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};p0.className="GlobalAveragePooling1D";ne.registerClass(p0);var c0=class extends HN{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ha(n,1)})}};c0.className="GlobalMaxPooling1D";ne.registerClass(c0);var jN=class extends Ve{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Re}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},d0=class extends jN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};d0.className="GlobalAveragePooling2D";ne.registerClass(d0);var h0=class extends jN{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ha(n,[1,2]):ha(n,[2,3])})}};h0.className="GlobalMaxPooling2D";ne.registerClass(h0);var qN=class extends Ve{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ga(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},m0=class extends qN{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Je(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),zN((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};m0.className="TimeDistributed";ne.registerClass(m0);function OU(e){ko(B4,"BidirectionalMergeMode",e)}var LU="concat",f0=class extends qN{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ga(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ga(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?LU:e.mergeMode,OU(this.mergeMode),e.weights)throw new Re("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=LN(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Re("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Va;for(let l of s)if(l instanceof Va!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=ga(r,1));let i;return this.mergeMode==="concat"?i=Zv([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Js(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Js(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ga(t.layer);if(delete t.layer,t.numConstants!=null)throw new Re("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};f0.className="Bidirectional";ne.registerClass(f0);var g0=class extends Ve{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=ir(e,"float32")),Y(z(e,this.scale),this.offset)))}};g0.className="Rescaling";ne.registerClass(g0);var{resizeBilinear:zU,cropAndResize:WU}=_a,y0=class extends Ve{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return P(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=$t([e])):l=e;for(let x=0;x{let r=zU(e,[t,n]);return ir(r,a)})}call(e,t){return P(()=>{let n=Ne(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};y0.className="CenterCrop";ne.registerClass(y0);function BU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=ir(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Qt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Qt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Th(o,a,n,i):l=Th(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var b0=class extends Ve{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=ir(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ha(e),r=pl(e),s=Nn(this.numTokens,a).bufferSync().get(0),i=$r(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return BU(e,this.outputMode,this.numTokens,n)})}};b0.className="CategoryEncoding";ne.registerClass(b0);var VU=["bilinear","nearest"],_k=new Set(VU),x0=class extends Ve{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(_k.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return _a.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return _a.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[..._k]} are supported`)})}};x0.className="Resizing";ne.registerClass(x0);function UU(e){return new Ru(e)}function GU(e){return new ww(e)}function HU(e){return new bw(e)}function jU(e){return new xw(e)}function qU(e){return new vw(e)}function KU(e){return new Iw(e)}function XU(e){return new kw(e)}function YU(e){return new Nf(e)}function ZU(e){return new Yc(e)}function JU(e){return new Nw(e)}function QU(e){return new Zc(e)}function eG(e){return new Cw(e)}function tG(e){return new Ew(e)}function nG(e){return new _w(e)}function aG(e){return new Aw(e)}function rG(e){return new $w(e)}function sG(e){return new zw(e)}function iG(e){return new Ow(e)}function oG(e){return new $f(e)}function lG(e){return new Pw(e)}function uG(e){return new Lw(e)}function pG(e){return new Ww(e)}function cG(e){return new Bw(e)}function dG(e){return new Vw(e)}function hG(e){return new Gw(e)}function mG(e){return new Hw(e)}function fG(e){return new qw(e)}function gG(e){return new Yw(e)}function yG(e){return new Kw(e)}function bG(e){return new Xw(e)}function xG(e){return new jw(e)}function vG(e){return new Zw(e)}function wG(e){return new t0(e)}function kG(e){return new n0(e)}function IG(e){return new a0(e)}function v0(e){return new s0(e)}function SG(e){return v0(e)}function TG(e){return v0(e)}function w0(e){return new o0(e)}function NG(e){return w0(e)}function CG(e){return w0(e)}function k0(e){return new u0(e)}function EG(e){return k0(e)}function _G(e){return k0(e)}function AG(e){return new p0(e)}function $G(e){return new d0(e)}function KN(e){return new c0(e)}function XN(e){return new h0(e)}function YN(e){return new r0(e)}function ZN(e){return new i0(e)}function FG(e){return new l0(e)}function DG(e){return new Dw(e)}function RG(e){return new Ef(e)}function MG(e){return new Rw(e)}function PG(e){return new Qc(e)}function OG(e){return new Fw(e)}function LG(e){return new Cf(e)}function zG(e){return new Mw(e)}function WG(e){return new Af(e)}function BG(e){return new mr(e)}function VG(e){return new _f(e)}function UG(e){return new f0(e)}function GG(e){return new m0(e)}var HG=KN,jG=XN,qG=YN,KG=ZN;function XG(e){return new Jw(e)}function YG(e){return new Qw(e)}function ZG(e){return new e0(e)}function JG(e){return new Uw(e)}function QG(e){return new g0(e)}function eH(e){return new y0(e)}function tH(e){return new x0(e)}function nH(e){return new b0(e)}var JN={};Ae(JN,{MAPE:()=>hH,MSE:()=>gH,binaryAccuracy:()=>aH,binaryCrossentropy:()=>rH,categoricalAccuracy:()=>iH,categoricalCrossentropy:()=>oH,cosineProximity:()=>pH,mape:()=>mH,meanAbsoluteError:()=>cH,meanAbsolutePercentageError:()=>dH,meanSquaredError:()=>fH,mse:()=>yH,precision:()=>lH,recall:()=>uH,sparseCategoricalAccuracy:()=>sH});function aH(e,t){return dw(e,t)}function rH(e,t){return dN(e,t)}function sH(e,t){return hN(e,t)}function iH(e,t){return hw(e,t)}function oH(e,t){return mw(e,t)}function lH(e,t){return cN(e,t)}function uH(e,t){return HV(e,t)}function pH(e,t){return cw(e,t)}function cH(e,t){return Sf(e,t)}function dH(e,t){return Mu(e,t)}function hH(e,t){return Mu(e,t)}function mH(e,t){return Mu(e,t)}function fH(e,t){return Io(e,t)}function gH(e,t){return Io(e,t)}function yH(e,t){return Io(e,t)}var QN={};Ae(QN,{modelFromJSON:()=>xU});var e2={};Ae(e2,{l1:()=>xH,l1l2:()=>bH,l2:()=>vH});function bH(e){return new Kc(e)}function xH(e){return NU(e)}function vH(e){return CU(e)}var t2=class extends fl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Er))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function Zd(e,t){return et}var n2=class extends t2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Re("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Zd:this.mode==="max"?this.monitorFunc=Ak:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Ak:this.monitorFunc=Zd,this.monitorFunc===Zd&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Zd?1/0:-1/0}async onEpochEnd(e,t){await Kr(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function wH(e){return new n2(e)}var kH={earlyStopping:wH},IH=H();IH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Ta;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Ta||(Ta={}));var $k;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})($k||($k={}));var I0={};function SH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};I0[e]=n}function a2(e){return I0[e]}function TH(e){delete I0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return wn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>wn(d,n,a,r));let u=wn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function wn(e,t,n,a){let[r,s]=Xn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Mh(r,o)]);return i!==void 0?t[Mh(r,i)][s]:void 0}function NH(e,t,n){return t[Mh(e,n.currentContextId)]}function Sr(e,t){let[n,a,r]=Xn(e);return[Mh(n,t&&t.currentContextId),a,r]}function Mh(e,t){return t?`${e}-${t}`:e}function Xn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function ih(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Tr(e){return e.kept?e:sr(e)}var r2={};Ae(r2,{json:()=>CH});var CH=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],s2={};Ae(s2,{json:()=>EH});var EH=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],i2={};Ae(i2,{json:()=>_H});var _H=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],o2={};Ae(o2,{json:()=>AH});var AH=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],l2={};Ae(l2,{json:()=>$H});var $H=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],u2={};Ae(u2,{json:()=>FH});var FH=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],p2={};Ae(p2,{json:()=>DH});var DH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],c2={};Ae(c2,{json:()=>RH});var RH=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],d2={};Ae(d2,{json:()=>MH});var MH=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],h2={};Ae(h2,{json:()=>PH});var PH=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],m2={};Ae(m2,{json:()=>OH});var OH=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],f2={};Ae(f2,{json:()=>LH});var LH=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],g2={};Ae(g2,{json:()=>zH});var zH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],y2={};Ae(y2,{json:()=>WH});var WH=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],b2={};Ae(b2,{json:()=>BH});var BH=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],x2={};Ae(x2,{json:()=>VH});var VH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],v2={};Ae(v2,{json:()=>UH});var UH=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],w2={};Ae(w2,{json:()=>GH});var GH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],k2={};Ae(k2,{json:()=>HH});var HH=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Fk=class{constructor(){let e=[r2,s2,i2,o2,l2,u2,p2,c2,d2,h2,m2,f2,g2,y2,b2,x2,v2,w2,k2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=Sr(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Sr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Sr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=a2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Xb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Xb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=Zb(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=Zb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=tx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=Yb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Yb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=Jb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Jb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Dk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Dk(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Sr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:S0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Sr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Sr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function jH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function I2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):jH(e);return t?n:n.toLowerCase()}function Xb(e,t,n,a=!1){let r=e[t];return r!=null?I2(r.s,a):n}function Yb(e,t,n){let a=e[t];return a?a.b:n}function Zb(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function S0(e){switch(typeof e=="string"&&(e=Ta[e]),e){case Ta.DT_FLOAT:case Ta.DT_HALF:return"float32";case Ta.DT_INT32:case Ta.DT_INT64:case Ta.DT_INT8:case Ta.DT_UINT8:return"int32";case Ta.DT_BOOL:return"bool";case Ta.DT_DOUBLE:return"float32";case Ta.DT_STRING:return"string";default:return null}}function Dk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function Jb(e,t,n){let a=e[t];return a&&a.type?S0(a.type):n}function Qb(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>S0(r)):n}function S2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function ex(e,t,n){let a=e[t];return a&&a.shape?S2(a.shape):n}function tx(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function nx(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>I2(s,a)):n}function ax(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>S2(r)):n}function rx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var qH=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return wn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return wn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Zb(this.node.rawAttrs,e,t);if(n.s!=null)return Xb(this.node.rawAttrs,e,t);if(n.b!=null)return Yb(this.node.rawAttrs,e,t);if(n.shape!=null)return ex(this.node.rawAttrs,e,t);if(n.type!=null)return Jb(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return tx(this.node.rawAttrs,e,t);if(n.list.s!=null)return nx(this.node.rawAttrs,e,t);if(n.list.shape!=null)return ax(this.node.rawAttrs,e,t);if(n.list.b!=null)return rx(this.node.rawAttrs,e,t);if(n.list.type!=null)return Qb(this.node.rawAttrs,e,t)}return t}},an={};Ae(an,{OP_SCOPE_SUFFIX:()=>Ax,abs:()=>Lt,acos:()=>Gx,acosh:()=>Hx,add:()=>Y,addN:()=>AS,all:()=>Fm,any:()=>Kp,argMax:()=>ii,argMin:()=>jx,asin:()=>qx,asinh:()=>Kx,atan:()=>Xx,atan2:()=>Yx,atanh:()=>Zx,avgPool:()=>ya,avgPool3d:()=>Qx,basicLSTMCell:()=>RS,batchNorm:()=>ws,batchNorm2d:()=>ev,batchNorm3d:()=>tv,batchNorm4d:()=>nv,batchToSpaceND:()=>$c,bincount:()=>av,booleanMaskAsync:()=>gT,broadcastArgs:()=>MS,broadcastTo:()=>Zs,buffer:()=>Pe,cast:()=>le,ceil:()=>rv,clipByValue:()=>tn,clone:()=>sr,complex:()=>_r,concat:()=>Ze,concat1d:()=>sv,concat2d:()=>iv,concat3d:()=>ov,concat4d:()=>lv,conv1d:()=>Dm,conv2d:()=>Ft,conv2dTranspose:()=>Rm,conv3d:()=>pv,conv3dTranspose:()=>cv,cos:()=>Fc,cosh:()=>Mm,cosineWindow:()=>nf,cumprod:()=>Xp,cumsum:()=>Pm,denseBincount:()=>Th,depthToSpace:()=>dv,depthwiseConv2d:()=>ks,diag:()=>OS,dilation2d:()=>hv,div:()=>me,divNoNan:()=>mv,dot:()=>fv,dropout:()=>Vv,einsum:()=>LS,elu:()=>Cu,enclosingPowerOfTwo:()=>Uv,equal:()=>Jn,erf:()=>gv,euclideanNorm:()=>xv,exp:()=>gn,expandDims:()=>Qt,expm1:()=>vv,eye:()=>Om,fft:()=>Wc,fill:()=>yn,floor:()=>_u,floorDiv:()=>$m,fused:()=>hl,gather:()=>Au,gatherND:()=>vT,greater:()=>Nn,greaterEqual:()=>$r,ifft:()=>dl,imag:()=>Ec,image:()=>_a,inTopKAsync:()=>wT,irfft:()=>Jm,isFinite:()=>wv,isInf:()=>kv,isNaN:()=>Iv,leakyRelu:()=>Dc,less:()=>Lm,lessEqual:()=>Is,linalg:()=>jv,linspace:()=>US,localResponseNormalization:()=>Sv,log:()=>Qn,log1p:()=>Rc,logSigmoid:()=>Tv,logSoftmax:()=>Wm,logSumExp:()=>Bm,logicalAnd:()=>$a,logicalNot:()=>Mc,logicalOr:()=>Vm,logicalXor:()=>Nv,losses:()=>DT,lowerBound:()=>HS,matMul:()=>Fe,max:()=>ha,maxPool:()=>Dt,maxPool3d:()=>Cv,maxPoolWithArgmax:()=>jS,maximum:()=>dr,mean:()=>Nt,meshgrid:()=>qS,min:()=>pl,minimum:()=>$u,mirrorPad:()=>Ev,mod:()=>_v,moments:()=>Pc,movingAverage:()=>yT,mul:()=>z,multiRNNCell:()=>KS,multinomial:()=>XS,neg:()=>bt,norm:()=>Eu,notEqual:()=>ui,oneHot:()=>ll,ones:()=>Zn,onesLike:()=>ea,op:()=>L,outerProduct:()=>YS,pad:()=>ba,pad1d:()=>ZS,pad2d:()=>JS,pad3d:()=>QS,pad4d:()=>eT,pool:()=>Av,pow:()=>Ar,prelu:()=>Lc,print:()=>Rx,prod:()=>$v,raggedGather:()=>tT,raggedRange:()=>nT,raggedTensorToTensor:()=>aT,rand:()=>rT,randomGamma:()=>sT,randomNormal:()=>Gm,randomStandardNormal:()=>iT,randomUniform:()=>Fu,range:()=>pi,real:()=>ul,reciprocal:()=>Rv,relu:()=>Xe,relu6:()=>Hm,reshape:()=>W,reverse:()=>ga,reverse1d:()=>oT,reverse2d:()=>lT,reverse3d:()=>uT,reverse4d:()=>pT,rfft:()=>Bc,round:()=>jm,rsqrt:()=>qm,scalar:()=>xe,scatterND:()=>bT,searchSorted:()=>Um,selu:()=>Km,separableConv2d:()=>Ss,setdiff1dAsync:()=>cT,sigmoid:()=>da,sign:()=>Mv,signal:()=>FT,sin:()=>Xm,sinh:()=>Ym,slice:()=>Be,slice1d:()=>zc,slice2d:()=>Zm,slice3d:()=>vo,slice4d:()=>cl,softmax:()=>Xa,softplus:()=>xo,spaceToBatchND:()=>Oc,sparse:()=>RT,sparseToDense:()=>xT,spectral:()=>$T,split:()=>zn,sqrt:()=>un,square:()=>ot,squaredDifference:()=>Qm,squeeze:()=>Ts,stack:()=>$t,step:()=>wo,stridedSlice:()=>Pv,string:()=>MT,sub:()=>pe,sum:()=>fe,tan:()=>Ov,tanh:()=>oi,tensor:()=>mn,tensor1d:()=>Ke,tensor2d:()=>Aa,tensor3d:()=>_c,tensor4d:()=>Da,tensor5d:()=>dT,tensor6d:()=>hT,tile:()=>Ln,topk:()=>Lv,transpose:()=>_e,truncatedNormal:()=>ef,unique:()=>zv,unsortedSegmentSum:()=>tf,unstack:()=>ut,upperBound:()=>mT,variable:()=>Wv,where:()=>fn,whereAsync:()=>Bv,zeros:()=>It,zerosLike:()=>qe});var KH=(e,t,n,a=an)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},XH=(e,t,n,a=an)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(wn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(wn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ea(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Rk(e){return!(typeof e=="number"||e.some(t=>t<0))}function Cp(e,t,n){let a=sx(e,n),r=!Rk(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=sx(s.shape,a)}),!Rk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function sx(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var YH=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Ht(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ea(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,Ht(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ut(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ca(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=xe(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ca(e,this.elementShape,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Tp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ca(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ca(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ca(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Tp(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ca(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Ca(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Tp(this.elementShape,this.tensors,n);return e.length===0?kn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ca(this.elementShape,t,"TensorList shape mismatch: ");let n=Tp(this.elementShape,this.tensors,t);return this.size()===0?kn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function qH(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);Ca(r,t,"TensorList shape mismatch: ");let s=ct(e);return new ml(s,t,a)}function KH(e,t,n,a){return new ml([],e,t,a)}function XH(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new ml([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function YH(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ea(t,r.shape,"TensorList shape mismatch: "),Ht(r)}),this.idTensor=xe(0),this.maxNumElements=a,Ht(this.idTensor)}get id(){return this.idTensor.id}copy(){return new yl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ea(e,this.elementShape,"TensorList shape mismatch: ");let a=Cp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Cp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ea(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ea(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new yl([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ea(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Cp(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ea(this.elementShape,t.shape,"TensorList shape mismatch: "),Ht(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Ea(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Cp(this.elementShape,this.tensors,n);return e.length===0?mn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ea(this.elementShape,t,"TensorList shape mismatch: ");let n=Cp(this.elementShape,this.tensors,t);return this.size()===0?mn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function ZH(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);Ea(r,t,"TensorList shape mismatch: ");let s=ut(e);return new yl(s,t,a)}function JH(e,t,n,a){return new yl([],e,t,a)}function QH(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new yl([],n,e.dtype,a),i=ut(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function e6(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=tx(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[kr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=kr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>vn(r,t,n)!==void 0);if(a){let r=vn(a,t,n);return[kr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[kr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[kr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[kr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new jH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=XH(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=KH(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=qH(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=YH(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Fk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=sh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var JH=(e,t,n,a=un)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Fk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=sh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=sh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},QH=(e,t,n,a=un)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function mb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var e6=async(e,t,n,a,r=un)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=mb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=mb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},t6=(e,t,n,a=un)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=un)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[vn(e.name,t,n)||r];case"Placeholder":return[vn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[kr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>kr(p));case"Snapshot":let s=k("x",e,t,n);return[kr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new a6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},s6=(e,t,n,a=un)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i6=(e,t,n,a=un)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},o6=(e,t,n,a=un)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},l6=(e,t,n,a=un)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},u6=(e,t,n,a=un)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=un)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},c6=(e,t,n,a=un)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=un)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=un)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m6=(e,t,n,a=un)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Dk(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>GH(i,o,l));case"basic_math":return r(()=>HH(i,o,l));case"control":return ZH(i,o,l);case"convolution":return r(()=>JH(i,o,l));case"creation":return r(()=>QH(i,o,l));case"dynamic":return e6(i,o,l);case"evaluation":return r(()=>t6(i,o,l));case"image":return r(()=>s6(i,o,l));case"graph":return r(()=>n6(i,o,l));case"logical":return r(()=>i6(i,o,l));case"matrices":return r(()=>o6(i,o,l));case"normalization":return r(()=>l6(i,o,l));case"reduction":return r(()=>u6(i,o,l));case"slice_join":return r(()=>p6(i,o,l));case"sparse":return r(()=>c6(i,o,l));case"spectral":return r(()=>d6(i,o,l));case"string":return r(()=>h6(i,o,l));case"transformation":return r(()=>m6(i,o,l));case"hash_table":return r6(i,o,l,a);case"custom":let u=e2(i.op);if(u&&u.customExecutor)return u.customExecutor(new UH(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Rk=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Mk(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Xn(c)[0]),p=[];a!=null&&(p=a.map(c=>Xn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((k2(c)||x6(c)||v6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function f6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Xn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var g6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],y6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],b6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function k2(e){return g6.indexOf(e.op)>=0}function x6(e){return y6.indexOf(e.op)>=0}function v6(e){return b6.indexOf(e.op)>=0}var nx=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new nx(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=Mk(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return f6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Xn(p)[0]]),r=t.map(p=>Xn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new Rk(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Xn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mvn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=kH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=ar(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new Rk(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>vn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Xn(b)[0]]),i=n.map(b=>Xn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Mk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Xn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!k2(b)&&!vn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=ar(p.node.name,n)),a[p.node.name]==null){let c=Dk(p.node,a,n,this._resourceManager);d||([d]=ar(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=ar(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!vn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Xn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Xn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Xn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},w6=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},k6="?tfjs-format=file",I6="model.json",k0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new w6}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new nx(Ek.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Ek.Instance.transformGraph(e.modelInitializer);this.initializer=new nx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function S6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=N6(e));let a=new k0(e,t,n);return await a.load(),a}function T6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new k0(t);return n.load(),n}function N6(e){return e.endsWith("/")||(e=e+"/"),`${e}${I6}${k6}`}var C6="4.0.0",I2={};$e(I2,{CSVDataset:()=>F2,Dataset:()=>Mu,FileDataSource:()=>z2,TextLineDataset:()=>A2,URLDataSource:()=>W2,array:()=>Y6,csv:()=>oj,func:()=>lj,generator:()=>uj,microphone:()=>cj,version_data:()=>dj,webcam:()=>pj,zip:()=>Z6});var _6=us(Hh()),E6=us(Hh());function $6(e,t){return Mh(e,t)}function Mh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(fl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Mh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function A6(e,t=T2){return S2(e,t)}function S2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(fl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=S2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function T2(e){return e===null?null:fl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function N2(e,t){let n=new Map;Mh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Mh(e,t,n)}function fl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=wI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function F6(e){return e==null||D6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function D6(e){return e===null||typeof e!="object"&&typeof e!="function"}function R6(e){return $6(e,M6)}function M6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:fl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var C2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},I0=class extends C2{constructor(){super(I0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new U6(this,e,t)}columnMajorBatch(e,t=!0,n=T2){return this.rowMajorBatch(e,t).map(a=>A6(a,n))}concatenate(e,t){return new E2(_2([this,e]),t)}take(e){return e<0||e==null?this:new V6(this,e)}skip(e){return e<0||e==null?this:new B6(this,e)}prefetch(e){return new $2(this,e)}shuffle(e,t){return new X6(this,e,t)}serial(){return new W6(this)}},L6=class extends tn{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:R6(e),done:!1}}},z6=class extends tn{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},W6=class extends tn{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},B6=class extends tn{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},U6=class extends tn{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},G6=class extends tn{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},H6=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},j6=class extends tn{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},Pk=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},T0=class extends tn{constructor(){super(),this.outputQueue=new I0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},q6=class extends T0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},E2=class extends tn{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Yr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Yr||(Yr={}));var K6=class extends tn{constructor(e,t=Yr.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await N2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Yr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Yr.SHORTEST:return{value:null,done:!0};case Yr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},$2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new C2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},X6=class extends $2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=E6.alea(n||v.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Mu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,J6),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=S0(async()=>({value:await t.iterator(),done:!1}));return P6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=_6.alea(t||v.now().toString());return Kn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Kn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Mu.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends Mu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function Y6(e){return Kn(async()=>_2(e),e.length)}function Z6(e){if(!fl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await N2(e,a=>{if(a instanceof Mu)return{value:a.iterator(),recurse:!1};if(fl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return O6(n,Yr.SHORTEST)},t)}function J6(e){if(e===null)return null;let t=e[0];return F6(t)?{value:Q6(e),recurse:!1}:{value:null,recurse:!0}}function Q6(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):kn(e)}var A2=class extends Mu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Zd='"',Np=Symbol("out"),Ok=Symbol("field"),Jd=Symbol("quote"),fb=Symbol("quoteafterquote"),Lk=Symbol("quoteinquote"),F2=class extends Mu{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new A2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&v.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new D2(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),kn(n,t)}},R2=class extends tn{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=_a([s,r,o,i],[1,4])}else this.cropBox=_a([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new R2(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=co.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(le(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},M2=class{},P2=class extends tn{split(e){return new ej(this,e)}},ej=class extends P2{constructor(e,t){super(),this.upstream=e,this.impl=new tj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},tj=class extends T0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},nj=class extends tn{decodeUTF8(){return new aj(this)}},aj=class extends P2{constructor(e){super(),this.upstream=e,this.impl=new rj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},rj=class extends T0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=wI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},O2=class extends nj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function sj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=ij(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new O2(i,t)}else throw new Error(s.statusText)}var ij=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function L2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var z2=class extends M2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(L2(this.input)&&H().get("IS_NODE")){let e=xx();this.input=e.readFileSync(this.input.slice(7))}return new O2(this.input,this.options)}},W2=class extends M2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return L2(this.url)?new z2(this.url,this.fileOptions).iterator():sj(this.url,this.fileOptions)}};function oj(e,t={}){return new F2(new W2(e),t)}function lj(e){let t=S0(e);return Kn(async()=>t)}function uj(e){return Kn(async()=>{let t=await e();return S0(()=>t.next())})}async function pj(e,t){return R2.create(e,t)}async function cj(e){return D2.create(e)}var dj="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var hj=cr.whereImpl,N0=class extends rc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new jh(this,Na())}nextDataId(){return N0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=sx(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Tr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Tr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>wn(r,t,n)!==void 0);if(a){let r=wn(a,t,n);return[Tr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Tr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Tr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Tr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new YH(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=QH(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=JH(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=ZH(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=e6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Mk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=ih(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var n6=(e,t,n,a=an)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=ih(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Mk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Mk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=ih(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=ih(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},a6=(e,t,n,a=an)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function xb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var r6=async(e,t,n,a,r=an)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=xb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=xb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=xb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},s6=(e,t,n,a=an)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},i6=(e,t,n,a=an)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[wn(e.name,t,n)||r];case"Placeholder":return[wn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Tr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Tr(p));case"Snapshot":let s=k("x",e,t,n);return[Tr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ut(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new o6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},u6=(e,t,n,a=an)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=an)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},c6=(e,t,n,a=an)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=an)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=an)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},m6=(e,t,n,a=an)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},f6=(e,t,n,a=an)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},g6=(e,t,n,a=an)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},y6=(e,t,n,a=an)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},b6=(e,t,n,a=an)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},x6=(e,t,n,a=an)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Pk(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>KH(i,o,l));case"basic_math":return r(()=>XH(i,o,l));case"control":return t6(i,o,l);case"convolution":return r(()=>n6(i,o,l));case"creation":return r(()=>a6(i,o,l));case"dynamic":return r6(i,o,l);case"evaluation":return r(()=>s6(i,o,l));case"image":return r(()=>u6(i,o,l));case"graph":return r(()=>i6(i,o,l));case"logical":return r(()=>p6(i,o,l));case"matrices":return r(()=>c6(i,o,l));case"normalization":return r(()=>d6(i,o,l));case"ragged":return r(()=>h6(i,o,l));case"reduction":return r(()=>m6(i,o,l));case"slice_join":return r(()=>f6(i,o,l));case"sparse":return r(()=>g6(i,o,l));case"spectral":return r(()=>y6(i,o,l));case"string":return r(()=>b6(i,o,l));case"transformation":return r(()=>x6(i,o,l));case"hash_table":return l6(i,o,l,a);case"custom":let u=a2(i.op);if(u&&u.customExecutor)return u.customExecutor(new qH(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Ok=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function Lk(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Xn(c)[0]),p=[];a!=null&&(p=a.map(c=>Xn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((T2(c)||S6(c)||T6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function v6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Xn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var w6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],k6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],I6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function T2(e){return w6.indexOf(e.op)>=0}function S6(e){return k6.indexOf(e.op)>=0}function T6(e){return I6.indexOf(e.op)>=0}var ix=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new ix(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=Lk(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return v6(this.graph,this.weightMap,n)}cloneAndKeepTensor(e){if(e==null)return null;let t=e.clone();return Ht(t),t}cloneTensorList(e){return e?e.map(t=>this.cloneAndKeepTensor(t)):null}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,this.cloneTensorList(n)]))}execute(e,t){this.disposeIntermediateTensors(),e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Xn(p)[0]]),r=t.map(p=>Xn(p)[0]),s=r.map(p=>this.graph.nodes[p]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));try{this.keepIntermediateTensors=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(p){this.keepIntermediateTensors=!1,console.warn(p.message)}let l={},u={};return P(()=>{let p=new Ok(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(m=>{let[f,g]=Xn(m),y=[];y[g]=e[m],d[f]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(y))});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mwn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=NH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.clonedTensorsMap||(Object.values(this.clonedTensorsMap).forEach(e=>{for(let t of e)t&&!t.isDisposed&&t.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,n=!1,a={},r={}){this.disposeIntermediateTensors(),n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new Ok(this.weightMap,a,r,this.functionExecutorMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>wn(d,i,s)),l=o.map(d=>d.id),u=Object.keys(e).map(d=>e[d].id),p=new Set([...l,...u,...this.weightIds]);return Object.values(i).forEach(d=>{d.forEach(c=>{c&&!c.isDisposed&&!p.has(c.id)&&c.dispose()})}),this.parent==null&&s.dispose(p),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Xn(b)[0]]),i=n.map(b=>Xn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=Lk(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Xn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!T2(b)&&!wn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=Sr(p.node.name,n)),a[p.node.name]==null){let c=Pk(p.node,a,n,this._resourceManager);d||([d]=Sr(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,this.keepIntermediateTensors&&(this.clonedTensorsMap[d]=this.cloneTensorList(m)),n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.keepIntermediateTensors&&(this.clonedTensorsMap[d]=this.cloneTensorList(c)),this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Sr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Xn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){var t,n;let a={};for(let r in e){let s=(n=(t=this._signature)===null||t===void 0?void 0:t.inputs)===null||n===void 0?void 0:n[r];s!=null?a[s.name]=e[r]:a[r]=e[r]}return a}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Xn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{var n,a;let r=(a=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||a===void 0?void 0:a[t];return r!=null?r.name:t},{})}checkOutputs(e){e.forEach(t=>{let[n]=Xn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},N6=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},C6="?tfjs-format=file",E6="model.json",T0=class{constructor(e,t={},n=Gt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new N6}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new ix(Fk.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Fk.Instance.transformGraph(e.modelInitializer);this.initializer=new ix(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Te?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Te)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function _6(e,t={},n=Gt){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=$6(e));let a=new T0(e,t,n);return await a.load(),a}function A6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Gt.getWeightSpecs(a.weightsManifest),i=Gt.getModelArtifactsForJSONSync(a,s,r);t=Gt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Gt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new T0(t);return n.load(),n}function $6(e){return e.endsWith("/")||(e=e+"/"),`${e}${E6}${C6}`}var F6="4.1.0",N2={};Ae(N2,{CSVDataset:()=>M2,Dataset:()=>Pu,FileDataSource:()=>V2,TextLineDataset:()=>R2,URLDataSource:()=>U2,array:()=>tj,csv:()=>dj,func:()=>hj,generator:()=>mj,microphone:()=>gj,version_data:()=>yj,webcam:()=>fj,zip:()=>nj});var D6=hs(jh()),R6=hs(jh());function M6(e,t){return Ph(e,t)}function Ph(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(bl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Ph(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function P6(e,t=E2){return C2(e,t)}function C2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(bl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=C2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function E2(e){return e===null?null:bl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function _2(e,t){let n=new Map;Ph(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Ph(e,t,n)}function bl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=SI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function O6(e){return e==null||L6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function L6(e){return e===null||typeof e!="object"&&typeof e!="function"}function z6(e){return M6(e,W6)}function W6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:bl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var A2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},N0=class extends A2{constructor(){super(N0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new K6(this,e,t)}columnMajorBatch(e,t=!0,n=E2){return this.rowMajorBatch(e,t).map(a=>P6(a,n))}concatenate(e,t){return new F2($2([this,e]),t)}take(e){return e<0||e==null?this:new q6(this,e)}skip(e){return e<0||e==null?this:new j6(this,e)}prefetch(e){return new D2(this,e)}shuffle(e,t){return new ej(this,e,t)}serial(){return new H6(this)}},U6=class extends nn{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:z6(e),done:!1}}},G6=class extends nn{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},H6=class extends nn{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},j6=class extends nn{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},K6=class extends nn{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},X6=class extends nn{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ee(e.value)}}},Y6=class extends nn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ua.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ua.getTensorsInContainer(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},Z6=class extends nn{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},zk=class extends nn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ua.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ua.getTensorsInContainer(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},E0=class extends nn{constructor(){super(),this.outputQueue=new N0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},J6=class extends E0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ua.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ua.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return!0}},F2=class extends nn{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},Qr;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(Qr||(Qr={}));var Q6=class extends nn{constructor(e,t=Qr.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof nn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await _2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case Qr.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case Qr.SHORTEST:return{value:null,done:!0};case Qr.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},D2=class extends nn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new A2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},ej=class extends D2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=R6.alea(n||v.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Pu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Kn(async()=>(await n.iterator()).columnMajorBatch(e,t,aj),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Kn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Kn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Kn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Kn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Kn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Kn(async()=>{let a=C0(async()=>({value:await t.iterator(),done:!1}));return B6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=D6.alea(t||v.now().toString());return Kn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Kn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Pu.MAX_BUFFER_SIZE=1e4;function Kn(e,t=null){return new class extends Pu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function tj(e){return Kn(async()=>$2(e),e.length)}function nj(e){if(!bl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await _2(e,a=>{if(a instanceof Pu)return{value:a.iterator(),recurse:!1};if(bl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return V6(n,Qr.SHORTEST)},t)}function aj(e){if(e===null)return null;let t=e[0];return O6(t)?{value:rj(e),recurse:!1}:{value:null,recurse:!0}}function rj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?$t(e):mn(e)}var R2=class extends Pu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},Jd='"',Ep=Symbol("out"),Wk=Symbol("field"),Qd=Symbol("quote"),vb=Symbol("quoteafterquote"),Bk=Symbol("quoteinquote"),M2=class extends Pu{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new R2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&v.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new P2(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),mn(n,t)}},O2=class extends nn{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Aa([s,r,o,i],[1,4])}else this.cropBox=Aa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new O2(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=bo.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Qt(le(e,"float32"),0),n;n=_a.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},L2=class{},z2=class extends nn{split(e){return new sj(this,e)}},sj=class extends z2{constructor(e,t){super(),this.upstream=e,this.impl=new ij(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ij=class extends E0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},oj=class extends nn{decodeUTF8(){return new lj(this)}},lj=class extends z2{constructor(e){super(),this.upstream=e,this.impl=new uj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},uj=class extends E0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=SI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},W2=class extends oj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function pj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=cj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new W2(i,t)}else throw new Error(s.statusText)}var cj=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function B2(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var V2=class extends L2{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(B2(this.input)&&H().get("IS_NODE")){let e=Ix();this.input=e.readFileSync(this.input.slice(7))}return new W2(this.input,this.options)}},U2=class extends L2{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return B2(this.url)?new V2(this.url,this.fileOptions).iterator():pj(this.url,this.fileOptions)}};function dj(e,t={}){return new M2(new U2(e),t)}function hj(e){let t=C0(e);return Kn(async()=>t)}function mj(e){return Kn(async()=>{let t=await e();return C0(()=>t.next())})}async function fj(e,t){return O2.create(e,t)}async function gj(e){return P2.create(e)}var yj="4.1.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var bj=hr.whereImpl,_0=class extends sc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new qh(this,Ca())}nextDataId(){return _0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ge([e],"where");let t=this.readSync(e.dataId);return hj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};N0.nextDataId=0;var B2={};$e(B2,{addImpl:()=>G2,bincountImpl:()=>_0,bincountReduceImpl:()=>H2,castImpl:()=>U2,ceilImpl:()=>j2,concatImpl:()=>E0,equalImpl:()=>q2,expImpl:()=>X2,expm1Impl:()=>Z2,floorImpl:()=>J2,gatherNdImpl:()=>Q2,gatherV2Impl:()=>eC,greaterEqualImpl:()=>nC,greaterImpl:()=>tC,lessEqualImpl:()=>rC,lessImpl:()=>aC,linSpaceImpl:()=>sC,logImpl:()=>iC,maxImpl:()=>oC,maximumImpl:()=>lC,minimumImpl:()=>uC,multiplyImpl:()=>$0,negImpl:()=>pC,notEqualImpl:()=>cC,prodImpl:()=>dC,raggedGatherImpl:()=>hC,raggedRangeImpl:()=>mC,raggedTensorToTensorImpl:()=>fC,rangeImpl:()=>F0,rsqrtImpl:()=>gC,scatterImpl:()=>Yo,sigmoidImpl:()=>oq,simpleAbsImpl:()=>V2,sliceImpl:()=>Oh,sparseFillEmptyRowsImpl:()=>bC,sparseReshapeImpl:()=>xC,sparseSegmentReductionImpl:()=>D0,sqrtImpl:()=>pq,squaredDifferenceImpl:()=>vC,stridedSliceImpl:()=>wC,stringNGramsImpl:()=>R0,stringSplitImpl:()=>M0,stringToHashBucketFastImpl:()=>P0,subImpl:()=>kC,tileImpl:()=>IC,topKImpl:()=>TC,transposeImpl:()=>A0,uniqueImpl:()=>NC});function V2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=V2(r),n.makeOutput(a,t.shape,t.dtype)},fj={kernelName:wl,backendName:"cpu",kernelFunc:mj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var gj={kernelName:Qh,backendName:"cpu",kernelFunc:Yn};function Ph(e,t,n="float32"){if(n==="complex64"){let r=Ph(e,t,"float32"),s=Ph(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function lr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var yj={kernelName:Di,backendName:"cpu",kernelFunc:lr};function li(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var bj={kernelName:wm,backendName:"cpu",kernelFunc:li};function U2(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function os(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return lr({inputs:{x:r},backend:n});let p=Ph(n,r.shape,r.dtype),d=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=li({inputs:{input:r},backend:n}),d=os({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=lr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=U2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var xj={kernelName:bi,backendName:"cpu",kernelFunc:os};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=os({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=os({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Yn({inputs:{real:E,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function C0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var G2=Vt((e,t)=>e+t),vj=C0((e,t,n,a)=>({real:e+n,imag:t+a})),gl=nn(cs,G2,vj),wj={kernelName:cs,backendName:"cpu",kernelFunc:gl};function _0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function H2(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function ks(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var j2=ks(e=>Math.ceil(e)),kj=Pu(xi,j2),Ij={kernelName:xi,backendName:"cpu",kernelFunc:kj};function E0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),K2=nn(Ol,q2,null,"bool"),Sj={kernelName:Ol,backendName:"cpu",kernelFunc:K2},X2=ks(e=>Math.exp(e)),Y2=Pu(_i,X2,"float32"),Tj={kernelName:_i,backendName:"cpu",kernelFunc:Y2},Z2=ks(e=>Math.expm1(e)),Nj=Pu(zl,Z2),Cj={kernelName:zl,backendName:"cpu",kernelFunc:Nj},J2=ks(e=>Math.floor(e)),_j=Pu(Ei,J2),Ej={kernelName:Ei,backendName:"cpu",kernelFunc:_j};function Q2(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),$j=nn(Ul,tC,null,"bool"),Aj={kernelName:Ul,backendName:"cpu",kernelFunc:$j},nC=Vt((e,t)=>e>=t?1:0),Fj=nn(Fi,nC,null,"bool"),Dj={kernelName:Fi,backendName:"cpu",kernelFunc:Fj},aC=Vt((e,t)=>ee<=t?1:0),Pj=nn(Kl,rC,null,"bool"),Oj={kernelName:Kl,backendName:"cpu",kernelFunc:Pj};function sC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Lj=Pu(Mi,iC),zj={kernelName:Mi,backendName:"cpu",kernelFunc:Lj};function oC(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var lC=Vt((e,t)=>Math.max(e,t)),Wj=nn(Oi,lC),Bj={kernelName:Oi,backendName:"cpu",kernelFunc:Wj},uC=Vt((e,t)=>Math.min(e,t)),Vj=nn(Bi,uC),Uj={kernelName:Bi,backendName:"cpu",kernelFunc:Vj},$0=Vt((e,t)=>e*t),Gj=C0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Ff=nn(Ui,$0,Gj),Hj={kernelName:Ui,backendName:"cpu",kernelFunc:Ff};function pC(e,t,n){let a=v.createScalarValue(-1,n);return $0([],t,a,e,n)}function jj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=pC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var qj={kernelName:eu,backendName:"cpu",kernelFunc:jj},cC=Vt((e,t)=>e!==t?1:0),Kj=nn(tu,cC,null,"bool"),Xj={kernelName:tu,backendName:"cpu",kernelFunc:Kj};function A0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var Jj={kernelName:Ki,backendName:"cpu",kernelFunc:Zj};function Qj(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function eq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function tq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);eq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function zk(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>Wk)throw new Error(`Requires ((limit - start) / delta) <= ${Wk}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ia.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ia.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ia[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ia.FIRST_DIM_SIZE:return e[0];case Ia.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ia.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ia[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=Vk(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Ks(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);Bk(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function Bk(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function fC(e,t,n,a,r,s,i,o,l,u){return new ax(e,t,n,a,r,s,i,o,l,u).compute()}function F0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),sq=Pu(to,gC),iq={kernelName:to,backendName:"cpu",kernelFunc:sq};function Yo(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),yC=rt(ao,e=>1/(1+Math.exp(-e))),lq={kernelName:ao,backendName:"cpu",kernelFunc:yC};function Oh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function ui(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Oh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var uq={kernelName:du,backendName:"cpu",kernelFunc:ui};function bC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),cq=rt(ro,e=>Math.sqrt(e)),dq={kernelName:ro,backendName:"cpu",kernelFunc:cq},vC=Vt((e,t)=>{let n=e-t;return n*n}),hq=nn(oo,vC),mq={kernelName:oo,backendName:"cpu",kernelFunc:hq};function wC(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function R0(e,t,n,a,r,s,i,o){return new fq(n,a,r,s,i,o).compute(e,t)}function gq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),yq=C0((e,t,n,a)=>({real:e-n,imag:t-a})),O0=nn(lo,kC,yq),bq={kernelName:lo,backendName:"cpu",kernelFunc:O0};function IC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function SC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));SC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Ap(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Ap(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function TC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew N0,1);var CC=rt(Ci,e=>e>=0?e:Math.exp(e)-1),xq={kernelName:Ci,backendName:"cpu",kernelFunc:CC};function _C(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function EC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=wq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var kq={kernelName:qi,backendName:"cpu",kernelFunc:EC},$C=rt(Xi,e=>Math.max(0,e)),Iq={kernelName:Xi,backendName:"cpu",kernelFunc:$C},AC=rt(Ji,e=>Math.min(Math.max(0,e),6)),Sq={kernelName:Ji,backendName:"cpu",kernelFunc:AC};function Lh(e,t,n,a,r){if(n==="linear")return lr({inputs:{x:t},backend:e});if(n==="relu")return $C({inputs:{x:t},backend:e});if(n==="elu")return CC({inputs:{x:t},backend:e});if(n==="relu6")return AC({inputs:{x:t},backend:e});if(n==="prelu")return EC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return _C({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return yC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Tq={kernelName:lu,backendName:"cpu",kernelFunc:ft};function FC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*$,ae=Pe([R,E,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),$q={kernelName:kl,backendName:"cpu",kernelFunc:Eq},Aq=rt(Il,e=>Math.acosh(e)),Fq={kernelName:Il,backendName:"cpu",kernelFunc:Aq};function Dq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Wq={kernelName:fi,backendName:"cpu",kernelFunc:zq};function Bq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Vq={kernelName:sc,backendName:"cpu",kernelFunc:Bq},Uq=rt(Nl,e=>Math.asin(e)),Gq={kernelName:Nl,backendName:"cpu",kernelFunc:Uq},Hq=rt(Cl,e=>Math.asinh(e)),jq={kernelName:Cl,backendName:"cpu",kernelFunc:Hq},qq=rt(_l,e=>Math.atan(e)),Kq={kernelName:_l,backendName:"cpu",kernelFunc:qq},Xq=Vt((e,t)=>Math.atan2(e,t)),Yq=nn($l,Xq),Zq={kernelName:$l,backendName:"cpu",kernelFunc:Yq},Jq=rt(El,e=>Math.atanh(e)),Qq={kernelName:El,backendName:"cpu",kernelFunc:Jq};function L0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function DC(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function RC(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function e5(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function t5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var n5={kernelName:gi,backendName:"cpu",kernelFunc:t5};function a5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var r5={kernelName:ic,backendName:"cpu",kernelFunc:a5};function s5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Pe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var i5={kernelName:Yh,backendName:"cpu",kernelFunc:s5};function o5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Pe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Pe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var l5={kernelName:Xh,backendName:"cpu",kernelFunc:o5};function u5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var p5={kernelName:Ai,backendName:"cpu",kernelFunc:u5};function c5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=ui({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var d5={kernelName:Al,backendName:"cpu",kernelFunc:c5};function h5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=_0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var m5={kernelName:Zh,backendName:"cpu",kernelFunc:h5};function f5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var g5={kernelName:Jh,backendName:"cpu",kernelFunc:f5},y5=rt(ds,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return lr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>li({inputs:{input:w},backend:n})),g=l.map(w=>yl({inputs:{input:w},backend:n})),y=bl({inputs:f,backend:n,attrs:{axis:s}}),b=bl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=E0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var k5={kernelName:Fl,backendName:"cpu",kernelFunc:bl};function MC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*E;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],st=ue+Ve*$,Je=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*E[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=oe+Se*$[2],nt=ye+Le*u.inChannels,st=Ve;for(let Je=0;JeMath.cos(e)),M5={kernelName:ki,backendName:"cpu",kernelFunc:R5},P5=rt(Ii,e=>Math.cosh(e)),O5={kernelName:Ii,backendName:"cpu",kernelFunc:P5};function L5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Pe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},n8={kernelName:gh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${gh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},a8={kernelName:fh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${fh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function Qc(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=os({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=lr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Ph(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=Qc({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var i8={kernelName:om,backendName:"cpu",kernelFunc:s8};function o8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var l8={kernelName:lm,backendName:"cpu",kernelFunc:o8},u8=N.ERF_P,p8=N.ERF_A1,c8=N.ERF_A2,d8=N.ERF_A3,h8=N.ERF_A4,m8=N.ERF_A5,f8=rt(Pl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+u8*n);return t*(1-((((m8*a+h8)*a+d8)*a+c8)*a+p8)*a*Math.exp(-n*n))}),g8={kernelName:Pl,backendName:"cpu",kernelFunc:f8};function zh(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var y8={kernelName:Ll,backendName:"cpu",kernelFunc:zh},b8=Vt((e,t)=>e/t),z0=nn(Ni,b8),rx={kernelName:Ni,backendName:"cpu",kernelFunc:z0};function OC(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),_8=nn($i,C8,null,"int32"),E8={kernelName:$i,backendName:"cpu",kernelFunc:_8};function $8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=MC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=gl({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=gl({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Lh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Lh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var A8={kernelName:Qs,backendName:"cpu",kernelFunc:$8};function F8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=PC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=gl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Lh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var D8={kernelName:ei,backendName:"cpu",kernelFunc:F8};function R8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=Q2(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var M8={kernelName:Vl,backendName:"cpu",kernelFunc:R8};function P8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=eC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var O8={kernelName:Bl,backendName:"cpu",kernelFunc:P8};function L8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=OC(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var z8={kernelName:pm,backendName:"cpu",kernelFunc:L8},W8=rt(Gl,e=>Number.isFinite(e)?1:0,"bool"),B8={kernelName:Gl,backendName:"cpu",kernelFunc:W8},V8=rt(Hl,e=>Math.abs(e)===1/0?1:0,"bool"),U8={kernelName:Hl,backendName:"cpu",kernelFunc:V8},G8=rt(jl,e=>Number.isNaN(e)?1:0,"bool"),H8={kernelName:jl,backendName:"cpu",kernelFunc:G8};function j8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=sC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var q8={kernelName:dm,backendName:"cpu",kernelFunc:j8},K8=rt(Xl,e=>Math.log1p(e)),X8={kernelName:Xl,backendName:"cpu",kernelFunc:K8},Y8=Vt((e,t)=>e&&t),Z8=nn(Yl,Y8,null,"bool"),J8={kernelName:Yl,backendName:"cpu",kernelFunc:Z8},Q8=rt(Zl,e=>e?0:1,"bool"),eK={kernelName:Zl,backendName:"cpu",kernelFunc:Q8},tK=Vt((e,t)=>e||t),nK=nn(Jl,tK,null,"bool"),aK={kernelName:Jl,backendName:"cpu",kernelFunc:nK};function rK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=lr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=L0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var pK={kernelName:Li,backendName:"cpu",kernelFunc:uK};function cK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=RC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var dK={kernelName:dc,backendName:"cpu",kernelFunc:cK};function hK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=e5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,$=Pe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var mK={kernelName:fm,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,DC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),E=n.data.get(r.dataId).values,$=Pe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var gK={kernelName:mm,backendName:"cpu",kernelFunc:fK};function yK(e,t,n,a,r){let s=v.computeStrides(t),i=L0(e,t,n,s,r,"max"),o=DC(e,t,n,r,!0,a);return[i.values,o.values]}var bK={kernelName:gm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=yK(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function xK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=os({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=z0({inputs:{a:c,b:d},backend:n});p.push(h);let m=Qc({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var vK={kernelName:zi,backendName:"cpu",kernelFunc:xK};function wK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var SK={kernelName:Vi,backendName:"cpu",kernelFunc:IK},TK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),NK=nn(Ql,TK),CK={kernelName:Ql,backendName:"cpu",kernelFunc:NK},_K=us(Hh());function zC(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=v.parseAxisParam([o],r.shape),u=LC({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=O0({inputs:{a:r,b:d},backend:n}),h=Y2({inputs:{x:c},backend:n}),m=Qc({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=z0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var EK={kernelName:io,backendName:"cpu",kernelFunc:zC};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:zC({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=zh({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=bl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var HK={kernelName:iu,backendName:"cpu",kernelFunc:BC};function jK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var VC={kernelName:Hi,backendName:"cpu",kernelFunc:jK},qK=Vt((e,t)=>Math.pow(e,t)),KK=nn(ji,qK),XK={kernelName:ji,backendName:"cpu",kernelFunc:KK};function YK(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=hC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var ZK={kernelName:bm,backendName:"cpu",kernelFunc:YK};function JK(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=mC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var QK={kernelName:xm,backendName:"cpu",kernelFunc:JK};function eX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=fC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var tX={kernelName:vm,backendName:"cpu",kernelFunc:eX};function nX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=F0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var aX={kernelName:hc,backendName:"cpu",kernelFunc:nX},rX=rt(ou,e=>1/e),sX={kernelName:ou,backendName:"cpu",kernelFunc:rX};function iX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var hX={kernelName:km,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return lr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var fX={kernelName:Qi,backendName:"cpu",kernelFunc:mX},gX={kernelName:Su,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),bX={kernelName:eo,backendName:"cpu",kernelFunc:yX};function xX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=Yo(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var vX={kernelName:uu,backendName:"cpu",kernelFunc:xX};function wX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?EX*e:_X*(Math.exp(e)-1)),AX={kernelName:cu,backendName:"cpu",kernelFunc:$X},FX=rt(mu,e=>e<0?-1:e>0?1:0),DX={kernelName:mu,backendName:"cpu",kernelFunc:FX},RX=rt(no,e=>Math.sin(e)),MX={kernelName:no,backendName:"cpu",kernelFunc:RX},PX=rt(hu,e=>Math.sinh(e)),OX={kernelName:hu,backendName:"cpu",kernelFunc:PX},LX=11920928955078125e-23,Uk=Math.log(LX)+2,zX=rt(fu,e=>{let t=e>-Uk,n=e0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}makeOutput(e,t,n){return Ca().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ge([e],"where");let t=this.readSync(e.dataId);return bj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};_0.nextDataId=0;var G2={};Ae(G2,{addImpl:()=>q2,bincountImpl:()=>$0,bincountReduceImpl:()=>K2,castImpl:()=>j2,ceilImpl:()=>X2,concatImpl:()=>F0,equalImpl:()=>Y2,expImpl:()=>J2,expm1Impl:()=>eC,floorImpl:()=>tC,gatherNdImpl:()=>nC,gatherV2Impl:()=>aC,greaterEqualImpl:()=>sC,greaterImpl:()=>rC,lessEqualImpl:()=>oC,lessImpl:()=>iC,linSpaceImpl:()=>lC,logImpl:()=>uC,maxImpl:()=>pC,maximumImpl:()=>cC,minimumImpl:()=>dC,multiplyImpl:()=>D0,negImpl:()=>hC,notEqualImpl:()=>mC,prodImpl:()=>fC,raggedGatherImpl:()=>gC,raggedRangeImpl:()=>yC,raggedTensorToTensorImpl:()=>bC,rangeImpl:()=>M0,rsqrtImpl:()=>xC,scatterImpl:()=>el,sigmoidImpl:()=>dq,simpleAbsImpl:()=>H2,sliceImpl:()=>Lh,sparseFillEmptyRowsImpl:()=>wC,sparseReshapeImpl:()=>kC,sparseSegmentReductionImpl:()=>P0,sqrtImpl:()=>fq,squaredDifferenceImpl:()=>IC,stridedSliceImpl:()=>SC,stringNGramsImpl:()=>O0,stringSplitImpl:()=>L0,stringToHashBucketFastImpl:()=>z0,subImpl:()=>TC,tileImpl:()=>NC,topKImpl:()=>EC,transposeImpl:()=>R0,uniqueImpl:()=>_C});function H2(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=H2(r),n.makeOutput(a,t.shape,t.dtype)},vj={kernelName:Sl,backendName:"cpu",kernelFunc:xj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Yn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var wj={kernelName:em,backendName:"cpu",kernelFunc:Yn};function Oh(e,t,n="float32"){if(n==="complex64"){let r=Oh(e,t,"float32"),s=Oh(e,t,"float32");return Yn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function pr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var kj={kernelName:Oi,backendName:"cpu",kernelFunc:pr};function di(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var Ij={kernelName:km,backendName:"cpu",kernelFunc:di};function j2(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function cs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return pr({inputs:{x:r},backend:n});let p=Oh(n,r.shape,r.dtype),d=cs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Yn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=di({inputs:{input:r},backend:n}),d=cs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=pr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=j2(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var Sj={kernelName:ki,backendName:"cpu",kernelFunc:cs};function rn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=cs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=cs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),_=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Yn({inputs:{real:_,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function A0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[_*2],f[_*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var q2=Vt((e,t)=>e+t),Tj=A0((e,t,n,a)=>({real:e+n,imag:t+a})),xl=rn(fs,q2,Tj),Nj={kernelName:fs,backendName:"cpu",kernelFunc:xl};function $0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function K2(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Pe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function Ns(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var X2=Ns(e=>Math.ceil(e)),Cj=Ou(Ii,X2),Ej={kernelName:Ii,backendName:"cpu",kernelFunc:Cj};function F0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),Z2=rn(Wl,Y2,null,"bool"),_j={kernelName:Wl,backendName:"cpu",kernelFunc:Z2},J2=Ns(e=>Math.exp(e)),Q2=Ou(Fi,J2,"float32"),Aj={kernelName:Fi,backendName:"cpu",kernelFunc:Q2},eC=Ns(e=>Math.expm1(e)),$j=Ou(Vl,eC),Fj={kernelName:Vl,backendName:"cpu",kernelFunc:$j},tC=Ns(e=>Math.floor(e)),Dj=Ou(Di,tC),Rj={kernelName:Di,backendName:"cpu",kernelFunc:Dj};function nC(e,t,n,a,r,s,i,o,l){let u=Pe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),Mj=rn(jl,rC,null,"bool"),Pj={kernelName:jl,backendName:"cpu",kernelFunc:Mj},sC=Vt((e,t)=>e>=t?1:0),Oj=rn(Pi,sC,null,"bool"),Lj={kernelName:Pi,backendName:"cpu",kernelFunc:Oj},iC=Vt((e,t)=>ee<=t?1:0),Bj=rn(Yl,oC,null,"bool"),Vj={kernelName:Yl,backendName:"cpu",kernelFunc:Bj};function lC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Uj=Ou(Wi,uC),Gj={kernelName:Wi,backendName:"cpu",kernelFunc:Uj};function pC(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var cC=Vt((e,t)=>Math.max(e,t)),Hj=rn(Vi,cC),jj={kernelName:Vi,backendName:"cpu",kernelFunc:Hj},dC=Vt((e,t)=>Math.min(e,t)),qj=rn(ji,dC),Kj={kernelName:ji,backendName:"cpu",kernelFunc:qj},D0=Vt((e,t)=>e*t),Xj=A0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Df=rn(Ki,D0,Xj),Yj={kernelName:Ki,backendName:"cpu",kernelFunc:Df};function hC(e,t,n){let a=v.createScalarValue(-1,n);return D0([],t,a,e,n)}function Zj(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=hC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var Jj={kernelName:nu,backendName:"cpu",kernelFunc:Zj},mC=Vt((e,t)=>e!==t?1:0),Qj=rn(au,mC,null,"bool"),eq={kernelName:au,backendName:"cpu",kernelFunc:Qj};function R0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var aq={kernelName:Qi,backendName:"cpu",kernelFunc:nq};function rq(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function sq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function iq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);sq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function Vk(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>Uk)throw new Error(`Requires ((limit - start) / delta) <= ${Uk}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Sa.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Sa.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Sa[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Sa.FIRST_DIM_SIZE:return e[0];case Sa.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Sa.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Sa[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=Hk(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Zs(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);Gk(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function Gk(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function bC(e,t,n,a,r,s,i,o,l,u){return new ox(e,t,n,a,r,s,i,o,l,u).compute()}function M0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),pq=Ou(oo,xC),cq={kernelName:oo,backendName:"cpu",kernelFunc:pq};function el(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Pe(n,t.dtype);let h=Pe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),vC=rt(uo,e=>1/(1+Math.exp(-e))),hq={kernelName:uo,backendName:"cpu",kernelFunc:vC};function Lh(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Pe(a,r,l),p=Pe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function hi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Lh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var mq={kernelName:hu,backendName:"cpu",kernelFunc:hi};function wC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),gq=rt(po,e=>Math.sqrt(e)),yq={kernelName:po,backendName:"cpu",kernelFunc:gq},IC=Vt((e,t)=>{let n=e-t;return n*n}),bq=rn(mo,IC),xq={kernelName:mo,backendName:"cpu",kernelFunc:bq};function SC(e,t,n,a){let r=Pe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function O0(e,t,n,a,r,s,i,o){return new vq(n,a,r,s,i,o).compute(e,t)}function wq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),kq=A0((e,t,n,a)=>({real:e-n,imag:t-a})),W0=rn(fo,TC,kq),Iq={kernelName:fo,backendName:"cpu",kernelFunc:W0};function NC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function CC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));CC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Fp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Fp(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function EC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew _0,1);var AC=rt($i,e=>e>=0?e:Math.exp(e)-1),Sq={kernelName:$i,backendName:"cpu",kernelFunc:AC};function $C(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function FC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Nq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Cq={kernelName:Ji,backendName:"cpu",kernelFunc:FC},DC=rt(to,e=>Math.max(0,e)),Eq={kernelName:to,backendName:"cpu",kernelFunc:DC},RC=rt(ro,e=>Math.min(Math.max(0,e),6)),_q={kernelName:ro,backendName:"cpu",kernelFunc:RC};function zh(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return DC({inputs:{x:t},backend:e});if(n==="elu")return AC({inputs:{x:t},backend:e});if(n==="relu6")return RC({inputs:{x:t},backend:e});if(n==="prelu")return FC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return $C({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return vC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Aq={kernelName:uu,backendName:"cpu",kernelFunc:ft};function MC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Nu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*$,ae=Pe([R,_,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),Mq={kernelName:Tl,backendName:"cpu",kernelFunc:Rq},Pq=rt(Nl,e=>Math.acosh(e)),Oq={kernelName:Nl,backendName:"cpu",kernelFunc:Pq};function Lq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Pe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Hq={kernelName:xi,backendName:"cpu",kernelFunc:Gq};function jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var qq={kernelName:ic,backendName:"cpu",kernelFunc:jq},Kq=rt(_l,e=>Math.asin(e)),Xq={kernelName:_l,backendName:"cpu",kernelFunc:Kq},Yq=rt(Al,e=>Math.asinh(e)),Zq={kernelName:Al,backendName:"cpu",kernelFunc:Yq},Jq=rt($l,e=>Math.atan(e)),Qq={kernelName:$l,backendName:"cpu",kernelFunc:Jq},e5=Vt((e,t)=>Math.atan2(e,t)),t5=rn(Dl,e5),n5={kernelName:Dl,backendName:"cpu",kernelFunc:t5},a5=rt(Fl,e=>Math.atanh(e)),r5={kernelName:Fl,backendName:"cpu",kernelFunc:a5};function B0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Pe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function PC(e,t,n,a,r=!1,s=!1){let i=Pe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Pe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function OC(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Pe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function s5(e,t){let n=Pe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function i5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=B0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var o5={kernelName:vi,backendName:"cpu",kernelFunc:i5};function l5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=OC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var u5={kernelName:oc,backendName:"cpu",kernelFunc:l5};function p5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,_=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Pe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var c5={kernelName:Zh,backendName:"cpu",kernelFunc:p5};function d5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Pe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,_=Pe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var h5={kernelName:Yh,backendName:"cpu",kernelFunc:d5};function m5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let _=0;_=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var f5={kernelName:Mi,backendName:"cpu",kernelFunc:m5};function g5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=hi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var y5={kernelName:Rl,backendName:"cpu",kernelFunc:g5};function b5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=$0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var x5={kernelName:Jh,backendName:"cpu",kernelFunc:b5};function v5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var w5={kernelName:Qh,backendName:"cpu",kernelFunc:v5},k5=rt(gs,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return pr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>di({inputs:{input:w},backend:n})),g=l.map(w=>vl({inputs:{input:w},backend:n})),y=wl({inputs:f,backend:n,attrs:{axis:s}}),b=wl({inputs:g,backend:n,attrs:{axis:s}}),x=Yn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=F0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var C5={kernelName:Ml,backendName:"cpu",kernelFunc:wl};function LC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new qt(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*_;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],st=ue+Ue*$,Qe=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*_[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*_[2];for(let ue=0;ue=u.inWidth)continue;let Ue=oe+Se*$[2],nt=ye+Le*u.inChannels,st=Ue;for(let Qe=0;QeMath.cos(e)),W5={kernelName:Ni,backendName:"cpu",kernelFunc:z5},B5=rt(Ci,e=>Math.cosh(e)),V5={kernelName:Ci,backendName:"cpu",kernelFunc:B5};function U5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Pe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new qt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:_,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},o8={kernelName:yh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:_,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${yh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},l8={kernelName:gh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:_,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${gh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function ed(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=cs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Oh(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=ed({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var c8={kernelName:lm,backendName:"cpu",kernelFunc:p8};function d8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var h8={kernelName:um,backendName:"cpu",kernelFunc:d8},m8=N.ERF_P,f8=N.ERF_A1,g8=N.ERF_A2,y8=N.ERF_A3,b8=N.ERF_A4,x8=N.ERF_A5,v8=rt(zl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+m8*n);return t*(1-((((x8*a+b8)*a+y8)*a+g8)*a+f8)*a*Math.exp(-n*n))}),w8={kernelName:zl,backendName:"cpu",kernelFunc:v8};function Wh(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var k8={kernelName:Bl,backendName:"cpu",kernelFunc:Wh},I8=Vt((e,t)=>e/t),V0=rn(Ai,I8),lx={kernelName:Ai,backendName:"cpu",kernelFunc:V0};function WC(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),D8=rn(Ri,F8,null,"int32"),R8={kernelName:Ri,backendName:"cpu",kernelFunc:D8};function M8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=LC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=xl({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=xl({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=zh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=zh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var P8={kernelName:ni,backendName:"cpu",kernelFunc:M8};function O8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=zC({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=xl({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=zh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var L8={kernelName:ai,backendName:"cpu",kernelFunc:O8};function z8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=nC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var W8={kernelName:Hl,backendName:"cpu",kernelFunc:z8};function B8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=aC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var V8={kernelName:Gl,backendName:"cpu",kernelFunc:B8};function U8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=WC(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var G8={kernelName:cm,backendName:"cpu",kernelFunc:U8},H8=rt(ql,e=>Number.isFinite(e)?1:0,"bool"),j8={kernelName:ql,backendName:"cpu",kernelFunc:H8},q8=rt(Kl,e=>Math.abs(e)===1/0?1:0,"bool"),K8={kernelName:Kl,backendName:"cpu",kernelFunc:q8},X8=rt(Li,e=>Number.isNaN(e)?1:0,"bool"),Y8={kernelName:Li,backendName:"cpu",kernelFunc:X8};function Z8(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=lC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var J8={kernelName:hm,backendName:"cpu",kernelFunc:Z8},Q8=rt(Zl,e=>Math.log1p(e)),eK={kernelName:Zl,backendName:"cpu",kernelFunc:Q8},tK=Vt((e,t)=>e&&t),nK=rn(Jl,tK,null,"bool"),aK={kernelName:Jl,backendName:"cpu",kernelFunc:nK},rK=rt(Ql,e=>e?0:1,"bool"),sK={kernelName:Ql,backendName:"cpu",kernelFunc:rK},iK=Vt((e,t)=>e||t),oK=rn(eu,iK,null,"bool"),lK={kernelName:eu,backendName:"cpu",kernelFunc:oK};function uK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=B0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var fK={kernelName:Ui,backendName:"cpu",kernelFunc:mK};function gK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=OC(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var yK={kernelName:hc,backendName:"cpu",kernelFunc:gK};function bK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=s5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=w-1-p.padInfo.top,$=Pe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var xK={kernelName:gm,backendName:"cpu",kernelFunc:bK};function vK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Pe(c.outShape,o.dtype,PC(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Pe(o.shape,"float32"),_=n.data.get(r.dataId).values,$=Pe(r.shape,"float32",_);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var wK={kernelName:fm,backendName:"cpu",kernelFunc:vK};function kK(e,t,n,a,r){let s=v.computeStrides(t),i=B0(e,t,n,s,r,"max"),o=PC(e,t,n,r,!0,a);return[i.values,o.values]}var IK={kernelName:ym,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=kK(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function SK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=cs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=V0({inputs:{a:c,b:d},backend:n});p.push(h);let m=ed({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var TK={kernelName:Gi,backendName:"cpu",kernelFunc:SK};function NK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var _K={kernelName:qi,backendName:"cpu",kernelFunc:EK},AK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),$K=rn(tu,AK),FK={kernelName:tu,backendName:"cpu",kernelFunc:$K},DK=hs(jh());function VC(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=v.parseAxisParam([o],r.shape),u=BC({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=W0({inputs:{a:r,b:d},backend:n}),h=Q2({inputs:{x:c},backend:n}),m=ed({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=V0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var RK={kernelName:ho,backendName:"cpu",kernelFunc:VC};function MK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:VC({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Wh({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=wl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var YK={kernelName:lu,backendName:"cpu",kernelFunc:GC};function ZK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var HC={kernelName:Yi,backendName:"cpu",kernelFunc:ZK},JK=Vt((e,t)=>Math.pow(e,t)),QK=rn(Zi,JK),eX={kernelName:Zi,backendName:"cpu",kernelFunc:QK};function tX(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=gC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var nX={kernelName:xm,backendName:"cpu",kernelFunc:tX};function aX(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=yC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var rX={kernelName:vm,backendName:"cpu",kernelFunc:aX};function sX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=bC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var iX={kernelName:wm,backendName:"cpu",kernelFunc:sX};function oX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=M0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var lX={kernelName:mc,backendName:"cpu",kernelFunc:oX},uX=rt(eo,e=>1/e),pX={kernelName:eo,backendName:"cpu",kernelFunc:uX};function cX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,_=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye<_;ye++){let ue=ye+K;if(ue<0||ue>=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var bX={kernelName:Im,backendName:"cpu",kernelFunc:yX};function xX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new qt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var vX={kernelName:so,backendName:"cpu",kernelFunc:xX},wX={kernelName:Tu,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),IX={kernelName:io,backendName:"cpu",kernelFunc:kX};function SX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=el(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var TX={kernelName:pu,backendName:"cpu",kernelFunc:SX};function NX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?RX*e:DX*(Math.exp(e)-1)),PX={kernelName:du,backendName:"cpu",kernelFunc:MX},OX=rt(fu,e=>e<0?-1:e>0?1:0),LX={kernelName:fu,backendName:"cpu",kernelFunc:OX},zX=rt(lo,e=>Math.sin(e)),WX={kernelName:lo,backendName:"cpu",kernelFunc:zX},BX=rt(mu,e=>Math.sinh(e)),VX={kernelName:mu,backendName:"cpu",kernelFunc:BX},UX=11920928955078125e-23,jk=Math.log(UX)+2,GX=rt(gu,e=>{let t=e>-jk,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var GX={kernelName:mc,backendName:"cpu",kernelFunc:UX};function HX(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=wC(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var XX={kernelName:fc,backendName:"cpu",kernelFunc:KX};function YX(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=xC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var jX={kernelName:bu,backendName:"cpu",kernelFunc:HX};function qX(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=kC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var ZX={kernelName:xu,backendName:"cpu",kernelFunc:YX};function JX(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=D0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var KX={kernelName:fc,backendName:"cpu",kernelFunc:qX};function XX(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=P0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var QX={kernelName:gc,backendName:"cpu",kernelFunc:JX};function eY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=D0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var YX={kernelName:gc,backendName:"cpu",kernelFunc:XX};function ZX(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=Yo(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=Yo(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var JX={kernelName:Tm,backendName:"cpu",kernelFunc:ZX};function QX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=ui({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var eY={kernelName:yu,backendName:"cpu",kernelFunc:QX},tY={kernelName:yc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),aY={kernelName:ms,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=ui({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=wC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var sY={kernelName:xu,backendName:"cpu",kernelFunc:rY};function iY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=R0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var oY={kernelName:bc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=M0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var uY={kernelName:xc,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=P0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var cY={kernelName:vc,backendName:"cpu",kernelFunc:pY},dY=rt(uo,e=>Math.tan(e)),hY={kernelName:uo,backendName:"cpu",kernelFunc:dY},mY=rt(po,e=>Math.tanh(e)),fY={kernelName:po,backendName:"cpu",kernelFunc:mY};function gY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=IC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var yY={kernelName:hs,backendName:"cpu",kernelFunc:gY};function bY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=TC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var xY={kernelName:vu,backendName:"cpu",kernelFunc:bY};function vY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function IY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function SY(e,t){return e}function TY(e,t){return v.clamp(0,e,t-1)}function Fp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var DY={kernelName:wc,backendName:"cpu",kernelFunc:FY},RY=[_q,fj,$q,Fq,wj,Rq,Pq,Lq,Wq,Vq,Gq,jq,Kq,Zq,Qq,n5,r5,i5,l5,Nq,p5,d5,m5,g5,xj,Ij,b5,gj,v5,k5,I5,T5,C5,E5,A5,D5,M5,O5,z5,B5,U5,H5,q5,K5,Y5,J5,e8,t8,n8,a8,i8,xq,l8,Sj,g8,Tj,y8,Cj,I8,S8,N8,Ej,E8,A8,D8,M8,O8,Aj,Dj,yj,z8,w5,B8,U8,H8,vq,Mj,Oj,q8,zj,X8,J8,eK,aK,sK,oK,lK,Bj,pK,dK,mK,gK,bK,vK,kK,Uj,SK,CK,AK,Hj,qj,RK,OK,WK,Xj,VK,GK,HK,VC,XK,kq,Jj,ZK,QK,tX,aX,bj,rx,sX,Iq,Sq,Tq,oX,uX,cX,hX,fX,gX,bX,iq,vX,TX,CX,AX,lq,DX,MX,OX,uq,EK,WX,VX,GX,jX,KX,YX,JX,eY,dq,tY,mq,aY,sY,oY,uY,cY,bq,r8,hY,fY,yY,xY,wY,Yj,EY,AY,DY,UK];for(let e of RY)kc(e);var UC={};$e(UC,{assertNotComplex:()=>Lu,bindCanvasToFramebuffer:()=>HY,bindColorTextureToFramebuffer:()=>oh,bindTextureToProgramUniformSampler:()=>s_,bindTextureUnit:()=>n_,bindVertexBufferToProgramAttribute:()=>ix,callAndCheck:()=>me,canBeRepresented:()=>HC,createFragmentShader:()=>KC,createFramebuffer:()=>t_,createProgram:()=>XC,createStaticIndexBuffer:()=>JC,createStaticVertexBuffer:()=>ZC,createTexture:()=>QC,createVertexShader:()=>qC,getBatchDim:()=>pi,getExtensionOrThrow:()=>Dp,getFramebufferErrorMessage:()=>i_,getMaxTexturesInShader:()=>p_,getNumChannels:()=>UY,getProgramUniformLocation:()=>r_,getProgramUniformLocationOrThrow:()=>a_,getRowsCols:()=>ci,getShapeAs3D:()=>Mp,getTextureShapeFromLogicalShape:()=>l_,getWebGLDisjointQueryTimerVersion:()=>c_,getWebGLErrorMessage:()=>jC,getWebGLMaxTextureSize:()=>u_,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>d_,isDownloadFloatTextureEnabled:()=>h_,isReshapeFree:()=>Qp,isWebGLFenceEnabled:()=>m_,isWebGLVersionEnabled:()=>lx,linkProgram:()=>YC,logShaderSourceAndInfoLog:()=>V0,resetMaxTextureSize:()=>jY,resetMaxTexturesInShader:()=>qY,unbindColorTextureFromFramebuffer:()=>ox,unbindTextureUnit:()=>GY,validateFramebuffer:()=>Rp,validateProgram:()=>ih,validateTextureSize:()=>e_});var Us={},Qd={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function GC(e,t){Us[e]=t}function qa(e,t){if(!(e in Us)||t!=null){let a=PY(e,t);if(a!==null)Us[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Us[e];return n==null||n.isContextLost()?(delete Us[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Us[e])}function MY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function PY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?MY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Us[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(Qd.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",Qd)||n.getContext("experimental-webgl",Qd):n.getContext("webgl2",Qd)}var Jp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Jp||(Jp={}));var pa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(pa||(pa={}));var on;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(on||(on={}));function ed(e,t){return[t,e]}function OY(e,t){return e*t}function eh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Ou(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function LY(e,t){let[n,a]=Ou(e,t);return n*a*4}function B0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&zY(e),n}function zY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+jC(e,t))}var WY=596e-10,BY=65504;function HC(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||WYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function qC(e,t){let n=Fr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function KC(e,t){let n=Fr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw V0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var VY=/ERROR: [0-9]+:([0-9]+):/g;function V0(e,t){let n=VY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=P0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var tY={kernelName:yc,backendName:"cpu",kernelFunc:eY};function nY(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=el(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=el(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=el(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=el(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var aY={kernelName:Nm,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=hi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var sY={kernelName:bu,backendName:"cpu",kernelFunc:rY},iY={kernelName:bc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),lY={kernelName:bs,backendName:"cpu",kernelFunc:oY};function uY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(b,x,w),C=hi({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=SC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var pY={kernelName:vu,backendName:"cpu",kernelFunc:uY};function cY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=O0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var dY={kernelName:xc,backendName:"cpu",kernelFunc:cY};function hY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=L0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var mY={kernelName:vc,backendName:"cpu",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=z0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var gY={kernelName:wc,backendName:"cpu",kernelFunc:fY},yY=rt(go,e=>Math.tan(e)),bY={kernelName:go,backendName:"cpu",kernelFunc:yY},xY=rt(yo,e=>Math.tanh(e)),vY={kernelName:yo,backendName:"cpu",kernelFunc:xY};function wY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=NC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var kY={kernelName:ys,backendName:"cpu",kernelFunc:wY};function IY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=EC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var SY={kernelName:wu,backendName:"cpu",kernelFunc:IY};function TY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],_=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function EY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function _Y(e,t){return e}function AY(e,t){return v.clamp(0,e,t-1)}function Dp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var LY={kernelName:kc,backendName:"cpu",kernelFunc:OY},zY=[Dq,vj,Mq,Oq,Nj,zq,Bq,Uq,Hq,qq,Xq,Zq,Qq,n5,r5,o5,u5,c5,h5,$q,f5,y5,x5,w5,Sj,Ej,I5,wj,T5,C5,E5,A5,F5,R5,P5,L5,W5,V5,G5,j5,K5,Y5,J5,Q5,t8,a8,s8,i8,o8,l8,c8,Sq,h8,_j,w8,Aj,k8,Fj,E8,_8,$8,Rj,R8,P8,L8,W8,V8,Pj,Lj,kj,G8,N5,j8,K8,Y8,Tq,Wj,Vj,J8,Gj,eK,aK,sK,lK,pK,dK,hK,jj,fK,yK,xK,wK,IK,TK,CK,Kj,_K,FK,PK,Yj,Jj,zK,VK,HK,eq,qK,XK,YK,HC,eX,Cq,aq,nX,rX,iX,lX,Ij,lx,pX,Eq,_q,Aq,dX,mX,gX,bX,vX,wX,IX,cq,TX,AX,FX,PX,hq,LX,WX,VX,mq,RK,HX,qX,XX,ZX,QX,tY,aY,sY,yq,iY,xq,lY,pY,dY,mY,gY,Iq,u8,bY,vY,kY,SY,NY,tq,RY,PY,LY,KK];for(let e of zY)Ic(e);var jC={};Ae(jC,{assertNotComplex:()=>zu,bindCanvasToFramebuffer:()=>YY,bindColorTextureToFramebuffer:()=>lh,bindTextureToProgramUniformSampler:()=>lE,bindTextureUnit:()=>sE,bindVertexBufferToProgramAttribute:()=>px,callAndCheck:()=>ce,canBeRepresented:()=>KC,createFragmentShader:()=>ZC,createFramebuffer:()=>rE,createProgram:()=>JC,createStaticIndexBuffer:()=>tE,createStaticVertexBuffer:()=>eE,createTexture:()=>nE,createVertexShader:()=>YC,getBatchDim:()=>mi,getExtensionOrThrow:()=>Rp,getFramebufferErrorMessage:()=>uE,getMaxTexturesInShader:()=>hE,getNumChannels:()=>KY,getProgramUniformLocation:()=>oE,getProgramUniformLocationOrThrow:()=>iE,getRowsCols:()=>fi,getShapeAs3D:()=>Pp,getTextureShapeFromLogicalShape:()=>cE,getWebGLDisjointQueryTimerVersion:()=>mE,getWebGLErrorMessage:()=>XC,getWebGLMaxTextureSize:()=>dE,hasExtension:()=>ca,isCapableOfRenderingToFloatTexture:()=>fE,isDownloadFloatTextureEnabled:()=>gE,isReshapeFree:()=>ec,isWebGLFenceEnabled:()=>yE,isWebGLVersionEnabled:()=>dx,linkProgram:()=>QC,logShaderSourceAndInfoLog:()=>H0,resetMaxTextureSize:()=>ZY,resetMaxTexturesInShader:()=>JY,unbindColorTextureFromFramebuffer:()=>cx,unbindTextureUnit:()=>XY,validateFramebuffer:()=>Mp,validateProgram:()=>oh,validateTextureSize:()=>aE});var qs={},eh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function qC(e,t){qs[e]=t}function Ka(e,t){if(!(e in qs)||t!=null){let a=BY(e,t);if(a!==null)qs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=qs[e];return n==null||n.isContextLost()?(delete qs[e],Ka(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),qs[e])}function WY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function BY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?WY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete qs[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(eh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",eh)||n.getContext("experimental-webgl",eh):n.getContext("webgl2",eh)}var Qp;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(Qp||(Qp={}));var pa;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(pa||(pa={}));var ln;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(ln||(ln={}));function td(e,t){return[t,e]}function VY(e,t){return e*t}function th(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Lu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function UY(e,t){let[n,a]=Lu(e,t);return n*a*4}function G0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function ce(e,t){let n=t();return H().getBool("DEBUG")&&GY(e),n}function GY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+XC(e,t))}var HY=596e-10,jY=65504;function KC(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||HYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function YC(e,t){let n=Rr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ce(e,()=>e.shaderSource(n,t)),ce(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function ZC(e,t){let n=Rr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ce(e,()=>e.shaderSource(n,t)),ce(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw H0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var qY=/ERROR: [0-9]+:([0-9]+):/g;function H0(e,t){let n=qY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((d,c)=>v.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function YC(e,t){if(me(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function ih(e,t){if(me(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function ZC(e,t){let n=Fr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function JC(e,t){let n=Fr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function UY(){return H().getNumber("WEBGL_VERSION")===2?1:4}function QC(e){return Fr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function e_(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function t_(e){return Fr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function ix(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),me(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),me(e,()=>e.enableVertexAttribArray(o)),!0)}function n_(e,t,n){o_(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function GY(e,t){o_(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function a_(e,t,n){return Fr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function r_(e,t,n){return e.getUniformLocation(t,n)}function s_(e,t,n,a){me(e,()=>n_(e,t,a)),me(e,()=>e.uniform1i(n,a))}function HY(e){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),me(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function oh(e,t,n){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function ox(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Rp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+i_(e,t))}function i_(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Fr(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function o_(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function pi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function ci(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Mp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[pi(e),...ci(e)]),t}function l_(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=pi(e),l=2,u=2;e.length&&([l,u]=ci(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function th(e){return e%2===0}function Qp(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||th(n)&&th(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&th(e[0])&&th(t[0])}var lh,uh;function u_(e){if(lh==null){let t=qa(e);lh=t.getParameter(t.MAX_TEXTURE_SIZE)}return lh}function jY(){lh=null}function qY(){uh=null}function p_(e){if(uh==null){let t=qa(e);uh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,uh)}function c_(e){if(e===0)return 0;let t,n=qa(e);return ca(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ca(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ca(e,t){return e.getExtension(t)!=null}function lx(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function d_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!ca(t,"OES_texture_float"))return!1}else if(!ca(t,"EXT_color_buffer_float"))return!1;return ux(t)}function h_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!ca(t,"OES_texture_float")||!ca(t,"WEBGL_color_buffer_float"))return!1}else{if(ca(t,"EXT_color_buffer_float"))return ux(t);let n="EXT_color_buffer_half_float";if(ca(t,n)){let a=t.getExtension(n);return KY(t,a)}return!1}return ux(t)}function ux(e){let t=B0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function KY(e,t){let n=B0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function m_(e){return e!==2?!1:qa(e).fenceSync!=null}function Lu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>lx(2)?2:lx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>u_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>p_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:c_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Tc.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>d_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>h_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>m_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Tc.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function Cn(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function JC(e){return Rr(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function QC(e,t){if(ce(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function oh(e,t){if(ce(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function eE(e,t){let n=Rr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ce(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function tE(e,t){let n=Rr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ce(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),ce(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function KY(){return H().getNumber("WEBGL_VERSION")===2?1:4}function nE(e){return Rr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function aE(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function rE(e){return Rr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function px(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),ce(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),ce(e,()=>e.enableVertexAttribArray(o)),!0)}function sE(e,t,n){pE(e,n),ce(e,()=>e.activeTexture(e.TEXTURE0+n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function XY(e,t){pE(e,t),ce(e,()=>e.activeTexture(e.TEXTURE0+t)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function iE(e,t,n){return Rr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function oE(e,t,n){return e.getUniformLocation(t,n)}function lE(e,t,n,a){ce(e,()=>sE(e,t,a)),ce(e,()=>e.uniform1i(n,a))}function YY(e){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ce(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),ce(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function lh(e,t,n){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),ce(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function cx(e,t){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),ce(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Mp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+uE(e,t))}function uE(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Rr(e,t,n){let a=ce(e,()=>t());if(a==null)throw new Error(n);return a}function pE(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function mi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function fi(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Pp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[mi(e),...fi(e)]),t}function cE(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=mi(e),l=2,u=2;e.length&&([l,u]=fi(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function nh(e){return e%2===0}function ec(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||nh(n)&&nh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&nh(e[0])&&nh(t[0])}var uh,ph;function dE(e){if(uh==null){let t=Ka(e);uh=t.getParameter(t.MAX_TEXTURE_SIZE)}return uh}function ZY(){uh=null}function JY(){ph=null}function hE(e){if(ph==null){let t=Ka(e);ph=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ph)}function mE(e){if(e===0)return 0;let t,n=Ka(e);return ca(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:ca(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function ca(e,t){return e.getExtension(t)!=null}function dx(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function fE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ca(t,"OES_texture_float"))return!1}else if(!ca(t,"EXT_color_buffer_float"))return!1;return hx(t)}function gE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!ca(t,"OES_texture_float")||!ca(t,"WEBGL_color_buffer_float"))return!1}else{if(ca(t,"EXT_color_buffer_float"))return hx(t);let n="EXT_color_buffer_half_float";if(ca(t,n)){let a=t.getExtension(n);return QY(t,a)}return!1}return hx(t)}function hx(e){let t=G0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function QY(e,t){let n=G0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function yE(e){return e!==2?!1:Ka(e).fenceSync!=null}function zu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>dx(2)?2:dx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>dE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>hE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:mE(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Nc.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>fE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>gE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>yE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Nc.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);ve.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Cn(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -108,15 +108,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function vo(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Df(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function XY(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function YY(e,t,n="index"){let a=e.map((s,i)=>i),r=XY(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function U0(e){let t=v.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function To(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Rf(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function eZ(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function tZ(e,t,n="index"){let a=e.map((s,i)=>i),r=eZ(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function j0(e){let t=v.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function G0(){return` +`}function q0(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var f_=` +`}var bE=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -155,22 +155,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:g_}=N;function ZY(e,t,n){let a=[];if(e.forEach(c=>{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=H0(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` -`),s=e.map(c=>JY(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=Cn(),l=tZ(o),u,p,d=rZ(o);return t.isPacked?(u=QY(t.logicalShape,i,n.enableShapeUniforms),p=aZ(o)):(u=eZ(t.logicalShape,i,n.enableShapeUniforms),p=nZ(o)),n.packedInputs&&(d+=lZ),[d,l,p,r,u,s,n.userCode].join(` -`)}function zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return vZ(e,t);case 1:return kZ(e,t);case 2:return SZ(e,t);case 3:return NZ(e,t);case 4:return _Z(e,t);case 5:return EZ(e);case 6:return $Z(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function y_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return xZ(e);case 1:return wZ(e,t);case 2:return IZ(e,t);case 3:return TZ(e,t);default:return CZ(e,t)}}function JY(e,t,n=!1,a){let r="";n?r+=y_(e,a):r+=zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=AZ(e,t):r+=FZ(e,t)),r}function QY(e,t,n){switch(e.length){case 0:return b_();case 1:return uZ(e,t,n);case 2:return yZ(e,t,n);case 3:return cZ(e,t,n);default:return hZ(e,t,n)}}function eZ(e,t,n){switch(e.length){case 0:return b_();case 1:return pZ(e,t,n);case 2:return bZ(e,t,n);case 3:return dZ(e,t,n);case 4:return mZ(e,t,n);case 5:return fZ(e,t);case 6:return gZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function tZ(e){return` +`,{getBroadcastDims:xE}=N;function nZ(e,t,n){let a=[];if(e.forEach(c=>{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=K0(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` +`),s=e.map(c=>aZ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=Cn(),l=iZ(o),u,p,d=uZ(o);return t.isPacked?(u=rZ(t.logicalShape,i,n.enableShapeUniforms),p=lZ(o)):(u=sZ(t.logicalShape,i,n.enableShapeUniforms),p=oZ(o)),n.packedInputs&&(d+=hZ),[d,l,p,r,u,s,n.userCode].join(` +`)}function Wu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return TZ(e,t);case 1:return CZ(e,t);case 2:return _Z(e,t);case 3:return $Z(e,t);case 4:return DZ(e,t);case 5:return RZ(e);case 6:return MZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function vE(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return SZ(e);case 1:return NZ(e,t);case 2:return EZ(e,t);case 3:return AZ(e,t);default:return FZ(e,t)}}function aZ(e,t,n=!1,a){let r="";n?r+=vE(e,a):r+=Wu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=PZ(e,t):r+=OZ(e,t)),r}function rZ(e,t,n){switch(e.length){case 0:return wE();case 1:return mZ(e,t,n);case 2:return kZ(e,t,n);case 3:return gZ(e,t,n);default:return bZ(e,t,n)}}function sZ(e,t,n){switch(e.length){case 0:return wE();case 1:return fZ(e,t,n);case 2:return IZ(e,t,n);case 3:return yZ(e,t,n);case 4:return xZ(e,t,n);case 5:return vZ(e,t);case 6:return wZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function iZ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function nZ(e){return` + `}function oZ(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function aZ(e){return` + `}function lZ(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function rZ(e){return`${e.version} + `}function uZ(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -225,10 +225,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${sZ} - ${iZ} - ${oZ} - `}var sZ=` + ${pZ} + ${cZ} + ${dZ} + `}var pZ=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -240,7 +240,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,iZ=` +`,cZ=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -248,7 +248,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,oZ=` +`,dZ=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -257,7 +257,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,lZ=` +`,hZ=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -268,11 +268,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function b_(){return` +`;function wE(){return` int getOutputCoords() { return 0; } - `}function uZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function mZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -301,7 +301,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function pZ(e,t,n){return t[0]===1?n?` + `}function fZ(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -329,7 +329,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function cZ(e,t,n){if(n)return` + `}function gZ(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -360,15 +360,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function dZ(e,t,n){if(n)return` + `}function yZ(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Df(["r","c","d"],e)} + ${Rf(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=vo(["r","c","d"],e);return` +`;let a=To(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -376,7 +376,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function hZ(e,t,n){if(n)return` + `}function bZ(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -417,15 +417,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function mZ(e,t,n){if(n)return` + `}function xZ(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Df(["r","c","d","d2"],e)} + ${Rf(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=vo(["r","c","d","d2"],e);return` + `;let a=To(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -433,7 +433,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function fZ(e,t){let n=vo(["r","c","d","d2","d3"],e);return` + `}function vZ(e,t){let n=To(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -445,7 +445,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function gZ(e,t){let n=vo(["r","c","d","d2","d3","d4"],e);return` + `}function wZ(e,t){let n=To(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -456,7 +456,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function yZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function kZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -489,7 +489,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function bZ(e,t,n){return v.arraysEqual(e,t)?n?` + `}function IZ(e,t,n){return v.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -543,15 +543,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function wo(e){return`offset${e}`}function xZ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Cn();return` + `}function No(e){return`offset${e}`}function SZ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=Cn();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function vZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` + `}function TZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` float ${a}() { return sampleTexture(${n}, halfCR); } - `;let i=wo(n);if(t)return` + `;let i=No(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -561,7 +561,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function wZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Cn();if(t)return` + `}function NZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=Cn();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -574,15 +574,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function kZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function CZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${Wu(e)} + ${Bu(e)} } `;let r=e.shapeInfo.texShape,s=r[0],i=r[1];if(i===1&&s===1)return` float ${a}(int index) { return sampleTexture(${n}, halfCR); } - `;let o=wo(n);return i===1?t?` + `;let o=No(n);return i===1?t?` float ${a}(int index) { vec2 uv = vec2(0.5, (float(index + ${o}) + 0.5) / float(${n}TexShape[0])); return sampleTexture(${n}, uv); @@ -612,7 +612,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function IZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Cn();if(s!=null&&v.arraysEqual(n,s))return t?` + `}function EZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=Cn();if(s!=null&&v.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -636,7 +636,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function SZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` + `}function _Z(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -646,17 +646,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${h}.0, ${c}.0); return sampleTexture(${a}, uv); } - `}let{newShape:i,keptDims:o}=v.squeezeShape(n),l=i;if(l.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function PZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=xE(e.shapeInfo.logicalShape,t.logicalShape),l=gt(i),u=i-s,p,d=["x","y","z","w","u","v"];s===0?p="":i<2&&o.length>=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` `);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,y)=>`coords.${d[y+u]}`).join(", ");let h="return outputValue;",m=v.sizeFromShape(e.shapeInfo.logicalShape)===1,f=v.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -973,20 +973,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function FZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` + `}function OZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=gt(l),p=g_(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=gt(l),p=xE(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function H0(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function DZ(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=ZY(r,i,t),l=KC(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},x_(e,t,u))}function x_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function Hk(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function RZ(e,t,n,a,r){t.program.enableShapeUniforms||(Hk(t.inShapeInfos,n),Hk([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=H0(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function MZ(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=H0(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),y=v.sizeFromShape(i.shape)===1,b=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${y}_${b}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function _n(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var PZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Jp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` + `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function K0(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function LZ(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=nZ(r,i,t),l=ZC(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},kE(e,t,u))}function kE(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function Kk(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function zZ(e,t,n,a,r){t.program.enableShapeUniforms||(Kk(t.inShapeInfos,n),Kk([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=K0(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function WZ(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=K0(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),y=v.sizeFromShape(i.shape)===1,b=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${y}_${b}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function En(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var BZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=Qp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Df(["r","c","d"],e):vo(["r","c","d"],e)} + ${this.enableShapeUniforms?Rf(["r","c","d"],e):To(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1004,9 +1004,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},OZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Jp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` + `}},VZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=Qp.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=Cn();this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Df(["r","c","d"],e):vo(["r","c","d"],e)} + ${this.enableShapeUniforms?Rf(["r","c","d"],e):To(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1024,26 +1024,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},LZ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=pa.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${f_} + `}},UZ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=pa.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` + ${bE} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},zZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=pa.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` - ${f_} + `}},GZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=pa.DOWNLOAD;let t=Cn();this.outputShape=e,this.userCode=` + ${bE} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},WZ={R:0,G:1,B:2,A:3},jk=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=Cn();this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;iE_,createBufferFromOutputTexture:()=>F_,createFloat16MatrixTexture:()=>T_,createFloat16PackedMatrixTexture:()=>__,createFloat32MatrixTexture:()=>S_,createIndexBuffer:()=>I_,createPackedMatrixTexture:()=>C_,createUnsignedBytesMatrixTexture:()=>N_,createVertexBuffer:()=>k_,createVertexShader:()=>w_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>R_,downloadFloat32MatrixFromBuffer:()=>D_,downloadMatrixFromPackedOutputTexture:()=>P_,downloadPackedMatrixFromBuffer:()=>M_,getInternalFormatForFloat16MatrixTexture:()=>q0,getInternalFormatForFloat16PackedMatrixTexture:()=>Y0,getInternalFormatForFloat32MatrixTexture:()=>j0,getInternalFormatForPackedMatrixTexture:()=>X0,getInternalFormatForUnsignedBytesMatrixTexture:()=>K0,uploadDenseMatrixToTexture:()=>$_,uploadPixelDataToTexture:()=>A_});function w_(e){let t=Cn(),n=`${t.version} + `}},IE={};Ae(IE,{bindVertexProgramAttributeStreams:()=>FE,createBufferFromOutputTexture:()=>ME,createFloat16MatrixTexture:()=>EE,createFloat16PackedMatrixTexture:()=>$E,createFloat32MatrixTexture:()=>CE,createIndexBuffer:()=>NE,createPackedMatrixTexture:()=>AE,createUnsignedBytesMatrixTexture:()=>_E,createVertexBuffer:()=>TE,createVertexShader:()=>SE,downloadByteEncodedFloatMatrixFromOutputTexture:()=>OE,downloadFloat32MatrixFromBuffer:()=>PE,downloadMatrixFromPackedOutputTexture:()=>zE,downloadPackedMatrixFromBuffer:()=>LE,getInternalFormatForFloat16MatrixTexture:()=>Y0,getInternalFormatForFloat16PackedMatrixTexture:()=>Q0,getInternalFormatForFloat32MatrixTexture:()=>X0,getInternalFormatForPackedMatrixTexture:()=>J0,getInternalFormatForUnsignedBytesMatrixTexture:()=>Z0,uploadDenseMatrixToTexture:()=>DE,uploadPixelDataToTexture:()=>RE});function SE(e){let t=Cn(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1115,11 +1115,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return qC(e,n)}function k_(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ZC(e,t)}function I_(e){let t=new Uint16Array([0,1,2,2,1,3]);return JC(e,t)}function td(e,t,n,a,r,s){e_(t,n);let i=QC(e),o=e.TEXTURE_2D;return me(e,()=>e.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function j0(e){return e.internalFormatFloat}function S_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,j0(a),a.textureFormatFloat,e.FLOAT)}function q0(e){return e.internalFormatHalfFloat}function T_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,q0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function K0(e){return e.downloadTextureFormat}function N_(e,t,n,a){let[r,s]=ed(t,n);return td(e,r,s,K0(a),e.RGBA,e.UNSIGNED_BYTE)}function X0(e){return e.internalFormatPackedFloat}function C_(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,X0(a),e.RGBA,e.FLOAT)}function Y0(e){return e.internalFormatPackedHalfFloat}function __(e,t,n,a){let[r,s]=Ou(t,n);return td(e,r,s,Y0(a),e.RGBA,a.textureTypeHalfFloat)}function E_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ix(e,t,"clipSpacePos",n,3,20,0)&&ix(e,t,"uv",n,2,20,12)}function $_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function A_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function F_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function D_(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function R_(e,t,n,a){let[r,s]=ed(t,n),i=4,o=new Uint8Array(OY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function M_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(LY(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function P_(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var ph=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,GC(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Dp(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=Dp(this.gl,s);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ca(this.gl,a))this.colorBufferHalfFloatExtension=Dp(this.gl,a);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ca(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ca(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=k_(this.gl),this.indexBuffer=I_(this.gl),this.framebuffer=t_(this.gl),this.textureConfig=B0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),S_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),T_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),N_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),A_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),$_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),__(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),C_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(ox(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>R_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return M_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return D_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=F_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>P_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=w_(t));let n=XC(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),YC(t,n),this.debug&&ih(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=E_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&ih(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?a_(this.gl,e,t):r_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),s_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Ou(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&ih(this.gl,this.program),Rp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Dp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=VZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),oh(this.gl,e,this.framebuffer),this.debug&&Rp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(oh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Rp(this.gl)):ox(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;oh(a,e,this.framebuffer),this.debug&&Rp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function VZ(e){let t=0;for(;t`${e}.${n}`)}function wn(e,t){return t===1?[e]:W_(e,t)}function F7(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),ce(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),ce(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),ce(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),ce(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?ce(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):ce(e,()=>e.texStorage2D(o,1,a,t,n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function X0(e){return e.internalFormatFloat}function CE(e,t,n,a){let[r,s]=td(t,n);return nd(e,r,s,X0(a),a.textureFormatFloat,e.FLOAT)}function Y0(e){return e.internalFormatHalfFloat}function EE(e,t,n,a){let[r,s]=td(t,n);return nd(e,r,s,Y0(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function Z0(e){return e.downloadTextureFormat}function _E(e,t,n,a){let[r,s]=td(t,n);return nd(e,r,s,Z0(a),e.RGBA,e.UNSIGNED_BYTE)}function J0(e){return e.internalFormatPackedFloat}function AE(e,t,n,a){let[r,s]=Lu(t,n);return nd(e,r,s,J0(a),e.RGBA,e.FLOAT)}function Q0(e){return e.internalFormatPackedHalfFloat}function $E(e,t,n,a){let[r,s]=Lu(t,n);return nd(e,r,s,Q0(a),e.RGBA,a.textureTypeHalfFloat)}function FE(e,t,n){return ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),px(e,t,"clipSpacePos",n,3,20,0)&&px(e,t,"uv",n,2,20,12)}function DE(e,t,n,a,r,s){ce(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function RE(e,t,n){ce(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function ME(e,t,n,a){let r=e.createBuffer();ce(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return ce(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),ce(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),ce(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function PE(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function OE(e,t,n,a){let[r,s]=td(t,n),i=4,o=new Uint8Array(VY(t*n,i));return ce(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function LE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(UY(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function zE(e,t,n){let a=new Float32Array(t*n*4);return ce(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var ch=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,qC(t,e)):this.gl=Ka(t),e=this.gl,H().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>ce(r,()=>r.createVertexArray()),this.bindVertexArray=s=>ce(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>ce(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>ce(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>ce(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>ce(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>ce(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>ce(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Rp(this.gl,r),ca(this.gl,s))this.textureHalfFloatExtension=Rp(this.gl,s);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),ca(this.gl,a))this.colorBufferHalfFloatExtension=Rp(this.gl,a);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",ca(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(ca(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=TE(this.gl),this.indexBuffer=NE(this.gl),this.framebuffer=rE(this.gl),this.textureConfig=G0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;ce(e,()=>e.finish()),ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ce(e,()=>e.deleteFramebuffer(this.framebuffer)),ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),ce(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),ce(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),CE(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),EE(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),_E(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),RE(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),DE(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),$E(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),AE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(cx(this.gl,this.framebuffer),this.outputTexture=null),ce(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>OE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return LE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return PE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=ME(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>zE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=SE(t));let n=JC(t);ce(t,()=>t.attachShader(n,this.vertexShader)),ce(t,()=>t.attachShader(n,e)),QC(t,n);let a;return a=Object.assign(n,{vao:this.createVertexArray()}),this.bindVertexArray(a.vao),ce(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),console.assert(FE(t,a,this.vertexBuffer),"gpgpu_util.bindVertexProgramAttributeStreams not fully successful."),this.debug&&oh(t,a),this.setProgram(a),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(ce(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&(this.bindVertexArray(this.program.vao),this.debug&&oh(this.gl,this.program)),ce(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?iE(this.gl,e,t):oE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),ce(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),lE(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Lu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&oh(this.gl,this.program),Mp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}ce(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ce(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Rp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=qZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),lh(this.gl,e,this.framebuffer),this.debug&&Mp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(lh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Mp(this.gl)):cx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;lh(a,e,this.framebuffer),this.debug&&Mp(a),this.outputTexture=e,ce(a,()=>a.viewport(0,0,t,n)),ce(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),ce(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function qZ(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:UE(e,t)}function O7(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},B_=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${t[3]})`}},GE=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1154,8 +1154,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${R7(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?G0():U0(e)} + ${z7(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?q0():j0(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1170,12 +1170,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function R7(e,t){return` + `}};function z7(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?YY(["r","c","d"],"inputShape"):vo(["r","c","d"],e)} + ${t?tZ(["r","c","d"],"inputShape"):To(["r","c","d"],e)} return ivec3(r, c, d); } - `}var M7=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=Kk(t,n),r=Xk(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=qk(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===on.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===on.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===on.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===on.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=Kk(n,a),s=Xk(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=qk(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function P7(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function qk(e,t,n,a,r){let s=O7(t,a),i;if(r){let[l,u]=Ou(e[0],e[1]);i=l*u}else{let[l,u]=ed(e[0],e[1]);i=l*u}let o=P7(n,s);return i*o}function O7(e,t){switch(e){case on.PACKED_2X2_FLOAT32:return X0(t);case on.PACKED_2X2_FLOAT16:return Y0(t);case on.UNPACKED_FLOAT32:return j0(t);case on.UNPACKED_FLOAT16:return q0(t);case on.PACKED_4X1_UNSIGNED_BYTE:return K0(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function L7(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?on.PACKED_2X2_FLOAT32:on.UNPACKED_FLOAT32:e?on.PACKED_2X2_FLOAT16:on.UNPACKED_FLOAT16}function Kk(e,t){if(e===pa.UPLOAD)return on.PACKED_2X2_FLOAT32;if(e===pa.RENDER||e==null)return L7(t);if(e===pa.DOWNLOAD||e===pa.PIXELS)return on.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function Xk(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Sr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` + `}var W7=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=Zk(t,n),r=Jk(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=Yk(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===ln.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===ln.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===ln.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=Zk(n,a),s=Jk(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=Yk(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function B7(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function Yk(e,t,n,a,r){let s=V7(t,a),i;if(r){let[l,u]=Lu(e[0],e[1]);i=l*u}else{let[l,u]=td(e[0],e[1]);i=l*u}let o=B7(n,s);return i*o}function V7(e,t){switch(e){case ln.PACKED_2X2_FLOAT32:return J0(t);case ln.PACKED_2X2_FLOAT16:return Q0(t);case ln.UNPACKED_FLOAT32:return X0(t);case ln.UNPACKED_FLOAT16:return Y0(t);case ln.PACKED_4X1_UNSIGNED_BYTE:return Z0(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function U7(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?ln.PACKED_2X2_FLOAT32:ln.UNPACKED_FLOAT32:e?ln.PACKED_2X2_FLOAT16:ln.UNPACKED_FLOAT16}function Zk(e,t){if(e===pa.UPLOAD)return ln.PACKED_2X2_FLOAT32;if(e===pa.RENDER||e==null)return U7(t);if(e===pa.DOWNLOAD||e===pa.PIXELS)return ln.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function Jk(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var rr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1186,11 +1186,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Da="if (isnan(x)) return x;",z7="return x;",Yk="return abs(x);",W7="return (x >= 0.0) ? x : (exp(x) - 1.0);",B7=Da+` + `}},Ma="if (isnan(x)) return x;",G7="return x;",Qk="return abs(x);",H7="return (x >= 0.0) ? x : (exp(x) - 1.0);",j7=Ma+` return (x < 0.0) ? 0.0 : x; -`,V7=Da+` +`,q7=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,jo="return x;",U7="return 1.0 / (1.0 + exp(-1.0 * x));",G7="return x;",H7=` +`,Xr="return x;",K7="return 1.0 / (1.0 + exp(-1.0 * x));",X7="return x;",Y7=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1199,7 +1199,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,j7=` +`,Z7=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1209,7 +1209,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,q7=` +`,J7=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1219,7 +1219,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,K7="return 1.0 / (1.0 + exp(-1.0 * x));",js=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` +`,Q7="return 1.0 / (1.0 + exp(-1.0 * x));",es=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1230,17 +1230,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},X7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length);let t=e.length,n=wn("rc",t),a=gt(t),r=F7(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},eJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length);let t=e.length,n=kn("rc",t),a=gt(t),r=O7(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},Y7=cr.whereImpl,Z7=1e-7,J7=1e-4,gb={};function Q7(e){return e in gb||(gb[e]={}),gb[e]}var eJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),tJ=600;function nJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*tJ/1024/1024}var Rf=class extends rc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof ph)t=e;else{let n=qa(H().getNumber("WEBGL_VERSION"),e);t=new ph(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qa(H().getNumber("WEBGL_VERSION"));t=new ph(n),this.binaryCache=Q7(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new M7(this.gpgpu),this.numMBBeforeWarning=nJ(),this.texData=new jh(this,Na())}nextDataId(){return Rf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Mp(t),u=new jk(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:pa.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:pa.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new js(i,jo):d=new Sr(i,jo);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new js(a,jo):h=new Sr(a,jo);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...eh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Na().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new js(r,jo):c=new Sr(r,jo);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=Na().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=eJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return Na().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new X7(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new D7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[pi(e.shape),...ci(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[pi(t),...ci(t)],s=new B_(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Mp(r),o;a?o=new OZ(i):o=new PZ(i);let l=!0,u=[t!=null?t:eh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===Jp.DENSE){let g=s!=null?s:eh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!Qp(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=MZ(e,u,p),c=this.getAndSaveBinary(d,()=>DZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||RZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?Z7:J7}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=l_(n,o),t.texShape=p),r!=null){let d=Mp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Ou(p[0],p[1])),o?c=new BZ(d,f):c=new jk(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=pa.PIXELS:b.usage=pa.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=aJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Gv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(V0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=x_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=Na().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return Na().makeTensorFromDataId(l,t,n,o)}};Rf.nextDataId=0;function aJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Rf,2);var sJ={forceHalfFloat:V_},J0=` + `}},tJ=hr.whereImpl,nJ=1e-7,aJ=1e-4,wb={};function rJ(e){return e in wb||(wb[e]={}),wb[e]}var sJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),iJ=600;function oJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*iJ/1024/1024}var Mf=class extends sc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof ch)t=e;else{let n=Ka(H().getNumber("WEBGL_VERSION"),e);t=new ch(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(H().getNumber("WEBGL_VERSION"));t=new ch(n),this.binaryCache=rJ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new W7(this.gpgpu),this.numMBBeforeWarning=oJ(),this.texData=new qh(this,Ca())}nextDataId(){return Mf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Pp(t),u=new Xk(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:pa.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:pa.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new es(i,Xr):d=new rr(i,Xr);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new es(a,Xr):h=new rr(a,Xr);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...th(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;ce(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&Ca().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new es(r,Xr):c=new rr(r,Xr);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=Ca().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Pe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Pe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=sJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return Ca().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new eJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new L7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[mi(e.shape),...fi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[mi(t),...fi(t)],s=new GE(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Pp(r),o;a?o=new VZ(i):o=new BZ(i);let l=!0,u=[t!=null?t:th(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===Qp.DENSE){let g=s!=null?s:th(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!ec(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=WZ(e,u,p),c=this.getAndSaveBinary(d,()=>LZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||zZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?nJ:aJ}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=cE(n,o),t.texShape=p),r!=null){let d=Pp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Lu(p[0],p[1])),o?c=new jZ(d,f):c=new Xk(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=pa.PIXELS:b.usage=pa.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return t!=null&&(n.values=lJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await qv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(H0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=kE(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=Ca().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return Ca().makeTensorFromDataId(l,t,n,o)}};Mf.nextDataId=0;function lJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Mf,2);var pJ={forceHalfFloat:HE},t1=` if (isnan(a)) return a; if (isnan(b)) return b; -`,xl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` +`,kl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1250,12 +1250,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},nd=` + `}},ad=` result.r = isNaN.r ? NAN : result.r; result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; -`,ad=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=_n(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` +`,rd=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=En(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1269,7 +1269,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let i=wn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=kn("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1299,13 +1299,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function na(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var iJ={kernelName:Di,backendName:"webgl",kernelFunc:na};function Is(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=na({inputs:{x:a},backend:n}),l=na({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var oJ={kernelName:Qh,backendName:"webgl",kernelFunc:Is},U_="return (a < 0.) ? b * a : a;",G_=` + `}};function ta(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var cJ={kernelName:Oi,backendName:"webgl",kernelFunc:ta};function Cs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=ta({inputs:{x:a},backend:n}),l=ta({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var dJ={kernelName:em,backendName:"webgl",kernelFunc:Cs},jE="return (a < 0.) ? b * a : a;",qE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function lJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ad(G_,r.shape,i.shape):new xl(U_,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var uJ={kernelName:Ri,backendName:"webgl",kernelFunc:lJ},H_="return (a < 0.) ? b * a : a;",j_=` +`;function hJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new rd(qE,r.shape,i.shape):new kl(jE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var mJ={kernelName:zi,backendName:"webgl",kernelFunc:hJ},KE="return (a < 0.) ? b * a : a;",XE=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function pJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ad(j_,a.shape,r.shape):new xl(H_,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var cJ={kernelName:qi,backendName:"webgl",kernelFunc:pJ},Uu="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new js(i.shape,t):p=new Sr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function pn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new xl(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],ma(w.dtype,I.dtype))}),b=Is({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||ma(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new ad(t,l.shape,u.shape,n):h=new xl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function ec(e,t=!1){if(e==="linear")return t?G7:z7;if(e==="relu")return t?j7:B7;if(e==="elu")return t?H7:W7;if(e==="relu6")return t?q7:V7;if(e==="prelu")return t?j_:H_;if(e==="leakyrelu")return t?G_:U_;if(e==="sigmoid")return t?K7:U7;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var q_=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=_n(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function fJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new rd(XE,a.shape,r.shape):new kl(KE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var gJ={kernelName:Ji,backendName:"webgl",kernelFunc:fJ},Gu="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new es(i.shape,t):p=new rr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function pn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new kl(e,l.shape,u.shape);return p.runWebGLProgram(_,[T,C],ma(w.dtype,I.dtype))}),b=Cs({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||ma(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new rd(t,l.shape,u.shape,n):h=new kl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function tc(e,t=!1){if(e==="linear")return t?X7:G7;if(e==="relu")return t?Z7:j7;if(e==="elu")return t?Y7:H7;if(e==="relu6")return t?J7:q7;if(e==="prelu")return t?XE:KE;if(e==="leakyrelu")return t?qE:jE;if(e==="sigmoid")return t?Q7:K7;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var YE=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=En(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1344,7 +1344,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},Zk={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},Jk=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},eI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},tI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1357,7 +1357,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},Qk="return a * b;";function Q0(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new Jk(Zk.REAL,a.shape,r.shape),p=new Jk(Zk.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Is({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=u7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new ad(Qk,a.shape,r.shape):i=new xl(Qk,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var dJ={kernelName:Ui,backendName:"webgl",kernelFunc:Q0};function hJ(e,t,n){let a=[pi(e.shape),...ci(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[pi(t),...ci(t)],i=new B_(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function de(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!Qp(r.shape,l)&&!(p.texture!==null&&Qp(p.shape,l))?hJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var mJ={kernelName:lu,backendName:"webgl",kernelFunc:de},eI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` + `}},nI="return a * b;";function n1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new tI(eI.REAL,a.shape,r.shape),p=new tI(eI.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Cs({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=m7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new rd(nI,a.shape,r.shape):i=new kl(nI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var yJ={kernelName:Ki,backendName:"webgl",kernelFunc:n1};function bJ(e,t,n){let a=[mi(e.shape),...fi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[mi(t),...fi(t)],i=new GE(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function he(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!ec(r.shape,l)&&!(p.texture!==null&&ec(p.shape,l))?bJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var xJ={kernelName:uu,backendName:"webgl",kernelFunc:he},aI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1410,7 +1410,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},fJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` + `}},vJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1502,12 +1502,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function gJ(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=N.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function ko(e,t,n,a){let r=gJ(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=W_("rc",this.rank),s=new Array(this.rank);for(let u=0;u6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=UE("rc",this.rank),s=new Array(this.rank);for(let u=0;u`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ec(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>K_&&U===!1){let K=T,Z=C;n&&(K=In({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),E.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=de({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),E.push(ie));let oe=Q0({inputs:{a:ae,b:ie},backend:r});G=Pf({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(oe)}else{let K=ma(e.dtype,t.dtype),Z=new q_(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function IJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Bh({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var SJ={kernelName:Js,backendName:"webgl",kernelFunc:IJ},tI="return abs(x);";function TJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=L_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,tI):r=new Sr(a.shape,tI),n.runWebGLProgram(r,[a],a.dtype)}var NJ={kernelName:wl,backendName:"webgl",kernelFunc:TJ},CJ=Da+` + `}};function Pf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new SJ(e.shape,t):new kJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function TJ(e,t,n,a){let r=t,s=e.shape.length,i=v.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Pf(e,l,a),o=N.getInnerMostAxes(o.length,s)),N.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=N.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=N.expandShapeToKeepDim(d,i));let m=v.sizeFromShape(c),f=v.sizeFromShape(e.shape)/m,g=he({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),y=_m(e.dtype),b=Co(g,y,"sum",a),x=he({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(p),x}function Of(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return TJ(r,s,i,n)}var NJ={kernelName:co,backendName:"webgl",kernelFunc:Of};function In(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=he({inputs:{x:e},backend:r,attrs:{shape:w}}),C=he({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?tc(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>ZE&&U===!1){let K=T,Z=C;n&&(K=In({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=In({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=he({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),_.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=he({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),_.push(ie));let oe=n1({inputs:{a:ae,b:ie},backend:r});G=Of({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(oe)}else{let K=ma(e.dtype,t.dtype),Z=new YE(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=he({inputs:{x:G},backend:r,attrs:{shape:x}});_.push(G);for(let K of _)r.disposeIntermediateTensorInfo(K);return q}function EJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return Vh({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var _J={kernelName:ti,backendName:"webgl",kernelFunc:EJ},rI="return abs(x);";function AJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=BE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new es(a.shape,rI):r=new rr(a.shape,rI),n.runWebGLProgram(r,[a],a.dtype)}var $J={kernelName:Sl,backendName:"webgl",kernelFunc:AJ},FJ=Ma+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,_J=Ye({opSnippet:CJ}),EJ={kernelName:kl,backendName:"webgl",kernelFunc:_J},$J=Da+` +`,DJ=Ye({opSnippet:FJ}),RJ={kernelName:Tl,backendName:"webgl",kernelFunc:DJ},MJ=Ma+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,backendName:"webgl",kernelFunc:AJ},nI="return a + b;",DJ=pn({opSnippet:nI,packedOpSnippet:nI,supportsComplex:!0,cpuKernelImpl:UZ}),RJ={kernelName:cs,backendName:"webgl",kernelFunc:DJ},MJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,PJ=Ye({opSnippet:MJ}),OJ={kernelName:Nl,backendName:"webgl",kernelFunc:PJ},sI="return a + b;",LJ=pn({opSnippet:sI,packedOpSnippet:sI,supportsComplex:!0,cpuKernelImpl:KZ}),zJ={kernelName:fs,backendName:"webgl",kernelFunc:LJ},WJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1539,7 +1539,7 @@ return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,back float result = ${a}; setOutput(result); } - `}},PJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},BJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1547,7 +1547,7 @@ return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,back vec4 result = ${a}; setOutput(result); } - `}};function ch(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return na({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=ch({inputs:a.slice(0,o),backend:n}),u=ch({inputs:a.slice(o),backend:n});return ch({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ma(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new PJ(a[0].shape,s):new MJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var OJ={kernelName:mi,backendName:"webgl",kernelFunc:ch};function LJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=ko(f,f.dtype,"all",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=de({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var zJ={kernelName:Sl,backendName:"webgl",kernelFunc:LJ};function WJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=ko(f,f.dtype,"any",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=de({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var BJ={kernelName:Tl,backendName:"webgl",kernelFunc:WJ},VJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function dh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return ta({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=dh({inputs:a.slice(0,o),backend:n}),u=dh({inputs:a.slice(o),backend:n});return dh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>ma(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new BJ(a[0].shape,s):new WJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var VJ={kernelName:bi,backendName:"webgl",kernelFunc:dh};function UJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Co(f,f.dtype,"all",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=he({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var GJ={kernelName:Cl,backendName:"webgl",kernelFunc:UJ};function HJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Co(f,f.dtype,"any",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=he({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var jJ={kernelName:El,backendName:"webgl",kernelFunc:HJ},qJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1567,7 +1567,7 @@ return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,back } setOutput(float(bestIndex)); } - `}},UJ=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=wn("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` + `}},KJ=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=kn("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1583,7 +1583,7 @@ return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,back ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=wn("sourceLocR",d-1).concat("inIdx.r"),g=wn("sourceLocG",d-1).concat("inIdx.g"),y=wn("sourceLocB",d-1).concat("inIdx.b"),b=wn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=kn("sourceLocR",d-1).concat("inIdx.r"),g=kn("sourceLocG",d-1).concat("inIdx.g"),y=kn("sourceLocB",d-1).concat("inIdx.b"),b=kn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${y.join()}), @@ -1629,25 +1629,25 @@ return log(x + sqrt(x * x - 1.0));`,AJ=Ye({opSnippet:$J}),FJ={kernelName:Il,back } setOutput(bestIndex); } - `}};function X_(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new VJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=X_(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function Y_(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new UJ(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=Y_(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function Z_(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=de({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=X_(e,c,a);s.push(h);let m=de({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return Y_(e,t,a)}function GJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=Z_(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var HJ={kernelName:fi,backendName:"webgl",kernelFunc:GJ};function jJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=Z_(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var qJ={kernelName:sc,backendName:"webgl",kernelFunc:jJ},KJ=Da+` + `}};function JE(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new qJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=JE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function QE(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new KJ(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=QE(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function e_(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=he({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=JE(e,c,a);s.push(h);let m=he({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return QE(e,t,a)}function XJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=e_(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var YJ={kernelName:xi,backendName:"webgl",kernelFunc:XJ};function ZJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=In({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=e_(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var JJ={kernelName:ic,backendName:"webgl",kernelFunc:ZJ},QJ=Ma+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,XJ=Ye({opSnippet:KJ}),YJ={kernelName:Nl,backendName:"webgl",kernelFunc:XJ},ZJ=Da+"return log(x + sqrt(x * x + 1.0));",JJ=Ye({opSnippet:ZJ}),QJ={kernelName:Cl,backendName:"webgl",kernelFunc:JJ},e9=Da+` +`,e9=Ye({opSnippet:QJ}),t9={kernelName:_l,backendName:"webgl",kernelFunc:e9},n9=Ma+"return log(x + sqrt(x * x + 1.0));",a9=Ye({opSnippet:n9}),r9={kernelName:Al,backendName:"webgl",kernelFunc:a9},s9=Ma+` return atan(x); -`,t9=Ye({opSnippet:e9}),n9={kernelName:_l,backendName:"webgl",kernelFunc:t9},a9=J0+` +`,i9=Ye({opSnippet:s9}),o9={kernelName:$l,backendName:"webgl",kernelFunc:i9},l9=t1+` return atan(a, b); -`,r9=` +`,u9=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); - `+nd+` + `+ad+` return result; -`,s9=pn({opSnippet:a9,packedOpSnippet:r9}),i9={kernelName:$l,backendName:"webgl",kernelFunc:s9},o9=Da+` +`,p9=pn({opSnippet:l9,packedOpSnippet:u9}),c9={kernelName:Dl,backendName:"webgl",kernelFunc:p9},d9=Ma+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelName:El,backendName:"webgl",kernelFunc:l9},tc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,h9=Ye({opSnippet:d9}),m9={kernelName:Fl,backendName:"webgl",kernelFunc:h9},nc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1788,7 +1788,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(${x}); } - `}},e1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` + `}},a1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1850,7 +1850,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,E=` + `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,_=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1915,7 +1915,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam getValue(batch, xD, xR, xC + 3 * ${d}, ch) ); - ${E} + ${_} } int xC = xCCorner + ${T}; @@ -1927,7 +1927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam initializationValue ); - ${E} + ${_} } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1936,7 +1936,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam initializationValue ); - ${E} + ${_} } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1945,13 +1945,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam initializationValue ); - ${E} + ${_} } } setOutput(${I}); } } - `}};function p9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Lu(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new tc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var c9={kernelName:gi,backendName:"webgl",kernelFunc:p9};function d9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new e1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var h9={kernelName:ic,backendName:"webgl",kernelFunc:d9},m9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function f9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;zu(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new nc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var g9={kernelName:vi,backendName:"webgl",kernelFunc:f9};function y9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new a1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var b9={kernelName:oc,backendName:"webgl",kernelFunc:y9},x9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -1993,7 +1993,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},f9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},v9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2049,7 +2049,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}};function g9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new f9(c);return n.runWebGLProgram(h,[r],i.dtype)}var y9={kernelName:Yh,backendName:"webgl",kernelFunc:g9};function b9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Lu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new m9(p);return n.runWebGLProgram(d,[r],i.dtype)}var x9={kernelName:Xh,backendName:"webgl",kernelFunc:b9};function v9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Bh({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var w9={kernelName:yi,backendName:"webgl",kernelFunc:v9},k9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function w9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new v9(c);return n.runWebGLProgram(h,[r],i.dtype)}var k9={kernelName:Zh,backendName:"webgl",kernelFunc:w9};function I9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;zu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new x9(p);return n.runWebGLProgram(d,[r],i.dtype)}var S9={kernelName:Yh,backendName:"webgl",kernelFunc:I9};function T9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return Vh({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var N9={kernelName:wi,backendName:"webgl",kernelFunc:T9},C9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2059,7 +2059,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},I9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},E9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2072,7 +2072,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput((x - mean) * inv + offset); } - `}},S9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new I9(a.shape,r.shape,s.shape,p,d,l):new k9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},T9={kernelName:Ai,backendName:"webgl",kernelFunc:S9},N9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=C9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${px[i]} = start[${i}] + coords.${px[i]};`);a=` + `}},_9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new E9(a.shape,r.shape,s.shape,p,d,l):new C9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},A9={kernelName:Mi,backendName:"webgl",kernelFunc:_9},$9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=F9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${mx[i]} = start[${i}] + coords.${mx[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2082,7 +2082,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${a} setOutput(getSource(${n})); } - `}},px=["x","y","z","w","u","v"];function C9(e){if(e===1)return"sourceLoc";if(e<=6)return px.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var _9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=wn("coords",this.rank),a=wn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},mx=["x","y","z","w","u","v"];function F9(e){if(e===1)return"sourceLoc";if(e<=6)return mx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var D9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=kn("coords",this.rank),a=kn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${o} setOutput(result); } - `}};function E9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Gu(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=v7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new _9(l):new N9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),E9(r,o,l,n)}var $9={kernelName:du,backendName:"webgl",kernelFunc:Gu},A9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=Gu({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},F9={kernelName:Al,backendName:"webgl",kernelFunc:A9};function D9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=O_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var R9={kernelName:Zh,backendName:"webgl",kernelFunc:D9};function M9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var P9={kernelName:Jh,backendName:"webgl",kernelFunc:M9},O9="return float(a != b);",J_=pn({opSnippet:O9,cpuKernelImpl:c7,dtype:"bool"}),L9={kernelName:tu,backendName:"webgl",kernelFunc:J_};function rd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.real},backend:n})}var z9={kernelName:wm,backendName:"webgl",kernelFunc:rd},W9="return float(int(x));";function B9(e,t){let n=new Sr(e.shape,W9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function cx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return na({inputs:{x:r},backend:n});let i=It(r.shape),o=cx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Is({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=rd({inputs:{input:r},backend:n}),o=cx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=na({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=HZ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return B9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=J_({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var V9={kernelName:bi,backendName:"webgl",kernelFunc:cx},aI="return ceil(x);",U9=Ye({opSnippet:aI,packedOpSnippet:aI,cpuKernelImpl:jZ}),G9={kernelName:xi,backendName:"webgl",kernelFunc:U9},H9=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function R9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=Kt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function Hu(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=T7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new D9(l):new $9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),R9(r,o,l,n)}var M9={kernelName:hu,backendName:"webgl",kernelFunc:Hu},P9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=he({inputs:{x:r},backend:n,attrs:{shape:l}}),f=In({inputs:{x:m},backend:n,attrs:{perm:u}}),g=he({inputs:{x:f},backend:n,attrs:{shape:p}}),y=Hu({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},O9={kernelName:Rl,backendName:"webgl",kernelFunc:P9};function L9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=WE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var z9={kernelName:Jh,backendName:"webgl",kernelFunc:L9};function W9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var B9={kernelName:Qh,backendName:"webgl",kernelFunc:W9},V9="return float(a != b);",t_=pn({opSnippet:V9,cpuKernelImpl:g7,dtype:"bool"}),U9={kernelName:au,backendName:"webgl",kernelFunc:t_};function sd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.real},backend:n})}var G9={kernelName:km,backendName:"webgl",kernelFunc:sd},H9="return float(int(x));";function j9(e,t){let n=new rr(e.shape,H9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function fx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return ta({inputs:{x:r},backend:n});let i=It(r.shape),o=fx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Cs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=sd({inputs:{input:r},backend:n}),o=fx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=ta({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=YZ(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return j9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=t_({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var q9={kernelName:ki,backendName:"webgl",kernelFunc:fx},iI="return ceil(x);",K9=Ye({opSnippet:iI,packedOpSnippet:iI,cpuKernelImpl:ZZ}),X9={kernelName:Ii,backendName:"webgl",kernelFunc:K9},Y9=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}},j9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},Z9=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2133,7 +2133,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function q9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new j9(r.shape):o=new H9(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var K9={kernelName:ds,backendName:"webgl",kernelFunc:q9},X9=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function J9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new Z9(r.shape):o=new Y9(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var Q9={kernelName:gs,backendName:"webgl",kernelFunc:J9},eQ=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2146,7 +2146,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function rI(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function Y9(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new X9(a.shape),i=[rI(a,r.complexTensorInfos.real),rI(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var Z9={kernelName:oc,backendName:"webgl",kernelFunc:Y9},J9=class{constructor(e){this.outputShape=[],this.outputShape=N.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${nh(i,l,f)}), - vec2(${nh(u,l,f)})); + getT${m}(${ah(i,l,f)}), + vec2(${ah(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${nh(i,l,h)}), - vec2(${nh(u,l,h)}));`,this.userCode=` + getT${c}(${ah(i,l,h)}), + vec2(${ah(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(result); } - `}};function nh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Of(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.imag},backend:n})}var eQ={kernelName:cm,backendName:"webgl",kernelFunc:Of};function Pp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>rd({inputs:{input:g},backend:n})),c=e.map(g=>Of({inputs:{input:g},backend:n})),h=Pp(d,t,n),m=Pp(c,t,n),f=Is({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=[-1,v.sizeFromShape(b.shape.slice(t))];return de({inputs:{x:b},backend:n,attrs:{shape:x}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=qZ(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new Q9(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=tQ(e,t,n),l=new J9(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function tQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function Q_(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?na({inputs:{x:l[0]},backend:n}):Pp(l,s,n)}var nQ={kernelName:Fl,backendName:"webgl",kernelFunc:Q_},eE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function ah(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Lf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return ta({inputs:{x:r.complexTensorInfos.imag},backend:n})}var sQ={kernelName:dm,backendName:"webgl",kernelFunc:Lf};function Op(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(b=>sd({inputs:{input:b},backend:n})),m=e.map(b=>Lf({inputs:{input:b},backend:n})),f=Op(h,t,n),g=Op(m,t,n),y=Cs({inputs:{real:f,imag:g},backend:n});return h.forEach(b=>n.disposeIntermediateTensorInfo(b)),m.forEach(b=>n.disposeIntermediateTensorInfo(b)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),y}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(w=>{let I=[-1,v.sizeFromShape(w.shape.slice(t))];return he({inputs:{x:w},backend:n,attrs:{shape:I}})}),m=h.map(w=>({vals:n.readSync(w.dataId),shape:w.shape})),f=N.computeOutShape(h.map(w=>w.shape),1),g=h[0].shape[0]===1,y=JZ(m,f,a,g),b=N.computeOutShape(e.map(w=>w.shape),t),x=n.makeTensorInfo(b,a,y);return h.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}let s=e.filter(h=>v.sizeFromShape(h.shape)>0),i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new rr(e[0].shape,Xr):new es(e[0].shape,Xr);return n.runWebGLProgram(h,e,a)}let o=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=iQ(s,t,n),p=new aQ(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=he({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function iQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>he({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function n_(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?ta({inputs:{x:l[0]},backend:n}):Op(l,s,n)}var oQ={kernelName:Ml,backendName:"webgl",kernelFunc:n_},a_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2326,7 +2326,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${w} setOutput(result); } - `}},aQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},lQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2414,7 +2414,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},tE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},r_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function nE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=Vh(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=Vh(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>K_)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(Qp(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=Bh({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=na({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Bh({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function aE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=Vh(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Vh(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new rQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),$=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ec(o,!0):null,B=new q_(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function sQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=nE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new tE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=aE({x:r,filter:s,convInfo:c,backend:n});else{let f=new eE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var iQ={kernelName:vi,backendName:"webgl",kernelFunc:sQ},oQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function Uh(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function s_({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=Uh(s.shape,h);b!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=Uh(r.shape,h);b!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>ZE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(ec(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=Vh({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=ta({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=he({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=Vh({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=he({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function i_({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=Uh(s.shape,m);K!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=Uh(r.shape,m);K!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new uQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(T,[e],"float32",C),$=he({inputs:{x:_},backend:a,attrs:{shape:y}});w.push(_),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?tc(o,!0):null,B=new YE(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=he({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function pQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=s_({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new r_(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=i_({x:r,filter:s,convInfo:c,backend:n});else{let f=new a_(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=he({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var cQ={kernelName:Si,backendName:"webgl",kernelFunc:pQ},dQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2699,7 +2699,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},lQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` + `}},hQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2752,7 +2752,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},uQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},mQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2794,7 +2794,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},pQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + `}},fQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { @@ -2851,12 +2851,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}};function cQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new oQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var dQ={kernelName:em,backendName:"webgl",kernelFunc:cQ};function hQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new lQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var mQ={kernelName:wi,backendName:"webgl",kernelFunc:hQ};function fQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new aQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var gQ={kernelName:lc,backendName:"webgl",kernelFunc:fQ};function yQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new uQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var bQ={kernelName:tm,backendName:"webgl",kernelFunc:yQ};function xQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new pQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var vQ={kernelName:nm,backendName:"webgl",kernelFunc:xQ},wQ=Uu+` + `}};function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new dQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var yQ={kernelName:tm,backendName:"webgl",kernelFunc:gQ};function bQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new hQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var xQ={kernelName:Ti,backendName:"webgl",kernelFunc:bQ};function vQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new lQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var wQ={kernelName:uc,backendName:"webgl",kernelFunc:vQ};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new mQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var IQ={kernelName:nm,backendName:"webgl",kernelFunc:kQ};function SQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new fQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var TQ={kernelName:am,backendName:"webgl",kernelFunc:SQ},NQ=Gu+` return cos(x); -`,kQ=Ye({opSnippet:wQ}),IQ={kernelName:ki,backendName:"webgl",kernelFunc:kQ},SQ=` +`,CQ=Ye({opSnippet:NQ}),EQ={kernelName:Ni,backendName:"webgl",kernelFunc:CQ},_Q=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,TQ=Ye({opSnippet:SQ}),NQ={kernelName:Ii,backendName:"webgl",kernelFunc:TQ},CQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,AQ=Ye({opSnippet:_Q}),$Q={kernelName:Ci,backendName:"webgl",kernelFunc:AQ},FQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2917,20 +2917,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput(newValue); } } - `}},_Q=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new CQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},EQ={kernelName:Rl,backendName:"webgl",kernelFunc:_Q},nc;(function(e){e.Prod="*",e.Sum="+"})(nc||(nc={}));var sI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===nc.Prod?"1.0":"0.0",i=n?s:`getX(${iI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},DQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new FQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},RQ={kernelName:Ol,backendName:"webgl",kernelFunc:DQ},ac;(function(e){e.Prod="*",e.Sum="+"})(ac||(ac={}));var lI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===ac.Prod?"1.0":"0.0",i=n?s:`getX(${uI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { ${gt(r)} coords = getOutputCoords(); - int end = ${oI(r,"coords",this.op)}; + int end = ${pI(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${oI(r,"coords",this.op)} = idx; - val ${this.op}= getX(${iI(r,"coords",this.op)}); + ${pI(r,"coords",this.op)} = idx; + val ${this.op}= getX(${uI(r,"coords",this.op)}); } setOutput(val); } - `}};function iI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function oI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function rE(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=na({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new sI(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new sI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function $Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Prod,r,n,s,i,o)}var AQ={kernelName:Dl,backendName:"webgl",kernelFunc:$Q};function FQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return rE(nc.Sum,r,n,s,i,o)}var DQ={kernelName:Si,backendName:"webgl",kernelFunc:FQ};function RQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=O_(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=GZ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var MQ={kernelName:am,backendName:"webgl",kernelFunc:RQ},PQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function uI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function pI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function o_(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=In({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=ta({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new lI(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new lI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=In({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function MQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return o_(ac.Prod,r,n,s,i,o)}var PQ={kernelName:Pl,backendName:"webgl",kernelFunc:MQ};function OQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return o_(ac.Sum,r,n,s,i,o)}var LQ={kernelName:Ei,backendName:"webgl",kernelFunc:OQ};function zQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=WE(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=XZ(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var WQ={kernelName:rm,backendName:"webgl",kernelFunc:zQ},BQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2949,7 +2949,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function OQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new PQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var LQ={kernelName:Ml,backendName:"webgl",kernelFunc:OQ},sE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function VQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new BQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var UQ={kernelName:Ll,backendName:"webgl",kernelFunc:VQ},l_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3002,7 +3002,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${u} setOutput(result); } - `}},iE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},u_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new iE(d):c=new sE(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var WQ={kernelName:Ti,backendName:"webgl",kernelFunc:zQ},BQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function GQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new u_(d):c=new l_(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var HQ={kernelName:_i,backendName:"webgl",kernelFunc:GQ},jQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3226,7 +3226,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},VQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},qQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -3271,13 +3271,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}};function UQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new BQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var GQ={kernelName:rm,backendName:"webgl",kernelFunc:UQ};function HQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new VQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var jQ={kernelName:sm,backendName:"webgl",kernelFunc:HQ},qQ=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function KQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new jQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var XQ={kernelName:sm,backendName:"webgl",kernelFunc:KQ};function YQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new qQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var ZQ={kernelName:im,backendName:"webgl",kernelFunc:YQ},JQ=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function KQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=de({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new qQ(s),l=n.runWebGLProgram(o,[i],i.dtype),u=de({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var XQ={kernelName:im,backendName:"webgl",kernelFunc:KQ},YQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` + `}};function QQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=he({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new JQ(s),l=n.runWebGLProgram(o,[i],i.dtype),u=he({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var eee={kernelName:om,backendName:"webgl",kernelFunc:QQ},tee=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3315,7 +3315,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam float result = curVal; setOutput(result); } - `}};function ZQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new YQ(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=de({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var JQ={kernelName:uc,backendName:"webgl",kernelFunc:ZQ};function QQ(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Pf({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var eee={kernelName:om,backendName:"webgl",kernelFunc:QQ},tee="return (x >= 0.0) ? x : (exp(x) - 1.0);",nee=` + `}};function nee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new tee(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=he({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var aee={kernelName:pc,backendName:"webgl",kernelFunc:nee};function ree(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Of({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var see={kernelName:lm,backendName:"webgl",kernelFunc:ree},iee="return (x >= 0.0) ? x : (exp(x) - 1.0);",oee=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3324,12 +3324,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,aee=Ye({opSnippet:tee,packedOpSnippet:nee}),ree={kernelName:Ci,backendName:"webgl",kernelFunc:aee},see="return (b >= 1.0) ? a : a * (b + 1.0);",iee=` +`,lee=Ye({opSnippet:iee,packedOpSnippet:oee}),uee={kernelName:$i,backendName:"webgl",kernelFunc:lee},pee="return (b >= 1.0) ? a : a * (b + 1.0);",cee=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,oee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ad(iee,a.shape,r.shape):new xl(see,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},lee={kernelName:lm,backendName:"webgl",kernelFunc:oee},uee=` +`,dee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new rd(cee,a.shape,r.shape):new kl(pee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},hee={kernelName:um,backendName:"webgl",kernelFunc:dee},mee=` return vec4(equal(a, b)); -`,pee="return float(a == b);",cee=pn({opSnippet:pee,packedOpSnippet:uee,dtype:"bool",cpuKernelImpl:KZ}),dee={kernelName:Ol,backendName:"webgl",kernelFunc:cee},hee=` +`,fee="return float(a == b);",gee=pn({opSnippet:fee,packedOpSnippet:mee,dtype:"bool",cpuKernelImpl:QZ}),yee={kernelName:Wl,backendName:"webgl",kernelFunc:gee},bee=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3344,9 +3344,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,mee=Ye({opSnippet:hee}),fee={kernelName:Pl,backendName:"webgl",kernelFunc:mee},gee=Uu+` +`,xee=Ye({opSnippet:bee}),vee={kernelName:zl,backendName:"webgl",kernelFunc:xee},wee=Gu+` return exp(x); -`,yee=` +`,kee=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3355,7 +3355,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam result.a = isNaN.a ? x.a : result.a; return result; -`,oE=Ye({opSnippet:gee,packedOpSnippet:yee,cpuKernelImpl:XZ,dtype:"float32"}),bee={kernelName:_i,backendName:"webgl",kernelFunc:oE};function dx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),de({inputs:{x:s},backend:a,attrs:{shape:o}})}var xee={kernelName:Ll,backendName:"webgl",kernelFunc:dx},lI="return exp(x) - 1.0;",vee=Ye({opSnippet:lI,packedOpSnippet:lI,cpuKernelImpl:YZ}),wee={kernelName:zl,backendName:"webgl",kernelFunc:vee},uI=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,p_=Ye({opSnippet:wee,packedOpSnippet:kee,cpuKernelImpl:e7,dtype:"float32"}),Iee={kernelName:Fi,backendName:"webgl",kernelFunc:p_};function gx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),he({inputs:{x:s},backend:a,attrs:{shape:o}})}var See={kernelName:Bl,backendName:"webgl",kernelFunc:gx},cI="return exp(x) - 1.0;",Tee=Ye({opSnippet:cI,packedOpSnippet:cI,cpuKernelImpl:t7}),Nee={kernelName:Vl,backendName:"webgl",kernelFunc:Tee},dI=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3388,12 +3388,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function lE(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=de({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new uI("real",l,t),p=new uI("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Is({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=de({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function kee(e){let{inputs:t,backend:n}=e,{input:a}=t;return lE(a,!1,n)}var Iee={kernelName:um,backendName:"webgl",kernelFunc:kee},See=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function c_(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=he({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new dI("real",l,t),p=new dI("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Cs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=he({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Cee(e){let{inputs:t,backend:n}=e,{input:a}=t;return c_(a,!1,n)}var Eee={kernelName:pm,backendName:"webgl",kernelFunc:Cee},_ee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function sd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new See(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Tee={kernelName:pc,backendName:"webgl",kernelFunc:sd},Nee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function id(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new _ee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Aee={kernelName:cc,backendName:"webgl",kernelFunc:id},$ee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3407,7 +3407,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(outputValue); } - `}},Cee={kernelName:Wl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Nee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},pI="return floor(x);",_ee=Ye({opSnippet:pI,packedOpSnippet:pI,cpuKernelImpl:ZZ}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_ee},$ee=` + `}},Fee={kernelName:Ul,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new $ee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},hI="return floor(x);",Dee=Ye({opSnippet:hI,packedOpSnippet:hI,cpuKernelImpl:n7}),Ree={kernelName:Di,backendName:"webgl",kernelFunc:Dee},Mee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3417,7 +3417,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } else { return NAN; } -`,Aee=` +`,Pee=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3438,7 +3438,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Fee=pn({opSnippet:$ee,packedOpSnippet:Aee,dtype:"int32"}),Dee={kernelName:$i,backendName:"webgl",kernelFunc:Fee},Ree=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Oee=pn({opSnippet:Mee,packedOpSnippet:Pee,dtype:"int32"}),Lee={kernelName:Ri,backendName:"webgl",kernelFunc:Oee},zee=class{constructor(e){this.variableNames=["A"];let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3460,7 +3460,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},Mee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},Wee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=Cn(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${t.output} = result; } - `}},Pee={kernelName:yh,backendName:"webgl",kernelFunc:Oee},qo,yb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Oee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(qo==null||f!==yb)&&(yb=f,qo=document.createElement("canvas").getContext("2d",{willReadFrequently:yb})),qo.canvas.width=l,qo.canvas.height=u,qo.drawImage(r,0,0,l,u),r=qo.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=pa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new Mee(d):new Ree(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push($(i,p)),w&&E.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=nE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ec(h,!0):null,$=new tE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=aE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ec(h,!1):null,$=new eE(g,x,E,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var zee={kernelName:Qs,backendName:"webgl",kernelFunc:Lee};function Wee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ec(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new iE(g,w,b,I,T):C=new sE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var Bee={kernelName:ei,backendName:"webgl",kernelFunc:Wee},Vee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` + `}},Bee={kernelName:bh,backendName:"webgl",kernelFunc:Vee},Zo,kb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Vee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Zo==null||f!==kb)&&(kb=f,Zo=document.createElement("canvas").getContext("2d",{willReadFrequently:kb})),Zo.canvas.width=l,Zo.canvas.height=u,Zo.drawImage(r,0,0,l,u),r=Zo.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=pa.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new Wee(d):new zee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Uee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let _=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=he({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&_.push($(i,p)),w&&_.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));_.push(R),b.push(R)}return _};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=s_({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let _=h?tc(h,!0):null,$=new r_(g,x,_,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=i_({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?tc(h,!1):null,$=new a_(g,x,_,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=he({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var Gee={kernelName:ni,backendName:"webgl",kernelFunc:Uee};function Hee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?tc(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new u_(g,w,b,I,T):C=new l_(g,w,b,I,T);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",_);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var jee={kernelName:ai,backendName:"webgl",kernelFunc:Hee},qee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function jee(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=de({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=de({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=QZ(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new Hee(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var qee={kernelName:Bl,backendName:"webgl",kernelFunc:uE},Kee="return float(a > b);",Xee=` + `}};function Zee(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=he({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=he({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=r7(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new Yee(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=he({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var Jee={kernelName:Gl,backendName:"webgl",kernelFunc:d_},Qee="return float(a > b);",ete=` return vec4(greaterThan(a, b)); -`,Yee=pn({opSnippet:Kee,packedOpSnippet:Xee,cpuKernelImpl:e7,dtype:"bool"}),Zee={kernelName:Ul,backendName:"webgl",kernelFunc:Yee},Jee="return float(a >= b);",Qee=` +`,tte=pn({opSnippet:Qee,packedOpSnippet:ete,cpuKernelImpl:s7,dtype:"bool"}),nte={kernelName:jl,backendName:"webgl",kernelFunc:tte},ate="return float(a >= b);",rte=` return vec4(greaterThanEqual(a, b)); -`,ete=pn({opSnippet:Jee,packedOpSnippet:Qee,dtype:"bool",cpuKernelImpl:t7}),tte={kernelName:Fi,backendName:"webgl",kernelFunc:ete};function nte(e){let{inputs:t,backend:n}=e,{input:a}=t;return lE(a,!0,n)}var ate={kernelName:pm,backendName:"webgl",kernelFunc:nte},rte="return float(!isnan(x) && !isinf(x));",ste=Ye({opSnippet:rte,dtype:"bool"}),ite={kernelName:Gl,backendName:"webgl",kernelFunc:ste},ote="return float(isinf(x));",lte=Ye({opSnippet:ote,dtype:"bool"}),ute={kernelName:Hl,backendName:"webgl",kernelFunc:lte},pte="return float(isnan(x));",cte=Ye({opSnippet:pte,dtype:"bool"}),dte={kernelName:jl,backendName:"webgl",kernelFunc:cte},hte="return float(a < b);",mte=` +`,ste=pn({opSnippet:ate,packedOpSnippet:rte,dtype:"bool",cpuKernelImpl:i7}),ite={kernelName:Pi,backendName:"webgl",kernelFunc:ste};function ote(e){let{inputs:t,backend:n}=e,{input:a}=t;return c_(a,!0,n)}var lte={kernelName:cm,backendName:"webgl",kernelFunc:ote},ute="return float(!isnan(x) && !isinf(x));",pte=Ye({opSnippet:ute,dtype:"bool"}),cte={kernelName:ql,backendName:"webgl",kernelFunc:pte},dte="return float(isinf(x));",hte=Ye({opSnippet:dte,dtype:"bool"}),mte={kernelName:Kl,backendName:"webgl",kernelFunc:hte},fte="return float(isnan(x));",gte=Ye({opSnippet:fte,dtype:"bool"}),yte={kernelName:Li,backendName:"webgl",kernelFunc:gte},bte="return float(a < b);",xte=` return vec4(lessThan(a, b)); -`,fte=pn({opSnippet:hte,packedOpSnippet:mte,cpuKernelImpl:n7,dtype:"bool"}),gte={kernelName:ql,backendName:"webgl",kernelFunc:fte},yte="return float(a <= b);",bte=` +`,vte=pn({opSnippet:bte,packedOpSnippet:xte,cpuKernelImpl:o7,dtype:"bool"}),wte={kernelName:Xl,backendName:"webgl",kernelFunc:vte},kte="return float(a <= b);",Ite=` return vec4(lessThanEqual(a, b)); -`,xte=pn({opSnippet:yte,packedOpSnippet:bte,cpuKernelImpl:a7,dtype:"bool"}),vte={kernelName:Kl,backendName:"webgl",kernelFunc:xte};function wte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=r7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var kte={kernelName:dm,backendName:"webgl",kernelFunc:wte},Ite=Uu+` +`,Ste=pn({opSnippet:kte,packedOpSnippet:Ite,cpuKernelImpl:l7,dtype:"bool"}),Tte={kernelName:Yl,backendName:"webgl",kernelFunc:Ste};function Nte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=u7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Cte={kernelName:hm,backendName:"webgl",kernelFunc:Nte},Ete=Gu+` return x < 0.0 ? 0./0. : log(x); -`,Ste=` +`,_te=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3534,18 +3534,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Tte=Ye({opSnippet:Ite,packedOpSnippet:Ste,cpuKernelImpl:s7}),Nte={kernelName:Mi,backendName:"webgl",kernelFunc:Tte},Cte=Uu+` +`,Ate=Ye({opSnippet:Ete,packedOpSnippet:_te,cpuKernelImpl:p7}),$te={kernelName:Wi,backendName:"webgl",kernelFunc:Ate},Fte=Gu+` return log(1.0 + x); -`,_te=Ye({opSnippet:Cte}),Ete={kernelName:Xl,backendName:"webgl",kernelFunc:_te},$te="return float(a >= 1.0 && b >= 1.0);",Ate=` +`,Dte=Ye({opSnippet:Fte}),Rte={kernelName:Zl,backendName:"webgl",kernelFunc:Dte},Mte="return float(a >= 1.0 && b >= 1.0);",Pte=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Fte=pn({opSnippet:$te,packedOpSnippet:Ate,dtype:"bool"}),Dte={kernelName:Yl,backendName:"webgl",kernelFunc:Fte},Rte="return float(!(x >= 1.0));",Mte=Ye({opSnippet:Rte}),Pte={kernelName:Zl,backendName:"webgl",kernelFunc:Mte},Ote="return float(a >= 1.0 || b >= 1.0);",Lte=` +`,Ote=pn({opSnippet:Mte,packedOpSnippet:Pte,dtype:"bool"}),Lte={kernelName:Jl,backendName:"webgl",kernelFunc:Ote},zte="return float(!(x >= 1.0));",Wte=Ye({opSnippet:zte}),Bte={kernelName:Ql,backendName:"webgl",kernelFunc:Wte},Vte="return float(a >= 1.0 || b >= 1.0);",Ute=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,zte=pn({opSnippet:Ote,packedOpSnippet:Lte,dtype:"bool"}),Wte={kernelName:Jl,backendName:"webgl",kernelFunc:zte},Bte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,Gte=pn({opSnippet:Vte,packedOpSnippet:Ute,dtype:"bool"}),Hte={kernelName:eu,backendName:"webgl",kernelFunc:Gte},jte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3564,7 +3564,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam float val = x * ${o}; setOutput(val); } - `}},Vte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},qte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3626,7 +3626,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},Ute=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new Vte(r.shape,s,i,o,l):new Bte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},Gte={kernelName:cc,backendName:"webgl",kernelFunc:Ute},Hte=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},Kte=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new qte(r.shape,s,i,o,l):new jte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},Xte={kernelName:dc,backendName:"webgl",kernelFunc:Kte},Yte=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3681,16 +3681,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(result); } - `}},jte=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new Hte(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},qte={kernelName:hm,backendName:"webgl",kernelFunc:jte};function Kte(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ko(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function pE(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new Yte(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},Jte={kernelName:mm,backendName:"webgl",kernelFunc:Zte};function Qte(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Co(i,e.dtype,"max",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function h_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new tc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var tne={kernelName:Li,backendName:"webgl",kernelFunc:ene};function nne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new e1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var ane={kernelName:dc,backendName:"webgl",kernelFunc:nne},rne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,ane=pn({opSnippet:tne,packedOpSnippet:nne,cpuKernelImpl:d7}),rne={kernelName:Vi,backendName:"webgl",kernelFunc:ane};function sne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;zu(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return ta({inputs:{x:r},backend:n});let d=new nc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var ine={kernelName:Ui,backendName:"webgl",kernelFunc:sne};function one(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new a1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var lne={kernelName:hc,backendName:"webgl",kernelFunc:one},une=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3736,7 +3736,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}},sne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},pne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3800,16 +3800,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam } setOutput(dotProd); } - `}};function ine(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new e1(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new sne(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var one={kernelName:fm,backendName:"webgl",kernelFunc:ine};function lne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;Lu([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new tc(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new rne(c),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var une={kernelName:mm,backendName:"webgl",kernelFunc:lne};function pne(e,t,n,a){let r=new tc(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new tc(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var cne={kernelName:gm,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=pne(a,o,p,l);return[d,c]}};function dne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=ko(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var hne={kernelName:zi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;C{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=fne(a,o,p,l);return[d,c]}};function yne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Co(i,"float32","mean",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var bne={kernelName:Gi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,Ine=pn({opSnippet:wne,packedOpSnippet:kne,cpuKernelImpl:h7}),Sne={kernelName:ji,backendName:"webgl",kernelFunc:Ine},Tne=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,p)=>u[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3838,7 +3838,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},wne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=wn("rc",a),l=wn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},Nne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3894,13 +3894,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam ${c} setOutput(result); } - `}},kne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new wne(a.shape,r,s):new vne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Ine={kernelName:Vi,backendName:"webgl",kernelFunc:kne},Sne=`if (b == 0.0) return NAN; - return mod(a, b);`,Tne=` + `}},Cne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Nne(a.shape,r,s):new Tne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Ene={kernelName:qi,backendName:"webgl",kernelFunc:Cne},_ne=`if (b == 0.0) return NAN; + return mod(a, b);`,Ane=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+nd+` + `+ad+` return result; -`,Nne=pn({opSnippet:Sne,packedOpSnippet:Tne}),Cne={kernelName:Ql,backendName:"webgl",kernelFunc:Nne},_ne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,$ne=pn({opSnippet:_ne,packedOpSnippet:Ane}),Fne={kernelName:tu,backendName:"webgl",kernelFunc:$ne},Dne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3920,11 +3920,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,l9=Ye({opSnippet:o9}),u9={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Ene=` + `}},Rne=` if (a == b) { return 1.0; }; -return a / b;`,$ne=` +return a / b;`,Mne=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3942,9 +3942,9 @@ return a / b;`,$ne=` } return result; -`,cE=pn({opSnippet:Ene,packedOpSnippet:$ne,checkOutOfBounds:!0}),Ane={kernelName:Ni,backendName:"webgl",kernelFunc:cE},cI="return a - b;",dE=pn({opSnippet:cI,packedOpSnippet:cI,supportsComplex:!0,cpuKernelImpl:_7}),Fne={kernelName:lo,backendName:"webgl",kernelFunc:dE};function hE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=pE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=dE({inputs:{a:r,b:u},backend:n}),d=oE({inputs:{x:p},backend:n}),c=Pf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=cE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Dne={kernelName:io,backendName:"webgl",kernelFunc:hE};function Rne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:hE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new _ne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Mne={kernelName:ym,backendName:"webgl",kernelFunc:Rne},Pne=Da+` +`,m_=pn({opSnippet:Rne,packedOpSnippet:Mne,checkOutOfBounds:!0}),Pne={kernelName:Ai,backendName:"webgl",kernelFunc:m_},mI="return a - b;",f_=pn({opSnippet:mI,packedOpSnippet:mI,supportsComplex:!0,cpuKernelImpl:D7}),One={kernelName:fo,backendName:"webgl",kernelFunc:f_};function g_(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=h_({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=he({inputs:{x:o},backend:n,attrs:{shape:l}}),p=f_({inputs:{a:r,b:u},backend:n}),d=p_({inputs:{x:p},backend:n}),c=Of({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=he({inputs:{x:c},backend:n,attrs:{shape:l}}),m=m_({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Lne={kernelName:ho,backendName:"webgl",kernelFunc:g_};function zne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:g_({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Dne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Wne={kernelName:bm,backendName:"webgl",kernelFunc:zne},Bne=Ma+` return -x; -`,One=` +`,Vne=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3954,14 +3954,14 @@ return a / b;`,$ne=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Lne(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=p7(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new js(a.shape,One):r=new Sr(a.shape,Pne),n.runWebGLProgram(r,[a],a.dtype)}var zne={kernelName:eu,backendName:"webgl",kernelFunc:Lne},Wne=cr.nonMaxSuppressionV3Impl;function Bne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Wne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var Vne={kernelName:nu,backendName:"webgl",kernelFunc:Bne},Une=cr.nonMaxSuppressionV4Impl;function Gne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=Une(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Hne={kernelName:au,backendName:"webgl",kernelFunc:Gne},jne=cr.nonMaxSuppressionV5Impl;function qne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=jne(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var Kne={kernelName:ru,backendName:"webgl",kernelFunc:qne},Xne=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function Une(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=f7(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new es(a.shape,Vne):r=new rr(a.shape,Bne),n.runWebGLProgram(r,[a],a.dtype)}var Gne={kernelName:nu,backendName:"webgl",kernelFunc:Une},Hne=hr.nonMaxSuppressionV3Impl;function jne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Hne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var qne={kernelName:ru,backendName:"webgl",kernelFunc:jne},Kne=hr.nonMaxSuppressionV4Impl;function Xne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=Kne(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var Yne={kernelName:su,backendName:"webgl",kernelFunc:Xne},Zne=hr.nonMaxSuppressionV5Impl;function Jne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=Zne(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var Qne={kernelName:iu,backendName:"webgl",kernelFunc:Jne},eae=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},Yne=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new Xne(u,i,o,l),d=de({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=de({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},Zne={kernelName:Gi,backendName:"webgl",kernelFunc:Yne};function Uh(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=rd({inputs:{input:a},backend:n}),s=Uh({inputs:{x:r},backend:n}),i=Of({inputs:{input:a},backend:n}),o=Uh({inputs:{x:i},backend:n}),l=Is({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return sd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var Jne={kernelName:Iu,backendName:"webgl",kernelFunc:Uh};function mE(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=rd({inputs:{input:a},backend:n}),s=mE({inputs:{x:r},backend:n}),i=Of({inputs:{input:a},backend:n}),o=Uh({inputs:{x:i},backend:n}),l=Is({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return sd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var Qne={kernelName:su,backendName:"webgl",kernelFunc:mE};function eae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return dx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=dx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Q_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var tae={kernelName:iu,backendName:"webgl",kernelFunc:eae},nae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},tae=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new eae(u,i,o,l),d=he({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=he({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},nae={kernelName:Xi,backendName:"webgl",kernelFunc:tae};function Gh(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=sd({inputs:{input:a},backend:n}),s=Gh({inputs:{x:r},backend:n}),i=Lf({inputs:{input:a},backend:n}),o=Gh({inputs:{x:i},backend:n}),l=Cs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return id({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var aae={kernelName:Su,backendName:"webgl",kernelFunc:Gh};function y_(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=sd({inputs:{input:a},backend:n}),s=y_({inputs:{x:r},backend:n}),i=Lf({inputs:{input:a},backend:n}),o=Gh({inputs:{x:i},backend:n}),l=Cs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return id({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var rae={kernelName:ou,backendName:"webgl",kernelFunc:y_};function sae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return gx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=gx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=n_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var iae={kernelName:lu,backendName:"webgl",kernelFunc:sae},oae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3986,7 +3986,7 @@ return a / b;`,$ne=` setOutput(getX(${o})); } } - `}},aae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=wn("rc",a),l=wn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},lae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4010,7 +4010,7 @@ return a / b;`,$ne=` ${h} setOutput(result); } - `}},fE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return sd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new aae(r.shape,s,i):new nae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},rae={kernelName:Hi,backendName:"webgl",kernelFunc:fE},sae=` + `}},b_=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return id({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new lae(r.shape,s,i):new oae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},uae={kernelName:Yi,backendName:"webgl",kernelFunc:b_},pae=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4019,7 +4019,7 @@ return a / b;`,$ne=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,iae=` +`,cae=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4035,11 +4035,11 @@ return a / b;`,$ne=` bvec4 isNaN1 = lessThan(a, vec4(0.0)); bvec4 isNaN2 = lessThan(floor(b), b); bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); - `+nd+` + `+ad+` return result; -`,oae=pn({opSnippet:sae,packedOpSnippet:iae}),lae={kernelName:ji,backendName:"webgl",kernelFunc:oae};function uae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=In({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=d7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=_m(r.dtype),x=ko(y,b,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=de({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var pae={kernelName:Ki,backendName:"webgl",kernelFunc:uae};function cae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=h7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var dae={kernelName:bm,backendName:"webgl",kernelFunc:cae};function hae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=m7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var mae={kernelName:xm,backendName:"webgl",kernelFunc:hae};function fae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=f7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var gae={kernelName:vm,backendName:"webgl",kernelFunc:fae},gE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=g7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},yae={kernelName:hc,backendName:"webgl",kernelFunc:gE},bae="return 1.0 / x;",xae=Ye({opSnippet:bae}),vae={kernelName:ou,backendName:"webgl",kernelFunc:xae},wae=Da+` +`,dae=pn({opSnippet:pae,packedOpSnippet:cae}),hae={kernelName:Zi,backendName:"webgl",kernelFunc:dae};function mae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=In({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=y7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=he({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=_m(r.dtype),x=Co(y,b,"prod",n);h=he({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=he({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var fae={kernelName:Qi,backendName:"webgl",kernelFunc:mae};function gae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=b7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var yae={kernelName:xm,backendName:"webgl",kernelFunc:gae};function bae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=x7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var xae={kernelName:vm,backendName:"webgl",kernelFunc:bae};function vae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=v7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var wae={kernelName:wm,backendName:"webgl",kernelFunc:vae},x_=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=w7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},kae={kernelName:mc,backendName:"webgl",kernelFunc:x_},Iae="return 1.0 / x;",Sae=Ye({opSnippet:Iae}),Tae={kernelName:eo,backendName:"webgl",kernelFunc:Sae},Nae=Ma+` return (x < 0.0) ? 0.0 : x; -`,kae=` +`,Cae=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4049,9 +4049,9 @@ return a / b;`,$ne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Iae=Ye({opSnippet:wae,packedOpSnippet:kae}),Sae={kernelName:Xi,backendName:"webgl",kernelFunc:Iae},Tae=Da+` +`,Eae=Ye({opSnippet:Nae,packedOpSnippet:Cae}),_ae={kernelName:to,backendName:"webgl",kernelFunc:Eae},Aae=Ma+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Nae=` +`,$ae=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4061,7 +4061,7 @@ return a / b;`,$ne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Cae=Ye({opSnippet:Tae,packedOpSnippet:Nae}),_ae={kernelName:Ji,backendName:"webgl",kernelFunc:Cae},Eae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,Fae=Ye({opSnippet:Aae,packedOpSnippet:$ae}),Dae={kernelName:ro,backendName:"webgl",kernelFunc:Fae},Rae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4094,7 +4094,7 @@ return a / b;`,$ne=` setOutput(newValue); } - `}},$ae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},Mae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4171,7 +4171,7 @@ return a / b;`,$ne=` setOutput(newValue); } - `}};function Aae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new $ae(r.shape,l,u,s,i):new Eae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Fae={kernelName:Zi,backendName:"webgl",kernelFunc:Aae},Dae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function Pae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Mae(r.shape,l,u,s,i):new Rae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Oae={kernelName:ao,backendName:"webgl",kernelFunc:Pae},Lae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4252,7 +4252,7 @@ return a / b;`,$ne=` setOutput(accumulator); } - `}};function Rae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Dae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Mae={kernelName:Im,backendName:"webgl",kernelFunc:Rae},Pae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function zae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Lae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Wae={kernelName:Sm,backendName:"webgl",kernelFunc:zae},Bae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4274,7 +4274,7 @@ return a / b;`,$ne=` setOutput(newValue); } - `}},Oae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},Vae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4315,7 +4315,7 @@ return a / b;`,$ne=` setOutput(newValue); } - `}};function Lae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Oae(r.shape,l,u,s,i):new Pae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var zae={kernelName:Yi,backendName:"webgl",kernelFunc:Lae},Wae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function Uae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Vae(r.shape,l,u,s,i):new Bae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Gae={kernelName:no,backendName:"webgl",kernelFunc:Uae},Hae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4385,7 +4385,7 @@ return a / b;`,$ne=` setOutput(accumulator); } - `}};function Bae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Wae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Vae={kernelName:km,backendName:"webgl",kernelFunc:Bae},Uae=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function jae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Hae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var qae={kernelName:Im,backendName:"webgl",kernelFunc:jae},Kae=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -4395,7 +4395,7 @@ return a / b;`,$ne=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},Gae=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=wn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` + `}},Xae=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=kn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4423,7 +4423,7 @@ return a / b;`,$ne=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((y,b)=>c(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function Hae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return na({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Gae(r.shape,o):new Uae(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var jae={kernelName:Qi,backendName:"webgl",kernelFunc:Hae},qae=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((y,b)=>c(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function Yae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return ta({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Xae(r.shape,o):new Kae(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var Zae={kernelName:so,backendName:"webgl",kernelFunc:Yae},Jae=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4442,7 +4442,7 @@ return a / b;`,$ne=` } setOutput(outputValue); } - `}},Kae={kernelName:Su,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new qae(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},Xae=` + `}},Qae={kernelName:Tu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new Jae(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},ere=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4457,7 +4457,7 @@ return a / b;`,$ne=` return base + 1.0; } } -`,Yae=Ye({opSnippet:Xae}),Zae={kernelName:eo,backendName:"webgl",kernelFunc:Yae},Jae="return inversesqrt(x);",Qae=Ye({opSnippet:Jae,cpuKernelImpl:y7}),ere={kernelName:to,backendName:"webgl",kernelFunc:Qae},yE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,tre=Ye({opSnippet:ere}),nre={kernelName:io,backendName:"webgl",kernelFunc:tre},are="return inversesqrt(x);",rre=Ye({opSnippet:are,cpuKernelImpl:k7}),sre={kernelName:oo,backendName:"webgl",kernelFunc:rre},v_=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -4477,7 +4477,7 @@ return a / b;`,$ne=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function tre(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=de({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=de({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new yE(l,o,h.shape.length,m.shape.length,p,c),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=de({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var nre={kernelName:uu,backendName:"webgl",kernelFunc:tre},are=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function ire(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=he({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=he({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new v_(l,o,h.shape.length,m.shape.length,p,c),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=he({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var ore={kernelName:pu,backendName:"webgl",kernelFunc:ire},lre=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4502,7 +4502,7 @@ return a / b;`,$ne=` setOutput(float(findBound(batch, value))); } - `}};function rre(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new are(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var sre={kernelName:Sm,backendName:"webgl",kernelFunc:rre},ire=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,pre=Ye({opSnippet:ure}),cre={kernelName:cu,backendName:"webgl",kernelFunc:pre},dre=Uu+` +`,fre=Ye({opSnippet:mre}),gre={kernelName:du,backendName:"webgl",kernelFunc:fre},yre=Gu+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,hre=` +`,bre=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4530,15 +4530,15 @@ return a / b;`,$ne=` result.a = isNaN.a ? x.a : result.a; return result; -`,mre=Ye({opSnippet:dre,packedOpSnippet:hre,cpuKernelImpl:x7}),fre={kernelName:ao,backendName:"webgl",kernelFunc:mre},gre=` +`,xre=Ye({opSnippet:yre,packedOpSnippet:bre,cpuKernelImpl:S7}),vre={kernelName:uo,backendName:"webgl",kernelFunc:xre},wre=` if (isnan(x)) { return 0.0; } return sign(x); -`,yre=Ye({opSnippet:gre}),bre={kernelName:mu,backendName:"webgl",kernelFunc:yre},xre=Uu+` +`,kre=Ye({opSnippet:wre}),Ire={kernelName:fu,backendName:"webgl",kernelFunc:kre},Sre=Gu+` return sin(x); -`,vre=Ye({opSnippet:xre}),wre={kernelName:no,backendName:"webgl",kernelFunc:vre},kre=` +`,Tre=Ye({opSnippet:Sre}),Nre={kernelName:lo,backendName:"webgl",kernelFunc:Tre},Cre=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Ire=Ye({opSnippet:kre}),Sre={kernelName:hu,backendName:"webgl",kernelFunc:Ire},Tre=` +`,Ere=Ye({opSnippet:Cre}),_re={kernelName:mu,backendName:"webgl",kernelFunc:Ere},Are=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4558,17 +4558,17 @@ return a / b;`,$ne=` result = log(exp_x + 1.0); } return result; -`,Nre=Ye({opSnippet:Tre}),Cre={kernelName:fu,backendName:"webgl",kernelFunc:Nre},_re=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Ere={kernelName:gu,backendName:"webgl",kernelFunc:_re};function $re(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,$re=Ye({opSnippet:Are}),Fre={kernelName:gu,backendName:"webgl",kernelFunc:$re},Dre=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Rre={kernelName:yu,backendName:"webgl",kernelFunc:Dre};function Mre(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=w7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Are={kernelName:mc,backendName:"webgl",kernelFunc:$re};function Fre(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=k7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Dre={kernelName:bu,backendName:"webgl",kernelFunc:Fre};function Rre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=N7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Pre={kernelName:fc,backendName:"webgl",kernelFunc:Mre};function Ore(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=C7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Lre={kernelName:xu,backendName:"webgl",kernelFunc:Ore};function zre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=z_(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Mre={kernelName:fc,backendName:"webgl",kernelFunc:Rre};function Pre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=VE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Wre={kernelName:gc,backendName:"webgl",kernelFunc:zre};function Bre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=z_(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Ore={kernelName:gc,backendName:"webgl",kernelFunc:Pre};function Lre(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let y=n.bufferSync(r),b=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=b7(y,b,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new yE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var zre={kernelName:Tm,backendName:"webgl",kernelFunc:Lre};function Wre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=Gu({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Bre={kernelName:yu,backendName:"webgl",kernelFunc:Wre},dI="return sqrt(x);",Vre=Ye({opSnippet:dI,packedOpSnippet:dI,cpuKernelImpl:I7}),Ure={kernelName:ro,backendName:"webgl",kernelFunc:Vre},Gre="return x * x;",Hre=Ye({opSnippet:Gre}),jre={kernelName:yc,backendName:"webgl",kernelFunc:Hre},hI="return (a - b) * (a - b);",qre=pn({opSnippet:hI,packedOpSnippet:hI}),Kre={kernelName:oo,backendName:"webgl",kernelFunc:qre};function Xre({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Da+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=VE(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Vre={kernelName:yc,backendName:"webgl",kernelFunc:Bre};function Ure(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let y=n.bufferSync(r),b=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=I7(y,b,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new v_(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Gre={kernelName:Nm,backendName:"webgl",kernelFunc:Ure};function Hre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=Hu({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var jre={kernelName:bu,backendName:"webgl",kernelFunc:Hre},fI="return sqrt(x);",qre=Ye({opSnippet:fI,packedOpSnippet:fI,cpuKernelImpl:E7}),Kre={kernelName:po,backendName:"webgl",kernelFunc:qre},Xre="return x * x;",Yre=Ye({opSnippet:Xre}),Zre={kernelName:bc,backendName:"webgl",kernelFunc:Yre},gI="return (a - b) * (a - b);",Jre=pn({opSnippet:gI,packedOpSnippet:gI}),Qre={kernelName:mo,backendName:"webgl",kernelFunc:Jre};function ese({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new Sr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var Yre={kernelName:ms,backendName:"webgl",kernelFunc:Xre},Zre=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` + `,s=new rr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var tse={kernelName:bs,backendName:"webgl",kernelFunc:ese},nse=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -4576,15 +4576,15 @@ return a / b;`,$ne=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function Jre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=Gu({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Pe(r.shape,r.dtype,C),$=S7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new Zre(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var Qre={kernelName:xu,backendName:"webgl",kernelFunc:Jre};function ese(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=T7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var tse={kernelName:bc,backendName:"webgl",kernelFunc:ese};function nse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=N7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var ase={kernelName:xc,backendName:"webgl",kernelFunc:nse};function rse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=C7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var sse={kernelName:vc,backendName:"webgl",kernelFunc:rse},ise="return tan(x);",ose=Ye({opSnippet:ise}),lse={kernelName:uo,backendName:"webgl",kernelFunc:ose},use=` + `}};function ase(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=he({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(b,x,w),_=Hu({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=he({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Pe(r.shape,r.dtype,C),$=_7(h,_,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new nse(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=he({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var rse={kernelName:vu,backendName:"webgl",kernelFunc:ase};function sse(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=A7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var ise={kernelName:xc,backendName:"webgl",kernelFunc:sse};function ose(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=$7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var lse={kernelName:vc,backendName:"webgl",kernelFunc:ose};function use(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=F7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var pse={kernelName:wc,backendName:"webgl",kernelFunc:use},cse="return tan(x);",dse=Ye({opSnippet:cse}),hse={kernelName:go,backendName:"webgl",kernelFunc:dse},mse=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,pse=Ye({opSnippet:use}),cse={kernelName:po,backendName:"webgl",kernelFunc:pse},dse=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Pe(r.shape,r.dtype,l),p=E7(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new dse(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var mse={kernelName:hs,backendName:"webgl",kernelFunc:bE},fse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + `}};function bse(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Pe(r.shape,r.dtype,l),p=R7(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new yse(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var xse={kernelName:ys,backendName:"webgl",kernelFunc:w_},vse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4624,7 +4624,7 @@ return a / b;`,$ne=` setOutput(float(i1)); } } - `}},gse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},wse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4658,7 +4658,7 @@ return a / b;`,$ne=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Os(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function mI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=$7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,sd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Os(n,h);let g=mI(s),y=mI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new fse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Os(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new gse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Os(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=Gu({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Os(n,I);let T=uE({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Os(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Os(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Os(n,E),[T,b]}var bse={kernelName:vu,backendName:"webgl",kernelFunc:yse},xse=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + `}};function Bs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function yI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=M7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,id({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=he({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Bs(n,h);let g=yI(s),y=yI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new vse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Bs(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new wse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Bs(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=Hu({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Bs(n,I);let T=d_({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Bs(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=he({inputs:{x:b},attrs:{shape:C},backend:n}),Bs(n,I);let _=T;return T=he({inputs:{x:T},attrs:{shape:C},backend:n}),Bs(n,_),[T,b]}var Ise={kernelName:wu,backendName:"webgl",kernelFunc:kse},Sse=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,$ne=` } setOutput(outputValue); } - `}};function vse(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new xse(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var wse={kernelName:wu,backendName:"webgl",kernelFunc:vse};function kse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Lu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=A7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ise={kernelName:Nm,backendName:"webgl",kernelFunc:kse};function Sse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Tse={kernelName:ku,backendName:"webgl",kernelFunc:Sse},Nse=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` + `}};function Tse(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Sse(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Nse={kernelName:ku,backendName:"webgl",kernelFunc:Tse};function Cse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;zu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=P7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Ese={kernelName:Cm,backendName:"webgl",kernelFunc:Cse};function _se(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Ase={kernelName:Iu,backendName:"webgl",kernelFunc:_se},$se=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4876,7 +4876,7 @@ return a / b;`,$ne=` } setOutput(${l}); } - `}};function Cse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=N.getAxesPermutation([u],o),d=r;p!=null&&(d=In({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=N.getInnerMostAxes(1,o)[0]);let c=N.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=de({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=_m(r.dtype),g=(w,I,T,C,E)=>{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:$,numSegments:E},M=new Nse(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=gE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=bE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var _se={kernelName:wc,backendName:"webgl",kernelFunc:Cse},Ese=[SJ,NJ,EJ,FJ,RJ,OJ,zJ,BJ,HJ,qJ,YJ,QJ,n9,i9,u9,c9,h9,y9,x9,w9,T9,F9,R9,P9,V9,G9,K9,oJ,Z9,nQ,iQ,dQ,mQ,gQ,bQ,vQ,IQ,NQ,EQ,AQ,DQ,MQ,LQ,WQ,GQ,jQ,XQ,JQ,eee,ree,lee,dee,fee,bee,xee,wee,Iee,Tee,Cee,Eee,Dee,Pee,zee,Bee,Gee,qee,Zee,tte,iJ,ate,eQ,ite,ute,dte,uJ,gte,vte,kte,Nte,Ete,Dte,Pte,Wte,Gte,qte,Xte,Qte,tne,ane,one,une,cne,hne,fne,xne,Ine,Cne,Mne,dJ,zne,Vne,Hne,Kne,L9,Zne,Qne,tae,rae,lae,cJ,pae,dae,mae,gae,yae,z9,Ane,vae,Sae,_ae,mJ,Fae,Mae,zae,Vae,jae,Kae,Zae,ere,nre,sre,lre,cre,fre,bre,wre,Sre,$9,Dne,Cre,Ere,Are,Dre,Mre,Ore,zre,Bre,Ure,jre,Kre,Yre,Qre,tse,ase,sse,Fne,wJ,lse,cse,mse,bse,wse,kJ,Ise,Tse,_se,Jne];for(let e of Ese)kc(e);var Et;(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"})(Et||(Et={}));var ac;(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"})(ac||(ac={}));var xE;function $se(e){xE=e.wasm.cwrap(Js,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ase(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=ac[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return xE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Fse={kernelName:Js,backendName:"wasm",setupFunc:$se,kernelFunc:Ase};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Dse=an(wl);function cn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Rse=!0,Mse=cn(cs,Rse),vE;function Pse(e){vE=e.wasm.cwrap(mi,null,["array","number","number","number"])}function Ose(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return vE(s,r.length,Et[a.dtype],i),a}var Lse={kernelName:mi,backendName:"wasm",setupFunc:Pse,kernelFunc:Ose};function Lf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return kn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var zse={kernelName:Di,backendName:"wasm",kernelFunc:Lf},wE;function Wse(e){wE=e.wasm.cwrap(Tr,null,["number","array","number","number","number","array","number"])}function ls(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Vse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Use={kernelName:Tr,backendName:"wasm",kernelFunc:ls,setupFunc:Wse};function Ss(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var nie={kernelName:lu,backendName:"wasm",kernelFunc:Wn},NE;function aie(e){NE=e.wasm.cwrap(yi,null,["number","array","number","number","array","number","number","number","number"])}function rie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Tu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return NE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var sie={kernelName:yi,backendName:"wasm",setupFunc:aie,kernelFunc:rie};function di(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Oh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)iie(l,p[0],c,s,i);else if(h===3)oie(l,p[0],p[1],c,s,i);else if(h===4)lie(l,p[0],p[1],p[2],c,s,i);else{let m=Oh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function iie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ls({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=di({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var cie={kernelName:Al,backendName:"wasm",kernelFunc:pie};function Hu(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var die={kernelName:bi,backendName:"wasm",kernelFunc:Hu},hie=an(xi),CE;function mie(e){CE=e.wasm.cwrap(ds,null,["number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return CE(o,s,i,u),l}var gie={kernelName:ds,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function _E(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Lf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=E0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;FE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Aie={kernelName:Dl,backendName:"wasm",setupFunc:Eie,kernelFunc:$ie},DE;function Fie(e){DE=e.wasm.cwrap(Si,null,["number","number","number","number","number","number"])}function Die(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ls({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;DE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ls({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Rie={kernelName:Si,backendName:"wasm",setupFunc:Fie,kernelFunc:Die},RE;function Mie(e){RE=e.wasm.cwrap(Ml,null,["number","number","number","array","number","array","array","number","number"])}function Pie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return RE(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Oie={kernelName:Ml,backendName:"wasm",setupFunc:Mie,kernelFunc:Pie},ME;function Lie(e){ME=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return ME(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,$,S),F}var Wie={kernelName:Ti,backendName:"wasm",setupFunc:Lie,kernelFunc:zie},Bie=an(Ci),Vie=!1,Uie=cn(Ol,Vie,"bool"),Gie=an(_i,"float32");function mx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Hie={kernelName:Ll,backendName:"wasm",kernelFunc:mx};function PE(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var jie={kernelName:pc,backendName:"wasm",kernelFunc:PE},OE;function qie(e){OE=e.wasm.cwrap(Wl,null,["number","number","number","number","number","number"])}function Kie(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return OE(s,o,l,u,p,i),r}var Xie={kernelName:Wl,backendName:"wasm",kernelFunc:Kie,setupFunc:qie},Yie=an(Ei),Zie=!1,Jie=cn($i,Zie),LE;function Qie(e){LE=e.wasm.cwrap(Ai,null,["number","number","number","number","number","number","number"])}function eoe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return LE(p,d,c,h,m,r,g),f}var toe={kernelName:Ai,backendName:"wasm",setupFunc:Qie,kernelFunc:eoe},zE;function noe(e){zE=e.wasm.cwrap(Qs,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 aoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return zE(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var roe={kernelName:Qs,backendName:"wasm",setupFunc:noe,kernelFunc:aoe},WE;function soe(e){WE=e.wasm.cwrap(ei,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 ioe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=ac[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return WE(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var ooe={kernelName:ei,backendName:"wasm",setupFunc:soe,kernelFunc:ioe},BE;function loe(e){BE=e.wasm.cwrap(Vl,null,["number","number","number","number","number","number","array","number"])}function uoe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Mx.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return BE(c,Et[a.dtype],h,i,d,o,m,f),u}var poe={kernelName:Vl,backendName:"wasm",setupFunc:loe,kernelFunc:uoe},VE;function coe(e){VE=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function doe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return VE(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var hoe={kernelName:Bl,backendName:"wasm",setupFunc:coe,kernelFunc:doe},moe=!1,foe=cn(Ul,moe,"bool"),goe=!1,yoe=cn(Fi,goe,"bool"),UE;function boe(e){UE=e.wasm.cwrap(Ri,null,["number","number","number","number"])}function xoe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;UE(r,Et[t.dtype],n,i)}return s}var voe={kernelName:Ri,backendName:"wasm",setupFunc:boe,kernelFunc:xoe},woe=!1,koe=cn(ql,woe,"bool"),Ioe=!1,Soe=cn(Kl,Ioe,"bool"),Toe=an(Mi),Noe=!1,Coe=cn(Yl,Noe,"bool"),_oe=an(Zl),Eoe=!1,$oe=cn(Jl,Eoe,"bool"),Aoe=!1,Foe=cn(MI,Aoe,"bool"),GE;function Doe(e){GE=e.wasm.cwrap(Pi,null,["number","number","number","number"])}function Roe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Ss(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;GE(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var Moe={kernelName:Pi,backendName:"wasm",setupFunc:Doe,kernelFunc:Roe},Poe=!1,Ooe=cn(Oi,Poe),HE;function Loe(e){HE=e.wasm.cwrap(Li,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function zoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return HE(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Woe={kernelName:Li,backendName:"wasm",setupFunc:Loe,kernelFunc:zoe},jE;function Boe(e){jE=e.wasm.cwrap(zi,null,["number, number, number"])}function Voe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=Hu({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;jE(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var Uoe={kernelName:zi,backendName:"wasm",setupFunc:Boe,kernelFunc:Voe},qE;function Goe(e){qE=e.wasm.cwrap(Wi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;qE(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var joe={kernelName:Wi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=cn(Bi,qoe),fx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(fx||(fx={}));var KE;function Xoe(e){KE=e.wasm.cwrap(Vi,null,["number","array","number","number","array","array","number","number"])}function Yoe(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return KE(i,u,t.shape.length,Et[t.dtype],c,h,fx[r],l),o}var Zoe={kernelName:Vi,backendName:"wasm",kernelFunc:Yoe,setupFunc:Xoe},Joe=!0,Qoe=cn(Ui,Joe),ele=an(eu);function t1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var XE;function tle(e){XE=e.wasm.cwrap(nu,"number",["number","number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=XE(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=t1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ale={kernelName:nu,backendName:"wasm",setupFunc:tle,kernelFunc:nle},YE;function rle(e){YE=e.wasm.cwrap(au,"number",["number","number","number","number","number","bool"])}function sle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=YE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var ile={kernelName:au,backendName:"wasm",setupFunc:rle,kernelFunc:sle},ZE;function ole(e){ZE=e.wasm.cwrap(ru,"number",["number","number","number","number","number","number"])}function lle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=ZE(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=t1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var ule={kernelName:ru,backendName:"wasm",setupFunc:ole,kernelFunc:lle},ple=!1,cle=cn(tu,ple,"bool"),JE;function dle(e){JE=e.wasm.cwrap(Gi,null,["number","number","number","number","number"])}function hle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return JE(d,i,o,l,p),u}var mle={kernelName:Gi,backendName:"wasm",setupFunc:dle,kernelFunc:hle};function fle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var gle={kernelName:su,backendName:"wasm",kernelFunc:fle};function yle(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return mx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=mx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=_E({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var ble={kernelName:iu,backendName:"wasm",kernelFunc:yle},QE;function xle(e){QE=e.wasm.cwrap(Hi,null,["number","array","number","number","array","array","number","number"])}function vle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return PE({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return QE(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var e$={kernelName:Hi,backendName:"wasm",kernelFunc:vle,setupFunc:xle},wle=!1,kle=cn(ji,wle),t$;function Ile(e){t$=e.wasm.cwrap(qi,null,["number","number","number"])}function Sle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=Hu({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return t$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Tle={kernelName:qi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle},n$;function Nle(e){n$=e.wasm.cwrap(Ki,null,["number","number","number","number"])}function Cle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;n$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var _le={kernelName:Ki,backendName:"wasm",setupFunc:Nle,kernelFunc:Cle},Ele=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=F0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},$le={kernelName:hc,backendName:"wasm",kernelFunc:Ele},Ale=!0,Fle=cn(Ni,Ale),Dle=an(Xi),Rle=an(Ji),a$;function Mle(e){a$=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Ple(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return a$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Ole={kernelName:Zi,backendName:"wasm",setupFunc:Mle,kernelFunc:Ple},r$;function Lle(e){r$=e.wasm.cwrap(Yi,null,["number","number","number","number","number","number","number","number","number","number"])}function zle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=Hu({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return r$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Wle={kernelName:Yi,backendName:"wasm",setupFunc:Lle,kernelFunc:zle},s$;function Ble(e){s$=e.wasm.cwrap(Qi,null,["number","array","number","array","number","number"])}function Vle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Lf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);s$(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Ule={kernelName:Qi,backendName:"wasm",kernelFunc:Vle,setupFunc:Ble},i$;function Gle(e){i$=e.wasm.cwrap(Su,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Hle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return i$(u,d,c,h,m,s,f,g,w,x.length,p),l}var jle={kernelName:Su,backendName:"wasm",kernelFunc:Hle,setupFunc:Gle},qle=an(eo),Kle=an(to),o$;function Xle(e){o$=e.wasm.cwrap(uu,null,["number","number","number","number","number","number","array","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Px.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return o$(h,m,Et[s.dtype],l,u,p,f,c,g),o}var Zle={kernelName:uu,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},l$;function Jle(e){l$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Qle(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return l$(i,o,l,h,p),u}var eue={kernelName:pu,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},u$;function tue(e){u$=e.wasm.cwrap(ao,null,["number","number"])}function nue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||u$(a,s),r}var aue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:tue,kernelFunc:nue},rue=an(no),p$;function sue(e){p$=e.wasm.cwrap(io,null,["number","number","number","number"])}function iue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||p$(r,i,o,l),s}var oue={kernelName:io,backendName:"wasm",setupFunc:sue,kernelFunc:iue};function lue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,_),S={windowSize:F,inSize:R,batchSize:$,numSegments:_},M=new $se(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===_)return B;let U=x_({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),G=w_({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,_)},y=g(m,"unsortedSegmentSum",s,f,i),b=he({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=In({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var Dse={kernelName:kc,backendName:"webgl",kernelFunc:Fse},Rse=[_J,$J,RJ,OJ,zJ,VJ,GJ,jJ,YJ,JJ,t9,r9,o9,c9,m9,g9,b9,k9,S9,N9,A9,O9,z9,B9,q9,X9,Q9,dJ,nQ,oQ,cQ,yQ,xQ,wQ,IQ,TQ,EQ,$Q,RQ,PQ,LQ,WQ,UQ,HQ,XQ,ZQ,eee,aee,see,uee,hee,yee,vee,Iee,See,Nee,Eee,Aee,Fee,Ree,Lee,Bee,Gee,jee,Xee,Jee,nte,ite,cJ,lte,sQ,cte,mte,yte,mJ,wte,Tte,Cte,$te,Rte,Lte,Bte,Hte,Xte,Jte,ene,rne,ine,lne,dne,mne,gne,bne,vne,Sne,Ene,Fne,Wne,yJ,Gne,qne,Yne,Qne,U9,nae,rae,iae,uae,hae,gJ,fae,yae,xae,wae,kae,G9,Pne,Tae,_ae,Dae,xJ,Oae,Wae,Gae,qae,Zae,Qae,nre,sre,ore,pre,hre,gre,vre,Ire,Nre,_re,M9,Lne,Fre,Rre,Pre,Lre,Wre,Vre,Gre,jre,Kre,Zre,Qre,tse,rse,ise,lse,pse,One,NJ,hse,gse,xse,Ise,Nse,CJ,Ese,Ase,Dse,aae];for(let e of Rse)Ic(e);var _t;(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"})(_t||(_t={}));var rc;(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"})(rc||(rc={}));var k_;function Mse(e){k_=e.wasm.cwrap(ti,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Pse(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=rc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Nu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return k_(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Ose={kernelName:ti,backendName:"wasm",setupFunc:Mse,kernelFunc:Pse};function Ut(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,_t[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Lse=Ut(Sl);function cn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,_t[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var zse=!0,Wse=cn(fs,zse),I_;function Bse(e){I_=e.wasm.cwrap(bi,null,["array","number","number","number"])}function Vse(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return I_(s,r.length,_t[a.dtype],i),a}var Use={kernelName:bi,backendName:"wasm",setupFunc:Bse,kernelFunc:Vse};function zf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return mn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Gse={kernelName:Oi,backendName:"wasm",kernelFunc:zf},S_;function Hse(e){S_=e.wasm.cwrap(Cr,null,["number","array","number","number","number","array","number"])}function ds(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=qse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var Kse={kernelName:Cr,backendName:"wasm",kernelFunc:ds,setupFunc:Hse};function Es(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var oie={kernelName:uu,backendName:"wasm",kernelFunc:Wn},__;function lie(e){__=e.wasm.cwrap(wi,null,["number","array","number","number","array","number","number","number","number"])}function uie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Nu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return __(C,B,I.shape.length,_,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var pie={kernelName:wi,backendName:"wasm",setupFunc:lie,kernelFunc:uie};function gi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Lh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)cie(l,p[0],c,s,i);else if(h===3)die(l,p[0],p[1],c,s,i);else if(h===4)hie(l,p[0],p[1],p[2],c,s,i);else{let m=Lh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function cie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ds({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=gi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var gie={kernelName:Rl,backendName:"wasm",kernelFunc:fie};function ju(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var yie={kernelName:ki,backendName:"wasm",kernelFunc:ju},bie=Ut(Ii),A_;function xie(e){A_=e.wasm.cwrap(gs,null,["number","number","number","number"])}function vie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return A_(o,s,i,u),l}var wie={kernelName:gs,backendName:"wasm",setupFunc:xie,kernelFunc:vie};function $_(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return zf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=F0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ds({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;M_(m,i?1:0,o?1:0,h,f,_t[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ds({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Pie={kernelName:Pl,backendName:"wasm",setupFunc:Rie,kernelFunc:Mie},P_;function Oie(e){P_=e.wasm.cwrap(Ei,null,["number","number","number","number","number","number"])}function Lie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ds({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;P_(m,i?1:0,o?1:0,h,f,_t[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ds({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var zie={kernelName:Ei,backendName:"wasm",setupFunc:Oie,kernelFunc:Lie},O_;function Wie(e){O_=e.wasm.cwrap(Ll,null,["number","number","number","array","number","array","array","number","number"])}function Bie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return O_(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Vie={kernelName:Ll,backendName:"wasm",setupFunc:Wie,kernelFunc:Bie},L_;function Uie(e){L_=e.wasm.cwrap(_i,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Gie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,_=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return L_(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,_,$,S),F}var Hie={kernelName:_i,backendName:"wasm",setupFunc:Uie,kernelFunc:Gie},jie=Ut($i),qie=!1,Kie=cn(Wl,qie,"bool"),Xie=Ut(Fi,"float32");function bx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var Yie={kernelName:Bl,backendName:"wasm",kernelFunc:bx};function z_(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var Zie={kernelName:cc,backendName:"wasm",kernelFunc:z_},W_;function Jie(e){W_=e.wasm.cwrap(Ul,null,["number","number","number","number","number","number"])}function Qie(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return W_(s,o,l,u,p,i),r}var eoe={kernelName:Ul,backendName:"wasm",kernelFunc:Qie,setupFunc:Jie},toe=Ut(Di),noe=!1,aoe=cn(Ri,noe),B_;function roe(e){B_=e.wasm.cwrap(Mi,null,["number","number","number","number","number","number","number"])}function soe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return B_(p,d,c,h,m,r,g),f}var ioe={kernelName:Mi,backendName:"wasm",setupFunc:roe,kernelFunc:soe},V_;function ooe(e){V_=e.wasm.cwrap(ni,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 loe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=rc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return V_(y,q,K,Z,b,I,T,w,C,_,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var uoe={kernelName:ni,backendName:"wasm",setupFunc:ooe,kernelFunc:loe},U_;function poe(e){U_=e.wasm.cwrap(ai,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 coe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=rc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return U_(y,q,K,Z,b,I,T,w,C,_,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var doe={kernelName:ai,backendName:"wasm",setupFunc:poe,kernelFunc:coe},G_;function hoe(e){G_=e.wasm.cwrap(Hl,null,["number","number","number","number","number","number","array","number"])}function moe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Lx.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return G_(c,_t[a.dtype],h,i,d,o,m,f),u}var foe={kernelName:Hl,backendName:"wasm",setupFunc:hoe,kernelFunc:moe},H_;function goe(e){H_=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function yoe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return H_(b,_t[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var boe={kernelName:Gl,backendName:"wasm",setupFunc:goe,kernelFunc:yoe},xoe=!1,voe=cn(jl,xoe,"bool"),woe=!1,koe=cn(Pi,woe,"bool"),Ioe=Ut(Li,"bool"),j_;function Soe(e){j_=e.wasm.cwrap(zi,null,["number","number","number","number"])}function Toe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;j_(r,_t[t.dtype],n,i)}return s}var Noe={kernelName:zi,backendName:"wasm",setupFunc:Soe,kernelFunc:Toe},Coe=!1,Eoe=cn(Xl,Coe,"bool"),_oe=!1,Aoe=cn(Yl,_oe,"bool"),$oe=Ut(Wi),Foe=!1,Doe=cn(Jl,Foe,"bool"),Roe=Ut(Ql),Moe=!1,Poe=cn(eu,Moe,"bool"),Ooe=!1,Loe=cn(LI,Ooe,"bool"),q_;function zoe(e){q_=e.wasm.cwrap(Bi,null,["number","number","number","number"])}function Woe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Es(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;q_(o,_t[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var Boe={kernelName:Bi,backendName:"wasm",setupFunc:zoe,kernelFunc:Woe},Voe=!1,Uoe=cn(Vi,Voe),K_;function Goe(e){K_=e.wasm.cwrap(Ui,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Hoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return K_(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,_),C}var joe={kernelName:Ui,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},X_;function qoe(e){X_=e.wasm.cwrap(Gi,null,["number, number, number"])}function Koe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=ju({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;X_(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var Xoe={kernelName:Gi,backendName:"wasm",setupFunc:qoe,kernelFunc:Koe},Y_;function Yoe(e){Y_=e.wasm.cwrap(Hi,null,["number","number","number","number"])}function Zoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;Y_(l,_t[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Joe={kernelName:Hi,backendName:"wasm",setupFunc:Yoe,kernelFunc:Zoe},Qoe=!1,ele=cn(ji,Qoe),xx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(xx||(xx={}));var Z_;function tle(e){Z_=e.wasm.cwrap(qi,null,["number","array","number","number","array","array","number","number"])}function nle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return Z_(i,u,t.shape.length,_t[t.dtype],c,h,xx[r],l),o}var ale={kernelName:qi,backendName:"wasm",kernelFunc:nle,setupFunc:tle},rle=!0,sle=cn(Ki,rle),ile=Ut(nu);function r1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var J_;function ole(e){J_=e.wasm.cwrap(ru,"number",["number","number","number","number","number"])}function lle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=J_(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=r1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var ule={kernelName:ru,backendName:"wasm",setupFunc:ole,kernelFunc:lle},Q_;function ple(e){Q_=e.wasm.cwrap(su,"number",["number","number","number","number","number","bool"])}function cle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=Q_(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=r1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var dle={kernelName:su,backendName:"wasm",setupFunc:ple,kernelFunc:cle},eA;function hle(e){eA=e.wasm.cwrap(iu,"number",["number","number","number","number","number","number"])}function mle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=eA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=r1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var fle={kernelName:iu,backendName:"wasm",setupFunc:hle,kernelFunc:mle},gle=!1,yle=cn(au,gle,"bool"),tA;function ble(e){tA=e.wasm.cwrap(Xi,null,["number","number","number","number","number"])}function xle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return tA(d,i,o,l,p),u}var vle={kernelName:Xi,backendName:"wasm",setupFunc:ble,kernelFunc:xle};function wle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var kle={kernelName:ou,backendName:"wasm",kernelFunc:wle};function Ile(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return bx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=bx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=$_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Sle={kernelName:lu,backendName:"wasm",kernelFunc:Ile},nA;function Tle(e){nA=e.wasm.cwrap(Yi,null,["number","array","number","number","array","array","number","number"])}function Nle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return z_({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return nA(i,u,t.shape.length,_t[t.dtype],c,h,r,l),o}var aA={kernelName:Yi,backendName:"wasm",kernelFunc:Nle,setupFunc:Tle},Cle=!1,Ele=cn(Zi,Cle),rA;function _le(e){rA=e.wasm.cwrap(Ji,null,["number","number","number"])}function Ale(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=ju({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return rA(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var $le={kernelName:Ji,backendName:"wasm",setupFunc:_le,kernelFunc:Ale},sA;function Fle(e){sA=e.wasm.cwrap(Qi,null,["number","number","number","number"])}function Dle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;sA(l,y,_t[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Rle={kernelName:Qi,backendName:"wasm",setupFunc:Fle,kernelFunc:Dle},Mle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=M0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ple={kernelName:mc,backendName:"wasm",kernelFunc:Mle},Ole=!0,Lle=cn(Ai,Ole),zle=Ut(eo),Wle=Ut(to),Ble=Ut(ro),iA;function Vle(e){iA=e.wasm.cwrap(ao,null,["number","number","number","number","number","number","number","number","number","number"])}function Ule(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=ju({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return iA(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Gle={kernelName:ao,backendName:"wasm",setupFunc:Vle,kernelFunc:Ule},oA;function Hle(e){oA=e.wasm.cwrap(no,null,["number","number","number","number","number","number","number","number","number","number"])}function jle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=ju({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return oA(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var qle={kernelName:no,backendName:"wasm",setupFunc:Hle,kernelFunc:jle},lA;function Kle(e){lA=e.wasm.cwrap(so,null,["number","array","number","array","number","number"])}function Xle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return zf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);lA(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var Yle={kernelName:so,backendName:"wasm",kernelFunc:Xle,setupFunc:Kle},uA;function Zle(e){uA=e.wasm.cwrap(Tu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Jle(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return uA(u,d,c,h,m,s,f,g,w,x.length,p),l}var Qle={kernelName:Tu,backendName:"wasm",kernelFunc:Jle,setupFunc:Zle},eue=Ut(io),tue=Ut(oo),pA;function nue(e){pA=e.wasm.cwrap(pu,null,["number","number","number","number","number","number","array","number","number"])}function aue(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=zx.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return pA(h,m,_t[s.dtype],l,u,p,f,c,g),o}var rue={kernelName:pu,backendName:"wasm",setupFunc:nue,kernelFunc:aue},cA;function sue(e){cA=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function iue(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return cA(i,o,l,h,p),u}var oue={kernelName:cu,backendName:"wasm",kernelFunc:iue,setupFunc:sue},dA;function lue(e){dA=e.wasm.cwrap(uo,null,["number","number"])}function uue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||dA(a,s),r}var pue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:lue,kernelFunc:uue},cue=Ut(lo),hA;function due(e){hA=e.wasm.cwrap(ho,null,["number","number","number","number"])}function hue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||hA(r,i,o,l),s}var mue={kernelName:ho,backendName:"wasm",setupFunc:due,kernelFunc:hue};function fue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;h$(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function gue(e){return f$(e,!0)}var yue={kernelName:fc,backendName:"wasm",setupFunc:m$,kernelFunc:gue};function bue(e){return f$(e,!1)}var xue={kernelName:gc,backendName:"wasm",setupFunc:m$,kernelFunc:bue};function vue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=di({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var wue={kernelName:yu,backendName:"wasm",kernelFunc:vue},kue=an(ro),Iue=an(yc),Sue=!0,Tue=cn(oo,Sue),g$;function Nue(e){g$=e.wasm.cwrap(ms,null,["number","number","number","number"])}function Cue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return g$(i,r,Et[s.dtype],l),o}var _ue={kernelName:ms,backendName:"wasm",setupFunc:Nue,kernelFunc:Cue},y$;function Eue(e){y$=e.wasm.cwrap(xu,null,["number","array","number","array","array","array","array","array","number","number"])}function $ue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=di({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;y$(C,E,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Aue={kernelName:xu,backendName:"wasm",setupFunc:Eue,kernelFunc:$ue};function Fue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=R0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Due={kernelName:bc,backendName:"wasm",kernelFunc:Fue};function Rue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=M0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Mue={kernelName:xc,backendName:"wasm",kernelFunc:Rue};function Pue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=P0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Oue={kernelName:vc,backendName:"wasm",kernelFunc:Pue},Lue=!0,zue=cn(lo,Lue),b$;function Wue(e){b$=e.wasm.cwrap(so,null,["number","number","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ss(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;b$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Vue={kernelName:so,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue},Uue=an(uo),Gue=an(po),x$;function Hue(e){x$=e.wasm.cwrap(hs,null,["number","array","number","array","number","number"])}function jue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return v$(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},Yue={kernelName:vu,backendName:"wasm",setupFunc:Kue,kernelFunc:Xue},w$;function Zue(e){w$=e.wasm.cwrap(wu,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return w$(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var Que={kernelName:wu,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue};function epe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var tpe={kernelName:ku,backendName:"wasm",kernelFunc:epe};function npe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var ape={kernelName:Iu,backendName:"wasm",kernelFunc:npe},rpe=[Fse,Dse,Mse,Lse,jse,Xse,Jse,tie,sie,cie,die,hie,gie,yie,vie,Iie,Sie,Tie,_ie,Aie,Rie,Oie,Wie,Bie,Uie,Gie,Hie,jie,Xie,Yie,Jie,toe,roe,ooe,poe,hoe,foe,yoe,zse,voe,koe,Soe,Toe,Coe,_oe,$oe,Foe,Moe,Ooe,Woe,Uoe,joe,Koe,Zoe,Qoe,ele,ale,ile,ule,cle,mle,gle,ble,e$,kle,Tle,_le,$le,Fle,Dle,Rle,nie,Ole,Wle,Ule,jle,qle,Kle,Zle,eue,aue,rue,uie,oue,uue,due,fue,yue,xue,wue,kue,Iue,Tue,_ue,Aue,Due,Mue,Oue,zue,Vue,Uue,Gue,que,Yue,Que,Use,tpe,ape];for(let e of rpe)kc(e);var gx=H();gx.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(e){return!1}});gx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(gx.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(e){return!1}});var fI=us(SF()),spe=us(TF()),gI=us(NF()),yI=fI.default||fI,ipe=gI.default||gI,k$=class extends rc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(I$),yx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new jh(this,Na())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return upe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function ope(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function bI(e,t,n){if(Gh!=null)return Gh;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Wp!=null&&Wp[a]!=null?Wp[a]:n+a}async function lpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=spe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?bI(e,t,Op!=null?Op:l):l+o},n1&&(r.instantiateWasm=ope(bI(e,t,Op!=null?Op:"")));let s=!1;r.onAbort=()=>{s||Bp||(Bp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Gh==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+yI.toString()],{type:"text/javascript"}),i=yI(r)):i=ipe(r),i.then(o=>{s=!0,Bp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function upe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var ppe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Gh=null,Op=null,Wp={},Bp=!1,n1=!1;function cpe(e,t=!1){if(Rx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Gh=e,n1=t}function dpe(e,t=!1){if(Bp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Op=e;else{Wp=e;let n=ppe.filter(a=>Wp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}n1=t}var I$=-1,yx=-1;function hpe(e){I$=e}function mpe(){if(yx===-1)throw new Error("WASM backend not initialized.");return yx}var fpe="4.0.0",gpe=2;Em("wasm",async()=>{let{wasm:e}=await lpe();return new k$(e)},gpe);var xI="4.0.0",ype="4.0.0",bpe="4.0.0",xpe="4.0.0",vpe="4.0.0",wpe={tfjs:xI,"tfjs-core":xI,"tfjs-converter":ype,"tfjs-backend-cpu":bpe,"tfjs-backend-webgl":xpe,"tfjs-backend-wasm":vpe};var G$={};ab(G$,{AnchorPosition:()=>c1,DrawBox:()=>ud,DrawBoxOptions:()=>Uf,DrawFaceLandmarks:()=>tg,DrawFaceLandmarksOptions:()=>eg,DrawTextField:()=>Or,DrawTextFieldOptions:()=>Ju,drawContour:()=>Dr,drawDetections:()=>_pe,drawFaceExpressions:()=>Epe,drawFaceLandmarks:()=>Ape});function Dr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var S$={};ab(S$,{computeReshapedDimensions:()=>s1,getCenterPoint:()=>To,isDimensions:()=>Wf,isEven:()=>zf,isFloat:()=>r1,isTensor:()=>Io,isTensor1D:()=>kpe,isTensor2D:()=>a1,isTensor3D:()=>Rr,isTensor4D:()=>xa,isValidNumber:()=>Ya,isValidProbablitiy:()=>ju,range:()=>hr,round:()=>So});var En=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new En(1/this.width,1/this.height)}};function Io(e,t){return e instanceof Te&&e.shape.length===t}function kpe(e){return Io(e,1)}function a1(e){return Io(e,2)}function Rr(e){return Io(e,3)}function xa(e){return Io(e,4)}function r1(e){return e%1!==0}function zf(e){return e%2===0}function So(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Wf(e){return e&&e.width&&e.height}function s1({width:e,height:t},n){let a=n/Math.max(t,e);return new En(Math.round(e*a),Math.round(t*a))}function To(e){return e.reduce((t,n)=>t.add(n),new Me(0,0)).div(new Me(e.length,e.length))}function hr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function ju(e){return Ya(e)&&e>=0&&e<=1}var Me=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Me(this.x+t.x,this.y+t.y)}sub(t){return new Me(this.x-t.x,this.y-t.y)}mul(t){return new Me(this.x*t.x,this.y*t.y)}div(t){return new Me(this.x/t.x,this.y/t.y)}abs(){return new Me(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Me(Math.floor(this.x),Math.floor(this.y))}};var ut=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!ut.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];ut.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Me(this.left,this.top)}get topRight(){return new Me(this.right,this.top)}get bottomLeft(){return new Me(this.left,this.bottom)}get bottomRight(){return new Me(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new ut({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new ut({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new ut({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var qu=class extends ut{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Ts=class{constructor(t,n,a,r,s){this._imageDims=new En(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new ut(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new ut(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Ts(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var xt=class extends Ts{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new xt(a,r,s)}};function T$(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function N$(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function mr(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function _$(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function Iye(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Bf(e){return 1/(1+Math.exp(-e))}function Tye(e){return Math.log(e/(1-e))}var Ku=class extends ut{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ipe=.5,Spe=.43,Tpe=.45,va=class{constructor(t,n,a=new Me(0,0)){let{width:r,height:s}=n;this._imgDims=new En(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Me(r,s)).add(a))}get shift(){return new Me(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new Me(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new Me(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof xt?t.box.floor():new ut(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Tpe),l=To(t),u=Math.floor(Math.max(0,l.x-Ipe*o)),p=Math.floor(Math.max(0,l.y-Spe*o));return new Ku(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=N$(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var E$=class extends va{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],To([t[3],t[4]])]}};var Xu=class extends va{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(To)}};var id=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${So(this.distance)})`:""}`}};var od=class extends ut{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(ut.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Mr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Mr(t.label,n)}};var $$=class extends od{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(od.assertIsValidLabeledBox(n,a),!ju(n.score)||!ju(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function Pr(e){return e.detection instanceof xt}function Yu(e,t){return{...e,...{detection:t}}}function i1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function ld(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Vf(e){let t="";if(!e&&ld())try{e=Gr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function o1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=Vf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function l1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function Npe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function u1(e){rn=e}function p1(){return l1()?u1(i1()):ld()?u1(o1()):null}function Cpe(e){if(rn||p1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var et={getEnv:Npe,setEnv:u1,initialize:p1,createBrowserEnv:i1,createFileSystem:Vf,createNodejsEnv:o1,monkeyPatch:Cpe,isBrowser:l1,isNodejs:ld};p1();function Zu(e){return!et.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function aa(e){let{Canvas:t,CanvasRenderingContext2D:n}=et.getEnv();if(e instanceof n)return e;let a=Zu(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var c1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(c1||{}),Ju=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},Or=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Or?t.text:t,this.anchor=n,this.options=new Ju(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Uf=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Ju({...i,...s})}},ud=class{constructor(t,n={}){this.box=new ut(t),this.options=new Uf(n)}draw(t){let n=aa(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new Or([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function _pe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:Pr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:Pr(a)?a.detection.box:new ut(a),i=r?`${So(r)}`:void 0;new ud(s,{label:i}).draw(e)})}function Gf(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function A$(e){return new Promise((t,n)=>{(e instanceof et.getEnv().Canvas||Gf(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function F$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=et.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Qu(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t?new En(e.naturalWidth,e.naturalHeight):e instanceof n?new En(e.videoWidth,e.videoHeight):new En(e.width,e.height)}function ep({width:e,height:t}){let{createCanvasElement:n}=et.getEnv(),a=n();return a.width=e,a.height=t,a}function Hf(e,t){let{ImageData:n}=et.getEnv();if(!(e instanceof n)&&!Gf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Qu(e),s=ep({width:a,height:r});return e instanceof n?aa(s).putImageData(e,0,0):aa(s).drawImage(e,0,0,a,r),s}async function D$(e,t){let n=t||et.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(xa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await co.toPixels(i,n),i.dispose(),n}function d1(e){let{Image:t,Canvas:n,Video:a}=et.getEnv();return e instanceof t||e instanceof n||e instanceof a}function R$(e,t,n=!1){let{Image:a,Canvas:r}=et.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return ep({width:1,height:1});let s=Qu(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=ep({width:t,height:t}),p=e instanceof r?e:Hf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&aa(u).drawImage(p,c,h,o,l),u}var Lr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Rr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(xa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof et.getEnv().Canvas?a:Hf(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return hr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return s1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=hr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=xa(i)?i:Zt(i);return o=_$(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof et.getEnv().Canvas)return co.fromPixels(R$(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Lr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Zu);return a.forEach((r,s)=>{if(!d1(r)&&!Rr(r)&&!xa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(xa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>d1(r)&&A$(r))),new Lr(a,Array.isArray(e))}async function pd(e,t){let{Canvas:n}=et.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await D$(o)}let r=aa(a);return t.map(i=>i instanceof xt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=ep({width:l,height:u});return l>0&&u>0&&aa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function cd(e,t){if(!Rr(e)&&!xa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(xa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(xa(e)?1:0);return t.map(o=>o instanceof xt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>mo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Ns(e,t){let{fetch:n}=et.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function pve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return F$(n)}async function M$(e){return(await Ns(e)).json()}async function fve(e){return new Float32Array(await(await Ns(e)).arrayBuffer())}function P$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=et.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function wve(e){let t=await Ns(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return P$(n)}function jf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function O$(e,t){let{manifestUri:n,modelBaseUri:a}=jf(e,t),r=await M$(n);return Ut.loadWeights(r,a)}function _ve(e,t,n=!1){let{width:a,height:r}=n?Qu(t):t;return e.width=a,e.height=r,{width:a,height:r}}var dn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof ts)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ts))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=kn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await O$(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=et.getEnv(),{manifestUri:a,modelBaseUri:r}=jf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Gn(e,t,n){return P(()=>{let a=vs(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function qf(e,t,n=!1){return P(()=>{let a=Xe(n?Y(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Gn(e,t.conv0,[2,2])),r=Gn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Gn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function dd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Gn(e,t.conv0,a?[2,2]:[1,1])),s=Gn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Gn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Gn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function No(e,t,n="same",a=!1){return P(()=>{let r=Y(At(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function $n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function tp(e,t){return(n,a,r,s)=>{let i=Aa(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Kf(e,t){return(n,a,r)=>{let s=_a(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var hd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function np(e,t){return(n,a,r)=>{let s=Aa(e(9*n),[3,3,n,1]),i=Aa(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new hd(s,i,o)}}function ap(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new hd(n,a,r)}}function ra(e,t){return(n,a,r)=>{let s=e[n];if(!Io(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function An(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Xf(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function L$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Yf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Zf(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function z$(e){let t=[],{extractDenseBlock4Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return $n(e,t),{params:a,paramMappings:t}}var rp=class extends dn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=dd(s,n.dense0,!0);return i=dd(i,n.dense1),i=dd(i,n.dense2),i=dd(i,n.dense3),i=ga(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return z$(t)}extractParams(t){return L$(t)}};function md(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function W$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=Kf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function B$(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return $n(e,t),{params:r,paramMappings:t}}function Jf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var sp=class extends dn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n;return md(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return W$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),B$(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var V$=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Cs=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);V$.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return V$.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var Qf=class extends sp{constructor(t=new rp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Cs(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function U$(e){return e.expressions instanceof Cs}function h1(e,t){return{...e,...{expressions:t}}}function Epe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Cs?s:U$(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=Pr(s)?s.detection.box.bottomLeft:a||new Me(0,0);new Or(l.map(d=>`${d.expression} (${So(d.probability)})`),u).draw(e)})}function ip(e){return Pr(e)&&e.landmarks instanceof va&&e.unshiftedLandmarks instanceof va&&e.alignedRect instanceof xt}function $pe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fd(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new xt(e.detection.score,r.rescale(s.reverse()),s),o=$pe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var eg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},tg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new eg(n)}draw(t){let n=aa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Xu&&(n.strokeStyle=i,n.lineWidth=s,Dr(n,this.faceLandmarks.getJawOutline()),Dr(n,this.faceLandmarks.getLeftEyeBrow()),Dr(n,this.faceLandmarks.getRightEyeBrow()),Dr(n,this.faceLandmarks.getNose()),Dr(n,this.faceLandmarks.getLeftEye(),!0),Dr(n,this.faceLandmarks.getRightEye(),!0),Dr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Ape(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof va?a:ip(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new tg(r).draw(e)})}var H$="1.7.6";function Rpe(e,t){let n=tp(e,t),a=np(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function j$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Rpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};hr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Mpe(e,t){let n=ra(e,t),a=Yf(n),r=ap(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function q$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Mpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};hr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return $n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function K$(e,t,n){return Y(At(e,t.filters,n,"same"),t.bias)}function m1(e,t,n=!0){let a=n?Xe(e):e;return a=Gn(a,t.separable_conv0,[1,1]),a=Gn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,K$(e,t.expansion_conv,[2,2])),a}function Ppe(e,t){let n=Gn(Xe(e),t.separable_conv0,[1,1]);return n=Gn(Xe(n),t.separable_conv1,[1,1]),n=Gn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var ng=class extends dn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=mr(r,[122.782,117.001,104.298]).div(255),o=Xe(K$(i,a.entry_flow.conv_in,[2,2]));return o=m1(o,a.entry_flow.reduction_block_0,!1),o=m1(o,a.entry_flow.reduction_block_1),hr(this._numMainBlocks,0,1).forEach(l=>{o=Ppe(o,a.middle_flow[`main_block_${l}`])}),o=m1(o,a.exit_flow.reduction_block),o=Xe(Gn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await vt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return q$(n,this._numMainBlocks)}extractParams(n){return j$(n,this._numMainBlocks)}};function X$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=Kf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function Y$(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return $n(e,t),{params:r,paramMappings:t}}var f1=(n=>(n.FEMALE="female",n.MALE="male",n))(f1||{});var ag=class extends dn{constructor(n=new ng(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Lr?this.faceFeatureExtractor.forwardInput(n):n,s=ga(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=md(s,a.fc.age).as1D(),o=md(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await vt(n))}async predictAgeAndGender(n){let a=await vt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return X$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Jf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),Y$(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var op=class extends sp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await vt(t))}async detectLandmarks(t){let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>zf(d)),u=o.filter((p,d)=>!zf(d));return new Xu(Array(68).fill(0).map((p,d)=>new Me(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var lp=class extends op{constructor(t=new rp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function Z$(e){let t=[],{extractDenseBlock3Params:n}=Zf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return $n(e,t),{params:a,paramMappings:t}}function J$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=Xf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var rg=class extends dn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=qf(s,n.dense0,!0);return i=qf(i,n.dense1),i=qf(i,n.dense2),i=ga(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Z$(t)}extractParams(t){return J$(t)}};var sg=class extends op{constructor(t=new rg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var Q$=class extends lp{};function eA(e,t){return Y(z(e,t.weights),t.biases)}function g1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Y(o,i),o=eA(o,t.scale),a?Xe(o):o}function tA(e,t){return g1(e,t,[1,1],!0)}function y1(e,t){return g1(e,t,[1,1],!1)}function ig(e,t){return g1(e,t,[2,2],!0,"valid")}function Ope(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(r1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee(Aa(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function nA(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Ope(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee(_a(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Lpe(e,t){let n=ra(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function aA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Lpe(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!a1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return $n(e,t),{params:w,paramMappings:t}}function Za(e,t){let n=tA(e,t.conv1);return n=y1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function gd(e,t){let n=ig(e,t.conv1);n=y1(n,t.conv2);let a=ga(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var up=class extends dn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=mr(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Za(i,n.conv32_1),i=Za(i,n.conv32_2),i=Za(i,n.conv32_3),i=gd(i,n.conv64_down),i=Za(i,n.conv64_1),i=Za(i,n.conv64_2),i=Za(i,n.conv64_3),i=gd(i,n.conv128_down),i=Za(i,n.conv128_1),i=Za(i,n.conv128_2),i=gd(i,n.conv256_down),i=Za(i,n.conv256_1),i=Za(i,n.conv256_2),i=gd(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return aA(t)}extractParams(t){return nA(t)}};function eIe(e){let t=new up;return t.extractWeights(e),t}function b1(e,t){return{...e,...{descriptor:t}}}function rIe(e){return typeof e.age=="number"}function x1(e,t){return{...e,...{age:t}}}function lIe(e){return(e.gender==="male"||e.gender==="female")&&ju(e.genderProbability)}function v1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function zpe(e,t){function n(l,u){let p=Aa(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Aa(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function rA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=zpe(n,t),i=r(),o=s(),u={extra_dim:_c(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function Wpe(e,t){let n=ra(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function sA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=Wpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Rr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return $n(e,t),{params:s,paramMappings:t}}function Ra(e,t,n){return P(()=>{let a=At(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var Bpe=.0010000000474974513;function Vpe(e,t,n){return P(()=>{let a=bs(e,t.filters,n,"same");return a=ys(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Bpe),en(a,0,6)})}function Upe(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function iA(e,t){return P(()=>{let n,a=Ra(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Upe(o);a=Vpe(a,s.depthwise_conv,l),a=Ra(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Gpe(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function oA(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=Gpe(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function Hpe(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function jpe(e,t){let{sizes:n,centers:a}=Hpe(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function lA(e,t,n){return P(()=>{let a=e.shape[0],r=jpe(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=da(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Co(e,t){return P(()=>{let n=e.shape[0],a=W(No(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(No(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function uA(e,t,n){return P(()=>{let a=Ra(e,n.conv_0,[1,1]),r=Ra(a,n.conv_1,[2,2]),s=Ra(r,n.conv_2,[1,1]),i=Ra(s,n.conv_3,[2,2]),o=Ra(i,n.conv_4,[1,1]),l=Ra(o,n.conv_5,[2,2]),u=Ra(l,n.conv_6,[1,1]),p=Ra(u,n.conv_7,[2,2]),d=Co(t,n.box_predictor_0),c=Co(e,n.box_predictor_1),h=Co(r,n.box_predictor_2),m=Co(i,n.box_predictor_3),f=Co(l,n.box_predictor_4),g=Co(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var Ma=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var _o=class extends dn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=iA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=uA(s.out,s.conv11,n.prediction_layer);return lA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Ma(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new xt(p[x],new Ku(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return sA(t)}extractParams(t){return rA(t)}};function qpe(e){let t=new _o;return t.extractWeights(e),t}function eSe(e){return qpe(e)}var pA=class extends _o{};var cA=.4,dA=[new Me(.738768,.874946),new Me(2.42204,2.65704),new Me(4.30971,7.04493),new Me(10.246,4.59428),new Me(12.6868,11.8741)],hA=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],mA=[117.001,114.697,97.404],fA="tiny_yolov2_model",gA="tiny_yolov2_separable_conv_model";var og=e=>typeof e=="number";function yA(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!og(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>og(t.x)&&og(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(og)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function pp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function zr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),pp(n)})}function Wr(e,t){return P(()=>{let n=ya(e,[[0,0],[1,1],[1,1],[0,0]]);return n=vs(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),pp(n)})}function Kpe(e,t){let n=tp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=np(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function bA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=Kpe(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function Xpe(e,t){let n=ra(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=ap(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function xA(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=Xpe(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return $n(e,n),{params:i,paramMappings:n}}var fr=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var w1=class extends dn{constructor(n){super("TinyYolov2");yA(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=zr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=zr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=zr(r,a.conv6),r=zr(r,a.conv7),No(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?pp(No(n,a.conv0,"valid",!1)):Wr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Wr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Wr(r,a.conv6):r,r=a.conv7?Wr(r,a.conv7):r,No(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?mr(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await vt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new fr(a),i=await vt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return C$(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Ts(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return xA(n,this.config)}extractParams(n){let a=this.config.filterSizes||w1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return bA(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+Bf(y[b][x][w][0]))/p*l,C=(b+Bf(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new qu(R,F,R+E,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},Eo=w1;Eo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var cp=class extends Eo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:cA,classes:["face"],...t?{anchors:hA,meanRgb:mA}:{anchors:dA,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?gA:fA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function HSe(e,t=!0){let n=new cp(t);return n.extractWeights(e),n}var lg=class extends fr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Pa=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function $o(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>ip(l)?r(l):l.detection),i=a||(t instanceof Te?await cd(t,s):await pd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function dp(e,t,n,a,r){return $o([e],t,async s=>n(s[0]),a,r)}var vA=.4,wA=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],kA=[117.001,114.697,97.404];var hp=class extends Eo{constructor(){let t={withSeparableConvs:!0,iouThreshold:vA,classes:["face"],anchors:wA,meanRgb:kA,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var tt={ssdMobilenetv1:new _o,tinyFaceDetector:new hp,tinyYolov2:new cp,faceLandmark68Net:new lp,faceLandmark68TinyNet:new sg,faceRecognitionNet:new up,faceExpressionNet:new Qf,ageGenderNet:new ag},Ype=(e,t)=>tt.ssdMobilenetv1.locateFaces(e,t),wTe=(e,t)=>tt.tinyFaceDetector.locateFaces(e,t),kTe=(e,t)=>tt.tinyYolov2.locateFaces(e,t),Zpe=e=>tt.faceLandmark68Net.detectLandmarks(e),ITe=e=>tt.faceLandmark68TinyNet.detectLandmarks(e),STe=e=>tt.faceRecognitionNet.computeFaceDescriptor(e),TTe=e=>tt.faceExpressionNet.predictExpressions(e),NTe=e=>tt.ageGenderNet.predictAgeAndGender(e),Jpe=e=>tt.ssdMobilenetv1.load(e),CTe=e=>tt.tinyFaceDetector.load(e),_Te=e=>tt.tinyYolov2.load(e),ETe=e=>tt.faceLandmark68Net.load(e),$Te=e=>tt.faceLandmark68TinyNet.load(e),ATe=e=>tt.faceRecognitionNet.load(e),FTe=e=>tt.faceExpressionNet.load(e),DTe=e=>tt.ageGenderNet.load(e),RTe=Jpe,MTe=Ype,PTe=Zpe;var ug=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ao=class extends ug{async run(){let t=await this.parentTask,n=await $o(t,this.input,async a=>Promise.all(a.map(r=>tt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>h1(a,n[r]))}withAgeAndGender(){return new Do(this,this.input)}},Fo=class extends ug{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return h1(t,n)}withAgeAndGender(){return new Ro(this,this.input)}},_s=class extends Ao{withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},Es=class extends Fo{withAgeAndGender(){return new As(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var pg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Do=class extends pg{async run(){let t=await this.parentTask,n=await $o(t,this.input,async a=>Promise.all(a.map(r=>tt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return x1(v1(a,i,o),s)})}withFaceExpressions(){return new Ao(this,this.input)}},Ro=class extends pg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await dp(t,this.input,s=>tt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return x1(v1(t,a,r),n)}withFaceExpressions(){return new Fo(this,this.input)}},$s=class extends Do{withFaceExpressions(){return new _s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},As=class extends Ro{withFaceExpressions(){return new Es(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var cg=class extends Pa{constructor(n,a){super();this.parentTask=n;this.input=a}},Fs=class extends cg{async run(){let t=await this.parentTask;return(await $o(t,this.input,a=>Promise.all(a.map(r=>tt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>b1(t[r],a))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}},Ds=class extends cg{async run(){let t=await this.parentTask;if(!t)return;let n=await dp(t,this.input,a=>tt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return b1(t,n)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new As(this,this.input)}};var dg=class extends Pa{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?tt.faceLandmark68TinyNet:tt.faceLandmark68Net}},hg=class extends dg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await cd(this.input,n):await pd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fd(i,r[o]))}withFaceExpressions(){return new _s(this,this.input)}withAgeAndGender(){return new $s(this,this.input)}withFaceDescriptors(){return new Fs(this,this.input)}},mg=class extends dg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await cd(this.input,[n]):await pd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fd(t,r)}withFaceExpressions(){return new Es(this,this.input)}withAgeAndGender(){return new As(this,this.input)}withFaceDescriptor(){return new Ds(this,this.input)}};var fg=class extends Pa{constructor(n,a=new Ma){super();this.input=n;this.options=a}},yd=class extends fg{async run(){let{input:t,options:n}=this,a;if(n instanceof lg)a=tt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Ma)a=tt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof fr)a=tt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Yu({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new hg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ao(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Do(this.runAndExtendWithFaceDetections(),this.input)}},gg=class extends fg{async run(){let t=await new yd(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Yu({},n):void 0)})}withFaceLandmarks(t=!1){return new mg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Fo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Ro(this.runAndExtendWithFaceDetection(),this.input)}};function DNe(e,t=new Ma){return new gg(e,t)}function k1(e,t=new Ma){return new yd(e,t)}async function Qpe(e,t){return k1(e,new Ma(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function zNe(e,t={}){return k1(e,new fr(t)).withFaceLandmarks().withFaceDescriptors()}var WNe=Qpe;function IA(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var yg=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Mr)return i;if(i instanceof Float32Array)return new Mr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Mr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>IA(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new id(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Mr.fromJSON(a));return new yg(n,t.distanceThreshold)}};function r2e(e){let t=new hp;return t.extractWeights(e),t}function ece(e,t){let{width:n,height:a}=new En(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>ece(r,{width:n,height:a}));if(ip(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fd(Yu(e,r),s)}return Pr(e)?Yu(e,e.detection.forSize(n,a)):e instanceof va||e instanceof xt?e.forSize(n,a):e}var f2e=H$;export{ag as AgeGenderNet,qu as BoundingBox,ut as Box,Pa as ComposableTask,Fs as ComputeAllFaceDescriptorsTask,cg as ComputeFaceDescriptorsTaskBase,Ds as ComputeSingleFaceDescriptorTask,hg as DetectAllFaceLandmarksTask,yd as DetectAllFacesTask,dg as DetectFaceLandmarksTaskBase,fg as DetectFacesTaskBase,mg as DetectSingleFaceLandmarksTask,gg as DetectSingleFaceTask,En as Dimensions,V$ as FACE_EXPRESSION_LABELS,xt as FaceDetection,pA as FaceDetectionNet,Qf as FaceExpressionNet,Cs as FaceExpressions,lp as FaceLandmark68Net,sg as FaceLandmark68TinyNet,Q$ as FaceLandmarkNet,va as FaceLandmarks,E$ as FaceLandmarks5,Xu as FaceLandmarks68,id as FaceMatch,yg as FaceMatcher,up as FaceRecognitionNet,f1 as Gender,od as LabeledBox,Mr as LabeledFaceDescriptors,Lr as NetInput,dn as NeuralNetwork,Ts as ObjectDetection,Me as Point,$$ as PredictedBox,Ku as Rect,_o as SsdMobilenetv1,Ma as SsdMobilenetv1Options,hp as TinyFaceDetector,lg as TinyFaceDetectorOptions,cp as TinyYolov2,fr as TinyYolov2Options,WNe as allFaces,Qpe as allFacesSsdMobilenetv1,zNe as allFacesTinyYolov2,A$ as awaitMediaLoaded,F$ as bufferToImage,STe as computeFaceDescriptor,ep as createCanvas,Hf as createCanvasFromMedia,eSe as createFaceDetectionNet,eIe as createFaceRecognitionNet,qpe as createSsdMobilenetv1,r2e as createTinyFaceDetector,HSe as createTinyYolov2,k1 as detectAllFaces,Zpe as detectFaceLandmarks,ITe as detectFaceLandmarksTiny,PTe as detectLandmarks,DNe as detectSingleFace,G$ as draw,et as env,IA as euclideanDistance,x1 as extendWithAge,b1 as extendWithFaceDescriptor,Yu as extendWithFaceDetection,h1 as extendWithFaceExpressions,fd as extendWithFaceLandmarks,v1 as extendWithGender,cd as extractFaceTensors,pd as extractFaces,pve as fetchImage,M$ as fetchJson,fve as fetchNetWeights,Ns as fetchOrThrow,wve as fetchVideo,aa as getContext2dOrThrow,Qu as getMediaDimensions,D$ as imageTensorToCanvas,R$ as imageToSquare,Tye as inverseSigmoid,T$ as iou,d1 as isMediaElement,Gf as isMediaLoaded,rIe as isWithAge,Pr as isWithFaceDetection,U$ as isWithFaceExpressions,ip as isWithFaceLandmarks,lIe as isWithGender,DTe as loadAgeGenderModel,RTe as loadFaceDetectionModel,FTe as loadFaceExpressionModel,ETe as loadFaceLandmarkModel,$Te as loadFaceLandmarkTinyModel,ATe as loadFaceRecognitionModel,Jpe as loadSsdMobilenetv1Model,CTe as loadTinyFaceDetectorModel,_Te as loadTinyYolov2Model,O$ as loadWeightMap,MTe as locateFaces,_ve as matchDimensions,N$ as minBbox,tt as nets,C$ as nonMaxSuppression,mr as normalize,_$ as padToSquare,NTe as predictAgeAndGender,TTe as recognizeFaceExpressions,ece as resizeResults,Zu as resolveInput,Iye as shuffleArray,Bf as sigmoid,Ype as ssdMobilenetv1,Oe as tf,wTe as tinyFaceDetector,kTe as tinyYolov2,vt as toNetInput,S$ as utils,yA as validateConfig,f2e as version}; + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=v.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;fA(i,o,l,u,c,m,g);let y=t.readSync(f.dataId),b;switch(y[0]){case 0:{b=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(y[1],y[2]);break}case 1:{b=N.getSparseReshapeNegativeOutputDimErrorMessage(y[1],y[2]);break}case 2:b=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:b=""}if(t.disposeData(f.dataId),b)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(b);return[d,h]}var kue={kernelName:xu,backendName:"wasm",setupFunc:vue,kernelFunc:wue},gA;function yA(e){gA=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function bA(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;gA(d,_t[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Iue(e){return bA(e,!0)}var Sue={kernelName:gc,backendName:"wasm",setupFunc:yA,kernelFunc:Iue};function Tue(e){return bA(e,!1)}var Nue={kernelName:yc,backendName:"wasm",setupFunc:yA,kernelFunc:Tue};function Cue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=gi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Eue={kernelName:bu,backendName:"wasm",kernelFunc:Cue},_ue=Ut(po),Aue=Ut(bc),$ue=!0,Fue=cn(mo,$ue),xA;function Due(e){xA=e.wasm.cwrap(bs,null,["number","number","number","number"])}function Rue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return xA(i,r,_t[s.dtype],l),o}var Mue={kernelName:bs,backendName:"wasm",setupFunc:Due,kernelFunc:Rue},vA;function Pue(e){vA=e.wasm.cwrap(vu,null,["number","array","number","array","array","array","array","array","number","number"])}function Oue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(b,x,w),C=gi({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;vA(C,_,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Lue={kernelName:vu,backendName:"wasm",setupFunc:Pue,kernelFunc:Oue};function zue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=O0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Wue={kernelName:xc,backendName:"wasm",kernelFunc:zue};function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=L0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Vue={kernelName:vc,backendName:"wasm",kernelFunc:Bue};function Uue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=z0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Gue={kernelName:wc,backendName:"wasm",kernelFunc:Uue},Hue=!0,jue=cn(fo,Hue),wA;function que(e){wA=e.wasm.cwrap(co,null,["number","number","number","number"])}function Kue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;wA(l,y,_t[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Xue={kernelName:co,backendName:"wasm",setupFunc:que,kernelFunc:Kue},Yue=Ut(go),Zue=Ut(yo),kA;function Jue(e){kA=e.wasm.cwrap(ys,null,["number","array","number","array","number","number"])}function Que(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return IA(i,o,a.shape.length,_t[a.dtype],r,s,p,c),[u,d]},ape={kernelName:wu,backendName:"wasm",setupFunc:tpe,kernelFunc:npe},SA;function rpe(e){SA=e.wasm.cwrap(ku,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function spe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return SA(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,_,l,w),x}var ipe={kernelName:ku,backendName:"wasm",setupFunc:rpe,kernelFunc:spe};function ope(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var lpe={kernelName:Iu,backendName:"wasm",kernelFunc:ope};function upe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var ppe={kernelName:Su,backendName:"wasm",kernelFunc:upe},cpe=[Ose,Lse,Wse,Use,Zse,eie,aie,iie,pie,gie,yie,bie,wie,kie,Tie,Eie,_ie,Aie,Die,Pie,zie,Vie,Hie,jie,Kie,Xie,Yie,Zie,eoe,toe,aoe,ioe,uoe,doe,foe,boe,voe,koe,Gse,Ioe,Noe,Eoe,Aoe,$oe,Doe,Roe,Poe,Loe,Boe,Uoe,joe,Xoe,Joe,ele,ale,sle,ile,ule,dle,fle,yle,vle,kle,Sle,aA,Ele,$le,Rle,Ple,Lle,zle,Wle,Ble,oie,Gle,qle,Yle,Qle,eue,tue,rue,oue,pue,cue,mie,mue,gue,xue,kue,Sue,Nue,Eue,_ue,Aue,Fue,Mue,Lue,Wue,Vue,Gue,jue,Xue,Yue,Zue,epe,ape,ipe,Kse,lpe,ppe];for(let e of cpe)Ic(e);var vx=H();vx.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(e){return!1}});vx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(vx.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(e){return!1}});var bI=hs(CF()),dpe=hs(EF()),xI=hs(_F()),vI=bI.default||bI,hpe=xI.default||xI,TA=class extends sc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(NA),wx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new qh(this,Ca())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return gpe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function mpe(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function wI(e,t,n){if(Hh!=null)return Hh;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),Bp!=null&&Bp[a]!=null?Bp[a]:n+a}async function fpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=dpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?wI(e,t,Lp!=null?Lp:l):l+o},s1&&(r.instantiateWasm=mpe(wI(e,t,Lp!=null?Lp:"")));let s=!1;r.onAbort=()=>{s||Vp||(Vp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&Hh==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+vI.toString()],{type:"text/javascript"}),i=vI(r)):i=hpe(r),i.then(o=>{s=!0,Vp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function gpe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var ype=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],Hh=null,Lp=null,Bp={},Vp=!1,s1=!1;function bpe(e,t=!1){if(Ox("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Vp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");Hh=e,s1=t}function xpe(e,t=!1){if(Vp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Lp=e;else{Bp=e;let n=ype.filter(a=>Bp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}s1=t}var NA=-1,wx=-1;function vpe(e){NA=e}function wpe(){if(wx===-1)throw new Error("WASM backend not initialized.");return wx}var kpe="4.1.0",Ipe=2;Am("wasm",async()=>{let{wasm:e}=await fpe();return new TA(e)},Ipe);var kI="4.1.0",Spe="4.1.0",Tpe="4.1.0",Npe="4.1.0",Cpe="4.1.0",Epe={tfjs:kI,"tfjs-core":kI,"tfjs-converter":Spe,"tfjs-backend-cpu":Tpe,"tfjs-backend-webgl":Npe,"tfjs-backend-wasm":Cpe};var qA={};ib(qA,{AnchorPosition:()=>m1,DrawBox:()=>pd,DrawBoxOptions:()=>Gf,DrawFaceLandmarks:()=>ng,DrawFaceLandmarksOptions:()=>tg,DrawTextField:()=>zr,DrawTextFieldOptions:()=>Qu,drawContour:()=>Mr,drawDetections:()=>Mpe,drawFaceExpressions:()=>Ppe,drawFaceLandmarks:()=>Lpe});function Mr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var CA={};ib(CA,{computeReshapedDimensions:()=>l1,getCenterPoint:()=>Ao,isDimensions:()=>Bf,isEven:()=>Wf,isFloat:()=>o1,isTensor:()=>Eo,isTensor1D:()=>_pe,isTensor2D:()=>i1,isTensor3D:()=>Pr,isTensor4D:()=>va,isValidNumber:()=>Za,isValidProbablitiy:()=>qu,range:()=>fr,round:()=>_o});var _n=class{constructor(t,n){if(!Za(t)||!Za(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new _n(1/this.width,1/this.height)}};function Eo(e,t){return e instanceof Te&&e.shape.length===t}function _pe(e){return Eo(e,1)}function i1(e){return Eo(e,2)}function Pr(e){return Eo(e,3)}function va(e){return Eo(e,4)}function o1(e){return e%1!==0}function Wf(e){return e%2===0}function _o(e,t=2){let n=10**t;return Math.floor(e*n)/n}function Bf(e){return e&&e.width&&e.height}function l1({width:e,height:t},n){let a=n/Math.max(t,e);return new _n(Math.round(e*a),Math.round(t*a))}function Ao(e){return e.reduce((t,n)=>t.add(n),new Me(0,0)).div(new Me(e.length,e.length))}function fr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Za(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function qu(e){return Za(e)&&e>=0&&e<=1}var Me=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new Me(this.x+t.x,this.y+t.y)}sub(t){return new Me(this.x-t.x,this.y-t.y)}mul(t){return new Me(this.x*t.x,this.y*t.y)}div(t){return new Me(this.x/t.x,this.y/t.y)}abs(){return new Me(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new Me(Math.floor(this.x),Math.floor(this.y))}};var pt=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!pt.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Za),s=[a.x,a.y,a.width,a.height].every(Za);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];pt.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new Me(this.left,this.top)}get topRight(){return new Me(this.right,this.top)}get bottomLeft(){return new Me(this.left,this.bottom)}get bottomRight(){return new Me(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new pt({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new pt({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new pt({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Ku=class extends pt{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var _s=class{constructor(t,n,a,r,s){this._imageDims=new _n(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new pt(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new pt(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new _s(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var xt=class extends _s{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new xt(a,r,s)}};function EA(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function _A(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function gr(e,t){return P(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function $A(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function $ye(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function Vf(e){return 1/(1+Math.exp(-e))}function Dye(e){return Math.log(e/(1-e))}var Xu=class extends pt{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ape=.5,$pe=.43,Fpe=.45,wa=class{constructor(t,n,a=new Me(0,0)){let{width:r,height:s}=n;this._imgDims=new _n(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new Me(r,s)).add(a))}get shift(){return new Me(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new Me(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new Me(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof xt?t.box.floor():new pt(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Fpe),l=Ao(t),u=Math.floor(Math.max(0,l.x-Ape*o)),p=Math.floor(Math.max(0,l.y-$pe*o));return new Xu(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=_A(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var FA=class extends wa{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],Ao([t[3],t[4]])]}};var Yu=class extends wa{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(Ao)}};var od=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${_o(this.distance)})`:""}`}};var ld=class extends pt{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(pt.assertIsValidBox(n,a),!Za(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var Or=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new Or(t.label,n)}};var DA=class extends ld{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(ld.assertIsValidLabeledBox(n,a),!qu(n.score)||!qu(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function Lr(e){return e.detection instanceof xt}function Zu(e,t){return{...e,...{detection:t}}}function u1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function ud(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function Uf(e){let t="";if(!e&&ud())try{e=jr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function p1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=Uf();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function c1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var sn;function Dpe(){if(!sn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return sn}function d1(e){sn=e}function h1(){return c1()?d1(u1()):ud()?d1(p1()):null}function Rpe(e){if(sn||h1(),!sn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=sn.Canvas,Image:n=sn.Image}=e;sn.Canvas=t,sn.Image=n,sn.createCanvasElement=e.createCanvasElement||(()=>new t),sn.createImageElement=e.createImageElement||(()=>new n),sn.ImageData=e.ImageData||sn.ImageData,sn.Video=e.Video||sn.Video,sn.fetch=e.fetch||sn.fetch,sn.readFile=e.readFile||sn.readFile}var et={getEnv:Dpe,setEnv:d1,initialize:h1,createBrowserEnv:u1,createFileSystem:Uf,createNodejsEnv:p1,monkeyPatch:Rpe,isBrowser:c1,isNodejs:ud};h1();function Ju(e){return!et.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function aa(e){let{Canvas:t,CanvasRenderingContext2D:n}=et.getEnv();if(e instanceof n)return e;let a=Ju(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var m1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(m1||{}),Qu=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},zr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof zr?t.text:t,this.anchor=n,this.options=new Qu(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var Gf=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new Qu({...i,...s})}},pd=class{constructor(t,n={}){this.box=new pt(t),this.options=new Gf(n)}draw(t){let n=aa(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new zr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Mpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof xt?a.score:Lr(a)?a.detection.score:void 0,s=a instanceof xt?a.box:Lr(a)?a.detection.box:new pt(a),i=r?`${_o(r)}`:void 0;new pd(s,{label:i}).draw(e)})}function Hf(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function RA(e){return new Promise((t,n)=>{(e instanceof et.getEnv().Canvas||Hf(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function MA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=et.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function ep(e){let{Image:t,Video:n}=et.getEnv();return e instanceof t?new _n(e.naturalWidth,e.naturalHeight):e instanceof n?new _n(e.videoWidth,e.videoHeight):new _n(e.width,e.height)}function tp({width:e,height:t}){let{createCanvasElement:n}=et.getEnv(),a=n();return a.width=e,a.height=t,a}function jf(e,t){let{ImageData:n}=et.getEnv();if(!(e instanceof n)&&!Hf(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||ep(e),s=tp({width:a,height:r});return e instanceof n?aa(s).putImageData(e,0,0):aa(s).drawImage(e,0,0,a,r),s}async function PA(e,t){let n=t||et.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(va(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await bo.toPixels(i,n),i.dispose(),n}function f1(e){let{Image:t,Canvas:n,Video:a}=et.getEnv();return e instanceof t||e instanceof n||e instanceof a}function OA(e,t,n=!1){let{Image:a,Canvas:r}=et.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return tp({width:1,height:1});let s=ep(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=tp({width:t,height:t}),p=e instanceof r?e:jf(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&aa(u).drawImage(p,c,h,o,l),u}var Wr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Pr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(va(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof et.getEnv().Canvas?a:jf(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return fr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return l1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=fr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=va(i)?i:Qt(i);return o=$A(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=_a.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof et.getEnv().Canvas)return bo.fromPixels(OA(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function vt(e){if(e instanceof Wr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Ju);return a.forEach((r,s)=>{if(!f1(r)&&!Pr(r)&&!va(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(va(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>f1(r)&&RA(r))),new Wr(a,Array.isArray(e))}async function cd(e,t){let{Canvas:n}=et.getEnv(),a=e;if(!(e instanceof n)){let i=await vt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await PA(o)}let r=aa(a);return t.map(i=>i instanceof xt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=tp({width:l,height:u});return l>0&&u>0&&aa(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function dd(e,t){if(!Pr(e)&&!va(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(va(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(va(e)?1:0);return t.map(o=>o instanceof xt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>vo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function As(e,t){let{fetch:n}=et.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function bve(e){let t=await As(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return MA(n)}async function LA(e){return(await As(e)).json()}async function Ive(e){return new Float32Array(await(await As(e)).arrayBuffer())}function zA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=et.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function _ve(e){let t=await As(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return zA(n)}function qf(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function WA(e,t){let{manifestUri:n,modelBaseUri:a}=qf(e,t),r=await LA(n);return Gt.loadWeights(r,a)}function Pve(e,t,n=!1){let{width:a,height:r}=n?ep(t):t;return e.width=a,e.height=r,{width:a,height:r}}var dn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof ss)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ss))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=mn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await WA(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=et.getEnv(),{manifestUri:a,modelBaseUri:r}=qf(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Gt.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Gn(e,t,n){return P(()=>{let a=Ss(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function Kf(e,t,n=!1){return P(()=>{let a=Xe(n?Y(Ft(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Gn(e,t.conv0,[2,2])),r=Gn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Gn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function hd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(Ft(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Gn(e,t.conv0,a?[2,2]:[1,1])),s=Gn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Gn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Gn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function $o(e,t,n="same",a=!1){return P(()=>{let r=Y(Ft(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function np(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function Xf(e,t){return(n,a,r)=>{let s=Aa(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var md=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function ap(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new md(s,i,o)}}function rp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new md(n,a,r)}}function ra(e,t){return(n,a,r)=>{let s=e[n];if(!Eo(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function $n(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function Yf(e,t){let n=np(e,t),a=ap(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function BA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock4Params:r}=Yf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function Zf(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function Jf(e,t){let n=ra(e,t),a=Zf(n),r=rp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function VA(e){let t=[],{extractDenseBlock4Params:n}=Jf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return An(e,t),{params:a,paramMappings:t}}var sp=class extends dn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=hd(s,n.dense0,!0);return i=hd(i,n.dense1),i=hd(i,n.dense2),i=hd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return VA(t)}extractParams(t){return BA(t)}};function fd(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function UA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=$n(e),o=Xf(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function GA(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return An(e,t),{params:r,paramMappings:t}}function Qf(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var ip=class extends dn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Wr?this.faceFeatureExtractor.forwardInput(n):n;return fd(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return UA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Qf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),GA(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var HA=["neutral","happy","sad","angry","fearful","disgusted","surprised"],$s=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);HA.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return HA.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var eg=class extends ip{constructor(t=new sp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await vt(t))}async predictExpressions(t){let n=await vt(t),a=await this.forwardInput(n),r=await Promise.all(ut(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new $s(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function jA(e){return e.expressions instanceof $s}function g1(e,t){return{...e,...{expressions:t}}}function Ppe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof $s?s:jA(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=Lr(s)?s.detection.box.bottomLeft:a||new Me(0,0);new zr(l.map(d=>`${d.expression} (${_o(d.probability)})`),u).draw(e)})}function op(e){return Lr(e)&&e.landmarks instanceof wa&&e.unshiftedLandmarks instanceof wa&&e.alignedRect instanceof xt}function Ope(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function gd(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new xt(e.detection.score,r.rescale(s.reverse()),s),o=Ope(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var tg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},ng=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new tg(n)}draw(t){let n=aa(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Yu&&(n.strokeStyle=i,n.lineWidth=s,Mr(n,this.faceLandmarks.getJawOutline()),Mr(n,this.faceLandmarks.getLeftEyeBrow()),Mr(n,this.faceLandmarks.getRightEyeBrow()),Mr(n,this.faceLandmarks.getNose()),Mr(n,this.faceLandmarks.getLeftEye(),!0),Mr(n,this.faceLandmarks.getRightEye(),!0),Mr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Lpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof wa?a:op(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new ng(r).draw(e)})}var KA="1.7.7";function Bpe(e,t){let n=np(e,t),a=ap(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function XA(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=$n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Bpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};fr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Vpe(e,t){let n=ra(e,t),a=Zf(n),r=rp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function YA(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Vpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};fr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return An(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function ZA(e,t,n){return Y(Ft(e,t.filters,n,"same"),t.bias)}function y1(e,t,n=!0){let a=n?Xe(e):e;return a=Gn(a,t.separable_conv0,[1,1]),a=Gn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,ZA(e,t.expansion_conv,[2,2])),a}function Upe(e,t){let n=Gn(Xe(e),t.separable_conv0,[1,1]);return n=Gn(Xe(n),t.separable_conv1,[1,1]),n=Gn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var ag=class extends dn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=gr(r,[122.782,117.001,104.298]).div(255),o=Xe(ZA(i,a.entry_flow.conv_in,[2,2]));return o=y1(o,a.entry_flow.reduction_block_0,!1),o=y1(o,a.entry_flow.reduction_block_1),fr(this._numMainBlocks,0,1).forEach(l=>{o=Upe(o,a.middle_flow[`main_block_${l}`])}),o=y1(o,a.exit_flow.reduction_block),o=Xe(Gn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await vt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return YA(n,this._numMainBlocks)}extractParams(n){return XA(n,this._numMainBlocks)}};function JA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),r=Xf(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function QA(e){let t=[],n=ra(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return An(e,t),{params:r,paramMappings:t}}var b1=(n=>(n.FEMALE="female",n.MALE="male",n))(b1||{});var rg=class extends dn{constructor(n=new ag(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof Wr?this.faceFeatureExtractor.forwardInput(n):n,s=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=fd(s,a.fc.age).as1D(),o=fd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Xa(r)}})}async forward(n){return this.forwardInput(await vt(n))}async predictAgeAndGender(n){let a=await vt(n),r=await this.forwardInput(a),s=ut(r.age),i=ut(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return JA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=Qf(n);return this.faceFeatureExtractor.loadFromWeightMap(a),QA(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var lp=class extends ip{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>$t([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div($t(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await vt(t))}async detectLandmarks(t){let n=await vt(t),a=P(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>Wf(d)),u=o.filter((p,d)=>!Wf(d));return new Yu(Array(68).fill(0).map((p,d)=>new Me(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var up=class extends lp{constructor(t=new sp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function e$(e){let t=[],{extractDenseBlock3Params:n}=Jf(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function t$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock3Params:r}=Yf(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var sg=class extends dn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=Kf(s,n.dense0,!0);return i=Kf(i,n.dense1),i=Kf(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await vt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return e$(t)}extractParams(t){return t$(t)}};var ig=class extends lp{constructor(t=new sg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var n$=class extends up{};function a$(e,t){return Y(z(e,t.weights),t.biases)}function x1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Ft(e,s,n,r);return o=Y(o,i),o=a$(o,t.scale),a?Xe(o):o}function r$(e,t){return x1(e,t,[1,1],!0)}function v1(e,t){return x1(e,t,[1,1],!1)}function og(e,t){return x1(e,t,[2,2],!0,"valid")}function Gpe(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(o1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>_e(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function s$(e){let{extractWeights:t,getRemainingWeights:n}=$n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=Gpe(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>_e(Aa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function Hpe(e,t){let n=ra(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function i$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Hpe(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!i1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return An(e,t),{params:w,paramMappings:t}}function Ja(e,t){let n=r$(e,t.conv1);return n=v1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function yd(e,t){let n=og(e,t.conv1);n=v1(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var pp=class extends dn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=gr(a,[122.782,117.001,104.298]).div(255),i=og(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=yd(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=yd(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=yd(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=yd(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await vt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await vt(t),a=P(()=>ut(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return i$(t)}extractParams(t){return s$(t)}};function lIe(e){let t=new pp;return t.extractWeights(e),t}function w1(e,t){return{...e,...{descriptor:t}}}function dIe(e){return typeof e.age=="number"}function k1(e,t){return{...e,...{age:t}}}function gIe(e){return(e.gender==="male"||e.gender==="female")&&qu(e.genderProbability)}function I1(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function jpe(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function o$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=jpe(n,t),i=r(),o=s(),u={extra_dim:_c(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function qpe(e,t){let n=ra(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function l$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=qpe(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Pr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return An(e,t),{params:s,paramMappings:t}}function Pa(e,t,n){return P(()=>{let a=Ft(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),tn(a,0,6)})}var Kpe=.0010000000474974513;function Xpe(e,t,n){return P(()=>{let a=ks(e,t.filters,n,"same");return a=ws(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,Kpe),tn(a,0,6)})}function Ype(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function u$(e,t){return P(()=>{let n,a=Pa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=Ype(o);a=Xpe(a,s.depthwise_conv,l),a=Pa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function Zpe(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function p$(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=Zpe(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function Jpe(e){let t=ut(_e(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],me(n[0],2)),Y(t[1],me(n[1],2))];return{sizes:n,centers:a}}function Qpe(e,t){let{sizes:n,centers:a}=Jpe(e),r=ut(_e(t,[1,0])),s=me(z(gn(me(r[2],5)),n[0]),2),i=Y(z(me(r[0],10),n[0]),a[0]),o=me(z(gn(me(r[3],5)),n[1]),2),l=Y(z(me(r[1],10),n[1]),a[1]);return _e($t([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function c$(e,t,n){return P(()=>{let a=e.shape[0],r=Qpe(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=da(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ut(r),l=ut(i);return{boxes:o,scores:l}})}function Fo(e,t){return P(()=>{let n=e.shape[0],a=W($o(e,t.box_encoding_predictor),[n,-1,1,4]),r=W($o(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function d$(e,t,n){return P(()=>{let a=Pa(e,n.conv_0,[1,1]),r=Pa(a,n.conv_1,[2,2]),s=Pa(r,n.conv_2,[1,1]),i=Pa(s,n.conv_3,[2,2]),o=Pa(i,n.conv_4,[1,1]),l=Pa(o,n.conv_5,[2,2]),u=Pa(l,n.conv_6,[1,1]),p=Pa(u,n.conv_7,[2,2]),d=Fo(t,n.box_predictor_0),c=Fo(e,n.box_predictor_1),h=Fo(r,n.box_predictor_2),m=Fo(i,n.box_predictor_3),f=Fo(l,n.box_predictor_4),g=Fo(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var Oa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Do=class extends dn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(me(a,127.5),1),s=u$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=d$(s.out,s.conv11,n.prediction_layer);return c$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await vt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new Oa(n),s=await vt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(_=>_*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(_=>_*f);return new xt(p[x],new Xu(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return l$(t)}extractParams(t){return o$(t)}};function ece(e){let t=new Do;return t.extractWeights(e),t}function lSe(e){return ece(e)}var h$=class extends Do{};var m$=.4,f$=[new Me(.738768,.874946),new Me(2.42204,2.65704),new Me(4.30971,7.04493),new Me(10.246,4.59428),new Me(12.6868,11.8741)],g$=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],y$=[117.001,114.697,97.404],b$="tiny_yolov2_model",x$="tiny_yolov2_separable_conv_model";var lg=e=>typeof e=="number";function v$(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!lg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>lg(t.x)&&lg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(lg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function cp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Br(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ft(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),cp(n)})}function Vr(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ss(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),cp(n)})}function tce(e,t){let n=np(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=ap(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function w$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=$n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=tce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:_,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:_,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function nce(e,t){let n=ra(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=rp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function k$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=nce(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return An(e,n),{params:i,paramMappings:n}}var yr=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var S1=class extends dn{constructor(n){super("TinyYolov2");v$(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=Br(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Br(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Br(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Br(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Br(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Br(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Br(r,a.conv6),r=Br(r,a.conv7),$o(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?cp($o(n,a.conv0,"valid",!1)):Vr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Vr(r,a.conv6):r,r=a.conv7?Vr(r,a.conv7):r,$o(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?gr(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await vt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new yr(a),i=await vt(n),o=await this.forwardInput(i,r),l=P(()=>ut(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return AA(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new _s(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return k$(n,this.config)}extractParams(n){let a=this.config.filterSizes||S1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return w$(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+Vf(y[b][x][w][0]))/p*l,C=(b+Vf(y[b][x][w][1]))/p*u,_=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-_/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Ku(R,F,R+_,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},Ro=S1;Ro.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var dp=class extends Ro{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:m$,classes:["face"],...t?{anchors:g$,meanRgb:y$}:{anchors:f$,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?x$:b$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function QSe(e,t=!0){let n=new dp(t);return n.extractWeights(e),n}var ug=class extends yr{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var La=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Mo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>op(l)?r(l):l.detection),i=a||(t instanceof Te?await dd(t,s):await cd(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function hp(e,t,n,a,r){return Mo([e],t,async s=>n(s[0]),a,r)}var I$=.4,S$=[new Me(1.603231,2.094468),new Me(6.041143,7.080126),new Me(2.882459,3.518061),new Me(4.266906,5.178857),new Me(9.041765,10.66308)],T$=[117.001,114.697,97.404];var mp=class extends Ro{constructor(){let t={withSeparableConvs:!0,iouThreshold:I$,classes:["face"],anchors:S$,meanRgb:T$,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new xt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var tt={ssdMobilenetv1:new Do,tinyFaceDetector:new mp,tinyYolov2:new dp,faceLandmark68Net:new up,faceLandmark68TinyNet:new ig,faceRecognitionNet:new pp,faceExpressionNet:new eg,ageGenderNet:new rg},ace=(e,t)=>tt.ssdMobilenetv1.locateFaces(e,t),_Te=(e,t)=>tt.tinyFaceDetector.locateFaces(e,t),ATe=(e,t)=>tt.tinyYolov2.locateFaces(e,t),rce=e=>tt.faceLandmark68Net.detectLandmarks(e),$Te=e=>tt.faceLandmark68TinyNet.detectLandmarks(e),FTe=e=>tt.faceRecognitionNet.computeFaceDescriptor(e),DTe=e=>tt.faceExpressionNet.predictExpressions(e),RTe=e=>tt.ageGenderNet.predictAgeAndGender(e),sce=e=>tt.ssdMobilenetv1.load(e),MTe=e=>tt.tinyFaceDetector.load(e),PTe=e=>tt.tinyYolov2.load(e),OTe=e=>tt.faceLandmark68Net.load(e),LTe=e=>tt.faceLandmark68TinyNet.load(e),zTe=e=>tt.faceRecognitionNet.load(e),WTe=e=>tt.faceExpressionNet.load(e),BTe=e=>tt.ageGenderNet.load(e),VTe=sce,UTe=ace,GTe=rce;var pg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Po=class extends pg{async run(){let t=await this.parentTask,n=await Mo(t,this.input,async a=>Promise.all(a.map(r=>tt.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>g1(a,n[r]))}withAgeAndGender(){return new Lo(this,this.input)}},Oo=class extends pg{async run(){let t=await this.parentTask;if(!t)return;let n=await hp(t,this.input,a=>tt.faceExpressionNet.predictExpressions(a),this.extractedFaces);return g1(t,n)}withAgeAndGender(){return new zo(this,this.input)}},Fs=class extends Po{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},Ds=class extends Oo{withAgeAndGender(){return new Ms(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var cg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Lo=class extends cg{async run(){let t=await this.parentTask,n=await Mo(t,this.input,async a=>Promise.all(a.map(r=>tt.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return k1(I1(a,i,o),s)})}withFaceExpressions(){return new Po(this,this.input)}},zo=class extends cg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await hp(t,this.input,s=>tt.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return k1(I1(t,a,r),n)}withFaceExpressions(){return new Oo(this,this.input)}},Rs=class extends Lo{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},Ms=class extends zo{withFaceExpressions(){return new Ds(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var dg=class extends La{constructor(n,a){super();this.parentTask=n;this.input=a}},Ps=class extends dg{async run(){let t=await this.parentTask;return(await Mo(t,this.input,a=>Promise.all(a.map(r=>tt.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>w1(t[r],a))}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}},Os=class extends dg{async run(){let t=await this.parentTask;if(!t)return;let n=await hp(t,this.input,a=>tt.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return w1(t,n)}withFaceExpressions(){return new Ds(this,this.input)}withAgeAndGender(){return new Ms(this,this.input)}};var hg=class extends La{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?tt.faceLandmark68TinyNet:tt.faceLandmark68Net}},mg=class extends hg{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await dd(this.input,n):await cd(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>gd(i,r[o]))}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptors(){return new Ps(this,this.input)}},fg=class extends hg{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await dd(this.input,[n]):await cd(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),gd(t,r)}withFaceExpressions(){return new Ds(this,this.input)}withAgeAndGender(){return new Ms(this,this.input)}withFaceDescriptor(){return new Os(this,this.input)}};var gg=class extends La{constructor(n,a=new Oa){super();this.input=n;this.options=a}},bd=class extends gg{async run(){let{input:t,options:n}=this,a;if(n instanceof ug)a=tt.tinyFaceDetector.locateFaces(t,n);else if(n instanceof Oa)a=tt.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof yr)a=tt.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Zu({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new mg(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Po(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Lo(this.runAndExtendWithFaceDetections(),this.input)}},yg=class extends gg{async run(){let t=await new bd(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Zu({},n):void 0)})}withFaceLandmarks(t=!1){return new fg(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Oo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new zo(this.runAndExtendWithFaceDetection(),this.input)}};function BNe(e,t=new Oa){return new yg(e,t)}function T1(e,t=new Oa){return new bd(e,t)}async function ice(e,t){return T1(e,new Oa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function qNe(e,t={}){return T1(e,new yr(t)).withFaceLandmarks().withFaceDescriptors()}var KNe=ice;function N$(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var bg=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof Or)return i;if(i instanceof Float32Array)return new Or(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new Or(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>N$(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new od(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>Or.fromJSON(a));return new bg(n,t.distanceThreshold)}};function d2e(e){let t=new mp;return t.extractWeights(e),t}function oce(e,t){let{width:n,height:a}=new _n(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>oce(r,{width:n,height:a}));if(op(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return gd(Zu(e,r),s)}return Lr(e)?Zu(e,e.detection.forSize(n,a)):e instanceof wa||e instanceof xt?e.forSize(n,a):e}var I2e=KA;export{rg as AgeGenderNet,Ku as BoundingBox,pt as Box,La as ComposableTask,Ps as ComputeAllFaceDescriptorsTask,dg as ComputeFaceDescriptorsTaskBase,Os as ComputeSingleFaceDescriptorTask,mg as DetectAllFaceLandmarksTask,bd as DetectAllFacesTask,hg as DetectFaceLandmarksTaskBase,gg as DetectFacesTaskBase,fg as DetectSingleFaceLandmarksTask,yg as DetectSingleFaceTask,_n as Dimensions,HA as FACE_EXPRESSION_LABELS,xt as FaceDetection,h$ as FaceDetectionNet,eg as FaceExpressionNet,$s as FaceExpressions,up as FaceLandmark68Net,ig as FaceLandmark68TinyNet,n$ as FaceLandmarkNet,wa as FaceLandmarks,FA as FaceLandmarks5,Yu as FaceLandmarks68,od as FaceMatch,bg as FaceMatcher,pp as FaceRecognitionNet,b1 as Gender,ld as LabeledBox,Or as LabeledFaceDescriptors,Wr as NetInput,dn as NeuralNetwork,_s as ObjectDetection,Me as Point,DA as PredictedBox,Xu as Rect,Do as SsdMobilenetv1,Oa as SsdMobilenetv1Options,mp as TinyFaceDetector,ug as TinyFaceDetectorOptions,dp as TinyYolov2,yr as TinyYolov2Options,KNe as allFaces,ice as allFacesSsdMobilenetv1,qNe as allFacesTinyYolov2,RA as awaitMediaLoaded,MA as bufferToImage,FTe as computeFaceDescriptor,tp as createCanvas,jf as createCanvasFromMedia,lSe as createFaceDetectionNet,lIe as createFaceRecognitionNet,ece as createSsdMobilenetv1,d2e as createTinyFaceDetector,QSe as createTinyYolov2,T1 as detectAllFaces,rce as detectFaceLandmarks,$Te as detectFaceLandmarksTiny,GTe as detectLandmarks,BNe as detectSingleFace,qA as draw,et as env,N$ as euclideanDistance,k1 as extendWithAge,w1 as extendWithFaceDescriptor,Zu as extendWithFaceDetection,g1 as extendWithFaceExpressions,gd as extendWithFaceLandmarks,I1 as extendWithGender,dd as extractFaceTensors,cd as extractFaces,bve as fetchImage,LA as fetchJson,Ive as fetchNetWeights,As as fetchOrThrow,_ve as fetchVideo,aa as getContext2dOrThrow,ep as getMediaDimensions,PA as imageTensorToCanvas,OA as imageToSquare,Dye as inverseSigmoid,EA as iou,f1 as isMediaElement,Hf as isMediaLoaded,dIe as isWithAge,Lr as isWithFaceDetection,jA as isWithFaceExpressions,op as isWithFaceLandmarks,gIe as isWithGender,BTe as loadAgeGenderModel,VTe as loadFaceDetectionModel,WTe as loadFaceExpressionModel,OTe as loadFaceLandmarkModel,LTe as loadFaceLandmarkTinyModel,zTe as loadFaceRecognitionModel,sce as loadSsdMobilenetv1Model,MTe as loadTinyFaceDetectorModel,PTe as loadTinyYolov2Model,WA as loadWeightMap,UTe as locateFaces,Pve as matchDimensions,_A as minBbox,tt as nets,AA as nonMaxSuppression,gr as normalize,$A as padToSquare,RTe as predictAgeAndGender,DTe as recognizeFaceExpressions,oce as resizeResults,Ju as resolveInput,$ye as shuffleArray,Vf as sigmoid,ace as ssdMobilenetv1,Oe as tf,_Te as tinyFaceDetector,ATe as tinyYolov2,vt as toNetInput,CA as utils,v$ as validateConfig,I2e as version}; //# sourceMappingURL=face-api.esm.js.map diff --git a/dist/face-api.esm.js.map b/dist/face-api.esm.js.map index 85294ab..3f84c46 100644 --- a/dist/face-api.esm.js.map +++ b/dist/face-api.esm.js.map @@ -1,7 +1,7 @@ { "version": 3, "sources": ["tfjs.esm.js", "../src/draw/index.ts", "../src/draw/drawContour.ts", "../src/utils/index.ts", "../src/classes/Dimensions.ts", "../src/classes/Point.ts", "../src/classes/Box.ts", "../src/classes/BoundingBox.ts", "../src/classes/ObjectDetection.ts", "../src/classes/FaceDetection.ts", "../src/ops/iou.ts", "../src/ops/minBbox.ts", "../src/ops/nonMaxSuppression.ts", "../src/ops/normalize.ts", "../src/ops/padToSquare.ts", "../src/ops/shuffleArray.ts", "../src/ops/index.ts", "../src/classes/Rect.ts", "../src/classes/FaceLandmarks.ts", "../src/classes/FaceLandmarks5.ts", "../src/classes/FaceLandmarks68.ts", "../src/classes/FaceMatch.ts", "../src/classes/LabeledBox.ts", "../src/classes/LabeledFaceDescriptors.ts", "../src/classes/PredictedBox.ts", "../src/factories/WithFaceDetection.ts", "../src/env/createBrowserEnv.ts", "../src/env/isNodejs.ts", "../src/env/createFileSystem.ts", "../src/env/createNodejsEnv.ts", "../src/env/isBrowser.ts", "../src/env/index.ts", "../src/dom/resolveInput.ts", "../src/dom/getContext2dOrThrow.ts", "../src/draw/DrawTextField.ts", "../src/draw/DrawBox.ts", "../src/draw/drawDetections.ts", "../src/dom/isMediaLoaded.ts", "../src/dom/awaitMediaLoaded.ts", "../src/dom/bufferToImage.ts", "../src/dom/getMediaDimensions.ts", "../src/dom/createCanvas.ts", "../src/dom/imageTensorToCanvas.ts", "../src/dom/isMediaElement.ts", "../src/dom/imageToSquare.ts", "../src/dom/NetInput.ts", "../src/dom/toNetInput.ts", "../src/dom/extractFaces.ts", "../src/dom/extractFaceTensors.ts", "../src/dom/fetchOrThrow.ts", "../src/dom/fetchImage.ts", "../src/dom/fetchJson.ts", "../src/dom/fetchNetWeights.ts", "../src/dom/bufferToVideo.ts", "../src/dom/fetchVideo.ts", "../src/common/getModelUris.ts", "../src/dom/loadWeightMap.ts", "../src/dom/matchDimensions.ts", "../src/NeuralNetwork.ts", "../src/common/depthwiseSeparableConv.ts", "../src/faceFeatureExtractor/denseBlock.ts", "../src/common/convLayer.ts", "../src/common/disposeUnusedWeightTensors.ts", "../src/common/extractConvParamsFactory.ts", "../src/common/extractFCParamsFactory.ts", "../src/common/types.ts", "../src/common/extractSeparableConvParamsFactory.ts", "../src/common/extractWeightEntryFactory.ts", "../src/common/extractWeightsFactory.ts", "../src/faceFeatureExtractor/extractorsFactory.ts", "../src/faceFeatureExtractor/extractParams.ts", "../src/common/loadConvParamsFactory.ts", "../src/faceFeatureExtractor/loadParamsFactory.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMap.ts", "../src/faceFeatureExtractor/FaceFeatureExtractor.ts", "../src/common/fullyConnectedLayer.ts", "../src/faceProcessor/extractParams.ts", "../src/faceProcessor/extractParamsFromWeightMap.ts", "../src/faceProcessor/util.ts", "../src/faceProcessor/FaceProcessor.ts", "../src/faceExpressionNet/FaceExpressions.ts", "../src/faceExpressionNet/FaceExpressionNet.ts", "../src/factories/WithFaceExpressions.ts", "../src/draw/drawFaceExpressions.ts", "../src/factories/WithFaceLandmarks.ts", "../src/draw/DrawFaceLandmarks.ts", "../src/xception/extractParams.ts", "../src/xception/extractParamsFromWeightMap.ts", "../src/xception/TinyXception.ts", "../src/ageGenderNet/extractParams.ts", "../src/ageGenderNet/extractParamsFromWeightMap.ts", "../src/ageGenderNet/types.ts", "../src/ageGenderNet/AgeGenderNet.ts", "../src/faceLandmarkNet/FaceLandmark68NetBase.ts", "../src/faceLandmarkNet/FaceLandmark68Net.ts", "../src/faceFeatureExtractor/extractParamsFromWeightMapTiny.ts", "../src/faceFeatureExtractor/extractParamsTiny.ts", "../src/faceFeatureExtractor/TinyFaceFeatureExtractor.ts", "../src/faceLandmarkNet/FaceLandmark68TinyNet.ts", "../src/faceLandmarkNet/index.ts", "../src/faceRecognitionNet/scaleLayer.ts", "../src/faceRecognitionNet/convLayer.ts", "../src/faceRecognitionNet/extractParams.ts", "../src/faceRecognitionNet/extractParamsFromWeightMap.ts", "../src/faceRecognitionNet/residualLayer.ts", "../src/faceRecognitionNet/FaceRecognitionNet.ts", "../src/faceRecognitionNet/index.ts", "../src/factories/WithFaceDescriptor.ts", "../src/factories/WithAge.ts", "../src/factories/WithGender.ts", "../src/ssdMobilenetv1/extractParams.ts", "../src/ssdMobilenetv1/extractParamsFromWeightMap.ts", "../src/ssdMobilenetv1/pointwiseConvLayer.ts", "../src/ssdMobilenetv1/mobileNetV1.ts", "../src/ssdMobilenetv1/nonMaxSuppression.ts", "../src/ssdMobilenetv1/outputLayer.ts", "../src/ssdMobilenetv1/boxPredictionLayer.ts", "../src/ssdMobilenetv1/predictionLayer.ts", "../src/ssdMobilenetv1/SsdMobilenetv1Options.ts", "../src/ssdMobilenetv1/SsdMobilenetv1.ts", "../src/ssdMobilenetv1/index.ts", "../src/tinyYolov2/const.ts", "../src/tinyYolov2/config.ts", "../src/tinyYolov2/leaky.ts", "../src/tinyYolov2/convWithBatchNorm.ts", "../src/tinyYolov2/depthwiseSeparableConv.ts", "../src/tinyYolov2/extractParams.ts", "../src/tinyYolov2/extractParamsFromWeightMap.ts", "../src/tinyYolov2/TinyYolov2Options.ts", "../src/tinyYolov2/TinyYolov2Base.ts", "../src/tinyYolov2/TinyYolov2.ts", "../src/tinyYolov2/index.ts", "../src/tinyFaceDetector/TinyFaceDetectorOptions.ts", "../src/globalApi/ComposableTask.ts", "../src/globalApi/extractFacesAndComputeResults.ts", "../src/tinyFaceDetector/const.ts", "../src/tinyFaceDetector/TinyFaceDetector.ts", "../src/globalApi/nets.ts", "../src/globalApi/PredictFaceExpressionsTask.ts", "../src/globalApi/PredictAgeAndGenderTask.ts", "../src/globalApi/ComputeFaceDescriptorsTasks.ts", "../src/globalApi/DetectFaceLandmarksTasks.ts", "../src/globalApi/DetectFacesTasks.ts", "../src/globalApi/detectFaces.ts", "../src/globalApi/allFaces.ts", "../src/euclideanDistance.ts", "../src/globalApi/FaceMatcher.ts", "../src/tinyFaceDetector/index.ts", "../src/resizeResults.ts", "../src/index.ts"], - "sourcesContent": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!=\"undefined\"?require:typeof Proxy!=\"undefined\"?new Proxy(r,{get:(t,e)=>(typeof require!=\"undefined\"?require:t)[e]}):r)(function(r){if(typeof require!=\"undefined\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+r+'\" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,\"default\",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,\"__isLong__\",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function mv(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return ho;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return mv(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error(\"division by zero\");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(pv))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:pv:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,r0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof r0==\"object\"&&r0,typeof define==\"function\"&&define)});var p_=gr((c_,n0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof n0==\"object\"&&n0,typeof define==\"function\"&&define)});var f_=gr((m_,o0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof o0==\"object\"&&o0,typeof define==\"function\"&&define)});var h_=gr((d_,s0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof s0==\"object\"&&s0,typeof define==\"function\"&&define)});var x_=gr((g_,i0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+\"\\0\",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof i0==\"object\"&&i0,typeof define==\"function\"&&define)});var b_=gr((y_,a0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof a0==\"object\"&&a0,typeof define==\"function\"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&qe(st.buffer),ke}function n(){return st.buffer!=jt&&qe(st.buffer),fe}function o(){return st.buffer!=jt&&qe(st.buffer),Ae}function s(){return st.buffer!=jt&&qe(st.buffer),_n}function i(){return st.buffer!=jt&&qe(st.buffer),or}function a(){return st.buffer!=jt&&qe(st.buffer),Hn}function u(){return st.buffer!=jt&&qe(st.buffer),Lr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(L,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",C=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y(\"exiting due to exception: \"+L)}if(w){b?N=ig().dirname(N)+\"/\":N=__dirname+\"/\";var G,W;typeof Pg==\"function\"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:\"utf8\")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Ru))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let L;try{L=BW()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open(\"GET\",L,!0),xt.responseType=\"arraybuffer\",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance==\"undefined\"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+`\n`),H=L=>G.writeSync(2,L+`\n`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Yc(\"no native wasm support detected\");var st,dt,ht=!1,bt;function kt(L,U){L||Yc(U)}var _t=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie=\"\";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):\"\"}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\"),Error(\"bad memory\");st&&(jt=st.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:\"onAbort\",arg:L}):l.onAbort&&l.onAbort(L),L=\"Aborted(\"+L+\")\",Y(L),ht=!0,bt=1,L+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI=\"data:application/octet-stream;base64,\";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith(\"file://\")}var en;en=\"tfjs-backend-wasm-threaded-simd.wasm\",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw\"both async and sync fetching of the wasm failed\"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Od(en))return fetch(en,{credentials:\"same-origin\"}).then(function(L){if(!L.ok)throw\"failed to load wasm binary file at '\"+en+\"'\";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk(\"wasm-instantiate\")})})}}C||Wk(\"wasm-instantiate\");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y(\"failed to asynchronously prepare wasm: \"+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!pg(en)&&!Od(en)&&!w&&typeof fetch==\"function\"?fetch(en,{credentials:\"same-origin\"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y(\"wasm streaming compile failed: \"+hr),Y(\"falling back to ArrayBuffer instantiation\"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y(\"Module.instantiateWasm callback failed with error: \"+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+L+\")\",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:\"cancel\"})}function Pd(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:\"run\",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),\"unwind\";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L==\"unwind\")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message \"'+Dt+'\" to target pthread '+xt.targetThread+\", but that thread no longer exists!\"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt===\"processProxyingQueue\"?zd(xt.queue):Dt===\"spawnThread\"?fg(xt):Dt===\"cleanupThread\"?Pd(xt.thread):Dt===\"killThread\"?CI(xt.thread):Dt===\"cancelThread\"?II(xt.thread):Dt===\"loaded\"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt===\"print\"?j(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"printErr\"?Y(\"Thread \"+xt.threadId+\": \"+xt.text):Dt===\"alert\"?alert(\"Thread \"+xt.threadId+\": \"+xt.text):xt.target===\"setimmediate\"?L.postMessage(xt):Dt===\"onAbort\"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y(\"worker sent an unknown command \"+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt=\"worker sent an error!\";throw Y(xt+\" \"+ut.filename+\":\"+ut.lineno+\": \"+ut.message),ut},w&&(L.on(\"message\",function(ut){L.onmessage({data:ut})}),L.on(\"error\",function(ut){L.onerror(ut)}),L.on(\"detachedExit\",function(){})),L.postMessage({cmd:\"load\",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=_(\"tfjs-backend-wasm-threaded-simd.worker.js\");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\\b_Z[\\w\\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+\" [\"+ut+\"]\"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return\"(no stack trace available)\"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:\"cleanupThread\",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd=\"spawnThread\",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:\"processProxyingQueue\",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:\"processProxyingQueue\",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc(\"\")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L=\"warning: \"+L),Y(L))}function MI(){w||b||Fu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(st.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw\"unwind\"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l[\"_\"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U===\"string\"?Zt(An):U===\"boolean\"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt===\"number\"||Gt===\"boolean\"),ie=U!==\"string\";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:st||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},At=l._OneHot=function(){return(At=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=st,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:\"loaded\"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners(\"uncaughtException\").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!=\"undefined\")Og=WasmBackendModule;else if(typeof t!=\"undefined\")Og=t;else throw new Error(\"Could not find wasm module in post.js\");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener(\"uncaughtException\",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener(\"unhandledRejection\",L)})}}return t.ready}})();typeof fI==\"object\"&&typeof Ok==\"object\"?Ok.exports=Fk:typeof define==\"function\"&&define.amd?define([],function(){return Fk}):typeof fI==\"object\"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(K,lt)=>{throw lt},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A(\"exiting due to exception: \"+K)}if(m){p?f=ig().dirname(f)+\"/\":f=__dirname+\"/\";var C,N;typeof Pg==\"function\"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:\"utf8\")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,At)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?At(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(K){if(!(K instanceof Xc))throw K}),process.on(\"unhandledRejection\",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.responseType=\"arraybuffer\",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,At)=>{var re=new XMLHttpRequest;re.open(\"GET\",K,!0),re.responseType=\"arraybuffer\",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}At()},re.onerror=At,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Xr(\"no native wasm support detected\");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(K,lt,At){for(var re=lt+At,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je=\"\";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):\"\"}function Z(K,lt,At,re){if(!(re>0))return 0;for(var Ke=At,je=At+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(At>=je)break;lt[At++]=te}else if(te<=2047){if(At+1>=je)break;lt[At++]=192|te>>6,lt[At++]=128|te&63}else if(te<=65535){if(At+2>=je)break;lt[At++]=224|te>>12,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}else{if(At+3>=je)break;lt[At++]=240|te>>18,lt[At++]=128|te>>12&63,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}}return lt[At]=0,At-Ke}function et(K,lt,At){return Z(K,at,lt,At)}var rt,ot,at,nt,st,dt,ht,bt,kt;function _t(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K=\"Aborted(\"+K+\")\",A(K),G=!0,W=1,K+=\". Build with -sASSERTIONS for more info.\";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi=\"data:application/octet-stream;base64,\";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith(\"file://\")}var Tr;Tr=\"tfjs-backend-wasm.wasm\",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw\"both async and sync fetching of the wasm failed\"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Il(Tr))return fetch(Tr,{credentials:\"same-origin\"}).then(function(K){if(!K.ok)throw\"failed to load wasm binary file at '\"+Tr+\"'\";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(At){K(new Uint8Array(At))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,_t(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn(\"wasm-instantiate\")}qn(\"wasm-instantiate\");function At(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A(\"failed to asynchronously prepare wasm: \"+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch==\"function\"?fetch(Tr,{credentials:\"same-origin\"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(At,function(dr){return A(\"wasm streaming compile failed: \"+dr),A(\"falling back to ArrayBuffer instantiation\"),re(At)})}):re(At)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A(\"Module.instantiateWasm callback failed with error: \"+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+K+\")\",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\\b_Z[\\w\\d_]+/g;return K.replace(lt,function(At){var re=At;return At===re?At:re+\" [\"+At+\"]\"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return\"(no stack trace available)\"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr(\"\")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,At){at.copyWithin(K,lt,lt+At)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var At=Od();if(K>At)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(At,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,At,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var At=Ru[K];lt===0||lt===10?((K===1?_:A)(j(At,0)),At.length=0):At.push(lt)}function II(K,lt,At,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e[\"_\"+K];return lt}function fg(K,lt,At,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt===\"string\"?Y(rn):lt===\"boolean\"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee===\"number\"||ee===\"boolean\"),je=lt!==\"string\";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,At,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners(\"uncaughtException\").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!=\"undefined\")ep=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")ep=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener(\"uncaughtException\",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener(\"unhandledRejection\",K)})}}return t.ready}})();typeof dI==\"object\"&&typeof Lk==\"object\"?Lk.exports=Pk:typeof define==\"function\"&&define.amd?define([],function(){return Pk}):typeof dI==\"object\"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n(\"refCount\")}incRef(t){return $n(\"incRef\")}timerAvailable(){return!0}time(t){return $n(\"time\")}read(t){return $n(\"read\")}readSync(t){return $n(\"readSync\")}readToGPU(t,e){return $n(\"readToGPU\")}numDataIds(){return $n(\"numDataIds\")}disposeData(t,e){return $n(\"disposeData\")}write(t,e,n){return $n(\"write\")}move(t,e,n,o,s){return $n(\"move\")}createTensorFromTexture(t,e,n){return $n(\"createTensorFromTexture\")}memory(){return $n(\"memory\")}floatPrecision(){return $n(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n(\"dispose\")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function tv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function ev(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function rv(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function nv(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r==\"string\"||r instanceof String}function i1(r){return typeof r==\"boolean\"}function a1(r){return typeof r==\"number\"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":a1(r)?\"float32\":Vo(r)?\"string\":i1(r)?\"bool\":\"float32\"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Ou(r,new Float32Array(e));if(t===\"int32\")return Ou(r,new Int32Array(e));if(t===\"bool\")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join(\"=\"))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function r4(r,t){if(t=t.toLowerCase(),t===\"true\"||t===\"false\")return t===\"true\";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return iv}var iv=null;function c1(r){iv=r}var av;function lv(){if(av==null){let r;if(typeof window!=\"undefined\")r=window;else if(typeof global!=\"undefined\")r=global;else if(typeof process!=\"undefined\")r=process;else if(typeof self!=\"undefined\")r=self;else throw new Error(\"Could not find a global object\");av=r}return av}function n4(){let r=lv();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii=\"Abs\",oa=\"Acos\",sa=\"Acosh\",Zn=\"Add\",Go=\"AddN\",ia=\"All\",aa=\"Any\",Wo=\"ArgMax\",kl=\"ArgMin\",la=\"Asin\",ua=\"Asinh\",ca=\"Atan\",pa=\"Atanh\",ma=\"Atan2\",Uo=\"AvgPool\",ap=\"AvgPoolGrad\",El=\"AvgPool3D\",lp=\"AvgPool3DGrad\",Ho=\"BatchMatMul\",ai=\"BatchToSpaceND\",up=\"Bincount\",p1=\"BroadcastTo\",cp=\"BroadcastArgs\",lo=\"Cast\",qo=\"Ceil\",uo=\"ClipByValue\",pp=\"Complex\",_l=\"ComplexAbs\",li=\"Concat\",Ko=\"Conv2D\",mp=\"Conv2DBackpropFilter\",jo=\"Conv2DBackpropInput\",Al=\"Conv3D\",fp=\"Conv3DBackpropFilterV2\",dp=\"Conv3DBackpropInputV2\",Xo=\"Cos\",Yo=\"Cosh\",fa=\"Cumprod\",Zo=\"Cumsum\",da=\"CropAndResize\",hp=\"DenseBincount\",ha=\"DepthToSpace\",Jo=\"DepthwiseConv2dNative\",gp=\"DepthwiseConv2dNativeBackpropFilter\",xp=\"DepthwiseConv2dNativeBackpropInput\",yp=\"Diag\",$l=\"Dilation2D\",jd=\"Dilation2DBackpropInput\",Xd=\"Dilation2DBackpropFilter\",Qo=\"RealDiv\",bp=\"Einsum\",ts=\"Elu\",wp=\"EluGrad\",ga=\"Erf\",xa=\"Equal\",es=\"Exp\",ui=\"ExpandDims\",ya=\"Expm1\",Cp=\"FFT\",Dl=\"Fill\",ba=\"FlipLeftRight\",rs=\"Floor\",ns=\"FloorDiv\",os=\"FusedBatchNorm\",ci=\"GatherV2\",wa=\"GatherNd\",Ca=\"Greater\",ss=\"GreaterEqual\",co=\"Identity\",Ip=\"IFFT\",Sp=\"Imag\",Ia=\"IsFinite\",Sa=\"IsInf\",va=\"IsNan\",is=\"LeakyRelu\",Na=\"Less\",Ta=\"LessEqual\",vp=\"LinSpace\",as=\"Log\",ka=\"Log1p\",Ea=\"LogicalAnd\",_a=\"LogicalNot\",Aa=\"LogicalOr\",m1=\"LogicalXor\",f1=\"LogSoftmax\",xlt=\"LowerBound\",Rl=\"LRN\",Np=\"LRNGrad\",ls=\"Max\",us=\"Maximum\",cs=\"MaxPool\",Tp=\"MaxPoolGrad\",Fl=\"MaxPool3D\",kp=\"MaxPool3DGrad\",Ep=\"MaxPoolWithArgmax\",ps=\"Mean\",ms=\"Min\",fs=\"Minimum\",ds=\"MirrorPad\",$a=\"Mod\",_p=\"Multinomial\",hs=\"Multiply\",pi=\"Neg\",Da=\"NotEqual\",Ra=\"NonMaxSuppressionV3\",Fa=\"NonMaxSuppressionV4\",Oa=\"NonMaxSuppressionV5\",mi=\"OnesLike\",gs=\"OneHot\",fi=\"Pack\",xs=\"PadV2\",ylt=\"Pool\",ys=\"Pow\",bs=\"Prelu\",ws=\"Prod\",Ap=\"RaggedGather\",$p=\"RaggedRange\",Dp=\"RaggedTensorToTensor\",Ol=\"Range\",Rp=\"Real\",Pa=\"Reciprocal\",Cs=\"Relu\",di=\"Reshape\",Is=\"ResizeNearestNeighbor\",Fp=\"ResizeNearestNeighborGrad\",Ss=\"ResizeBilinear\",Op=\"ResizeBilinearGrad\",vs=\"Relu6\",Ns=\"Reverse\",Ts=\"Round\",ks=\"Rsqrt\",La=\"ScatterNd\",Pp=\"SearchSorted\",hi=\"Select\",Ma=\"Selu\",gi=\"Slice\",Es=\"Sin\",za=\"Sinh\",Ba=\"Sign\",_s=\"Sigmoid\",Va=\"Softplus\",As=\"Sqrt\",$s=\"Sum\",xi=\"SpaceToBatchND\",yi=\"SplitV\",Ds=\"Softmax\",Pl=\"SparseFillEmptyRows\",Ga=\"SparseReshape\",Ll=\"SparseSegmentMean\",Ml=\"SparseSegmentSum\",Lp=\"SparseToDense\",Rs=\"SquaredDifference\",zl=\"Square\",Wa=\"StridedSlice\",Bl=\"StringNGrams\",Vl=\"StringSplit\",Gl=\"StringToHashBucketFast\",Fs=\"Sub\",Os=\"Tan\",Ps=\"Tanh\",Jn=\"Tile\",Ua=\"TopK\",Ha=\"Transform\",Qn=\"Transpose\",Mp=\"Unique\",bi=\"Unpack\",Wl=\"UnsortedSegmentSum\",blt=\"UpperBound\",wi=\"ZerosLike\",po=\"Step\",Yd=\"FromPixels\",qa=\"RotateWithOffset\",Ci=\"_FusedMatMul\",Ii=\"FusedConv2D\",Si=\"FusedDepthwiseConv2D\";function vi(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.warn(...r)}function o4(...r){z().getBool(\"IS_TEST\")||z().getBool(\"PROD\")||console.log(...r)}var zp=Kd(\"kernelRegistry\",()=>new Map),Zd=Kd(\"gradRegistry\",()=>new Map);function Jd(r,t){let e=cv(r,t);return zp.get(e)}function uv(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=cv(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool(\"DEBUG\")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=cv(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function cv(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>sv,bytesPerElement:()=>Mg,checkConversionForErrors:()=>nv,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>rv,getTypedArrayFromDType:()=>ev,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>ov,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>tv,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var dv=Tl(T1());var Vu=dv.default||dv;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd(\"c3a5c85c97cb3127\"),Bu=Qd(\"b492b66fbe98f273\"),nn=Qd(\"9ae16a3b2f90404f\");function fv(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return fv(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=fv(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(fv(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t===\"string\"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Gp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=Bo(r)),z().getBool(\"DEBUG\")&&nv(r,t),m4(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,gv=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function h4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?rh(r):r;if(a>1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e===\"complex64\"&&(x=rh(x),b=rh(b)),[\"[\"+x.map((w,C)=>eh(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>eh(w,o[a-th+C],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?rh(r):Array.from(r)).map((g,x)=>eh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"complex64\")throw new Error(\"complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).\");this.values=n||rv(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Wp(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd(\"Tensor\",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>Iv,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var xv;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(xv||(xv={}));var yv;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(yv||(yv={}));var bv;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(bv||(bv={}));var wv;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(wv||(wv={}));var Cv;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(Cv||(Cv={}));var x4={float32:wv,int32:yv,bool:bv,complex64:Cv};function sr(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,\"int32\")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function Iv(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r==\"object\"}function Sv(r){return r.kernelName!=null}var Ug=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=Sv(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(Sv(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=Sv(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=uv(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=sv(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=uv(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>\"gradients() received an empty list of xs.\"),n!=null&&n.dtype!==\"float32\")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));E(s instanceof Ft,()=>\"The result y returned by f() must be a tensor.\");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.\");return this.tidy(\"backward\",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{E(e.every(a=>a instanceof Ft),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),E(oi(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.length,()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).\"),E(c.every(m=>m instanceof Ft),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.\");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),\"float32\");return k.makeTensor(t,r,\"float32\")}function vv(){let r=lv();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=vv();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>Tv,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!=\"undefined\"&&navigator!=null}var Nv;function S4(r){Nv=r}function v4(r){if(Nv!==void 0)return Nv;if(r||I4()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}return!1}function Tv(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var On=z();On.registerFlag(\"DEBUG\",()=>!1,r=>{r&&console.warn(\"Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.\")});On.registerFlag(\"IS_BROWSER\",()=>Tv());On.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");On.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag(\"PROD\",()=>!1);On.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>On.getBool(\"DEBUG\"));On.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);On.registerFlag(\"IS_TEST\",()=>!1);On.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);On.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);On.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);On.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);On.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Br(r,t){let e=r;if(xr(r))return t===\"string\"?[]:[r.length];if(typeof r==\"object\"&&\"texture\"in r){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var kv=\"__op\";function T(r){let t=Object.keys(r);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+kv;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,\"real\",\"complex\"),n=I(t,\"imag\",\"complex\");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(typeof r==\"object\"&&\"texture\"in r){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||\"RGBA\",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\")throw new Error(\"values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray\");if(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var Ev=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function V1(r){return Ev?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(Ev)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _v(r){let t=\"/\";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function Av(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error(\"modelJSON has weightsManifest but weightSpecs is null\");if(!e)throw new Error(\"modelJSON has weightsManifest but weightData is null\");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),Av(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error(\"Expected JSON model topology, received ArrayBuffer.\");return{dateSaved:new Date,modelTopologyType:\"JSON\",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return Ce.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $v=\"tensorflowjs\",Dv=1,Uu=\"models_store\",jl=\"model_info_store\";function X1(){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"Failed to obtain IndexedDB factory because the current environmentis not a web browser.\");let r=typeof window==\"undefined\"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function Rv(r){let t=r.result;t.createObjectStore(Uu,{keyPath:\"modelPath\"}),t.createObjectStore(jl,{keyPath:\"modelPath\"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($v,Dv);s.onupgradeneeded=()=>Rv(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,\"readonly\"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,\"readwrite\"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,\"readwrite\");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME=\"indexeddb://\";var Y1=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($v,Dv);n.onupgradeneeded=()=>Rv(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,\"readonly\"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($v,Dv);o.onupgradeneeded=()=>Rv(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,\"readwrite\"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,\"readwrite\");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa=\"/\",Kp=\"tensorflowjs_models\",Z1=\"info\",R4=\"model_topology\",F4=\"weight_specs\",O4=\"weight_data\",P4=\"model_metadata\";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool(\"IS_BROWSER\")||typeof window==\"undefined\"||typeof window.localStorage==\"undefined\")throw new Error(\"The current environment does not support local storage.\");if(this.LS=window.localStorage,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME=\"localstorage://\";var tE=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool(\"IS_BROWSER\"),()=>\"Current environment is not a web browser\"),E(typeof window==\"undefined\"||typeof window.localStorage!=\"undefined\",()=>\"Current browser does not appear to support localStorage\"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>\"scheme must not be an empty string.\");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(\",\")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var Fv=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!z().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get(\"IS_BROWSER\")){z().setPlatform(\"browser\",new Fv);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},Ov;var Pv=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(Ov==null&&(Ov=B4.importFetch()),Ov(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}};z().get(\"IS_NODE\")&&!z().get(\"IS_BROWSER\")&&z().setPlatform(\"node\",new Pv);function wt(r,t=\"float32\",e){return t=t||\"float32\",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,\"x\",\"cast\");if(!ov(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,\"x\",\"clone\",\"string_or_numeric\")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}vv();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>Gv,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>Av,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>Bv,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4=\"model\",H4=\".json\",q4=\".weights.bin\";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let n=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:\"application/json\"})),i=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME=\"downloads://\";var Lv=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_v(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_v(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r=\"model\"){return new Ya(r)}function uE(r){return new Lv(r)}function Mv(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function zv(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await Mv(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await Mv(a,t.onProgress,u,l)}async function cE(r,t=\"\",e,n){return Bv(i=>zv(i,{requestInit:n}))(r,t,e)}function Bv(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4=\"application/octet-stream\",Y4=\"application/json\",sh=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc==\"function\",()=>\"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:Y4}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:X4}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await zv(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\\/\\//;function Z4(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},Vv=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new Vv(Gv(...o))}function Gv(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"),new ih({modelTopology:r})):(console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"),new ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,\"a\",\"matMul\"),s=I(t,\"b\",\"matMul\");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set(\"PROD\",!0)}function hpt(){z().set(\"DEBUG\",!0)}function gpt(){z().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function Wv(r){z().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}L1(Wv);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,\"input\",\"imag\")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,\"x\",\"neg\")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,\"input\",\"real\")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,\"x\",\"transpose\");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,\"labels\",\"confusionMatrix\"),o=I(t,\"predictions\",\"confusionMatrix\");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,\"int32\"),e),i=Ei(J(o,\"int32\"),e),a=Ot(s),u=Lt(a,i);return J(u,\"int32\")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");if(r==null)throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Hu=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Hu=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!==\"float32\"&&e.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype===\"int32\"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!==\"int32\")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>Uv});function Uv(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>qv,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var Hv=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===Hv&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==Hv),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),E(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),E(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),Kv(r,t,(n,o)=>jv(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function Kv(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function NH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?Kv(r,e,(n,o)=>n==o):Kv(r,t,(n,o)=>jv(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!jv(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function jv(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function _H(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE=\"4.0.0\";function AH(r,t){let e=I(r,\"a\",\"add\"),n=I(t,\"b\",\"add\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,\"a\",\"floorDiv\"),n=I(t,\"b\",\"floorDiv\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");if([e,n]=Ut(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,\"a\",\"mul\"),n=I(t,\"b\",\"mul\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,\"x\",\"acos\")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,\"x\",\"acosh\")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,\"x\",\"argMax\")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,\"x\",\"argMin\")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,\"x\",\"asin\")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,\"x\",\"asinh\")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,\"x\",\"atan\")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,\"a\",\"atan2\"),n=I(t,\"b\",\"atan2\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,\"x\",\"atanh\")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Yv(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=hx(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=Xv(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,$,_,A]:a===\"channelsLast\"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Xv(e),[C,N,_]=Xv(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Zv(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Zv(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Zv(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Xv(r){return typeof r==\"number\"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:\"SAME\"}}else if(r===\"valid\")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:\"VALID\"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,\"x\",\"avgPool\",\"float32\"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=ja(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return sn(e[0]);let n=e,o={axis:t};return k.runKernel(li,n,o)}var ne=T({concat_:rq});function nq(r){let e={x:I(r,\"x\",\"sigmoid\",\"float32\")};return k.runKernel(_s,e)}var Yr=T({sigmoid_:nq});function oq(r,t,e){let n=I(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return k.runKernel(gi,o,s)}var Rt=T({slice_:oq});function sq(r){let e={x:I(r,\"x\",\"tanh\",\"float32\")};return k.runKernel(Ps,e)}var $i=T({tanh_:sq});function iq(r,t,e,n,o,s){let i=I(r,\"forgetBias\",\"basicLSTMCell\"),a=I(t,\"lstmKernel\",\"basicLSTMCell\"),u=I(e,\"lstmBias\",\"basicLSTMCell\"),l=I(n,\"data\",\"basicLSTMCell\"),c=I(o,\"c\",\"basicLSTMCell\"),p=I(s,\"h\",\"basicLSTMCell\"),m=ne([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),_=X(D(Yr(b),$i(w)),D(c,Yr(X(i,C)))),A=D($i(_),Yr(N));return[_,A]}var BE=T({basicLSTMCell_:iq});function aq(r,t,e){let n=I(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);E(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),E(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),E(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ai,s,i)}var Zl=T({batchToSpaceND_:aq});function VE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function lq(r,t,e,n,o,s){s==null&&(s=.001);let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),E(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),E(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:VE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(os,m,f);return R(d,i.shape)}var Di=T({batchNorm_:lq});function uq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),E(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var xx=T({batchNorm2d_:uq});function cq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),E(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var yx=T({batchNorm3d_:cq});function pq(r,t,e,n,o,s){let i=I(r,\"x\",\"batchNorm\"),a=I(t,\"mean\",\"batchNorm\"),u=I(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=I(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=I(n,\"offset\",\"batchNorm\")),E(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),E(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var bx=T({batchNorm4d_:pq});function mq(r,t,e){let n=I(r,\"x\",\"bincount\"),o=I(t,\"weights\",\"bincount\");E(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(up,s,i)}var wx=T({bincount_:mq});function fq(r,t){let e=I(r,\"s0\",\"broadcastArgs\",\"int32\"),n=I(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(cp,o)}var GE=T({broadcastArgs_:fq});function dq(r,t){let e=I(r,\"broadcastTo\",\"x\"),n=e.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return sn(e);let a={x:e},u={reps:s};return k.runKernel(Jn,a,u)}var Ri=T({broadcastTo_:dq});function hq(r){let e={x:I(r,\"x\",\"ceil\",\"float32\")};return k.runKernel(qo,e)}var Cx=T({ceil_:hq});function xo(r,t,e){let n={shape:r,value:t,dtype:e};return k.runKernel(Dl,{},n)}function gq(r,t,e){let n=I(r,\"x\",\"clipByValue\");if(E(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return xo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(uo,o,s)}var Cr=T({clipByValue_:gq});function xq(r){return ne(r,0)}var Ix=T({concat1d_:xq});function yq(r,t){return ne(r,t)}var Sx=T({concat2d_:yq});function bq(r,t){return ne(r,t)}var vx=T({concat3d_:bq});function wq(r,t){return ne(r,t)}var Nx=T({concat4d_:wq});function Cq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"conv2d\",\"float32\"),u=I(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Ko,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var In=T({conv2d_:Cq});function Iq(r,t,e,n,o=\"NWC\",s=1,i){let a=I(r,\"x\",\"conv1d\"),u=I(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),E(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),E(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie(\"conv1d\",n,i),E(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),E(Ar(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),E(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=In(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var Qp=T({conv1d_:Iq});function Sq(r,t,e,n,o,s=\"NHWC\",i){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),E(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),E(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),E(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];E(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),E(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(jo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var tm=T({conv2DBackpropInput_:Sq});function vq(r,t,e,n,o,s){let i=I(r,\"x\",\"conv2dTranspose\"),a=I(t,\"filter\",\"conv2dTranspose\");return tm(e,i,a,n,o,\"NHWC\",s)}var em=T({conv2dTranspose_:vq});function Nq(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=I(r,\"x\",\"conv3d\"),a=I(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),E(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),E(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),E(Ar(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),E(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Al,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Tx=T({conv3d_:Nq});function Tq(r,t,e,n,o){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),E(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),E(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),E(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(dp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3DBackpropInput_:Tq});function kq(r,t,e,n,o){let s=I(r,\"x\",\"conv3dTranspose\"),i=I(t,\"filter\",\"conv3dTranspose\");return kx(e,s,i,n,o)}var Ex=T({conv3dTranspose_:kq});function Eq(r){let e={x:I(r,\"x\",\"cos\",\"float32\")};return k.runKernel(Xo,e)}var Jl=T({cos_:Eq});function _q(r){let e={x:I(r,\"x\",\"cosh\",\"float32\")};return k.runKernel(Yo,e)}var rm=T({cosh_:_q});function Aq(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(fa,s,i)}var Xu=T({cumprod_:Aq});function $q(r,t=0,e=!1,n=!1){let s={x:I(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Zo,s,i)}var nm=T({cumsum_:$q});function Dq(r,t,e,n=!1){let o=I(r,\"x\",\"denseBincount\"),s=I(t,\"weights\",\"denseBincount\");E(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),E(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(hp,i,a)}var ch=T({denseBincount_:Dq});function Rq(r,t,e=\"NHWC\"){let n=I(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];E(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),E(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,\"x\",\"diag\")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=I(r,\"x\",\"dilation2d\"),a=I(t,\"filter\",\"dilation2d\");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,\"a\",\"equal\",\"string_or_numeric\"),n=I(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,\"a\",\"where\"),o=I(e,\"b\",\"where\"),s=I(r,\"condition\",\"where\",\"bool\"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,\"x\",\"zerosLike\")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,\"a\",\"div\"),n=I(t,\"b\",\"div\");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,\"t1\",\"dot\"),n=I(t,\"t2\",\"dot\");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,\"einsum\")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,\"x\",\"elu\",\"float32\")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,\"x\",\"erf\");E(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function Jv(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(Jv(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function t0(r,t){if(Jv(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,\"x\",\"expm1\")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,\"x\",\"tile\",\"string_or_numeric\");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),E(na(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Rl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zx=T({localResponseNormalization_:gK});function xK(r){let e={x:I(r,\"x\",\"log\",\"float32\")};return k.runKernel(as,e)}var Sr=T({log_:xK});function yK(r){let e={x:I(r,\"x\",\"log1p\")};return k.runKernel(ka,e)}var tu=T({log1p_:yK});function bK(r){return E(oi(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=I(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grad\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Vx(i),i[0]})}}function wK(r){return E(oi(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{E(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=ja(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?I(e,\"dy\",\"tf.grads\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(i),i})}}function CK(r){return E(oi(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{E(t instanceof Ft,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Vx(n),{grad:n[0],value:o}}}function IK(r){return E(oi(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{E(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),E(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=k.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Vx(n.grads),n}}function Bx(r,t){E(oi(r),()=>\"The f passed in variableGrads(f) must be a function\"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ka),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),E(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);E(a.some(l=>l!=null),()=>\"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().\"),E(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function un(r){return k.customGrad(r)}function Vx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.`)}function SK(r){let e={x:I(r,\"x\",\"softplus\")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,\"x\",\"logSigmoid\");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,\"a\",\"sub\"),n=I(t,\"b\",\"sub\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,\"float32\"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,\"x\",\"logSumExp\"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,\"a\",\"logicalAnd\",\"bool\"),n=I(t,\"b\",\"logicalAnd\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,\"x\",\"logicalNot\",\"bool\")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,\"a\",\"logicalOr\",\"bool\"),n=I(t,\"b\",\"logicalOr\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,\"a\",\"logicalXor\",\"bool\"),n=I(t,\"b\",\"logicalXor\",\"bool\");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e=\"left\"){let n=I(r,\"sortedSequence\",\"searchSorted\"),o=I(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,\"left\")}function RK(r,t,e,n,o){let s=I(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=I(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,\"a\",\"maximum\"),n=I(t,\"b\",\"maximum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t=\"float32\"){if(t===\"complex64\"){let n=Ne(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t=\"float32\"){if(t===\"complex64\"){let n=cr(r,\"float32\"),o=Ne(r,\"float32\");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,\"x\",\"meshgrid\",r instanceof Ft?r.dtype:\"float32\");if(t===void 0)return[n];let o=I(t,\"y\",\"meshgrid\",t instanceof Ft?t.dtype:\"float32\"),s=Jt(n.shape),i=Jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,\"a\",\"minimum\"),n=I(t,\"b\",\"minimum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,\"a\",\"mod\"),n=I(t,\"b\",\"mod\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,\"x\",\"moments\");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,\"float32\"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,\"data\",\"multiRNNCell\"),s=ja(e,\"c\",\"multiRNNCell\"),i=ja(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=I(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,\"x\",\"onesLike\")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,\"v1\",\"outerProduct\"),n=I(t,\"v2\",\"outerProduct\");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,\"x\",\"spaceToBatchND\");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=I(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Yv(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:nu(u,p,d),w=(e===\"avg\"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,\"x\",\"prelu\"),n=I(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=I(t,\"paramsDenseValues\",\"raggedGather\"),i=I(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,\"starts\",\"raggedRange\"),o=I(t,\"limits\",\"raggedRange\",n.dtype),s=I(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=I(t,\"values\",\"raggedTensorToTensor\"),a=I(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n=\"float32\",o){if(e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,\"x\",\"reverse\");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,\"x\",\"round\")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,\"x\",\"rsqrt\",\"float32\")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,\"x\",\"selu\")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=I(r,\"x\",\"separableConv2d\"),u=I(t,\"depthwiseFilter\",\"separableConv2d\"),l=I(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i===\"NCHW\")throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,\"x\",\"setdiff1d\"),n=I(t,\"y\",\"setdiff1d\");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,\"x\",\"slice2d\");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,\"x\",\"slice3d\");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,\"x\",\"slice4d\");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,\"a\",\"squaredDifference\"),n=I(t,\"b\",\"squaredDifference\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,tv(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,\"tensors\",\"stack\",\"string_or_numeric\");E(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&E(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,\"x\",\"step\")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,\"x\",\"tan\",\"float32\")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,\"x\",\"topk\");if(n.rank===0)throw new Error(\"topk() expects the input to be of rank 1 or higher\");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,\"x\",\"unsortedSegmentSum\"),o=I(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");E(na(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,\"x\",\"unstack\",\"string_or_numeric\");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,\"right\")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),$e(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;h\"Shape mismatch in v and x\");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=I(n,\"step\",\"movingAverage\");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,\"indices\",\"scatterND\",\"int32\"),o=I(t,\"updates\",\"scatterND\");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!==\"int32\")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function u6(r,t,e,n=0){let o=I(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=I(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=I(n,\"defaultValue\",\"sparseToDense\",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,\"indices\",\"gatherND\",\"int32\"),o={params:I(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,\"float32\",n),i)),i);return D(o,a)}var l0=T({dropout_:f6});function u0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=ev(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Fr(r);if(t===\"elu\")return Oi(r);if(t===\"relu6\")return lm(r);if(t===\"prelu\")return ou(r,e);if(t===\"leakyrelu\")return Ql(r,n);if(t===\"sigmoid\")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t===\"linear\";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",sc(k.state.gradientDepth,u)===!1){E(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,\"x\",\"conv2d\",\"float32\"),m=I(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,\"bias\",\"fused conv2d\"),[x]=Ut(x,p),o===\"NHWC\"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,\"prelu weights\",\"fused conv2d\")}let w=(_,A)=>{E(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=I(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie(\"fused depthwiseConv2d\",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,\"bias\",\"fused conv2d\"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,\"a\",\"fused matMul\"),l=I(t,\"b\",\"fused matMul\");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,\"bias\",\"fused matMul\"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,\"prelu weights\",\"fused matMul\"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,\"image\",\"flipLeftRight\",\"float32\");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,\"image\",\"rotateWithOffset\",\"float32\");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>\"scores must be a 1D tensor\"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=I(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return c0(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return c0(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return c0(r,t,e,n,o,s,!0)}function c0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=I(t,\"scores\",\"nonMaxSuppressionAsync\"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,\"int32\")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,\"int32\"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppression\"),a=I(t,\"scores\",\"nonMaxSuppression\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=I(t,\"scores\",\"nonMaxSuppressionAsync\"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeBilinear\");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,\"images\",\"resizeNearestNeighbor\");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),E(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t=\"binary\",e=!1,n=.5){let o=I(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=wx(J(um(f),\"int32\"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),\"int32\")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>\"Error in transform: Input transform should be batch x 8 or 1 x 8\"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,\"a\",\"bandPart\");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,\"int32\"),[-1,1]),u=su(0,i,1,\"int32\"),l=ct(a,u),c=Rr(Ln(l,mt(+t,\"int32\")),ln(l,mt(-e,\"int32\"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]=\"NONE\",r[r.MEAN=1]=\"MEAN\",r[r.SUM=2]=\"SUM\",r[r.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=I(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),\"float32\");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"absoluteDifference\"),s=I(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=I(e,\"weights\",\"absoluteDifference\")),$e(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"cosineDistance\"),i=I(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=I(n,\"weights\",\"cosineDistance\")),$e(s.shape,i.shape,\"Error in cosineDistance: \");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"hingeLoss\"),s=I(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=I(e,\"weights\",\"hingeLoss\")),$e(o.shape,s.shape,\"Error in hingeLoss: \");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"huberLoss\"),i=I(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"huberLoss\")),$e(s.shape,i.shape,\"Error in huberLoss: \");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"labels\",\"logLoss\"),i=I(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=I(e,\"weights\",\"logLoss\")),$e(s.shape,i.shape,\"Error in logLoss: \");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,\"labels\",\"meanSquaredError\"),s=I(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=I(e,\"weights\",\"meanSquaredError\")),$e(o.shape,s.shape,\"Error in meanSquaredError: \");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=I(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");$e(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=I(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"sigmoidCrossEntropy\")),$e(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,\"float32\"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,\"float32\"),er(g))),D(R(f,x),ct(er(g),J(h,\"float32\")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=I(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=I(e,\"weights\",\"softmaxCrossEntropy\")),$e(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=I(t,\"values\",\"sparseFillEmptyRows\"),i=I(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=I(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(Pl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var dA=T({sparseFillEmptyRows_:iX});function aX(r,t,e){let n=I(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=I(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=I(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var hA=T({sparseReshape_:aX});function lX(r,t,e){let n=I(r,\"data\",\"sparseSegmentMean\"),o=I(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ll,i)}var gA=T({sparseSegmentMean_:lX});function uX(r,t,e){let n=I(r,\"data\",\"sparseSegmentSum\"),o=I(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=I(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,\"input\",\"stringSplit\",\"string\"),o=I(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},p0={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:mt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className=\"Adadelta\";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className=\"Adagrad\";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className=\"Adam\";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){throw new Error(\"setWeights() is not implemented for Adamax yet.\")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className=\"Adamax\";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className=\"SGD\";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className=\"Momentum\";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className=\"RMSProp\";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>f0,SELU_SCALEALPHA:()=>m0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>Jv,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Zv,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Qv,computeOutShape:()=>wX,computePool2DInfo:()=>Yv,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>t0,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>h0,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>Uv,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",qX=/->/g,CA=\",\",IA=\"...\";function KX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(qX,\"\").length)/d0.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${d0}\").`);let[n,o]=r.split(d0);E(n.indexOf(IA)===-1,()=>`The ellipsis notation (\"${IA}\") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function e5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function r5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function n5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function o5(r,t){return`size ${r} must be non-negative, not ${t}`}function s5(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function i5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return\"segment ids must be >= 0\"}function u5(){return\"segment ids are not increasing\"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var h0={};Wt(h0,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,\"float32\"),-1))}}};var SA={kernelName:oa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,\"float32\")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,\"float32\")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,\"float32\")))))}}};var AA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,\"float32\"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,\"float32\")),1))}}};var RA={kernelName:pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,\"float32\"))))}}};function x5(r,t,e,n,o,s){let i=I(r,\"dy\",\"avgPool3dGrad\"),a=I(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,\"dy\",\"avgPoolGrad\"),i=I(t,\"input\",\"avgPoolGrad\");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:[\"x\"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,\"float32\"))),r)}}};var ZA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,\"float32\")),r)}}};var JA={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=t0([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie(\"depthwiseConv2d\",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var l2={kernelName:os,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,\"float32\")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,\"float32\"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var g0={kernelName:ls,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),\"float32\")),b:()=>D(r,J(om(e,n),\"float32\"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPool3dGrad\"),u=I(t,\"input\",\"maxPool3dGrad\"),l=I(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,\"dy\",\"maxPoolGrad\"),u=I(t,\"input\",\"maxPoolGrad\"),l=I(e,\"output\",\"maxPoolGrad\");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Qv(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,\"float32\")),u)}}}};var _2={kernelName:ms,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),\"float32\")),b:()=>D(r,J(Re(e,n),\"float32\"))}}};var $2={kernelName:ds,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,\"float32\")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var x0={kernelName:xs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var G2={kernelName:Pa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,\"float32\"))}}};var U2={kernelName:Cs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),\"float32\"))}}};var H2={kernelName:di,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),\"float32\"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(m0),s=mt(f0),i=D(r,s),a=D(D(r,o),er(J(e,\"float32\")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,\"float32\")),r)}}};var r$={kernelName:za,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,\"float32\")),r)}}};var n$={kernelName:gi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=qv(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var y0={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var b0={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,\"float32\")),2))}}};var a$={kernelName:zl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,\"float32\"),2))}}};var l$={kernelName:Rs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,\"float32\"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,g0,g0,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,x0,x0,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,y0,y0,b0,b0,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function w0(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>w0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:w0(n))}}}function Gi(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new M(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Co?[a,u]=Co.className:i in t&&([a,u]=t[i]),a==null)throw new M(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];w0(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>w$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function v0(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function T0(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?N0(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?N0(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,\"int32\"):t=J(t,\"int32\"),Li(r,t,e)))}function lc(r){return D(r,r)}function N0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,N0(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>l0(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=[\"fanIn\",\"fanOut\",\"fanAvg\"],M$=[\"normal\",\"uniform\",\"truncatedNormal\"];function $5(r){Wi(L$,\"FanMode\",r)}function D5(r){Wi(M$,\"Distribution\",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className=\"Zeros\";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className=\"Ones\";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!=\"object\")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className=\"Constant\";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className=\"RandomUniform\";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className=\"RandomNormal\";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className=\"TruncatedNormal\";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M(\"Identity matrix initializer can only be used for 2D square matrices.\");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className=\"Identity\";Q.registerClass(Dm);function R5(r,t=\"channelsLast\"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,$5(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className=\"VarianceScaling\";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className=\"GlorotUniform\";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className=\"GlorotNormal\";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className=\"HeNormal\";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className=\"HeUniform\";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className=\"LeCunNormal\";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className=\"LeCunNormal\";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return B(()=>{if(t.length<2)throw new St(\"Shape must be at least 2D.\");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,\"float32\"),s=p0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className=\"Orthogonal\";Q.registerClass(Rm);var z$={constant:\"Constant\",glorotNormal:\"GlorotNormal\",glorotUniform:\"GlorotUniform\",heNormal:\"HeNormal\",heUniform:\"HeUniform\",identity:\"Identity\",leCunNormal:\"LeCunNormal\",leCunUniform:\"LeCunUniform\",ones:\"Ones\",orthogonal:\"Orthogonal\",randomNormal:\"RandomNormal\",randomUniform:\"RandomUniform\",truncatedNormal:\"TruncatedNormal\",varianceScaling:\"VarianceScaling\",zeros:\"Zeros\"};function B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"initializer\")}function Te(r){return Sm(r)}function de(r){if(typeof r==\"string\"){let t=r in z$?z$[r]:r;if(t===\"GlorotNormal\")return new cc;if(t===\"GlorotUniform\")return new uc;if(t===\"HeNormal\")return new pc;if(t===\"HeUniform\")return new mc;if(t===\"LeCunNormal\")return new fc;if(t===\"LeCunUniform\")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$=\"Variable\",Ch=class{constructor(t,e=\"float32\",n=G$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let e=t.name;if(!e){let n=this.getClassName();e=So(n)+\"_\"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer input\" is ill-defined. Use \\`getInputAt(nodeIndex)\\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return Nr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error(\"Cannot call the resetStates() method of a non-stateful Layer object.\")}assertInputCompatibility(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of \"output shape\" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return\"float32\"}function k0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function E0(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className=\"MaxNorm\";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),E0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className=\"UnitNorm\";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className=\"NonNeg\";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className=\"MinMaxNorm\";Q.registerClass(Bm);var H$={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>G0,averagePooling2d:()=>W0,averagePooling3d:()=>U0,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>P0,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M(\"Duplicate callback constructor.\")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _0,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Sh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,\"float32\"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),\"int32\");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r==\"string\"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),\"float32\"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),\"float32\"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),\"float32\"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),\"float32\"))}function A0(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),\"float32\")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$0=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:A0,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$0,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r==\"string\"&&r in Gy)return Gy[r];if(typeof r!=\"string\"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function R0(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!D0(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model \"${t}\" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function D0(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!D0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!D0(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function rD(r,t,e,n=console.log){let o=A8(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),Hy(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,\"input layer has >1 nodes\"),ro(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${C.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M(\"Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.\");if(!this.trainable)return[];let t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split(\"/\");a=u.slice(0,-2).concat([u[u.length-1]]).join(\"/\")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M(\"Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.\");for(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r==\"object\"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]==\"object\"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,\"classWeight\")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,\"float32\")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \\`{xs: xVal, ys: yVal}\\`, where the two values may be \\`tf.Tensor\\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=sD(\"input\",r.inputNames,e),i=sD(\"output\",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>\"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.\"),r.isTraining)throw new Error(\"Cannot start training because another fit() call is ongoing.\");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \\`batches\\` batches (in this case, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M(\"Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.\");let g=r.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St(\"validationData including sample weights is not supported yet.\"):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>\"val_\"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function F0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function O0(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!O0(r)}function mD(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(O0(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(O0(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=F0(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8=\"layers-model\",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M(\"This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).\");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Th:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Uy:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=$0):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=kh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Eh);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn(\"Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?\")}evaluate(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St(\"Verbose predictLoop() is not implemented yet.\");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=F0(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new St(\"Verbose mode is not implemented yet.\");if(s!=null)throw new St(\"steps mode in testLoop() is not implemented yet\");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1){let i=C0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=So(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss==\"string\")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(R0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){R0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className=\"Model\";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className=\"Functional\";Q.registerClass(Jy);async function dD(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");if(n.inputs.length!==1)throw new M(\"All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.\")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=k0(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))throw new TypeError(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError(\"There are no layers in the model.\");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError(\"Sequential model cannot be built: model is empty. Add some layers first.\");this.model=new Bn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+\"_model\"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new M(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.layers!=null,()=>\"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.\"),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M(\"Cannot get the stopTraining property of a sequential model before it is compiled.\");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className=\"Sequential\";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function P0(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className=\"elu\";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className=\"selu\";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className=\"relu\";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className=\"relu6\";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className=\"linear\";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className=\"sigmoid\";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className=\"hardSigmoid\";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className=\"softplus\";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className=\"softsign\";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className=\"tanh\";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className=\"softmax\";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className=\"logSoftmax\";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className=\"swish\";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className=\"mish\";Q.registerClass(pb);function js(r){return r.getClassName()}function L0(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function Xs(r){if(r==null){let t={};return t.className=\"linear\",t.config={},L0(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},L0(t)}else return r instanceof Qr?r:L0(r)}function M0(r){if(r!=null&&typeof r!=\"object\")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),M0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className=\"L1L2\";Q.registerClass(wu);function yD(r){return M0(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return M0(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:\"L1L2\"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className=\"ReLU\";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className=\"LeakyReLU\";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,1]):r))}function z0(r,t){return B(()=>(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Ot(r,[0,2,1])),o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=Qp(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=z0(r,s);if(o===\"causal\")throw new St(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=Tx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=fn(a,e)),s===\"channelsFirst\"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",bc.verifyArgs(e),this.rank=t,Ze(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,\"kernelSize\"),this.strides=Cu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,\"dilationRate\"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,\"filters\"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className=\"Conv2D\";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className=\"Conv3D\";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"float32\",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],\"float32\",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className=\"Conv2DTranspose\";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new M(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"float32\",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],\"float32\",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className=\"Conv3DTranspose\";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className=\"SeparableConv\";var ef=class extends fb{constructor(t){super(2,t)}};ef.className=\"SeparableConv2D\";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Cy(t.kernelSize,\"number\",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className=\"Conv1D\";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat===\"channelsLast\"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className=\"Cropping2D\";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className=\"UpSampling2D\";Q.registerClass(nf);function J8(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className=\"DepthwiseConv2D\";Q.registerClass(of);function B0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function V0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St(\"The rnn() functoin of the deeplearn.js backend does not support constants yet.\");i&&console.warn(\"Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape[0];if(n==null)throw new M(\"If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \\n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.\");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn(\"Ignoring unroll = true for RNN layer, due to imperative backend.\");let a={training:o},l=V0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className=\"RNN\";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight(\"kernel\",[t[t.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className=\"SimpleRNNCell\";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className=\"SimpleRNN\";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new M(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className=\"GRU\";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return T0(T0(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className=\"LSTM\";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M(\"If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \\n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.\");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className=\"ConvRNN2D\";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,\"filters\"),this.kernelSize=Cu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Ze(u,\"kernelSize\")),this.strides=Cu(o||1,2,\"strides\"),this.strides.forEach(u=>Ze(u,\"strides\")),this.padding=s||\"valid\",pn(this.padding),this.dataFormat=i||\"channelsLast\",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Ze(u,\"dilationRate\"))}build(t){var e;t=Bt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Sc.className=\"ConvLSTM2DCell\";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className=\"ConvLSTM2D\";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className=\"Dropout\";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className=\"SpatialDropout1D\";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,\"units\"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className=\"Dense\";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className=\"Activation\";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className=\"RepeatVector\";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className=\"Reshape\";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className=\"Permute\";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className=\"Masking\";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Ze(this.outputDim,\"outputDim\"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!==\"int32\"&&(n=no(n,\"int32\"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className=\"Embedding\";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an Array\");if(!Array.isArray(t))throw new M(\"`inputs` should be an Array\");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new M(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St(\"batchDot is not implemented for tensors of 4D or higher rank yet\");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new St(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className=\"Dot\";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className=\"GaussianNoise\";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className=\"GaussianDropout\";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className=\"AlphaDropout\";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=de(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className=\"BatchNormalization\";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis==\"number\"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M(\"spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.\");if(e==null&&(e=mn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className=\"ZeroPadding2D\";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=Ah(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=mn()),s==null&&(s=\"max\"),r=z0(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Df.className=\"MaxPooling1D\";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Rf.className=\"AveragePooling1D\";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"max\")}};Ff.className=\"MaxPooling2D\";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,\"avg\")}};Of.className=\"AveragePooling2D\";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,\"poolSize\"),Ze(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"max\")}};Pf.className=\"MaxPooling3D\";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,\"avg\")}};Lf.className=\"AveragePooling3D\";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className=\"GlobalAveragePooling1D\";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className=\"GlobalMaxPooling1D\";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className=\"GlobalAveragePooling2D\";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat===\"channelsLast\"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className=\"GlobalMaxPooling2D\";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),V0((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className=\"TimeDistributed\";Q.registerClass(Gf);function sY(r){Wi(T$,\"BidirectionalMergeMode\",r)}var iY=\"concat\",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M(\"When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.\");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode===\"concat\"?a=Nm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=D(.5,X(o,s)):this.mergeMode===\"mul\"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Wf.className=\"Bidirectional\";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!==\"float32\"&&(t=no(t,\"float32\")),X(D(t,this.scale),this.offset)))}};Uf.className=\"Rescaling\";Q.registerClass(Uf);var aY=[\"bilinear\",\"nearest\"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className=\"Resizing\";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!==\"int32\"&&(o=no(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!==\"tfIdf\")return u;if(n)return D(u,n);throw new M(\"When outputMode is 'tfIdf', weights must be provided.\")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!==\"int32\"&&(t=no(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new M(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className=\"CategoryEncoding\";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function G0(r){return new Rf(r)}function UY(r){return G0(r)}function HY(r){return G0(r)}function W0(r){return new Of(r)}function qY(r){return W0(r)}function KY(r){return W0(r)}function U0(r){return new Lf(r)}function jY(r){return U0(r)}function XY(r){return U0(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return A0(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.baseline,[\"auto\",\"min\",\"max\"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode=\"auto\"),this.mode===\"min\"?this.monitorFunc=Ib:this.mode===\"max\"?this.monitorFunc=DD:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var oo;(function(r){r[r.DT_INVALID=0]=\"DT_INVALID\",r[r.DT_FLOAT=1]=\"DT_FLOAT\",r[r.DT_DOUBLE=2]=\"DT_DOUBLE\",r[r.DT_INT32=3]=\"DT_INT32\",r[r.DT_UINT8=4]=\"DT_UINT8\",r[r.DT_INT16=5]=\"DT_INT16\",r[r.DT_INT8=6]=\"DT_INT8\",r[r.DT_STRING=7]=\"DT_STRING\",r[r.DT_COMPLEX64=8]=\"DT_COMPLEX64\",r[r.DT_INT64=9]=\"DT_INT64\",r[r.DT_BOOL=10]=\"DT_BOOL\",r[r.DT_QINT8=11]=\"DT_QINT8\",r[r.DT_QUINT8=12]=\"DT_QUINT8\",r[r.DT_QINT32=13]=\"DT_QINT32\",r[r.DT_BFLOAT16=14]=\"DT_BFLOAT16\",r[r.DT_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",r[r.DT_FLOAT_REF=101]=\"DT_FLOAT_REF\",r[r.DT_DOUBLE_REF=102]=\"DT_DOUBLE_REF\",r[r.DT_INT32_REF=103]=\"DT_INT32_REF\",r[r.DT_UINT8_REF=104]=\"DT_UINT8_REF\",r[r.DT_INT16_REF=105]=\"DT_INT16_REF\",r[r.DT_INT8_REF=106]=\"DT_INT8_REF\",r[r.DT_STRING_REF=107]=\"DT_STRING_REF\",r[r.DT_COMPLEX64_REF=108]=\"DT_COMPLEX64_REF\",r[r.DT_INT64_REF=109]=\"DT_INT64_REF\",r[r.DT_BOOL_REF=110]=\"DT_BOOL_REF\",r[r.DT_QINT8_REF=111]=\"DT_QINT8_REF\",r[r.DT_QUINT8_REF=112]=\"DT_QUINT8_REF\",r[r.DT_QINT32_REF=113]=\"DT_QINT32_REF\",r[r.DT_BFLOAT16_REF=114]=\"DT_BFLOAT16_REF\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var H0={};function UZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};H0[r]=e}function Nb(r){return H0[r]}function HZ(r){delete H0[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type===\"tensor\")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type===\"number\"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(\":\");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S(\"pad\",r,t,e);if(n===\"explicit\"){n=S(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var q0={};Wt(q0,{json:()=>qZ});var qZ=[{tfOpName:\"Add\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AddV2\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AddN\",category:\"arithmetic\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}]},{tfOpName:\"BiasAdd\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"Sub\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"RealDiv\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Div\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"DivNoNan\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"FloorDiv\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Mul\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Maximum\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Minimum\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Pow\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SquaredDifference\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Mod\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"FloorMod\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var K0={};Wt(K0,{json:()=>KZ});var KZ=[{tfOpName:\"Abs\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Acos\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Asin\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atan2\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Ceil\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ClipByValue\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"clipValueMin\",type:\"number\"},{start:2,name:\"clipValueMax\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Complex\",category:\"basic_math\",inputs:[{start:0,name:\"real\",type:\"tensor\"},{start:1,name:\"imag\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ComplexAbs\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cos\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cosh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Elu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Exp\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Floor\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Log\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Imag\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"outputType\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Neg\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Real\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"outputType\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Prelu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"alpha\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Relu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Relu6\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Selu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sigmoid\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sin\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sinh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sqrt\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Rsqrt\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Square\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Tan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Tanh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sign\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Round\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Expm1\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Log1p\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Reciprocal\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Softplus\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Asinh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Acosh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atanh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Erf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Prod\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axes\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LeakyRelu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"alpha\",name:\"alpha\",type:\"number\",defaultValue:.2},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var j0={};Wt(j0,{json:()=>jZ});var jZ=[{tfOpName:\"EmptyTensorList\",category:\"control\",inputs:[{start:0,name:\"elementShape\",type:\"shape\"},{start:1,name:\"maxNumElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"LoopCond\",category:\"control\",inputs:[{start:0,name:\"pred\",type:\"tensor\"}]},{tfOpName:\"Switch\",category:\"control\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"pred\",type:\"tensor\"}]},{tfOpName:\"Merge\",category:\"control\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}]},{tfOpName:\"Enter\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"frame_name\",name:\"frameName\",type:\"string\"},{tfName:\"is_constant\",name:\"isConstant\",type:\"bool\"}]},{tfOpName:\"Exit\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"NextIteration\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayV3\",category:\"control\",inputs:[{start:0,name:\"size\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"dynamic_size\",name:\"dynamicSize\",type:\"bool\"},{tfName:\"clear_after_read\",name:\"clearAfterRead\",type:\"bool\"},{tfName:\"identical_element_shapes\",name:\"identicalElementShapes\",type:\"bool\"},{tfName:\"tensor_array_name\",name:\"name\",type:\"string\"}]},{tfOpName:\"TensorArrayWriteV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"tensor\",type:\"tensor\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayReadV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayGatherV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"}]},{tfOpName:\"TensorArrayScatterV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"tensor\",type:\"tensor\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TensorArrayConcatV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape_except0\",name:\"elementShapeExcept0\",type:\"shape\",notSupported:!0}]},{tfOpName:\"TensorArraySplitV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"tensor\",type:\"tensor\"},{start:2,name:\"lengths\",type:\"number[]\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TensorArraySizeV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"flowIn\",type:\"number\"}]},{tfOpName:\"TensorArrayCloseV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"}]},{tfOpName:\"StatelessIf\",category:\"control\",inputs:[{start:0,name:\"cond\",type:\"tensor\"},{start:1,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"then_branch\",name:\"thenBranch\",type:\"func\"},{tfName:\"else_branch\",name:\"elseBranch\",type:\"func\"}]},{tfOpName:\"If\",category:\"control\",inputs:[{start:0,name:\"cond\",type:\"tensor\"},{start:1,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"then_branch\",name:\"thenBranch\",type:\"func\"},{tfName:\"else_branch\",name:\"elseBranch\",type:\"func\"}]},{tfOpName:\"StatelessWhile\",category:\"control\",inputs:[{start:0,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"cond\",name:\"cond\",type:\"func\"},{tfName:\"body\",name:\"body\",type:\"func\"}]},{tfOpName:\"While\",category:\"control\",inputs:[{start:0,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"cond\",name:\"cond\",type:\"func\"},{tfName:\"body\",name:\"body\",type:\"func\"}]},{tfOpName:\"TensorListScatter\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListScatterV2\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"},{start:3,name:\"numElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListGather\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListGetItem\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListSetItem\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListReserve\",category:\"control\",inputs:[{start:0,name:\"elementShape\",type:\"shape\"},{start:1,name:\"numElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListFromTensor\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListStack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"},{tfName:\"num_elements\",name:\"numElements\",type:\"dtype\"}]},{tfOpName:\"TensorListSplit\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"},{start:2,name:\"lengths\",type:\"number[]\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListConcat\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}],attrs:[{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListConcatV2\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}],attrs:[{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListPopBack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListPushBack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var X0={};Wt(X0,{json:()=>XZ});var XZ=[{tfOpName:\"AvgPool\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPool\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[],notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPoolWithArgmax\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"include_batch_in_index\",name:\"includeBatchInIndex\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AvgPool3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPool3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Conv1D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"stride\",name:\"stride\",type:\"number\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NWC\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"dilation\",name:\"dilation\",type:\"number\",defaultValue:1}]},{tfOpName:\"Conv2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"useCudnnOnGpu\",name:\"useCudnnOnGpu\",type:\"bool\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"_FusedConv2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"use_cudnn_on_gpu\",name:\"useCudnnOnGpu\",type:\"bool\",defaultValue:!0},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",defaultValue:[1,1,1,1]},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:1e-4},{tfName:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2}]},{tfOpName:\"Conv2DBackpropInput\",category:\"convolution\",inputs:[{start:2,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:0,name:\"outputShape\",type:\"number[]\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",notSupported:!0}]},{tfOpName:\"DepthwiseConv2d\",category:\"convolution\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"DepthwiseConv2dNative\",category:\"convolution\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"FusedDepthwiseConv2dNative\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",defaultValue:[1,1,1,1]},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]}]},{tfOpName:\"Conv3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"Dilation2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"rates\",name:\"dilations\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"}]}];var Y0={};Wt(Y0,{json:()=>YZ});var YZ=[{tfOpName:\"Fill\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"},{start:1,name:\"value\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"LinSpace\",category:\"creation\",inputs:[{start:0,name:\"start\",type:\"number\"},{start:1,name:\"stop\",type:\"number\"},{start:2,name:\"num\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"OneHot\",category:\"creation\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"depth\",type:\"number\"},{start:2,name:\"onValue\",type:\"number\",defaultValue:1},{start:3,name:\"offValue\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Ones\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"OnesLike\",category:\"creation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"RandomUniform\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\",defaultValue:0},{tfName:\"maxval\",name:\"maxval\",type:\"number\",defaultValue:1},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"Range\",category:\"creation\",inputs:[{start:0,name:\"start\",type:\"number\"},{start:1,name:\"stop\",type:\"number\"},{start:2,name:\"step\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"Tidx\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TruncatedNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"means\",name:\"mean\",type:\"number\",defaultValue:0},{tfName:\"stddev\",name:\"stdDev\",type:\"number\",defaultValue:1},{tfName:\"seed\",name:\"seed\",type:\"number\"},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"Zeros\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"ZerosLike\",category:\"creation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Multinomial\",category:\"creation\",inputs:[{start:0,name:\"logits\",type:\"tensor\"},{start:1,name:\"numSamples\",type:\"number\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\"},{tfName:\"seed2\",name:\"seed2\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\"},{tfName:\"output_dtype\",name:\"output_dtype\",type:\"dtype\"}]}];var Z0={};Wt(Z0,{json:()=>ZZ});var ZZ=[{tfOpName:\"NonMaxSuppressionV2\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"}]},{tfOpName:\"NonMaxSuppressionV3\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"}]},{tfOpName:\"NonMaxSuppressionV4\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"T_threshold\",name:\"threshold\",type:\"dtype\",notSupported:!0},{tfName:\"pad_to_max_output_size\",name:\"padToMaxOutputSize\",type:\"bool\"}]},{tfOpName:\"NonMaxSuppressionV5\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"},{start:5,name:\"softNmsSigma\",type:\"number\"}]},{tfOpName:\"Where\",category:\"dynamic\",inputs:[{start:0,name:\"condition\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ListDiff\",category:\"dynamic\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var J0={};Wt(J0,{json:()=>JZ});var JZ=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{tfOpName:\"TopKV2\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"k\",type:\"number\"}],attrs:[{tfName:\"sorted\",name:\"sorted\",type:\"bool\"}]},{tfOpName:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{tfOpName:\"Unique\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"UniqueV2\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]}];var Q0={};Wt(Q0,{json:()=>QZ});var QZ=[{tfOpName:\"PlaceholderWithDefault\",category:\"graph\",inputs:[{start:0,name:\"default\",type:\"tensor\"}],attrs:[{tfName:\"shape\",name:\"shape\",type:\"shape\"},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Placeholder\",category:\"graph\",attrs:[{tfName:\"shape\",name:\"shape\",type:\"shape\"},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Const\",category:\"graph\"},{tfOpName:\"Identity\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"IdentityN\",category:\"graph\",inputs:[{start:0,end:0,name:\"x\",type:\"tensors\"}]},{tfOpName:\"Snapshot\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Rank\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Size\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Shape\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"ShapeN\",category:\"graph\",inputs:[{start:0,end:0,name:\"x\",type:\"tensors\"}]},{tfOpName:\"Print\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"data\",type:\"tensors\"}],attrs:[{tfName:\"message\",name:\"message\",type:\"string\"},{tfName:\"first_n\",name:\"firstN\",type:\"number\",notSupported:!0},{tfName:\"summarize\",name:\"summarize\",type:\"number\",defaultValue:3}]},{tfOpName:\"NoOp\",category:\"graph\",inputs:[]},{tfOpName:\"StopGradient\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"FakeQuantWithMinMaxVars\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"min\",name:\"min\",type:\"number\"},{tfName:\"max\",name:\"max\",type:\"number\"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{tfOpName:\"HashTable\",category:\"hash_table\",inputs:[],attrs:[{tfName:\"shared_name\",name:\"sharedName\",type:\"string\"},{tfName:\"use_node_name_sharing\",name:\"useNodeNameSharing\",type:\"bool\"},{tfName:\"key_dtype\",name:\"keyDType\",type:\"dtype\"},{tfName:\"value_dtype\",name:\"valueDType\",type:\"dtype\"}]},{tfOpName:\"HashTableV2\",category:\"hash_table\",inputs:[],attrs:[{tfName:\"shared_name\",name:\"sharedName\",type:\"string\"},{tfName:\"use_node_name_sharing\",name:\"useNodeNameSharing\",type:\"bool\"},{tfName:\"key_dtype\",name:\"keyDType\",type:\"dtype\"},{tfName:\"value_dtype\",name:\"valueDType\",type:\"dtype\"}]},{tfOpName:\"LookupTableImport\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableImportV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableFind\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableFindV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableSize\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"}]},{tfOpName:\"LookupTableSizeV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{tfOpName:\"ResizeBilinear\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"size\",type:\"number[]\"}],attrs:[{tfName:\"align_corners\",name:\"alignCorners\",type:\"bool\"},{tfName:\"half_pixel_centers\",name:\"halfPixelCenters\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ResizeNearestNeighbor\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"size\",type:\"number[]\"}],attrs:[{tfName:\"align_corners\",name:\"alignCorners\",type:\"bool\"},{tfName:\"half_pixel_centers\",name:\"halfPixelCenters\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"CropAndResize\",category:\"image\",inputs:[{start:0,name:\"image\",type:\"tensor\"},{start:1,name:\"boxes\",type:\"tensor\"},{start:2,name:\"boxInd\",type:\"tensor\"},{start:3,name:\"cropSize\",type:\"number[]\"}],attrs:[{tfName:\"method\",name:\"method\",type:\"string\"},{tfName:\"extrapolation_value\",name:\"extrapolationValue\",type:\"number\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{tfOpName:\"Equal\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"NotEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Greater\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"GreaterEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Less\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LessEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalAnd\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalNot\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalOr\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Select\",category:\"logical\",inputs:[{start:0,name:\"condition\",type:\"tensor\"},{start:1,name:\"a\",type:\"tensor\"},{start:2,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SelectV2\",category:\"logical\",inputs:[{start:0,name:\"condition\",type:\"tensor\"},{start:1,name:\"a\",type:\"tensor\"},{start:2,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{tfOpName:\"_FusedMatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:1e-4},{tfName:\"transpose_a\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"transpose_b\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"transpose_a\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"transpose_b\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"BatchMatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"adj_x\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"adj_y\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"BatchMatMulV2\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"adj_x\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"adj_y\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Transpose\",category:\"matrices\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"perm\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{tfOpName:\"FusedBatchNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"FusedBatchNormV2\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"FusedBatchNormV3\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"LRN\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"depth_radius\",name:\"radius\",type:\"number\",defaultValue:5},{tfName:\"bias\",name:\"bias\",type:\"number\",defaultValue:1},{tfName:\"alpha\",name:\"alpha\",type:\"number\",defaultValue:1},{tfName:\"beta\",name:\"beta\",type:\"number\",defaultValue:.5}]},{tfOpName:\"Softmax\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"LogSoftmax\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"SparseToDense\",category:\"normalization\",inputs:[{start:0,name:\"sparseIndices\",type:\"tensor\"},{start:1,name:\"outputShape\",type:\"number[]\"},{start:2,name:\"sparseValues\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",defaultValue:!0,notSupported:!0}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{tfOpName:\"Bincount\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"},{start:2,name:\"weights\",type:\"tensor\"}]},{tfOpName:\"DenseBincount\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"},{start:2,name:\"weights\",type:\"tensor\"}],attrs:[{tfName:\"binary_output\",name:\"binaryOutput\",type:\"bool\"}]},{tfOpName:\"Max\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Mean\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Min\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Sum\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"All\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Any\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"ArgMax\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"ArgMin\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"Prod\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Cumprod\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"exclusive\",name:\"exclusive\",type:\"bool\"},{tfName:\"reverse\",name:\"reverse\",type:\"bool\"}]},{tfOpName:\"Cumsum\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"exclusive\",name:\"exclusive\",type:\"bool\"},{tfName:\"reverse\",name:\"reverse\",type:\"bool\"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{tfOpName:\"ConcatV2\",category:\"slice_join\",inputs:[{start:0,end:-1,name:\"tensors\",type:\"tensors\"},{start:-1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2}]},{tfOpName:\"Concat\",category:\"slice_join\",inputs:[{start:1,end:0,name:\"tensors\",type:\"tensors\"},{start:0,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2}]},{tfOpName:\"GatherV2\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"axis\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"batch_dims\",name:\"batchDims\",type:\"number\",defaultValue:0}]},{tfOpName:\"Gather\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",notSupported:!0}]},{tfOpName:\"Reverse\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"dims\",type:\"bool[]\"}]},{tfOpName:\"ReverseV2\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}]},{tfOpName:\"Slice\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"begin\",type:\"number[]\"},{start:2,name:\"size\",type:\"number[]\"}]},{tfOpName:\"StridedSlice\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"begin\",type:\"number[]\"},{start:2,name:\"end\",type:\"number[]\"},{start:3,name:\"strides\",type:\"number[]\"}],attrs:[{tfName:\"begin_mask\",name:\"beginMask\",type:\"number\",defaultValue:0},{tfName:\"end_mask\",name:\"endMask\",type:\"number\",defaultValue:0},{tfName:\"new_axis_mask\",name:\"newAxisMask\",type:\"number\",defaultValue:0},{tfName:\"ellipsis_mask\",name:\"ellipsisMask\",type:\"number\",defaultValue:0},{tfName:\"shrink_axis_mask\",name:\"shrinkAxisMask\",type:\"number\",defaultValue:0}]},{tfOpName:\"Pack\",category:\"slice_join\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",defaultValue:0}]},{tfOpName:\"Unpack\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",defaultValue:0},{tfName:\"num\",name:\"num\",type:\"number\",defaultValue:0,notSupported:!0}]},{tfOpName:\"Tile\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"reps\",type:\"number[]\"}]},{tfOpName:\"Split\",category:\"slice_join\",inputs:[{start:0,name:\"axis\",type:\"number\",defaultValue:0},{start:1,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"num_split\",name:\"numOrSizeSplits\",type:\"number\",defaultValue:1}]},{tfOpName:\"SplitV\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"numOrSizeSplits\",type:\"number[]\"},{start:2,name:\"axis\",type:\"number\",defaultValue:0}]},{tfOpName:\"ScatterNd\",category:\"slice_join\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"shape\",type:\"number[]\"}]},{tfOpName:\"GatherNd\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"}]},{tfOpName:\"SparseToDense\",category:\"slice_join\",inputs:[{start:0,name:\"sparseIndices\",type:\"tensor\"},{start:1,name:\"outputShape\",type:\"number[]\"},{start:2,name:\"sparseValues\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",defaultValue:!1,notSupported:!0}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{tfOpName:\"FFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"IFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"RFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"fft_length\",type:\"number\",notSupported:!0}]},{tfOpName:\"IRFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"fft_length\",type:\"number\",notSupported:!0}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{tfOpName:\"Cast\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"SrcT\",name:\"sdtype\",type:\"dtype\",notSupported:!0},{tfName:\"DstT\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"ExpandDims\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"MirrorPad\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"}],attrs:[{tfName:\"mode\",name:\"mode\",type:\"string\"}]},{tfOpName:\"Pad\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"}],attrs:[{tfName:\"constant_value\",name:\"constantValue\",type:\"number\",defaultValue:0}]},{tfOpName:\"PadV2\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"},{start:2,name:\"constantValue\",type:\"number\",defaultValue:0}]},{tfOpName:\"Reshape\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"shape\",type:\"number[]\"}]},{tfOpName:\"Squeeze\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"axis\",tfDeprecatedName:\"squeeze_dims\",name:\"axis\",type:\"number[]\"}]},{tfOpName:\"SpaceToBatchND\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"blockShape\",type:\"number[]\"},{start:2,name:\"paddings\",type:\"number[]\"}]},{tfOpName:\"BatchToSpaceND\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"blockShape\",type:\"number[]\"},{start:2,name:\"crops\",type:\"number[]\"}]},{tfOpName:\"DepthToSpace\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"block_size\",name:\"blockSize\",type:\"number\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\"}]},{tfOpName:\"BroadcastTo\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"shape\",type:\"number[]\"}],attrs:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Fh=class{constructor(){let t=[q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!=\"undefined\")return t.atob(r);if(typeof Buffer!=\"undefined\")return new Buffer(r,\"base64\").toString();throw new Error(\"Unable to decode base64 in this environment. Missing built-in atob() or Buffer()\")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function pN(r){switch(typeof r==\"string\"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return\"float32\";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return\"int32\";case oo.DT_BOOL:return\"bool\";case oo.DT_DOUBLE:return\"float32\";case oo.DT_STRING:return\"string\";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>kv,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>l0,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>u0,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>p0,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"AddN\":return[n.addN(S(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Mul\":return[n.mul(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Sub\":return[n.sub(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Pow\":return[n.pow(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(S(\"x\",r,t,e))];case\"Acos\":return[n.acos(S(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(S(\"x\",r,t,e))];case\"Asin\":return[n.asin(S(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(S(\"x\",r,t,e))];case\"Atan\":return[n.atan(S(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(S(\"x\",r,t,e),S(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(S(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(S(\"x\",r,t,e))];case\"Complex\":return[n.complex(S(\"real\",r,t,e),S(\"imag\",r,t,e))];case\"Cos\":return[n.cos(S(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(S(\"x\",r,t,e))];case\"Elu\":return[n.elu(S(\"x\",r,t,e))];case\"Erf\":return[n.erf(S(\"x\",r,t,e))];case\"Exp\":return[n.exp(S(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(S(\"x\",r,t,e))];case\"Floor\":return[n.floor(S(\"x\",r,t,e))];case\"Log\":return[n.log(S(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(S(\"x\",r,t,e))];case\"Imag\":return[n.imag(S(\"x\",r,t,e))];case\"Neg\":return[n.neg(S(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(S(\"x\",r,t,e))];case\"Real\":return[n.real(S(\"x\",r,t,e))];case\"Relu\":return[n.relu(S(\"x\",r,t,e))];case\"Round\":return[n.round(S(\"x\",r,t,e))];case\"Selu\":return[n.selu(S(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(S(\"x\",r,t,e))];case\"Sin\":return[n.sin(S(\"x\",r,t,e))];case\"Sign\":return[n.sign(S(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(S(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(S(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(S(\"x\",r,t,e))];case\"Square\":return[n.square(S(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(S(\"x\",r,t,e))];case\"Tan\":return[n.tan(S(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(S(\"x\",r,t,e),S(\"clipValueMin\",r,t,e),S(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(S(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(br(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(S(\"x\",r,t,e),S(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(S(\"x\",r,t,e),S(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Vn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,vr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,\"TensorList shape mismatch: \"),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,\"TensorList shape mismatch: \");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,\"TensorList shape mismatch: \");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=S(\"thenBranch\",r,t,e),o=S(\"elseBranch\",r,t,e),s=S(\"cond\",r,t,e),i=S(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=S(\"body\",r,t,e),o=S(\"cond\",r,t,e),s=S(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=S(\"pred\",r,t,e);return[Zs(n)]}case\"Switch\":{let n=S(\"pred\",r,t,e),o=S(\"data\",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case\"Enter\":{let n=S(\"frameName\",r,t,e),o=S(\"tensor\",r,t,e);return e.enterFrame(n),[Zs(o)]}case\"Exit\":{let n=S(\"tensor\",r,t,e);return e.exitFrame(),[Zs(n)]}case\"NextIteration\":{let n=S(\"tensor\",r,t,e);return e.nextIteration(),[Zs(n)]}case\"TensorArrayV3\":{let n=S(\"size\",r,t,e),o=S(\"dtype\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"dynamicSize\",r,t,e),a=S(\"clearAfterRead\",r,t,e),u=S(\"identicalElementShapes\",r,t,e),l=S(\"name\",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=S(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=S(\"tensorArrayId\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=S(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=S(\"tensorListId\",r,t,e),o=S(\"index\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=S(\"indices\",r,t,e),o=S(\"tensor\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"numElements\",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=S(\"elementShape\",r,t,e),o=S(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=S(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=S(\"tensorListId\",r,t,e),o=S(\"indices\",r,t,e),s=S(\"elementShape\",r,t,e),i=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=S(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=S(\"dtype\",r,t,e),i=S(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=S(\"tensorListId\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=S(\"tensor\",r,t,e),o=S(\"elementShape\",r,t,e),s=S(\"lengths\",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=S(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=S(\"tensorListId\",r,t,e),o=S(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=S(\"numArgs\",r,t,e);if(s){if(a&&l!==2)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=S(\"strides\",r,t,e),p=Rh(r,t,e),m=S(\"dataFormat\",r,t,e).toUpperCase(),f=S(\"dilations\",r,t,e),[d,h]=S(\"args\",r,t,e);i&&(h=d,d=void 0);let g=S(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case\"Conv1D\":{let o=S(\"stride\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilation\",r,t,e);return[n.conv1d(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S(\"x\",r,t,e),filter:S(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=S(\"outputShape\",r,t,e),s=S(\"strides\",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S(\"x\",r,t,e),S(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=S(\"strides\",r,t,e),s=Rh(r,t,e),i=S(\"dilations\",r,t,e),a=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(S(\"input\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dataFormat\",r,t,e).toUpperCase(),a=S(\"dilations\",r,t,e);return[n.conv3d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e),a=S(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.avgPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"kernelSize\",r,t,e);return[n.maxPool3d(S(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=S(\"strides\",r,t,e),s=S(\"pad\",r,t,e),i=S(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S(\"x\",r,t,e),S(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case\"Fill\":{let o=S(\"shape\",r,t,e),s=S(\"dtype\",r,t,e),i=S(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=S(\"logits\",r,t,e),s=S(\"numSamples\",r,t,e),i=S(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=S(\"indices\",r,t,e),s=S(\"depth\",r,t,e),i=S(\"onValue\",r,t,e),a=S(\"offValue\",r,t,e),u=S(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(S(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(S(\"shape\",r,t,e),S(\"dtype\",r,t,e),S(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(S(\"shape\",r,t,e),S(\"minval\",r,t,e),S(\"maxval\",r,t,e),S(\"dtype\",r,t,e))];case\"Range\":{let o=S(\"start\",r,t,e),s=S(\"stop\",r,t,e),i=S(\"step\",r,t,e);return[n.range(o,s,i,S(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=S(\"shape\",r,t,e),s=S(\"mean\",r,t,e),i=S(\"stdDev\",r,t,e),a=S(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,S(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(S(\"shape\",r,t,e),S(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S(\"boxes\",r,t,e),o=S(\"scores\",r,t,e),s=S(\"maxOutputSize\",r,t,e),i=S(\"iouThreshold\",r,t,e),a=S(\"scoreThreshold\",r,t,e),u=S(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(S(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(S(\"x\",r,t,e),S(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case\"LowerBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=S(\"x\",r,t,e),s=S(\"k\",r,t,e),i=S(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=S(\"sortedSequence\",r,t,e),s=S(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=S(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=S(\"x\",r,t,e),s=S(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=S(\"default\",r,t,e);return[br(r.name,t,e)||o];case\"Placeholder\":return[br(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=S(\"x\",r,t,e);return[Zs(c)]}case\"IdentityN\":return S(\"x\",r,t,e).map(c=>Zs(c));case\"Snapshot\":let s=S(\"x\",r,t,e);return[Zs(s)];case\"Shape\":return[n.tensor1d(S(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return S(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(S(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(S(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=S(\"x\",r,t,e),a=S(\"data\",r,t,e),u=S(\"message\",r,t,e),l=S(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S(\"keyDType\",r,t,e),i=S(\"valueDType\",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=S(\"tableHandle\",r,t,e,n),s=S(\"keys\",r,t,e),i=S(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=S(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case\"ResizeBilinear\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=S(\"images\",r,t,e),s=S(\"size\",r,t,e),i=S(\"alignCorners\",r,t,e),a=S(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=S(\"image\",r,t,e),s=S(\"boxes\",r,t,e),i=S(\"boxInd\",r,t,e),a=S(\"cropSize\",r,t,e),u=S(\"method\",r,t,e),l=S(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=S(\"images\",r,t,e),s=S(\"transforms\",r,t,e),i=S(\"outputShape\",r,t,e),a=S(\"fillValue\",r,t,e),u=S(\"interpolation\",r,t,e),l=S(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case\"Equal\":return[n.equal(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Greater\":return[n.greater(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Less\":return[n.less(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(S(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(S(\"a\",r,t,e),S(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(S(\"condition\",r,t,e),S(\"a\",r,t,e),S(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(S(\"a\",r,t,e),S(\"b\",r,t,e),S(\"transposeA\",r,t,e),S(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(S(\"equation\",r,t,e),...S(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(S(\"x\",r,t,e),S(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=S(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=S(\"numArgs\",r,t,e),l=S(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=S(\"args\",r,t,e);return[n.fused.matMul({a:S(\"a\",r,t,e),b:S(\"b\",r,t,e),transposeA:S(\"transposeA\",r,t,e),transposeB:S(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(S(\"x\",r,t,e),S(\"axis\",r,t,e),S(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(S(\"x\",r,t,e),S(\"mean\",r,t,e),S(\"variance\",r,t,e),S(\"offset\",r,t,e),S(\"scale\",r,t,e),S(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(S(\"x\",r,t,e),S(\"radius\",r,t,e),S(\"bias\",r,t,e),S(\"alpha\",r,t,e),S(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(S(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(S(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(S(\"sparseIndices\",r,t,e),S(\"outputShape\",r,t,e),S(\"sparseValues\",r,t,e),S(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case\"Max\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.max(S(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.mean(S(\"x\",r,t,e),a,u)]}case\"Min\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.min(S(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.sum(S(\"x\",r,t,e),a,u)]}case\"All\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.all(S(\"x\",r,t,e),a,u)]}case\"Any\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.any(S(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=S(\"axis\",r,t,e);return[n.argMax(S(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=S(\"axis\",r,t,e);return[n.argMin(S(\"x\",r,t,e),a)]}case\"Prod\":{let a=S(\"axis\",r,t,e),u=S(\"keepDims\",r,t,e);return[n.prod(S(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumprod(S(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=S(\"axis\",r,t,e),u=S(\"exclusive\",r,t,e),l=S(\"reverse\",r,t,e);return[n.cumsum(S(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=S(\"x\",r,t,e),s=S(\"weights\",r,t,e),i=S(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=S(\"x\",r,t,e),u=S(\"weights\",r,t,e),l=S(\"size\",r,t,e),c=S(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=S(\"n\",r,t,e),s=S(\"axis\",r,t,e),i=S(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=S(\"axis\",r,t,e),s=S(\"batchDims\",r,t,e),i=S(\"x\",r,t,e),a=S(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=S(\"dims\",r,t,e),s=[];for(let a=0;a{let o=S(\"axis\",r,t,e),s=S(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=S(\"axis\",r,t,e),s=S(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=S(\"reps\",r,t,e);return[n.tile(S(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=S(\"axis\",r,t,e),s=S(\"numOrSizeSplits\",r,t,e),i=S(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=S(\"indices\",r,t,e),s=S(\"values\",r,t,e),i=S(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=S(\"x\",r,t,e),s=S(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=S(\"sparseIndices\",r,t,e),s=S(\"outputShape\",r,t,e),i=S(\"sparseValues\",r,t,e),a=S(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S(\"indices\",r,t,e),S(\"values\",r,t,e),S(\"denseShape\",r,t,e),S(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S(\"inputIndices\",r,t,e),S(\"inputShape\",r,t,e),S(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(S(\"data\",r,t,e),S(\"indices\",r,t,e),S(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case\"FFT\":return[n.fft(S(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(S(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(S(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(S(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S(\"data\",r,t,e),S(\"dataSplits\",r,t,e),S(\"separator\",r,t,e),S(\"nGramWidths\",r,t,e),S(\"leftPad\",r,t,e),S(\"rightPad\",r,t,e),S(\"padWidth\",r,t,e),S(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S(\"input\",r,t,e),S(\"delimiter\",r,t,e),S(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(S(\"input\",r,t,e),S(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case\"Cast\":return[n.cast(S(\"x\",r,t,e),S(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=S(\"axis\",r,t,e);return[n.expandDims(S(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=S(\"axis\",r,t,e);return[n.squeeze(S(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(S(\"x\",r,t,e),S(\"padding\",r,t,e),S(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=S(\"blockShape\",r,t,e),s=S(\"paddings\",r,t,e);return[n.spaceToBatchND(S(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=S(\"blockShape\",r,t,e),s=S(\"crops\",r,t,e);return[n.batchToSpaceND(S(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=S(\"blockSize\",r,t,e),s=S(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(S(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(S(\"x\",r,t,e),S(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(S(\"s0\",r,t,e),S(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>MD(i,a,u));case\"basic_math\":return o(()=>zD(i,a,u));case\"control\":return HD(i,a,u);case\"convolution\":return o(()=>KD(i,a,u));case\"creation\":return o(()=>jD(i,a,u));case\"dynamic\":return XD(i,a,u);case\"evaluation\":return o(()=>YD(i,a,u));case\"image\":return o(()=>QD(i,a,u));case\"graph\":return o(()=>ZD(i,a,u));case\"logical\":return o(()=>tR(i,a,u));case\"matrices\":return o(()=>eR(i,a,u));case\"normalization\":return o(()=>rR(i,a,u));case\"reduction\":return o(()=>nR(i,a,u));case\"slice_join\":return o(()=>oR(i,a,u));case\"sparse\":return o(()=>sR(i,a,u));case\"spectral\":return o(()=>iR(i,a,u));case\"string\":return o(()=>aR(i,a,u));case\"transformation\":return o(()=>lR(i,a,u));case\"hash_table\":return JD(i,a,u,n);case\"custom\":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error(\"Cannot exit frame, the context is empty\")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],D7=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],R7=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=\",\",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+\"--\"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category===\"control\"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!==\"control\"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn(\"This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.\");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w=\"\";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&S(\"isConstant\",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7=\"?tfjs-format=file\",L7=\"model.json\",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error(\"modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model\");t==null&&(t={}),t.fromTFHub&&typeof r==\"string\"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=_r.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${L7}${P7}`}var cR=\"4.0.0\";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),kn(async()=>(await n.iterator()).columnMajorBatch(t,e,W7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,kn(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,kn(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return kn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return kn(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return kn(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,kn(async()=>{let o=Lh(async()=>({value:await e.iterator(),done:!1}));return xR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?new RangeError(\"`Dataset.shuffle()` requires bufferSize to be specified.\"):new RangeError(`\\`Dataset.shuffle()\\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \\`tf.Tensor\\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let o=this,s=bR.alea(e||y.now().toString());return kn(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,kn(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArrayForTest()}};Js.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Js{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function wR(r){return kn(async()=>AN(r),r.length)}function CR(r){if(!vu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await Wb(r,n=>{if(n instanceof Js)return{value:n.iterator(),recurse:!1};if(vu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return yR(e,fl.SHORTEST)},t)}function W7(r){if(r===null)return null;let t=r[0];return dR(t)?{value:U7(r),recurse:!1}:{value:null,recurse:!0}}function U7(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ft?nr(r):ur(r)}var Xf=class extends Js{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var Kb='\"',Mh=Symbol(\"out\"),IR=Symbol(\"field\"),jb=Symbol(\"quote\"),$N=Symbol(\"quoteafterquote\"),SR=Symbol(\"quoteinquote\"),Yf=class extends Js{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new Xf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.length===this.fullColumnNames.length,()=>\"The length of provided columnNames (\"+this.fullColumnNames.length.toString()+\") does not match the length of the header line read from file (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+\").\")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error(\"No data was found for CSV parsing.\");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error(\"Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.\")}summary(){return\"microphone\"}static async create(t={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new Zf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error(\"Could not obtain audio from microphone.\");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error(\"Can not convert infinite audio stream to array.\")}getSampleRate(){return this.sampleRateHz}flattenQueue(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ur(n,e)}};var Jf=class extends Je{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Me([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Vs([i,s,u,a],[1,4])}else this.cropBox=Vs([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!z().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new Jf(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode===\"user\"||this.webcamConfig.facingMode===\"environment\",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:\"user\",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=nx.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=rr(J(t,\"float32\"),0),n;n=Gs.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error(\"Can not convert infinite video stream to array.\")}};var Qf=class{};var zh=class extends Je{split(t){return new DN(this,t)}},DN=class extends zh{constructor(t,e){super(),this.upstream=t,this.impl=new RN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},RN=class extends kc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Xb=class extends Je{decodeUTF8(){return new FN(this)}},FN=class extends zh{constructor(t){super(),this.upstream=t,this.impl=new ON(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ON=class extends kc{constructor(t){if(super(),this.upstream=t,z().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=gN();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return z().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var td=class extends Xb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(z().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function vR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=H7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new td(i,t)}else throw new Error(s.statusText)}var H7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Yb(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var ed=class extends Qf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Yb(this.input)&&z().get(\"IS_NODE\")){let t=Zb();this.input=t.readFileSync(this.input.slice(7))}return new td(this.input,this.options)}};var rd=class extends Qf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Yb(this.url)?new ed(this.url,this.fileOptions).iterator():vR(this.url,this.fileOptions)}};function NR(r,t={}){return new Yf(new rd(r),t)}function TR(r){let t=Lh(r);return kn(async()=>t)}function kR(r){return kn(async()=>{let t=await r();return Lh(()=>t.next())})}async function ER(r,t){return Jf.create(r,t)}async function _R(r){return Zf.create(r)}var PN=\"4.0.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var q7=Ur.whereImpl,Nu=class extends zo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,Pn())}nextDataId(){return Nu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,z().get(\"IS_NODE\")&&v.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:[\"The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less.\"]}}where(t){tt([t],\"where\");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:\"cpu\",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var DR={kernelName:pp,backendName:\"cpu\",kernelFunc:wr};function nd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=nd(r,t,\"float32\"),s=nd(r,t,\"float32\");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:\"cpu\",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:\"cpu\",kernelFunc:Ao};function MN(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:\"cpu\",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?v.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:\"cpu\",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:\"cpu\",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,\"bool\"),MR={kernelName:xa,backendName:\"cpu\",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,\"float32\"),zR={kernelName:es,backendName:\"cpu\",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:\"cpu\",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:\"cpu\",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,\"bool\"),GR={kernelName:Ca,backendName:\"cpu\",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,\"bool\"),WR={kernelName:ss,backendName:\"cpu\",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,\"bool\"),HR={kernelName:Ta,backendName:\"cpu\",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:\"cpu\",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:\"cpu\",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:\"cpu\",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:\"cpu\",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:\"cpu\",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,\"bool\"),ZR={kernelName:Da,backendName:\"cpu\",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:\"cpu\",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:\"cpu\",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=Et(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:\"cpu\",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:\"cpu\",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=Et(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:\"cpu\",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:\"cpu\",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:\"cpu\",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=Et(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:\"cpu\",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var hF={kernelName:bs,backendName:\"cpu\",kernelFunc:cT};var pT=Et(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:\"cpu\",kernelFunc:pT};var mT=Et(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:\"cpu\",kernelFunc:mT};function Oc(r,t,e,n,o){if(e===\"linear\")return Kr({inputs:{x:t},backend:r});if(e===\"relu\")return pT({inputs:{x:t},backend:r});if(e===\"elu\")return lT({inputs:{x:t},backend:r});if(e===\"relu6\")return mT({inputs:{x:t},backend:r});if(e===\"prelu\")return cT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:\"cpu\",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),st=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:\"cpu\",kernelFunc:SJ};var vJ=Et(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:\"cpu\",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var TF={kernelName:Wo,backendName:\"cpu\",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var kF={kernelName:kl,backendName:\"cpu\",kernelFunc:_J};var AJ=Et(la,r=>Math.asin(r)),EF={kernelName:la,backendName:\"cpu\",kernelFunc:AJ};var $J=Et(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:\"cpu\",kernelFunc:$J};var DJ=Et(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:\"cpu\",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:\"cpu\",kernelFunc:FJ};var OJ=Et(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:\"cpu\",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s===\"avg\"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s===\"avg\"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s===\"avg\"&&(_t+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s===\"avg\"?_t/Vt:kt}}}}return w}function RF(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:\"cpu\",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var OF={kernelName:El,backendName:\"cpu\",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:\"cpu\",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:\"cpu\",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:\"cpu\",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:\"cpu\",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:\"cpu\",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var VF={kernelName:cp,backendName:\"cpu\",kernelFunc:WJ};var UJ=Et(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:\"cpu\",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=st*_[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:\"cpu\",kernelFunc:ZJ};var JJ=Et(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:\"cpu\",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+st*f.inChannels,bt=ot,kt=dt;for(let _t=0;_t{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&&htot&&(ot=_t)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,\"int32\"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:\"cpu\",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var dO={kernelName:wp,backendName:\"cpu\",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:\"cpu\",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:\"cpu\",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:\"cpu\",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,\"int32\"),wO={kernelName:ns,backendName:\"cpu\",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c===\"NCHW\"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c===\"NCHW\"&&f===\"prelu\"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:\"cpu\",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:\"cpu\",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:\"cpu\",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],\"gatherV2\");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:\"cpu\",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:\"cpu\",kernelFunc:EQ};var _Q=Et(Ia,r=>Number.isFinite(r)?1:0,\"bool\"),TO={kernelName:Ia,backendName:\"cpu\",kernelFunc:_Q};var AQ=Et(Sa,r=>Math.abs(r)===1/0?1:0,\"bool\"),kO={kernelName:Sa,backendName:\"cpu\",kernelFunc:AQ};var $Q=Et(va,r=>Number.isNaN(r)?1:0,\"bool\"),EO={kernelName:va,backendName:\"cpu\",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var _O={kernelName:vp,backendName:\"cpu\",kernelFunc:DQ};var RQ=Et(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:\"cpu\",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,\"bool\"),$O={kernelName:Ea,backendName:\"cpu\",kernelFunc:OQ};var PQ=Et(_a,r=>r?0:1,\"bool\"),DO={kernelName:_a,backendName:\"cpu\",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,\"bool\"),RO={kernelName:Aa,backendName:\"cpu\",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:\"cpu\",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var MO={kernelName:Fl,backendName:\"cpu\",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=ht===bt?1:0;if(kt===0)continue;let _t=P.get(V,ot,nt,dt,G);et+=_t*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:\"cpu\",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),$=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:\"cpu\",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,\"max\"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:\"cpu\",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:\"cpu\",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:\"cpu\",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:\"cpu\",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:\"cpu\",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:\"cpu\",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:\"cpu\",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:\"cpu\",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:\"cpu\",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:\"cpu\",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:\"cpu\",kernelFunc:c9};var p9=Et(Pa,r=>1/r),uP={kernelName:Pa,backendName:\"cpu\",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],_t=bt*C,Vt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:\"cpu\",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:\"cpu\",kernelFunc:g9};var hP={kernelName:qa,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:\"cpu\",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:\"cpu\",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:\"cpu\",kernelFunc:N9};var T9=Et(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:\"cpu\",kernelFunc:T9};var k9=Et(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:\"cpu\",kernelFunc:k9};var E9=Et(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:\"cpu\",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=Et(Va,r=>{let t=r>-NP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var EP={kernelName:Pl,backendName:\"cpu\",kernelFunc:D9};function R9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=aw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var _P={kernelName:Ga,backendName:\"cpu\",kernelFunc:R9};function F9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var AP={kernelName:Ll,backendName:\"cpu\",kernelFunc:F9};function O9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var $P={kernelName:Ml,backendName:\"cpu\",kernelFunc:O9};function P9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var DP={kernelName:Lp,backendName:\"cpu\",kernelFunc:P9};function L9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:\"cpu\",kernelFunc:L9};var FP={kernelName:zl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:\"cpu\",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:\"cpu\",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var LP={kernelName:Bl,backendName:\"cpu\",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var MP={kernelName:Vl,backendName:\"cpu\",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var zP={kernelName:Gl,backendName:\"cpu\",kernelFunc:G9};var W9=Et(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:\"cpu\",kernelFunc:W9};var U9=Et(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:\"cpu\",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:\"cpu\",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:\"cpu\",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:\"cpu\",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!=\"undefined\"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!=\"undefined\")return document.createElement(\"canvas\");throw new Error(\"Cannot create a canvas in this context\")}function stt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?ott(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",xw)||e.getContext(\"experimental-webgl\",xw):e.getContext(\"webgl2\",xw)}var ku;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]=\"UNPACKED_FLOAT16\",r[r.UNPACKED_FLOAT32=1]=\"UNPACKED_FLOAT32\",r[r.PACKED_4X1_UNSIGNED_BYTE=2]=\"PACKED_4X1_UNSIGNED_BYTE\",r[r.PACKED_2X2_FLOAT32=3]=\"PACKED_2X2_FLOAT32\",r[r.PACKED_2X2_FLOAT16=4]=\"PACKED_2X2_FLOAT16\"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool(\"DEBUG\")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||attr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function kT(r,t){if(yt(r,()=>r.linkProgram(t)),!z().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function Yh(r,t){if(yt(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function ET(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function _T(r,t){let e=gl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return yt(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ctt(){return z().getNumber(\"WEBGL_VERSION\")===2?1:4}function AT(r){return gl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function $T(r,t){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function DT(r){return gl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function Iw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),yt(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),yt(r,()=>r.enableVertexAttribArray(a)),!0)}function JP(r,t,e){tL(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function ptt(r,t){tL(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function RT(r,t,e){return gl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function FT(r,t,e){return r.getUniformLocation(t,e)}function OT(r,t,e,n){yt(r,()=>JP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function mtt(r){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),yt(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),yt(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Zh(r,t,e){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function md(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+QP(r,t))}function QP(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case r.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return`unknown error ${t}`}}function gl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function tL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function xl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function yl(r){if(r.length===0)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function fd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[xl(r),...yl(r)]),t}function PT(r,t=!1){let e=z().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=z().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&z().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=xl(r),u=2,l=2;r.length&&([u,l]=yl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function yw(r){return r%2===0}function Eu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||yw(e)&&yw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&yw(r[0])&&yw(t[0])}var bw,ww;function LT(r){if(bw==null){let t=Gn(r);bw=t.getParameter(t.MAX_TEXTURE_SIZE)}return bw}function ftt(){bw=null}function dtt(){ww=null}function MT(r){if(ww==null){let t=Gn(r);ww=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ww)}function zT(r){if(r===0)return 0;let t,e=Gn(r);return Wn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Wn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Wn(r,t){return r.getExtension(t)!=null}function vw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function BT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\"))return!1}else if(!Wn(t,\"EXT_color_buffer_float\"))return!1;return IT(t)}function VT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,\"OES_texture_float\")||!Wn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Wn(t,\"EXT_color_buffer_float\"))return IT(t);let n=\"EXT_color_buffer_half_float\";if(Wn(t,n)){let o=t.getExtension(n);return htt(t,o)}return!1}return IT(t)}function IT(r){let t=Xh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function htt(r,t){let e=Xh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function GT(r){return r!==2?!1:Gn(r).fenceSync!=null}function Qs(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=z();Tt.registerFlag(\"HAS_WEBGL\",()=>Tt.getNumber(\"WEBGL_VERSION\")>0);Tt.registerFlag(\"WEBGL_VERSION\",()=>vw(2)?2:vw(1)?1:0);Tt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Tt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Tt.get(\"WEBGL_VERSION\")===2);Tt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Tt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Tt.registerFlag(\"WEBGL_PACK\",()=>Tt.getBool(\"HAS_WEBGL\"));Tt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>LT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>MT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Tt.getNumber(\"WEBGL_VERSION\");return r===0?0:zT(r)});Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Tt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Kl.isMobile());Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>BT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Tt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Tt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Tt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>VT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>GT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Tt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Tt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Kl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Tt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Tt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Tt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Tt.getBool(\"IS_TEST\"));Tt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Tt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Tt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return z().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=z().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n `:\"\",u=\"\",l=`\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n `,u=`\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n `,l=`\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ti(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function Mc(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function gtt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function eL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=gtt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function hd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function gd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Nw=`\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n`;var{getBroadcastDims:rL}=v;function nL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Tw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>xtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ge(),u=wtt(a),l,c,p=Stt(a);return t.isPacked?(l=ytt(t.logicalShape,i,e.enableShapeUniforms),c=Itt(a)):(l=btt(t.logicalShape,i,e.enableShapeUniforms),c=Ctt(a)),e.packedInputs&&(p+=ktt),[p,u,c,o,l,s,e.userCode].join(`\n`)}function yd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return ztt(r,t);case 1:return Vtt(r,t);case 2:return Wtt(r,t);case 3:return Htt(r,t);case 4:return Ktt(r,t);case 5:return jtt(r);case 6:return Xtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function oL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Mtt(r);case 1:return Btt(r,t);case 2:return Gtt(r,t);case 3:return Utt(r,t);default:return qtt(r,t)}}function xtt(r,t,e=!1,n){let o=\"\";e?o+=oL(r,n):o+=yd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Ytt(r,t):o+=Ztt(r,t)),o}function ytt(r,t,e){switch(r.length){case 0:return sL();case 1:return Ett(r,t,e);case 2:return Ptt(r,t,e);case 3:return Att(r,t,e);default:return Dtt(r,t,e)}}function btt(r,t,e){switch(r.length){case 0:return sL();case 1:return _tt(r,t,e);case 2:return Ltt(r,t,e);case 3:return $tt(r,t,e);case 4:return Rtt(r,t,e);case 5:return Ftt(r,t);case 6:return Ott(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function wtt(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function Ctt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function Itt(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function Stt(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${vtt}\n ${Ntt}\n ${Ttt}\n `}var vtt=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ntt=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ttt=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,ktt=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function sL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function Ett(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}function _tt(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function Att(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function $tt(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Mc([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=ti([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function Dtt(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function Ztt(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=zt(u),c=rL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function zt(r){if(r<=1)return\"int\";if(r===2)return\"ivec2\";if(r===3)return\"ivec3\";if(r===4)return\"ivec4\";if(r===5)return\"ivec5\";if(r===6)return\"ivec6\";throw Error(`GPU for rank ${r} is not yet supported`)}function Tw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function aL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=nL(o,i,t),u=NT(r.gl,a),l=r.createProgram(u);return z().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},WT(r,t,l))}function WT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),z().getNumber(\"WEBGL_VERSION\")===1&&(c=r.getUniformLocation(e,\"INFINITY\",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function iL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function lL(r,t,e,n,o){t.program.enableShapeUniforms||(iL(t.inShapeInfos,e),iL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),z().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=Tw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type===\"float\")r.gl.uniform1fv(c,p);else if(u.type===\"vec2\")r.gl.uniform2fv(c,p);else if(u.type===\"vec3\")r.gl.uniform3fv(c,p);else if(u.type===\"vec4\")r.gl.uniform4fv(c,p);else if(u.type===\"int\")r.gl.uniform1iv(c,p);else if(u.type===\"ivec2\")r.gl.uniform2iv(c,p);else if(u.type===\"ivec3\")r.gl.uniform3iv(c,p);else if(u.type===\"ivec4\")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function uL(r,t,e){let n=\"\";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Tw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=v.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${z().getNumber(\"WEBGL_VERSION\")}`,s}function we(r){return z().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var kw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${e.output} = result;\n }\n `}};var Ew=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Mc([\"r\",\"c\",\"d\"],t):ti([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${e.output} = result;\n }\n `}};var _w=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var Aw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Nw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var tet={R:0,G:1,B:2,A:3},Jh=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;aJT,createBufferFromOutputTexture:()=>ek,createFloat16MatrixTexture:()=>jT,createFloat16PackedMatrixTexture:()=>ZT,createFloat32MatrixTexture:()=>KT,createIndexBuffer:()=>qT,createPackedMatrixTexture:()=>YT,createUnsignedBytesMatrixTexture:()=>XT,createVertexBuffer:()=>HT,createVertexShader:()=>UT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>nk,downloadFloat32MatrixFromBuffer:()=>rk,downloadMatrixFromPackedOutputTexture:()=>sk,downloadPackedMatrixFromBuffer:()=>ok,getInternalFormatForFloat16MatrixTexture:()=>Rw,getInternalFormatForFloat16PackedMatrixTexture:()=>Pw,getInternalFormatForFloat32MatrixTexture:()=>Dw,getInternalFormatForPackedMatrixTexture:()=>Ow,getInternalFormatForUnsignedBytesMatrixTexture:()=>Fw,uploadDenseMatrixToTexture:()=>QT,uploadPixelDataToTexture:()=>tk});function UT(r){let t=Ge(),e=`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`;return vT(r,e)}function HT(r){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ET(r,t)}function qT(r){let t=new Uint16Array([0,1,2,2,1,3]);return _T(r,t)}function Qh(r,t,e,n,o,s){$T(t,e);let i=AT(r),a=r.TEXTURE_2D;return yt(r,()=>r.bindTexture(a,i)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),z().getNumber(\"WEBGL_VERSION\")===1?yt(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):yt(r,()=>r.texStorage2D(a,1,n,t,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Dw(r){return r.internalFormatFloat}function KT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Dw(n),n.textureFormatFloat,r.FLOAT)}function Rw(r){return r.internalFormatHalfFloat}function jT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Rw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Fw(r){return r.downloadTextureFormat}function XT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Fw(n),r.RGBA,r.UNSIGNED_BYTE)}function Ow(r){return r.internalFormatPackedFloat}function YT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Ow(n),r.RGBA,r.FLOAT)}function Pw(r){return r.internalFormatPackedHalfFloat}function ZT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Pw(n),r.RGBA,n.textureTypeHalfFloat)}function JT(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Iw(r,t,\"clipSpacePos\",e,3,20,0)&&Iw(r,t,\"uv\",e,2,20,12)}function QT(r,t,e,n,o,s){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function tk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):z().getNumber(\"WEBGL_VERSION\")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ek(r,t,e,n){let o=r.createBuffer();yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return yt(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function rk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function nk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(XP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ok(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(YP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function sk(r,t,e){let n=new Float32Array(t*e*4);return yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Bc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=z().getNumber(\"WEBGL_VERSION\");t!=null?(this.gl=t,wT(e,t)):this.gl=Gn(e);let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),z().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=pd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=pd(this.gl,i);else if(z().get(\"WEBGL_FORCE_F16_TEXTURES\"))throw new Error(\"GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Wn(this.gl,o))this.colorBufferHalfFloatExtension=pd(this.gl,o);else if(z().get(\"WEBGL_FORCE_F16_TEXTURES\"))throw new Error(\"GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\")}else if(n=\"EXT_color_buffer_float\",Wn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Wn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=HT(this.gl),this.indexBuffer=qT(this.gl),this.framebuffer=DT(this.gl),this.textureConfig=Xh(this.gl,this.textureHalfFloatExtension)}get debug(){return z().getBool(\"DEBUG\")}dispose(){if(this.disposed)return;this.program!=null&&console.warn(\"Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing.\"),this.outputTexture!=null&&console.warn(\"Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.\");let t=this.gl;yt(t,()=>t.finish()),yt(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),yt(t,()=>t.deleteFramebuffer(this.framebuffer)),yt(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),yt(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),yt(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),KT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),jT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),XT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),tk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),QT(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>nk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ok(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return rk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ek(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(z().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>sk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=UT(e));let n=TT(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),kT(e,n),this.debug&&Yh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=JT(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&yt(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&Yh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?RT(this.gl,t,e):FT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),yt(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),OT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Xi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&Yh(this.gl,this.program),md(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),yt(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),yt(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pd(this.gl,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=eet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in z().platform&&(n=z().platform.setTimeoutCustom.bind(z().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Zh(this.gl,t,this.framebuffer),this.debug&&md(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&md(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Zh(o,t,this.framebuffer),this.debug&&md(o),this.outputTexture=t,yt(o,()=>o.viewport(0,0,e,n)),yt(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),yt(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")}throwIfNoProgram(){if(this.program==null)throw new Error(\"No GPU program is currently set.\")}};function eet(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:ak(r,t)}function QL(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Id=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\"}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${ret(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?gd():hd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function ret(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?eL([\"r\",\"c\",\"d\"],\"inputShape\"):ti([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var Vw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=eM(e,n),s=rM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=tM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=eM(n,o),i=rM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=tM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=z().get(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function net(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function tM(r,t,e,n,o){let s=oet(t,n),i;if(o){let[u,l]=Xi(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=net(e,s);return i*a}function oet(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Ow(t);case Pr.PACKED_2X2_FLOAT16:return Pw(t);case Pr.UNPACKED_FLOAT32:return Dw(t);case Pr.UNPACKED_FLOAT16:return Rw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Fw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function set(r){return z().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function eM(r,t){if(r===jr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===jr.RENDER||r==null)return set(t);if(r===jr.DOWNLOAD||r===jr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function rM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var tn=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},fr=\"if (isnan(x)) return x;\",nM=\"return x;\",lk=\"return abs(x);\";var oM=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",sM=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,iM=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Gc=\"return x;\",aM=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var uM=\"return x;\",cM=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,pM=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,mM=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,fM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",so=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var Gw=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=Qe(\"rc\",e),o=zt(e),s=QL(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var aet=Ur.whereImpl,uet=1e-7,cet=1e-4,Ww={};function pet(r){return r in Ww||(Ww[r]={}),Ww[r]}var met=z().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),fet=600;function det(){return z().global.screen==null?1024:z().global.screen.height*z().global.screen.width*window.devicePixelRatio*fet/1024/1024}var _u=class extends zo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!z().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof Bc)e=t;else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(z().getNumber(\"WEBGL_VERSION\"));e=new Bc(n),this.binaryCache=pet(z().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Vw(this.gpgpu),this.numMBBeforeWarning=det(),this.texData=new ra(this,Pn())}nextDataId(){return _u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=fd(e),c=new Jh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((z().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||z().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(z().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new so(a,Gc):m=new tn(a,Gc);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=v.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new so(o,Gc):d=new tn(o,Gc);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(z().getBool(\"DEBUG\")&&!z().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&z().getNumber(\"WEBGL_VERSION\")===2)throw new Error(\"tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.\");let l=null,c;if(i!==\"complex64\"&&z().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...jh(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=v.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;yt(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Pn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new so(s,Gc):f=new tn(s,Gc);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Pn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(z().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=met){return z().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Gw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Bw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[xl(t.shape),...yl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[xl(e),...yl(e)],i=new Id(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=fd(s),u;o?u=new Ew(a):u=new kw(a);let l=!0,c=[e!=null?e:jh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===ku.DENSE){let x=i!=null?i:jh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=z().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Eu(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=uL(t,c,p),f=this.getAndSaveBinary(m,()=>aL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),z().get(\"ENGINE_COMPILE_ONLY\")||lL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=z().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!z().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(z().getBool(\"IS_TEST\")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!=\"undefined\"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!z().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=z().getBool(\"DEBUG\");z().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(z().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?uet:cet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=PT(n,u),e.texShape=p),s!=null){let m=fd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Xi(p[0],p[1])),u?f=new $w(m,g):f=new Jh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=jr.PIXELS:w.usage=jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,_=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(_.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,z().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(_.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return this.releaseGPUData(t),e!=null&&(n.values=het(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await gh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Cw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=WT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Pn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Pn().makeTensorFromDataId(l,e,n,u)}};_u.nextDataId=0;function het(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew _u,2);var Zke={forceHalfFloat:hM};var Sd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var io=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=v.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var Yi=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var Oo=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=v.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${zt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=Qe(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function tr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var gM={kernelName:co,backendName:\"webgl\",kernelFunc:tr};function En(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=tr({inputs:{x:n},backend:e}),u=tr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var xM={kernelName:pp,backendName:\"webgl\",kernelFunc:En};var uk=\"return (a < 0.) ? b * a : a;\",ck=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function get(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(ck,o.shape,i.shape):new io(uk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var yM={kernelName:is,backendName:\"webgl\",kernelFunc:get};var pk=\"return (a < 0.) ? b * a : a;\",mk=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function xet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(mk,n.shape,o.shape):new io(pk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var bM={kernelName:bs,backendName:\"webgl\",kernelFunc:xet};var Po=\"if (isnan(x)) return x;\";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new so(i.shape,t):c=new tn(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,_={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new io(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],sr(C.dtype,N.dtype))}),b=En({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||sr(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?v.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?v.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Oo(t,u.shape,l.shape,e):f=new io(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function bl(r,t=!1){if(r===\"linear\")return t?uM:nM;if(r===\"relu\")return t?pM:sM;if(r===\"elu\")return t?cM:oM;if(r===\"relu6\")return t?mM:iM;if(r===\"prelu\")return t?mk:pk;if(r===\"leakyrelu\")return t?ck:uk;if(r===\"sigmoid\")return t?fM:aM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var vd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",C=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:\"webgl\",kernelFunc:it};var rg=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}};var Uw=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function bet(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=v.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=bet(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=ak(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:\"webgl\",kernelFunc:Cet};var EM=\"return abs(x);\";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:\"webgl\",kernelFunc:Iet};var vet=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Net=Ct({opSnippet:vet}),AM={kernelName:oa,backendName:\"webgl\",kernelFunc:Net};var Tet=fr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,backendName:\"webgl\",kernelFunc:ket};var DM=\"return a + b;\",Eet=le({opSnippet:DM,packedOpSnippet:DM,supportsComplex:!0,cpuKernelImpl:cL}),RM={kernelName:Zn,backendName:\"webgl\",kernelFunc:Eet};var Kw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var jw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool(\"WEBGL_PACK\")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:\"webgl\",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"all\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:\"webgl\",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,\"any\",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:\"webgl\",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var Zw=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=zt(u),c=Qe(\"coords\",u),p,m;if(i===1){m=u+1;let $=zt(m);p=`\n ${$} sourceLocR = ${$}(${c.join()}, 0);\n ++${c[u-1]};\n ${$} sourceLocG = ${$}(${c.join()}, 0);\n ++${c[u-2]};\n ${$} sourceLocA = ${$}(${c.join()}, 0);\n --${c[u-1]};\n ${$} sourceLocB = ${$}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map($=>\"int \"+$),g=Qe(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=Qe(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=Qe(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=Qe(\"sourceLocA\",m-1).concat(\"inIdx.a\"),C=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,_=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${_};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${_};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${C}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}};function LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:\"webgl\",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=Jw(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:\"webgl\",kernelFunc:Det};var Ret=fr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Fet=Ct({opSnippet:Ret}),VM={kernelName:la,backendName:\"webgl\",kernelFunc:Fet};var Oet=fr+\"return log(x + sqrt(x * x + 1.0));\",Pet=Ct({opSnippet:Oet}),GM={kernelName:ua,backendName:\"webgl\",kernelFunc:Pet};var Let=fr+`\n return atan(x);\n`,Met=Ct({opSnippet:Let}),WM={kernelName:ca,backendName:\"webgl\",kernelFunc:Met};var zet=Sd+`\n return atan(a, b);\n`,Bet=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+Yi+`\n return result;\n`,Vet=le({opSnippet:zet,packedOpSnippet:Bet}),UM={kernelName:ma,backendName:\"webgl\",kernelFunc:Vet};var Get=fr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelName:pa,backendName:\"webgl\",kernelFunc:Wet};var ei=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let $=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${$} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(C=\"avgValue / count\");let N=Math.floor(i/4)*4,_=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${_===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${_===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${C});\n }\n `}},$u=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",C=\"0.0\";if(w||(C=\"-1.0 / 1e-20\"),n){let P=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${P} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",_=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(_=\"avgValue / count\");let A=Math.floor(i/4)*4,$=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${C};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${C});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${$===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n setOutput(${_});\n }\n }\n `}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Qs(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var qM={kernelName:Uo,backendName:\"webgl\",kernelFunc:Uet};function Het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new $u(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var KM={kernelName:El,backendName:\"webgl\",kernelFunc:Het};var Qw=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}},tC=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new tC(m);return e.runWebGLProgram(f,[o],i.dtype)}var jM={kernelName:lp,backendName:\"webgl\",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Qs([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=new Qw(c);return e.runWebGLProgram(p,[o],i.dtype)}var XM={kernelName:ap,backendName:\"webgl\",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Uc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var YM={kernelName:Ho,backendName:\"webgl\",kernelFunc:jet};var eC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var rC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var Xet=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new rC(n.shape,o.shape,s.shape,c,p,u):new eC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},ZM={kernelName:os,backendName:\"webgl\",kernelFunc:Xet};var nC=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=Yet(this.rank),o,s=t.map((i,a)=>`sourceLoc.${hk[a]} = start[${a}] + coords.${hk[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},hk=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function Yet(r){if(r===1)return\"sourceLoc\";if(r<=6)return hk.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var oC=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=zt(this.rank),n=Qe(\"coords\",this.rank),o=Qe(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:\"webgl\",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:\"webgl\",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:\"webgl\",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var ez={kernelName:cp,backendName:\"webgl\",kernelFunc:trt};var ert=\"return float(a != b);\",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:\"bool\"}),rz={kernelName:Da,backendName:\"webgl\",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:\"webgl\",kernelFunc:wl};var rrt=\"return float(int(x));\";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return oz(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:\"webgl\",kernelFunc:xk};var iz=\"return ceil(x);\",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:\"webgl\",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n `}};var iC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n `}};function ort(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;z().getBool(\"WEBGL_PACK_CLIP\")?a=new iC(o.shape):a=new sC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var lz={kernelName:uo,backendName:\"webgl\",kernelFunc:ort};var aC=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,this.userCode=`\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n `}};function uz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function srt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new aC(n.shape),i=[uz(n,o.complexTensorInfos.real),uz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var cz={kernelName:_l,backendName:\"webgl\",kernelFunc:srt};var lC=class{constructor(t){this.outputShape=[],this.outputShape=v.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${uC(a,l,g)}),\n vec2(${uC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${uC(a,l,d)}),\n vec2(${uC(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:\"webgl\",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let p=r.map(b=>{let C=[-1,y.sizeFromShape(b.shape.slice(t))];return it({inputs:{x:b},backend:e,attrs:{shape:C}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=it({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:\"webgl\",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,C=\"\",N=\"\";n&&(o?C=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?C=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:C=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let _=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${C}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${g}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${h===1}) {\n\n if (${g}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${h===3}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${g}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${_}\n ${N}\n setOutput(result);\n }\n `}},pC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${h===3}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};var kd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function fC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],\"float32\",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,\"float32\"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type===\"SAME\"||m.padInfo.type===\"VALID\"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:\"webgl\",kernelFunc:art};var gC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n if (${i}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},xC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},yC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}},bC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new gC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var dz={kernelName:mp,backendName:\"webgl\",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(l),m=v.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var hz={kernelName:jo,backendName:\"webgl\",kernelFunc:urt};function crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new pC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var gz={kernelName:Al,backendName:\"webgl\",kernelFunc:crt};function prt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=v.computeConv3DInfo(o.shape,u,i,1,a),c=new yC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var xz={kernelName:fp,backendName:\"webgl\",kernelFunc:prt};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=v.computeConv3DInfo(u,s.shape,a,1,i),c=new bC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var yz={kernelName:dp,backendName:\"webgl\",kernelFunc:mrt};var frt=Po+`\n return cos(x);\n`,drt=Ct({opSnippet:frt}),bz={kernelName:Xo,backendName:\"webgl\",kernelFunc:drt};var hrt=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,grt=Ct({opSnippet:hrt}),wz={kernelName:Yo,backendName:\"webgl\",kernelFunc:grt};var wC=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${C};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}};var xrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new wC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Cz={kernelName:da,backendName:\"webgl\",kernelFunc:xrt};var qc;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(qc||(qc={}));var ng=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===qc.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Iz(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${zt(s)} coords = getOutputCoords();\n int end = ${Sz(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${Sz(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Iz(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Iz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Sz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function CC(r,t,e,n,o,s){let i=t.shape.length,a=v.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=v.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=tr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new ng(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new ng(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=v.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Prod,o,e,s,i,a)}var vz={kernelName:fa,backendName:\"webgl\",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Sum,o,e,s,i,a)}var Nz={kernelName:Zo,backendName:\"webgl\",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Lw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=pL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var Tz={kernelName:hp,backendName:\"webgl\",kernelFunc:wrt};var IC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return this.dataFormat===\"NHWC\"?\"coords[1]\":\"coords[2]\"}getWidthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[2]\":\"coords[3]\"}getDepthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[3]\":\"coords[1]\"}getOutputDepthSize(){return this.dataFormat===\"NHWC\"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat===\"NHWC\"?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"}};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new IC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var kz={kernelName:ha,backendName:\"webgl\",kernelFunc:Crt};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${u};\n int q = d2 - d1 * ${u};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${p}\n ${c}\n setOutput(result);\n }\n `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=v.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new _d(p):m=new Ed(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var Ez={kernelName:Jo,backendName:\"webgl\",kernelFunc:Irt};var SC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}},vC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${u}; dm++) {\n int d2 = d1 * ${u} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=v.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var _z={kernelName:gp,backendName:\"webgl\",kernelFunc:Srt};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=v.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new vC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Az={kernelName:xp,backendName:\"webgl\",kernelFunc:vrt};var NC=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:\"webgl\",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:\"webgl\",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:\"webgl\",kernelFunc:krt};var Ert=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",_rt=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,Art=Ct({opSnippet:Ert,packedOpSnippet:_rt}),Fz={kernelName:ts,backendName:\"webgl\",kernelFunc:Art};var $rt=\"return (b >= 1.0) ? a : a * (b + 1.0);\",Drt=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Rrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=z().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Oo(Drt,n.shape,o.shape):new io($rt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Oz={kernelName:wp,backendName:\"webgl\",kernelFunc:Rrt};var Frt=`\n return vec4(equal(a, b));\n`,Ort=\"return float(a == b);\",Prt=le({opSnippet:Ort,packedOpSnippet:Frt,dtype:\"bool\",cpuKernelImpl:hL}),Pz={kernelName:xa,backendName:\"webgl\",kernelFunc:Prt};var Lrt=`\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n float p = ${v.ERF_P};\n float a1 = ${v.ERF_A1};\n float a2 = ${v.ERF_A2};\n float a3 = ${v.ERF_A3};\n float a4 = ${v.ERF_A4};\n float a5 = ${v.ERF_A5};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`,Mrt=Ct({opSnippet:Lrt}),Lz={kernelName:ga,backendName:\"webgl\",kernelFunc:Mrt};var zrt=Po+`\n return exp(x);\n`,Brt=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:\"float32\"}),Mz={kernelName:es,backendName:\"webgl\",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:\"webgl\",kernelFunc:kC};var Bz=\"return exp(x) - 1.0;\",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:\"webgl\",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og(\"real\",u,t),c=new og(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:\"webgl\",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Cl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new _C(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Wz={kernelName:Dl,backendName:\"webgl\",kernelFunc:Cl};var AC=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var Uz={kernelName:ba,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new AC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Hz=\"return floor(x);\",Wrt=Ct({opSnippet:Hz,packedOpSnippet:Hz,cpuKernelImpl:yL}),qz={kernelName:rs,backendName:\"webgl\",kernelFunc:Wrt};var Urt=`\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n`,Hrt=`\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n`,qrt=le({opSnippet:Urt,packedOpSnippet:Hrt,dtype:\"int32\"}),Kz={kernelName:ns,backendName:\"webgl\",kernelFunc:qrt};var $C=class{constructor(t){this.variableNames=[\"A\"];let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${o}.0, ${n}.0);\n\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}};var DC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}.0, ${n}.0);\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${e.output} = result;\n }\n `}};var jz={kernelName:Yd,backendName:\"webgl\",kernelFunc:Krt},Ad,wk=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool(\"WEBGL_PACK\")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f===\"leakyrelu\",_=()=>{let $=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type===\"SAME\"||g.padInfo.type===\"VALID\"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&z().getBool(\"WEBGL_EXP_CONV\")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,\"float32\",P)}else if(z().getBool(\"WEBGL_CONV_IM2COL\"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,\"float32\")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:\"webgl\",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m===\"leakyrelu\";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:\"webgl\",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=zt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function Yrt(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=v.prepareAndValidate(n,o),m=it({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=it({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=bL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new RC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var Zz={kernelName:wa,backendName:\"webgl\",kernelFunc:Yrt};var FC=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=zt(this.rank),o=Zrt(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function Zrt(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:\"webgl\",kernelFunc:Ck};var Jrt=\"return float(a > b);\",Qrt=`\n return vec4(greaterThan(a, b));\n`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,cpuKernelImpl:CL,dtype:\"bool\"}),Qz={kernelName:Ca,backendName:\"webgl\",kernelFunc:tnt};var ent=\"return float(a >= b);\",rnt=`\n return vec4(greaterThanEqual(a, b));\n`,nnt=le({opSnippet:ent,packedOpSnippet:rnt,dtype:\"bool\",cpuKernelImpl:IL}),t3={kernelName:ss,backendName:\"webgl\",kernelFunc:nnt};function ont(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!0,e)}var e3={kernelName:Ip,backendName:\"webgl\",kernelFunc:ont};var snt=\"return float(!isnan(x) && !isinf(x));\",int=Ct({opSnippet:snt,dtype:\"bool\"}),r3={kernelName:Ia,backendName:\"webgl\",kernelFunc:int};var ant=\"return float(isinf(x));\",lnt=Ct({opSnippet:ant,dtype:\"bool\"}),n3={kernelName:Sa,backendName:\"webgl\",kernelFunc:lnt};var unt=\"return float(isnan(x));\",cnt=Ct({opSnippet:unt,dtype:\"bool\"}),o3={kernelName:va,backendName:\"webgl\",kernelFunc:cnt};var pnt=\"return float(a < b);\",mnt=`\n return vec4(lessThan(a, b));\n`,fnt=le({opSnippet:pnt,packedOpSnippet:mnt,cpuKernelImpl:SL,dtype:\"bool\"}),s3={kernelName:Na,backendName:\"webgl\",kernelFunc:fnt};var dnt=\"return float(a <= b);\",hnt=`\n return vec4(lessThanEqual(a, b));\n`,gnt=le({opSnippet:dnt,packedOpSnippet:hnt,cpuKernelImpl:vL,dtype:\"bool\"}),i3={kernelName:Ta,backendName:\"webgl\",kernelFunc:gnt};function xnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=NL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var a3={kernelName:vp,backendName:\"webgl\",kernelFunc:xnt};var ynt=Po+`\n return x < 0.0 ? 0./0. : log(x);\n`,bnt=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,wnt=Ct({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:TL}),l3={kernelName:as,backendName:\"webgl\",kernelFunc:wnt};var Cnt=Po+`\n return log(1.0 + x);\n`,Int=Ct({opSnippet:Cnt}),u3={kernelName:ka,backendName:\"webgl\",kernelFunc:Int};var Snt=\"return float(a >= 1.0 && b >= 1.0);\",vnt=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Nnt=le({opSnippet:Snt,packedOpSnippet:vnt,dtype:\"bool\"}),c3={kernelName:Ea,backendName:\"webgl\",kernelFunc:Nnt};var Tnt=\"return float(!(x >= 1.0));\",knt=Ct({opSnippet:Tnt}),p3={kernelName:_a,backendName:\"webgl\",kernelFunc:knt};var Ent=\"return float(a >= 1.0 || b >= 1.0);\",_nt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Ant=le({opSnippet:Ent,packedOpSnippet:_nt,dtype:\"bool\"}),m3={kernelName:Aa,backendName:\"webgl\",kernelFunc:Ant};var OC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var PC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${u};\n setOutput(result);\n }\n `}};var $nt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=z().getBool(\"WEBGL_PACK_NORMALIZATION\")?new PC(o.shape,s,i,a,u):new OC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},f3={kernelName:Rl,backendName:\"webgl\",kernelFunc:$nt};var LC=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${o}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${o})\n * float(${s})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}};var Dnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:\"webgl\",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,\"max\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var y3={kernelName:cs,backendName:\"webgl\",kernelFunc:Pnt};function Lnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new $u(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var b3={kernelName:Fl,backendName:\"webgl\",kernelFunc:Lnt};var MC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},zC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function Mnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new $u(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new zC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var w3={kernelName:kp,backendName:\"webgl\",kernelFunc:Mnt};function znt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Qs([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ei(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new MC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var C3={kernelName:Tp,backendName:\"webgl\",kernelFunc:znt};function I3(r,t,e,n){let o=new ei(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new ei(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var S3={kernelName:Ep,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,\"float32\",\"mean\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;$c[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var VC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Unt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new VC(n.shape,o,s):new BC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},E3={kernelName:ds,backendName:\"webgl\",kernelFunc:Unt};var Hnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,qnt=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+Yi+`\n return result;\n`,Knt=le({opSnippet:Hnt,packedOpSnippet:qnt}),_3={kernelName:$a,backendName:\"webgl\",kernelFunc:Knt};var GC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${e-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${e-1}));\n }\n `}};var jnt=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,Xnt=`\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n`,Sk=le({opSnippet:jnt,packedOpSnippet:Xnt,checkOutOfBounds:!0}),A3={kernelName:Qo,backendName:\"webgl\",kernelFunc:Sk};var $3=\"return a - b;\",vk=le({opSnippet:$3,packedOpSnippet:$3,supportsComplex:!0,cpuKernelImpl:XL}),D3={kernelName:Fs,backendName:\"webgl\",kernelFunc:vk};function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Ik({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=v.expandShapeToKeepDim(a.shape,i),l=it({inputs:{x:a},backend:e,attrs:{shape:u}}),c=vk({inputs:{a:o,b:l},backend:e}),p=bk({inputs:{x:c},backend:e}),m=Wc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=it({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Sk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var R3={kernelName:Ds,backendName:\"webgl\",kernelFunc:Nk};function Ynt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Nk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new GC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var F3={kernelName:_p,backendName:\"webgl\",kernelFunc:Ynt};var Znt=fr+`\n return -x;\n`,Jnt=`\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;function Qnt(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=$L(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return z().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new so(n.shape,Jnt):o=new tn(n.shape,Znt),e.runWebGLProgram(o,[n],n.dtype)}var O3={kernelName:pi,backendName:\"webgl\",kernelFunc:Qnt};var tot=Ur.nonMaxSuppressionV3Impl;function eot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=tot(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var P3={kernelName:Ra,backendName:\"webgl\",kernelFunc:eot};var rot=Ur.nonMaxSuppressionV4Impl;function not(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=rot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var L3={kernelName:Fa,backendName:\"webgl\",kernelFunc:not};var oot=Ur.nonMaxSuppressionV5Impl;function sot(r){v.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=oot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var M3={kernelName:Oa,backendName:\"webgl\",kernelFunc:sot};var WC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var iot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:\"webgl\",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var B3={kernelName:wi,backendName:\"webgl\",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:\"webgl\",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:\"webgl\",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var HC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=Qe(\"rc\",o),l=Qe(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Cl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new HC(o.shape,s,i):new UC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},U3={kernelName:xs,backendName:\"webgl\",kernelFunc:Tk};var lot=`\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n`,uot=`\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+Yi+`\n return result;\n`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:\"webgl\",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,\"prod\",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:\"webgl\",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:\"webgl\",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:\"webgl\",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:\"webgl\",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:\"webgl\",kernelFunc:kk};var hot=\"return 1.0 / x;\",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:\"webgl\",kernelFunc:got};var xot=fr+`\n return (x < 0.0) ? 0.0 : x;\n`,yot=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,bot=Ct({opSnippet:xot,packedOpSnippet:yot}),J3={kernelName:Cs,backendName:\"webgl\",kernelFunc:bot};var wot=fr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,Cot=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Iot=Ct({opSnippet:wot,packedOpSnippet:Cot}),Q3={kernelName:vs,backendName:\"webgl\",kernelFunc:Iot};var qC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}};var KC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}};function Sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new KC(o.shape,u,l,s,i):new qC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var tB={kernelName:Ss,backendName:\"webgl\",kernelFunc:Sot};var jC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function vot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new jC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var eB={kernelName:Op,backendName:\"webgl\",kernelFunc:vot};var XC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var YC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new YC(o.shape,u,l,s,i):new XC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var rB={kernelName:Is,backendName:\"webgl\",kernelFunc:Not};var ZC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new ZC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var nB={kernelName:Fp,backendName:\"webgl\",kernelFunc:Tot};var JC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=zt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var QC=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=Qe(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function kot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return tr({inputs:{x:o},backend:e});let u=z().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new QC(o.shape,a):new JC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var oB={kernelName:Ns,backendName:\"webgl\",kernelFunc:kot};var tI=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.join(\",\")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var sB={kernelName:qa,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new tI(n.shape,s),[l,c]=v.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Eot=`\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n`,_ot=Ct({opSnippet:Eot}),iB={kernelName:Ts,backendName:\"webgl\",kernelFunc:_ot};var Aot=\"return inversesqrt(x);\",$ot=Ct({opSnippet:Aot,cpuKernelImpl:ML}),aB={kernelName:ks,backendName:\"webgl\",kernelFunc:$ot};var $d=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let u=zt(s.length),l=zt(i.length),c=\"\";n===1?c=\"i\":n===2&&(c=\"i, j\");let p=`getIndices(${c})`,m=\"\";o===1?m=\"i\":o===2&&(m=\"i, coords[1]\");let f=`getUpdates(${m})`,d=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${u} strides = ${u}(${s});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${p});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:\"webgl\",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new eI(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var uB={kernelName:Pp,backendName:\"webgl\",kernelFunc:Rot};var rI=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function Fot(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new rI(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],sr(o.dtype,s.dtype))}var cB={kernelName:hi,backendName:\"webgl\",kernelFunc:Fot};var Oot=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${v.SELU_SCALEALPHA};\n float scale = ${v.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Pot=Ct({opSnippet:Oot}),pB={kernelName:Ma,backendName:\"webgl\",kernelFunc:Pot};var Lot=Po+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,Mot=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,zot=Ct({opSnippet:Lot,packedOpSnippet:Mot,cpuKernelImpl:BL}),mB={kernelName:_s,backendName:\"webgl\",kernelFunc:zot};var Bot=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Vot=Ct({opSnippet:Bot}),fB={kernelName:Ba,backendName:\"webgl\",kernelFunc:Vot};var Got=Po+`\n return sin(x);\n`,Wot=Ct({opSnippet:Got}),dB={kernelName:Es,backendName:\"webgl\",kernelFunc:Wot};var Uot=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Hot=Ct({opSnippet:Uot}),hB={kernelName:za,backendName:\"webgl\",kernelFunc:Hot};var qot=`\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:\"webgl\",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:\"webgl\",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=GL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var yB={kernelName:Pl,backendName:\"webgl\",kernelFunc:Xot};function Yot(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=WL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var bB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Yot};function Zot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var wB={kernelName:Ll,backendName:\"webgl\",kernelFunc:Zot};function Jot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:\"webgl\",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:\"webgl\",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:\"webgl\",kernelFunc:tst};var vB=\"return sqrt(x);\",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:\"webgl\",kernelFunc:est};var rst=\"return x * x;\",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:\"webgl\",kernelFunc:nst};var kB=\"return (a - b) * (a - b);\",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:\"webgl\",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var _B={kernelName:po,backendName:\"webgl\",kernelFunc:sst};var nI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:\"webgl\",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var $B={kernelName:Bl,backendName:\"webgl\",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var DB={kernelName:Vl,backendName:\"webgl\",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var RB={kernelName:Gl,backendName:\"webgl\",kernelFunc:ust};var cst=\"return tan(x);\",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:\"webgl\",kernelFunc:pst};var mst=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,fst=Ct({opSnippet:mst}),OB={kernelName:Ps,backendName:\"webgl\",kernelFunc:fst};var oI=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=YL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new oI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var PB={kernelName:Jn,backendName:\"webgl\",kernelFunc:Ek};var sI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},iI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:\"webgl\",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${s});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var zB={kernelName:Ha,backendName:\"webgl\",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var BB={kernelName:Mp,backendName:\"webgl\",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:\"webgl\",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function bst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=v.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=v.getInnerMostAxes(1,a)[0]);let m=v.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=it({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Wu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:\"float32\"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:\"webgl\",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]=\"float32\",r[r.int32=1]=\"int32\",r[r.bool=2]=\"bool\",r[r.string=3]=\"string\",r[r.complex64=4]=\"complex64\"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]=\"linear\",r[r.relu=1]=\"relu\",r[r.relu6=2]=\"relu6\",r[r.prelu=3]=\"prelu\",r[r.leakyrelu=4]=\"leakyrelu\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:\"wasm\",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,[\"array\",\"number\",\"number\",\"number\"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:\"wasm\",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:\"wasm\",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:\"wasm\",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:\"wasm\",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:\"wasm\",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:\"wasm\",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:\"wasm\",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,[\"number\",\"number\",\"number\",\"number\"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:\"wasm\",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ar({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:\"wasm\",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:\"wasm\",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:\"wasm\",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type===\"SAME\"?1:0;if(f.dataFormat!==\"channelsLast\")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:\"wasm\",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,\"bool\");var FV=se(es,\"float32\");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:\"wasm\",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:\"wasm\",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:\"wasm\",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:\"wasm\",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,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 mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:\"wasm\",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,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 dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:\"wasm\",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:\"wasm\",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:\"wasm\",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,\"bool\");var wit=!1,JV=ue(ss,wit,\"bool\");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,[\"number\",\"number\",\"number\",\"number\"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:\"wasm\",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,\"bool\");var vit=!1,rG=ue(Ta,vit,\"bool\");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,\"bool\");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,\"bool\");var kit=!1,aG=ue(m1,kit,\"bool\");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:\"wasm\",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:\"wasm\",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,[\"number, number, number\"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:\"wasm\",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,[\"number\",\"number\",\"number\",\"number\"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:\"wasm\",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:\"wasm\",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var SG={kernelName:Ra,backendName:\"wasm\",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var NG={kernelName:Fa,backendName:\"wasm\",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var kG={kernelName:Oa,backendName:\"wasm\",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,\"bool\");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:\"wasm\",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:\"wasm\",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:\"wasm\",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:\"wasm\",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,[\"number\",\"number\",\"number\"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:\"wasm\",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,[\"number\",\"number\",\"number\",\"number\"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:\"wasm\",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:\"wasm\",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:\"wasm\",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:\"wasm\",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:\"wasm\",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:\"wasm\",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:\"wasm\",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:\"wasm\",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,[\"number\",\"number\"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,[\"number\",\"number\",\"number\",\"number\"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:\"wasm\",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=\"\"}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:\"wasm\",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:\"wasm\",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:\"wasm\",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,[\"number\",\"number\",\"number\",\"number\"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:\"wasm\",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:\"wasm\",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:\"wasm\",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:\"wasm\",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:\"wasm\",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,[\"number\",\"number\",\"number\",\"number\"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:\"wasm\",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:\"wasm\",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,P;switch(a){case\"constant\":P=1;break;case\"reflect\":P=2;break;case\"wrap\":P=3;break;case\"nearest\":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:\"wasm\",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:\"wasm\",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:\"wasm\",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.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(r){return!1}});Rk.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(Rk.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(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),z().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=XW.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:\"\")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:\"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers\"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+KW.toString()],{type:\"text/javascript\"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(Wv(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`\");if(typeof r==\"string\")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(\",\")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error(\"WASM backend not initialized.\");return Mk}var slt=\"4.0.0\";var ilt=2;Xp(\"wasm\",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW=\"4.0.0\",alt=\"4.0.0\",llt=\"4.0.0\",ult=\"4.0.0\",clt=\"4.0.0\",plt={tfjs:JW,\"tfjs-core\":JW,\"tfjs-converter\":alt,\"tfjs-backend-cpu\":llt,\"tfjs-backend-webgl\":ult,\"tfjs-backend-wasm\":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,iv as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,kv as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,xv as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,Wv as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,l0 as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,u0 as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,uv as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,P0 as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,p0 as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike};\n", "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number;\n\n private _height: number;\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number;\n\n private _y: number;\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number;\n\n private _y: number;\n\n private _width: number;\n\n private _height: number;\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({ x, y, width, height });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({ x, y, width, height });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return { dy, edy, dx, edx, y, ey, x, ex, w, h };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) {\n super({ left, top, right, bottom }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number;\n\n private _classScore: number;\n\n private _className: string;\n\n private _box: Rect;\n\n private _imageDims: Dimensions;\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public override forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) {\n super({ x, y, width, height }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point;\n\n protected _positions: Point[];\n\n protected _imgDims: Dimensions;\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected override getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected override getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string;\n private _distance: number;\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string;\n\n private _descriptors: Float32Array[];\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number;\n\n private _classScore: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection(sourceObj: TSource, detection: FaceDetection): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: any, buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n // eslint-disable-next-line dot-notation\n const Video = global['Video'] || global.HTMLVideoElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n createVideoElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition;\n\n public backgroundColor: string;\n\n public fontColor: string;\n\n public fontSize: number;\n\n public fontStyle: string;\n\n public padding: number;\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[];\n\n public anchor : IPoint;\n\n public options: DrawTextFieldOptions;\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string;\n\n public lineWidth: number;\n\n public drawLabelOptions: DrawTextFieldOptions;\n\n public label?: string;\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box;\n\n public options: DrawBoxOptions;\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) resolve(null);\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf['browser'].toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = [];\n\n private _canvases: HTMLCanvasElement[] = [];\n\n private _batchSize: number;\n\n private _treatAsBatchInput = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf['browser'].fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n // @ts-ignore\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf['io'].loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined;\n\n protected _paramMappings: ParamMapping[] = [];\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf['io'].weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer = false,\n isScaleDown = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor;\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract override getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = t.dataSync();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a, b) => Math.sqrt((a._x - b._x) ** 2 + (a._y - b._y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint, midPoint, rightPoint) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint._x - midPoint._x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint._x - rightPoint._x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever, pivot) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot._x - lever._x, pivot._y - lever._y);\n const opposite = pivot._y - lever._y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot._x - lever._x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint, midPoint, rightPoint) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = {\n _x: (leftPoint._x + rightPoint._x) / 2,\n _y: (leftPoint._y + rightPoint._y) / 2,\n };\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords._y - midPoint._y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean;\n\n public drawPoints: boolean;\n\n public lineWidth: number;\n\n public pointSize: number;\n\n public lineColor: string;\n\n public pointColor: string;\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks;\n\n public options: DrawFaceLandmarksOptions;\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number;\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception;\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(landmarkTensor.dataSync());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected as tf.Tensor2D;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) conv11 = out;\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) return 0.0;\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(maxOutputSize, numBoxes);\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 10), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name = 'SsdMobilenetv1Options';\n\n private _minConfidence: number;\n\n private _maxResults: number;\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\n );\n });\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name = 'TinyYolov2Options';\n\n private _inputSize: number;\n\n private _scoreThreshold: number;\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config;\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(255) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(\n faces.map((face) => nets.faceExpressionNet.predictExpressions(face) as Promise),\n ),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask>> extends PredictAllFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask>> extends PredictSingleFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\n );\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask>> extends PredictSingleAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[];\n private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return (bestMatch.distance < this._distanceThreshold) ? bestMatch : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this._distanceThreshold,\n labeledDescriptors: this._labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors.map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], - "mappings": "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AAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,O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AM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aA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", - "names": ["tfjs_esm_exports", "__export", "ii", "oa", "sa", "cu", "pu", "mu", "fu", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "ma", "pa", "Uo", "El", "lp", "ap", "cg", "Ho", "ai", "up", "cp", "p1", "Sb", "Py", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "da", "fa", "Zo", "My", "ra", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "Xd", "jd", "iv", "vb", "bp", "ts", "wp", "qd", "xa", "ga", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "Yd", "os", "Ii", "Si", "Bc", "wa", "ci", "Ph", "Ca", "ss", "Ly", "Ip", "co", "Sp", "ye", "Ia", "Sa", "va", "zo", "Rl", "Np", "Ch", "Bn", "is", "Na", "Ta", "vp", "as", "ka", "f1", "Ea", "_a", "Aa", "m1", "xlt", "_u", "ls", "cs", "Fl", "kp", "Tp", "Ep", "us", "ps", "ms", "fs", "ds", "$a", "du", "_p", "hs", "pi", "Ra", "Fa", "Oa", "Da", "kv", "gs", "mi", "Wr", "Ws", "fi", "xs", "ylt", "ys", "bs", "ws", "hu", "Tn", "Ap", "$p", "Dp", "Ol", "xv", "Rp", "Qo", "Pa", "Xe", "Cs", "vs", "di", "Ss", "Op", "Is", "Fp", "Ns", "qa", "Ts", "ks", "Bi", "La", "Pp", "hi", "Ma", "qi", "_s", "Ba", "Es", "za", "gi", "Ds", "Va", "xi", "Pl", "Ga", "Ll", "Ml", "Lp", "yi", "As", "zl", "Rs", "po", "Wa", "Bl", "Vl", "Gl", "Fs", "$s", "Jr", "Os", "Ps", "Ft", "pe", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "Ka", "wi", "Ci", "Ee", "ax", "lx", "X", "LE", "Zp", "qu", "Ai", "ux", "cx", "px", "mx", "fx", "dx", "Yl", "gx", "gE", "v", "BE", "Di", "xx", "yx", "bx", "Zl", "wx", "n6", "GE", "Ri", "Vr", "nx", "wt", "VZ", "J", "Cx", "Cr", "sn", "wn", "ne", "Ix", "Sx", "vx", "Nx", "K$", "Qp", "In", "em", "Tx", "Ex", "Tlt", "Jl", "rm", "hh", "Xu", "nm", "un", "AR", "ch", "Wv", "_x", "Fi", "HZ", "Kl", "WE", "Ax", "gpt", "vt", "xpt", "pt", "$x", "Dx", "l0", "UE", "Oi", "hpt", "dpt", "u0", "Pn", "z", "$r", "Rx", "Fx", "er", "rr", "Ox", "Yu", "au", "xo", "Spt", "vpt", "Pi", "Yp", "hM", "uu", "Li", "m6", "ox", "Cpt", "uv", "Jd", "zg", "olt", "ik", "bK", "wK", "Re", "ln", "tl", "Xl", "Gs", "h6", "j$", "P0", "_r", "xm", "Px", "Lx", "Mx", "De", "Ur", "ED", "Ql", "om", "Ln", "p0", "KE", "M7", "z7", "hD", "zx", "Sr", "tu", "Gx", "sm", "im", "Rr", "eu", "am", "Wx", "hX", "jE", "Lt", "yE", "Ir", "ru", "Hx", "XE", "Sn", "ve", "ah", "YE", "_D", "Ja", "Mi", "qx", "Kx", "q8", "AD", "Zu", "s6", "D", "ZE", "JE", "Ht", "gh", "Qa", "Bs", "Ei", "cr", "yr", "T", "QE", "cn", "t_", "e_", "r_", "n_", "jx", "an", "ou", "Jg", "Xx", "ypt", "o_", "s_", "i_", "a_", "v_", "tc", "N_", "zi", "su", "wpt", "Za", "ty", "Xp", "j8", "h1", "Lu", "UZ", "$D", "Fr", "lm", "Ipt", "R", "pr", "T_", "k_", "E_", "__", "lu", "um", "cm", "mt", "a6", "lh", "mh", "pm", "mm", "K8", "Q", "tH", "Npt", "nlt", "elt", "rlt", "wT", "A_", "Yr", "ey", "dX", "fm", "dm", "Rt", "hm", "dh", "gm", "ec", "Le", "iu", "zs", "nu", "gX", "c6", "fX", "mr", "Se", "Mt", "ym", "Mn", "nr", "bo", "ry", "xX", "ct", "ft", "Wu", "ny", "$i", "ur", "Me", "Vs", "rx", "$_", "D_", "R_", "go", "OE", "B", "Dr", "bpt", "oy", "ic", "Ot", "bm", "sy", "Nlt", "vlt", "wm", "vr", "sr", "F_", "y", "CK", "IK", "iy", "Bx", "plt", "cR", "PE", "Um", "slt", "dM", "Zke", "dd", "_e", "ly", "Ne", "It", "DU", "QS", "RU", "FU", "OU", "PU", "Pg", "r", "__require", "e", "gr", "Wt", "LU", "n", "o", "Tl", "T1", "Elt", "N1", "Ue", "mo", "t", "Fn", "g1", "x1", "zu", "He", "fo", "Mu", "ho", "C1", "v1", "b1", "Rn", "S1", "Vp", "Bg", "mv", "s", "i", "a", "u", "l", "Ls", "y1", "s4", "w1", "Bp", "I1", "pv", "gt", "c", "p", "m", "f", "d", "iE", "aE", "u_", "l_", "r0", "p_", "c_", "n0", "f_", "m_", "o0", "h_", "d_", "s0", "x_", "g_", "i0", "h", "g", "b_", "y_", "a0", "w_", "I_", "C_", "Yx", "w", "C", "N", "_", "A", "b", "$", "P", "V", "G", "W", "q", "H", "fh", "fNt", "S_", "lj", "uj", "cj", "pj", "mj", "fj", "Ju", "gN", "Zb", "ig", "BW", "VW", "GW", "WW", "fI", "Ok", "Fk", "st", "jt", "qe", "ke", "fe", "Ae", "_n", "or", "Hn", "Lr", "L", "U", "x", "F", "Ru", "Y", "ut", "xt", "Dt", "ie", "Mo", "j", "Z", "et", "rt", "ot", "at", "nt", "Yc", "dt", "ht", "bt", "kt", "_t", "Vt", "Gt", "Xt", "hr", "Xn", "Zt", "ce", "he", "We", "Mr", "zr", "qn", "Kn", "Xr", "Zi", "Il", "Rd", "Md", "Tr", "Ji", "Gk", "Fd", "Sl", "Xc", "Qi", "Wk", "Uk", "gI", "pg", "Od", "en", "mg", "xI", "yI", "vg", "EI", "Kt", "ea", "bI", "Hk", "wI", "CI", "YS", "II", "Pd", "fg", "dg", "Ld", "vl", "qk", "gg", "hg", "SI", "Ag", "zd", "vI", "ZS", "$g", "Kk", "jk", "NI", "e1", "Zc", "TI", "kI", "t1", "Xk", "_I", "AI", "Zk", "$I", "xg", "yg", "DI", "RI", "FI", "Qk", "OI", "PI", "LI", "Fu", "MI", "zI", "bg", "BI", "Jc", "VI", "GI", "Dg", "Jk", "Bd", "WI", "ZI", "UI", "HI", "qI", "wg", "Cg", "KI", "jI", "Ig", "Sg", "XI", "An", "rp", "o1", "n1", "JS", "$U", "YI", "Yk", "JI", "QI", "tS", "eS", "rS", "nS", "oS", "sS", "iS", "aS", "lS", "uS", "cS", "pS", "mS", "fS", "dS", "hS", "gS", "xS", "yS", "bS", "wS", "CS", "IS", "SS", "vS", "NS", "TS", "kS", "ES", "_S", "AS", "$S", "DS", "RS", "FS", "OS", "PS", "LS", "MS", "zS", "BS", "VS", "GS", "WS", "US", "HS", "Ng", "Tg", "Vd", "qS", "KS", "Qc", "kg", "tp", "ep", "jS", "K", "lt", "At", "re", "Ke", "je", "ee", "te", "dr", "jn", "ta", "Eg", "Gd", "XS", "rn", "Nl", "_g", "QW", "tU", "eU", "rU", "nU", "oU", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "yU", "bU", "wU", "CU", "IU", "SU", "vU", "NU", "TU", "kU", "EU", "_U", "Rg", "r1", "Fg", "Og", "AU", "HW", "G5e", "UW", "qW", "dI", "Lk", "Pk", "ra", "zo", "$n", "s1", "Lg", "MU", "np", "zU", "BU", "VU", "GU", "E", "$e", "Dn", "Yn", "Bo", "xr", "Jt", "WU", "na", "UU", "HU", "qU", "Pu", "KU", "jU", "lr", "tv", "ev", "rv", "nv", "ov", "XU", "Mg", "sv", "Vo", "i1", "a1", "op", "oi", "sp", "si", "l1", "Ou", "Wd", "ip", "YU", "Ud", "ZU", "JU", "Hd", "u1", "qd", "t4", "z", "r4", "e4", "iv", "c1", "av", "lv", "n4", "Kd", "ii", "oa", "sa", "Zn", "Go", "ia", "aa", "Wo", "kl", "la", "ua", "ca", "pa", "ma", "Uo", "ap", "El", "lp", "Ho", "ai", "up", "p1", "cp", "lo", "qo", "uo", "pp", "_l", "li", "Ko", "mp", "jo", "Al", "fp", "dp", "Xo", "Yo", "fa", "Zo", "da", "hp", "ha", "Jo", "gp", "xp", "yp", "$l", "jd", "Xd", "Qo", "bp", "ts", "wp", "ga", "xa", "es", "ui", "ya", "Cp", "Dl", "ba", "rs", "ns", "os", "ci", "wa", "Ca", "ss", "co", "Ip", "Sp", "Ia", "Sa", "va", "is", "Na", "Ta", "vp", "as", "ka", "Ea", "_a", "Aa", "m1", "f1", "xlt", "Rl", "Np", "ls", "us", "cs", "Tp", "Fl", "kp", "Ep", "ps", "ms", "fs", "ds", "$a", "_p", "hs", "pi", "Da", "Ra", "Fa", "Oa", "mi", "gs", "fi", "xs", "ylt", "ys", "bs", "ws", "Ap", "$p", "Dp", "Ol", "Rp", "Pa", "Cs", "di", "Is", "Fp", "Ss", "Op", "vs", "Ns", "Ts", "ks", "La", "Pp", "hi", "Ma", "gi", "Es", "za", "Ba", "_s", "Va", "As", "$s", "xi", "yi", "Ds", "Pl", "Ga", "Ll", "Ml", "Lp", "Rs", "zl", "Wa", "Bl", "Vl", "Gl", "Fs", "Os", "Ps", "Jn", "Ua", "Ha", "Qn", "Mp", "bi", "Wl", "blt", "wi", "po", "Yd", "qa", "Ci", "Ii", "Si", "vi", "o4", "zp", "Zd", "Jd", "cv", "uv", "zg", "Lu", "h1", "vlt", "Nlt", "Tlt", "y", "p4", "Wp", "Hl", "f4", "c4", "Qd", "Gu", "Gp", "dv", "Vu", "E1", "Bu", "nn", "fv", "_1", "Pe", "k1", "kr", "Ul", "i4", "Vg", "a4", "l4", "u4", "m4", "Gg", "hv", "d4", "A1", "$1", "D1", "th", "gv", "R1", "h4", "Wg", "rh", "eh", "F1", "pe", "Ms", "Up", "g4", "O1", "P1", "L1", "Ft", "O", "Ka", "go", "Iv", "nh", "y4", "Ut", "xv", "yv", "bv", "wv", "Cv", "x4", "sr", "Wu", "M1", "b4", "Sv", "Ug", "ql", "k", "w4", "C4", "vv", "Kl", "Tv", "v4", "S4", "I4", "Nv", "On", "Br", "B1", "z1", "I", "ja", "kv", "T", "N4", "wn", "on", "ur", "oh", "Hg", "G1", "T4", "qg", "A4", "Ev", "V1", "W1", "U1", "Hp", "_v", "Kg", "Av", "qp", "Ni", "jg", "k4", "E4", "_4", "Ce", "H1", "q1", "K1", "j1", "$v", "Dv", "Uu", "jl", "X1", "Rv", "Ti", "Y1", "$4", "D4", "Xg", "Xa", "Kp", "Z1", "R4", "F4", "O4", "P4", "J1", "Q1", "L4", "M4", "ki", "tE", "z4", "Yg", "jp", "Er", "Zg", "eE", "rE", "nE", "oE", "sE", "Fv", "B4", "Ov", "Pv", "wt", "V4", "J", "G4", "sn", "Jg", "W4", "_r", "uE", "mE", "fE", "Gv", "tx", "Qg", "cE", "Bv", "dE", "hE", "U4", "H4", "q4", "lE", "Ya", "Lv", "K4", "j4", "Mv", "zv", "X4", "Y4", "sh", "Z4", "pE", "ih", "ex", "Vv", "yE", "xE", "J4", "Lt", "Q4", "Ei", "dpt", "hpt", "gpt", "Wv", "xpt", "Pn", "ah", "ypt", "B", "vt", "De", "bpt", "tH", "wpt", "Cpt", "Ipt", "Spt", "vpt", "Xp", "gE", "Npt", "eH", "Xl", "rH", "Ht", "nH", "Za", "oH", "Ot", "sH", "Vr", "Pt", "bE", "ge", "nx", "mH", "cH", "pH", "rx", "Hu", "wE", "iH", "aH", "lH", "uH", "ox", "CE", "lh", "IE", "sx", "Uv", "Le", "dH", "bH", "gH", "xH", "yH", "hH", "qv", "wH", "AE", "kE", "$E", "EE", "_E", "vE", "Hv", "fH", "NE", "TE", "CH", "SE", "Q", "uh", "_i", "Cn", "OE", "DE", "EH", "FE", "kH", "SH", "NH", "RE", "vH", "TH", "_H", "ix", "IH", "Kv", "jv", "PE", "AH", "X", "$H", "Yp", "DH", "pt", "RH", "D", "FH", "Ee", "OH", "ax", "PH", "lx", "LH", "LE", "MH", "Zp", "zH", "qu", "BH", "Ai", "VH", "ux", "GH", "cx", "WH", "px", "UH", "mx", "HH", "fx", "qH", "dx", "KH", "zE", "ju", "Yv", "hx", "jH", "Xv", "ME", "Jp", "ZH", "JH", "XH", "Zv", "Ku", "YH", "to", "Ar", "Ie", "QH", "R", "tq", "Yl", "eq", "gx", "rq", "ne", "nq", "Yr", "oq", "Rt", "sq", "$i", "iq", "BE", "aq", "Zl", "VE", "lq", "Di", "uq", "xx", "cq", "yx", "pq", "bx", "mq", "wx", "fq", "GE", "dq", "Ri", "hq", "Cx", "xo", "gq", "Cr", "xq", "Ix", "yq", "Sx", "bq", "vx", "wq", "Nx", "Cq", "In", "Iq", "Qp", "Sq", "tm", "vq", "em", "Nq", "Tx", "Tq", "kx", "kq", "Ex", "Eq", "Jl", "_q", "rm", "Aq", "Xu", "$q", "nm", "Dq", "ch", "Rq", "_x", "Fq", "Fi", "Oq", "WE", "Pq", "Ax", "Lq", "$r", "Mq", "_e", "zq", "It", "Bq", "$x", "Vq", "Dx", "Gq", "UE", "Wq", "Oi", "Uq", "Rx", "Jv", "HE", "Qv", "yo", "Hq", "t0", "ph", "qq", "Kq", "Ir", "jq", "Ja", "Xq", "an", "mt", "Yq", "Se", "Zq", "Mt", "Jq", "ft", "Qq", "qE", "Qa", "tK", "Fx", "eK", "er", "rK", "rr", "nK", "Ox", "oK", "Dr", "sK", "Yu", "iK", "Pi", "aK", "Li", "lK", "Re", "uK", "ln", "cK", "Px", "pK", "Lx", "mK", "Mx", "fK", "Ql", "dK", "om", "hK", "Ln", "KE", "gK", "zx", "xK", "Sr", "yK", "tu", "bK", "Vx", "wK", "CK", "IK", "Bx", "un", "SK", "zs", "vK", "Gx", "NK", "ct", "TK", "sm", "kK", "im", "EK", "Rr", "_K", "eu", "AK", "am", "$K", "Wx", "Ux", "DK", "mh", "jE", "RK", "ru", "FK", "Hx", "OK", "XE", "PK", "Sn", "LK", "ve", "Ne", "cr", "YE", "MK", "Mi", "zK", "qx", "BK", "Kx", "VK", "Zu", "GK", "ZE", "WK", "JE", "UK", "Bs", "HK", "yr", "qK", "QE", "KK", "cn", "jK", "t_", "XK", "e_", "YK", "r_", "ZK", "n_", "JK", "nu", "QK", "ej", "tj", "jx", "rj", "ou", "nj", "Xx", "oj", "o_", "sj", "s_", "ij", "i_", "aj", "a_", "Qx", "Qu", "Zx", "Jx", "dj", "v_", "hj", "tc", "gj", "N_", "xj", "zi", "su", "yj", "ty", "bj", "Fr", "wj", "lm", "Cj", "pr", "Ij", "T_", "Sj", "k_", "vj", "E_", "Nj", "__", "Tj", "um", "kj", "cm", "Ej", "pm", "_j", "mm", "Aj", "A_", "$j", "ey", "Dj", "fm", "Rj", "dm", "Fj", "hm", "Oj", "dh", "Pj", "gm", "Lj", "ec", "Mj", "iu", "zj", "au", "Bj", "tl", "Vj", "xm", "Gj", "mr", "Wj", "lu", "Uj", "ym", "Hj", "Mn", "qj", "nr", "Kj", "bo", "jj", "ry", "Xj", "ny", "Me", "Vs", "$_", "D_", "R_", "Yj", "oy", "Zj", "bm", "Jj", "sy", "Qj", "wm", "t6", "vr", "F_", "iy", "ay", "e6", "ly", "r6", "n6", "o6", "s6", "i6", "a6", "O_", "u6", "c6", "p6", "m6", "P_", "f6", "l0", "u0", "hh", "d6", "h6", "uu", "L_", "M_", "z_", "g6", "Cm", "rc", "nc", "oc", "sc", "x6", "y6", "uy", "b6", "cy", "w6", "C6", "I6", "B_", "S6", "py", "v6", "my", "N6", "V_", "T6", "G_", "k6", "W_", "E6", "U_", "_6", "H_", "wo", "A6", "q_", "K_", "$6", "R6", "D6", "fy", "c0", "dy", "hy", "j_", "F6", "O6", "P6", "X_", "L6", "Y_", "M6", "Z_", "z6", "J_", "B6", "Q_", "V6", "gy", "G6", "xy", "W6", "U6", "tA", "H6", "eA", "q6", "rA", "K6", "nA", "j6", "oA", "sA", "Xe", "X6", "Gr", "Y6", "iA", "Z6", "aA", "J6", "lA", "Q6", "uA", "tX", "cA", "eX", "pA", "rX", "nX", "mA", "oX", "sX", "fA", "iX", "dA", "aX", "hA", "lX", "gA", "uX", "xA", "cX", "yA", "pX", "bA", "mX", "wA", "fX", "dX", "Gs", "p0", "hX", "gX", "xX", "Wr", "cu", "pu", "mu", "fu", "Bi", "du", "hu", "Ws", "ic", "yX", "gh", "v", "RX", "FX", "OX", "PX", "LX", "DX", "yy", "Vi", "f0", "m0", "bX", "WX", "XX", "CX", "BX", "VX", "NX", "wX", "KX", "HX", "UX", "g5", "h5", "GX", "YX", "jX", "TX", "EX", "SX", "kX", "_X", "IX", "AX", "$X", "t5", "e5", "r5", "s5", "a5", "i5", "n5", "o5", "p5", "l5", "u5", "c5", "ZX", "MX", "QX", "h0", "zX", "vX", "d0", "qX", "CA", "IA", "JX", "d5", "f5", "m5", "Ur", "by", "SA", "vA", "NA", "TA", "kA", "EA", "_A", "AA", "$A", "DA", "RA", "x5", "FA", "OA", "y5", "PA", "LA", "MA", "zA", "BA", "VA", "GA", "WA", "UA", "HA", "qA", "KA", "b5", "jA", "XA", "YA", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "o2", "s2", "i2", "a2", "l2", "p2", "u2", "c2", "m2", "f2", "d2", "h2", "g2", "x2", "y2", "b2", "w2", "w5", "C2", "I2", "wy", "g0", "S2", "C5", "v2", "N2", "I5", "T2", "k2", "E2", "_2", "A2", "$2", "D2", "R2", "F2", "O2", "P2", "L2", "x0", "M2", "z2", "S5", "v5", "B2", "V2", "G2", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "t$", "e$", "r$", "n$", "o$", "s$", "y0", "b0", "i$", "a$", "l$", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "N5", "y$", "T5", "vn", "Hr", "M", "St", "Im", "xh", "Io", "ro", "C0", "Nr", "xe", "So", "el", "Co", "Sm", "w0", "Gi", "k5", "yh", "vo", "b$", "Wi", "Cy", "Ze", "w$", "C$", "Iy", "E5", "vy", "Sy", "gu", "I$", "S$", "v$", "N$", "T$", "vm", "Fe", "E$", "pn", "I0", "bh", "k$", "Hs", "_5", "Ny", "_$", "Ty", "A5", "A$", "No", "ac", "qs", "Zr", "S0", "ir", "mn", "no", "nl", "$$", "Ey", "D$", "R$", "rl", "v0", "wh", "Nm", "T0", "Tm", "To", "N0", "_y", "lc", "fn", "F$", "O$", "Ay", "P$", "xu", "L$", "M$", "$5", "D5", "dn", "km", "yu", "Em", "_m", "Am", "$m", "Dm", "R5", "qr", "uc", "cc", "pc", "mc", "fc", "dc", "Rm", "z$", "B$", "Te", "de", "$y", "Fm", "Nt", "Bt", "Om", "G$", "Ch", "O5", "Ih", "Pm", "ye", "Jr", "P5", "ol", "L5", "$t", "M5", "z5", "k0", "Ks", "Dy", "B5", "ko", "Ry", "Fy", "U$", "hc", "V5", "W5", "W$", "G5", "U5", "K$", "H5", "j5", "K5", "q5", "E0", "gc", "Lm", "Mm", "zm", "Bm", "H$", "ze", "q$", "Be", "j$", "Z5", "o8", "n8", "s8", "i8", "e8", "a8", "l8", "Y5", "u8", "Q5", "J5", "t8", "r8", "X5", "ED", "Tn", "ll", "NY", "FY", "xZ", "OY", "G0", "W0", "U0", "UY", "qY", "jY", "HY", "KY", "XY", "VY", "uZ", "CZ", "PY", "gY", "xY", "yY", "bY", "wY", "sZ", "iZ", "IY", "TY", "vY", "BY", "kY", "cY", "RY", "_Y", "gZ", "hZ", "YY", "ZY", "pZ", "mZ", "vD", "ND", "QY", "tZ", "P0", "uY", "GY", "mY", "eZ", "rZ", "yZ", "fZ", "dZ", "TD", "kD", "JY", "LY", "MY", "zY", "DY", "fY", "pY", "AY", "bZ", "$Y", "wZ", "aZ", "CY", "nZ", "oZ", "dY", "EY", "lZ", "hY", "cZ", "SY", "WY", "Ui", "Oy", "X$", "c8", "sl", "Py", "_0", "Ly", "My", "zy", "hn", "By", "gn", "Sh", "Hi", "Vm", "bu", "p8", "m8", "f8", "d8", "h8", "xc", "Gm", "g8", "Wm", "x8", "y8", "Nh", "vh", "Vy", "Th", "kh", "Z$", "b8", "w8", "A0", "J$", "Wy", "Uy", "C8", "I8", "S8", "v8", "N8", "T8", "Eh", "k8", "$0", "Gy", "Q$", "_h", "eD", "R0", "D0", "rD", "A8", "Hy", "$8", "D8", "_8", "nD", "yc", "qy", "Um", "zn", "R8", "Ky", "jy", "oD", "F8", "aD", "sD", "O8", "lD", "iD", "P8", "L8", "uD", "Xy", "Hm", "Yy", "Zy", "M8", "cD", "Eo", "F0", "z8", "O0", "pD", "mD", "B8", "V8", "fD", "G8", "W8", "Bn", "Jy", "dD", "hD", "U8", "H8", "qi", "q8", "K8", "j8", "Qr", "Qy", "tb", "eb", "rb", "nb", "ob", "sb", "ib", "ab", "lb", "qm", "ub", "cb", "pb", "js", "L0", "Xs", "M0", "mb", "wu", "yD", "bD", "gD", "me", "xD", "be", "Km", "jm", "Xm", "Ym", "Zm", "Jm", "Cu", "Nn", "Ys", "Ah", "z0", "Y8", "wD", "Z8", "bc", "Iu", "il", "al", "Qm", "tf", "fb", "ef", "Su", "rf", "nf", "J8", "of", "B0", "V0", "Ic", "wc", "cl", "sf", "Cc", "af", "ul", "lf", "Q8", "db", "Sc", "uf", "vc", "cf", "pf", "mf", "ff", "df", "hf", "gf", "xf", "yf", "pl", "bf", "wf", "Cf", "If", "Sf", "vf", "$h", "tY", "Nf", "Tf", "kf", "Ef", "Dh", "eY", "rY", "nY", "_f", "Af", "oY", "$f", "wb", "CD", "hb", "Df", "Rf", "gb", "Ff", "Of", "xb", "Pf", "Lf", "yb", "Mf", "zf", "bb", "Bf", "Vf", "Cb", "Gf", "sY", "iY", "Wf", "Uf", "aY", "ID", "Hf", "SD", "qf", "_D", "DZ", "OZ", "IZ", "SZ", "NZ", "TZ", "_Z", "RZ", "AZ", "$Z", "FZ", "PZ", "kZ", "EZ", "vZ", "AD", "$D", "MZ", "LZ", "zZ", "Sb", "Ib", "DD", "vb", "BZ", "VZ", "GZ", "oo", "RD", "H0", "UZ", "Nb", "HZ", "S", "br", "xn", "Tb", "FD", "_o", "Rh", "Zs", "q0", "qZ", "K0", "KZ", "j0", "jZ", "X0", "XZ", "Y0", "YZ", "Z0", "ZZ", "J0", "JZ", "Q0", "QZ", "tN", "t7", "eN", "e7", "rN", "r7", "nN", "n7", "oN", "o7", "sN", "s7", "iN", "i7", "aN", "a7", "lN", "l7", "uN", "u7", "cN", "c7", "Fh", "kb", "Fb", "_b", "Rb", "Eb", "Pb", "Db", "Ob", "Ab", "$b", "OD", "pN", "p7", "PD", "LD", "Lb", "ae", "MD", "zD", "Vn", "BD", "Kf", "Mb", "zb", "VD", "GD", "WD", "UD", "HD", "qD", "KD", "jD", "mN", "XD", "YD", "ZD", "Bb", "JD", "QD", "tR", "eR", "rR", "nR", "oR", "sR", "iR", "aR", "lR", "fN", "Oh", "dN", "hN", "F7", "O7", "uR", "$7", "D7", "R7", "Nc", "Vb", "P7", "L7", "Ph", "M7", "B7", "z7", "cR", "AR", "Yf", "Js", "ed", "Xf", "rd", "wR", "NR", "TR", "kR", "_R", "PN", "ER", "CR", "bR", "gR", "pR", "Gb", "vu", "mR", "xN", "fR", "Wb", "dR", "V7", "hR", "G7", "jf", "Tc", "AN", "yN", "Lh", "bN", "xR", "Hb", "yR", "fl", "EN", "Je", "TN", "vN", "NN", "Ub", "kN", "SN", "IN", "CN", "qb", "_N", "wN", "kc", "kn", "W7", "U7", "Kb", "Mh", "IR", "jb", "$N", "SR", "Zf", "Jf", "Qf", "zh", "DN", "RN", "Xb", "FN", "ON", "td", "vR", "H7", "Yb", "tt", "q7", "Nu", "mw", "zN", "sd", "Jb", "MN", "BN", "Ec", "VN", "WN", "HN", "qN", "Qb", "tw", "jN", "KN", "YN", "XN", "ew", "ZN", "rw", "JN", "QN", "Bh", "tT", "eT", "rT", "nw", "ow", "sw", "Ac", "nT", "dl", "sF", "LN", "$c", "iw", "aw", "ld", "lF", "sT", "lw", "Dc", "Rc", "Fc", "aT", "uw", "cw", "id", "pw", "K7", "$R", "Qt", "wr", "DR", "nd", "Kr", "RR", "Ao", "FR", "$o", "OR", "oe", "od", "j7", "Ki", "PR", "yn", "Et", "Do", "X7", "LR", "GN", "MR", "UN", "zR", "Y7", "BR", "Z7", "VR", "J7", "GR", "Q7", "WR", "tJ", "UR", "eJ", "HR", "rJ", "qR", "nJ", "KR", "oJ", "jR", "sJ", "_c", "XR", "iJ", "YR", "aJ", "ZR", "Ve", "JR", "lJ", "QR", "uJ", "cJ", "pJ", "mJ", "tF", "fJ", "dJ", "eF", "Ro", "ad", "nF", "rF", "hJ", "oF", "oT", "iF", "Fo", "aF", "gJ", "uF", "xJ", "cF", "iT", "yJ", "bJ", "Vh", "pF", "Gh", "mF", "lT", "fF", "uT", "dF", "CJ", "cT", "hF", "pT", "gF", "mT", "xF", "Oc", "Yt", "yF", "fT", "bF", "IJ", "wF", "SJ", "CF", "vJ", "IF", "NJ", "SF", "TJ", "vF", "kJ", "NF", "EJ", "TF", "_J", "kF", "AJ", "EF", "$J", "_F", "DJ", "AF", "RJ", "FJ", "$F", "OJ", "DF", "ud", "fw", "dw", "RF", "PJ", "FF", "LJ", "OF", "MJ", "PF", "zJ", "LF", "BJ", "MF", "VJ", "zF", "GJ", "BF", "WJ", "VF", "UJ", "GF", "HJ", "WF", "ji", "UF", "Tu", "HF", "dT", "qF", "qJ", "KF", "KJ", "jF", "jJ", "XF", "XJ", "YF", "YJ", "ZF", "ZJ", "JF", "JJ", "QF", "QJ", "tO", "tQ", "eO", "eQ", "rO", "rQ", "nO", "nQ", "oO", "hT", "sO", "oQ", "iO", "sQ", "aO", "iQ", "lO", "uO", "cO", "pO", "hl", "mO", "aQ", "fO", "lQ", "dO", "uQ", "cQ", "pQ", "mQ", "fQ", "dQ", "hQ", "hO", "cd", "gO", "gQ", "Wh", "Uh", "hw", "xQ", "yQ", "gT", "bQ", "wQ", "xO", "Hh", "CQ", "yO", "bO", "IQ", "SQ", "wO", "vQ", "CO", "NQ", "IO", "TQ", "SO", "kQ", "vO", "EQ", "NO", "_Q", "TO", "AQ", "kO", "$Q", "EO", "DQ", "_O", "RQ", "AO", "FQ", "OQ", "$O", "PQ", "DO", "LQ", "MQ", "RO", "zQ", "FO", "BQ", "OO", "xT", "PO", "VQ", "LO", "GQ", "MO", "WQ", "zO", "UQ", "BO", "VO", "GO", "HQ", "WO", "qQ", "UO", "KQ", "HO", "jQ", "XQ", "qO", "jO", "yT", "KO", "YQ", "XO", "ZQ", "JQ", "YO", "QQ", "t9", "ZO", "e9", "r9", "JO", "n9", "QO", "qh", "tP", "eP", "rP", "bT", "nP", "o9", "gw", "s9", "i9", "oP", "a9", "sP", "l9", "iP", "u9", "aP", "c9", "lP", "p9", "uP", "m9", "cP", "f9", "pP", "d9", "mP", "h9", "fP", "g9", "dP", "hP", "x9", "gP", "y9", "xP", "b9", "w9", "yP", "C9", "bP", "I9", "wP", "S9", "v9", "N9", "CP", "T9", "IP", "k9", "SP", "E9", "vP", "_9", "NP", "A9", "TP", "$9", "kP", "D9", "EP", "R9", "_P", "F9", "AP", "O9", "$P", "P9", "DP", "L9", "RP", "FP", "M9", "OP", "z9", "PP", "B9", "LP", "V9", "MP", "G9", "zP", "W9", "BP", "U9", "VP", "H9", "GP", "q9", "WP", "K9", "UP", "J9", "Q9", "HP", "j9", "X9", "Z9", "Y9", "Kh", "ttt", "qP", "ett", "KP", "rtt", "jP", "ntt", "dd", "Qs", "mtt", "Zh", "OT", "JP", "Iw", "yt", "ST", "NT", "DT", "TT", "_T", "ET", "AT", "vT", "xl", "pd", "QP", "MT", "ctt", "FT", "RT", "yl", "fd", "PT", "zT", "ZP", "LT", "Wn", "BT", "VT", "Eu", "GT", "vw", "kT", "Cw", "ftt", "dtt", "Sw", "ptt", "md", "Yh", "$T", "Pc", "xw", "wT", "Gn", "stt", "ott", "ku", "jr", "Pr", "Lc", "XP", "jh", "Xi", "YP", "Xh", "itt", "att", "ltt", "gl", "utt", "tL", "yw", "bw", "ww", "IT", "htt", "Tt", "Ge", "ti", "Mc", "gtt", "eL", "hd", "gd", "Nw", "rL", "nL", "Tw", "xtt", "wtt", "Stt", "ytt", "Itt", "btt", "Ctt", "ktt", "yd", "ztt", "Vtt", "Wtt", "Htt", "Ktt", "jtt", "Xtt", "oL", "Mtt", "Btt", "Gtt", "Utt", "qtt", "Ytt", "Ztt", "sL", "Ett", "Ptt", "Att", "Dtt", "_tt", "Ltt", "$tt", "Rtt", "Ftt", "Ott", "vtt", "Ntt", "Ttt", "zc", "bd", "wd", "Cd", "zt", "aL", "WT", "iL", "lL", "uL", "we", "kw", "Ew", "_w", "Aw", "tet", "Jh", "$w", "ik", "JT", "ek", "jT", "ZT", "KT", "qT", "YT", "XT", "HT", "UT", "nk", "rk", "sk", "ok", "Rw", "Pw", "Dw", "Ow", "Fw", "QT", "tk", "Qh", "Bc", "eet", "cL", "Lw", "pL", "mL", "fL", "dL", "hL", "gL", "xL", "yL", "bL", "wL", "CL", "IL", "SL", "vL", "NL", "TL", "kL", "EL", "_L", "AL", "$L", "DL", "RL", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "Mw", "VL", "GL", "WL", "zw", "UL", "HL", "qL", "KL", "jL", "XL", "YL", "ZL", "Vc", "JL", "ak", "Qe", "QL", "Bw", "Id", "ret", "Vw", "eM", "rM", "tM", "net", "oet", "set", "tn", "fr", "nM", "lk", "oM", "sM", "iM", "Gc", "aM", "uM", "cM", "pM", "mM", "fM", "so", "Gw", "aet", "uet", "cet", "Ww", "pet", "met", "fet", "det", "_u", "het", "dM", "hM", "Zke", "Sd", "io", "Yi", "Oo", "tr", "gM", "En", "xM", "uk", "ck", "get", "yM", "pk", "mk", "xet", "bM", "Po", "Ct", "le", "bl", "vd", "fk", "tg", "wM", "eg", "CM", "IM", "it", "SM", "rg", "Uw", "bet", "Un", "Hw", "wet", "qw", "Au", "vM", "Wc", "NM", "Oe", "TM", "dk", "Uc", "Cet", "kM", "EM", "Iet", "_M", "vet", "Net", "AM", "Tet", "ket", "$M", "DM", "Eet", "RM", "Kw", "jw", "Xw", "FM", "_et", "OM", "Aet", "PM", "Yw", "Zw", "LM", "MM", "Jw", "$et", "zM", "Det", "BM", "Ret", "Fet", "VM", "Oet", "Pet", "GM", "Let", "Met", "WM", "zet", "Bet", "Vet", "UM", "Get", "Wet", "HM", "ei", "$u", "Uet", "qM", "Het", "KM", "Qw", "tC", "qet", "jM", "Ket", "XM", "jet", "YM", "eC", "rC", "Xet", "ZM", "nC", "Yet", "hk", "oC", "Zet", "ri", "JM", "Jet", "QM", "Qet", "tz", "trt", "ez", "ert", "gk", "rz", "wl", "nz", "rrt", "oz", "xk", "sz", "iz", "nrt", "az", "sC", "iC", "ort", "lz", "aC", "uz", "srt", "cz", "lC", "cC", "uC", "Hc", "pz", "Nd", "irt", "yk", "mz", "Td", "pC", "kd", "mC", "fC", "dC", "hC", "art", "fz", "gC", "xC", "yC", "bC", "lrt", "dz", "urt", "hz", "crt", "gz", "prt", "xz", "mrt", "yz", "frt", "drt", "bz", "hrt", "grt", "wz", "wC", "xrt", "Cz", "qc", "ng", "Iz", "Sz", "CC", "yrt", "vz", "brt", "Nz", "wrt", "Tz", "IC", "Crt", "kz", "Ed", "_d", "Irt", "Ez", "SC", "vC", "Srt", "_z", "vrt", "Az", "NC", "Nrt", "$z", "TC", "Trt", "Dz", "krt", "Rz", "Ert", "_rt", "Art", "Fz", "$rt", "Drt", "Rrt", "Oz", "Frt", "Ort", "Prt", "Pz", "Lrt", "Mrt", "Lz", "zrt", "Brt", "bk", "Mz", "kC", "zz", "Bz", "Vrt", "Vz", "og", "EC", "Grt", "Gz", "_C", "Cl", "Wz", "AC", "Uz", "Hz", "Wrt", "qz", "Urt", "Hrt", "qrt", "Kz", "$C", "DC", "jz", "Krt", "Ad", "wk", "jrt", "Xz", "Xrt", "Yz", "RC", "Yrt", "Zz", "FC", "Zrt", "Ck", "Jz", "Jrt", "Qrt", "tnt", "Qz", "ent", "rnt", "nnt", "t3", "ont", "e3", "snt", "int", "r3", "ant", "lnt", "n3", "unt", "cnt", "o3", "pnt", "mnt", "fnt", "s3", "dnt", "hnt", "gnt", "i3", "xnt", "a3", "ynt", "bnt", "wnt", "l3", "Cnt", "Int", "u3", "Snt", "vnt", "Nnt", "c3", "Tnt", "knt", "p3", "Ent", "_nt", "Ant", "m3", "OC", "PC", "$nt", "f3", "LC", "Dnt", "d3", "h3", "Ik", "g3", "Rnt", "Fnt", "Ont", "x3", "Pnt", "y3", "Lnt", "b3", "MC", "zC", "Mnt", "w3", "znt", "C3", "I3", "S3", "v3", "N3", "Bnt", "T3", "Vnt", "Gnt", "Wnt", "k3", "BC", "VC", "Unt", "E3", "Hnt", "qnt", "Knt", "_3", "GC", "jnt", "Xnt", "Sk", "A3", "$3", "vk", "D3", "Nk", "R3", "Ynt", "F3", "Znt", "Jnt", "Qnt", "O3", "tot", "eot", "P3", "rot", "not", "L3", "oot", "sot", "M3", "WC", "iot", "z3", "sg", "B3", "V3", "G3", "aot", "W3", "UC", "HC", "Tk", "U3", "lot", "uot", "cot", "H3", "pot", "q3", "mot", "K3", "fot", "j3", "dot", "X3", "kk", "Y3", "hot", "got", "Z3", "xot", "yot", "bot", "J3", "wot", "Cot", "Iot", "Q3", "qC", "KC", "Sot", "tB", "jC", "vot", "eB", "XC", "YC", "Not", "rB", "ZC", "Tot", "nB", "JC", "QC", "kot", "oB", "tI", "sB", "Eot", "_ot", "iB", "Aot", "$ot", "aB", "$d", "Dot", "lB", "eI", "Rot", "uB", "rI", "Fot", "cB", "Oot", "Pot", "pB", "Lot", "Mot", "zot", "mB", "Bot", "Vot", "fB", "Got", "Wot", "dB", "Uot", "Hot", "hB", "qot", "Kot", "gB", "jot", "xB", "Xot", "yB", "Yot", "bB", "Zot", "wB", "Jot", "CB", "Qot", "IB", "tst", "SB", "vB", "est", "NB", "rst", "nst", "TB", "kB", "ost", "EB", "sst", "_B", "nI", "ist", "AB", "ast", "$B", "lst", "DB", "ust", "RB", "cst", "pst", "FB", "mst", "fst", "OB", "oI", "dst", "Ek", "PB", "sI", "iI", "Kc", "LB", "hst", "MB", "aI", "gst", "zB", "xst", "BB", "yst", "VB", "lI", "bst", "GB", "wst", "qt", "Du", "WB", "Cst", "Ist", "UB", "se", "HB", "ue", "Sst", "qB", "KB", "vst", "Nst", "jB", "jc", "XB", "YB", "Tst", "ao", "Est", "kst", "ZB", "bn", "JB", "_st", "Ast", "QB", "tV", "$st", "Dst", "eV", "rV", "Rst", "Fst", "nV", "oV", "Ost", "Pst", "sV", "ar", "iV", "aV", "Lst", "Mst", "lV", "Lo", "zst", "Bst", "Vst", "uV", "Gst", "cV", "ni", "pV", "mV", "fV", "Wst", "Ust", "dV", "_k", "hV", "gV", "Hst", "qst", "xV", "yV", "Kst", "jst", "bV", "wV", "CV", "Ak", "IV", "Xst", "Yst", "SV", "vV", "Zst", "Jst", "NV", "TV", "Qst", "tit", "kV", "EV", "eit", "rit", "_V", "AV", "nit", "oit", "$V", "DV", "sit", "RV", "FV", "uI", "OV", "$k", "PV", "LV", "iit", "ait", "MV", "zV", "lit", "BV", "VV", "uit", "cit", "GV", "WV", "pit", "mit", "UV", "HV", "fit", "dit", "qV", "KV", "hit", "git", "jV", "XV", "xit", "yit", "YV", "bit", "ZV", "wit", "JV", "QV", "Cit", "Iit", "tG", "Sit", "eG", "vit", "rG", "nG", "Nit", "oG", "sG", "Tit", "iG", "kit", "aG", "lG", "Eit", "_it", "uG", "Ait", "cG", "pG", "$it", "Dit", "mG", "fG", "Rit", "Fit", "dG", "hG", "Oit", "Pit", "gG", "Lit", "xG", "Dk", "yG", "Mit", "zit", "bG", "Bit", "wG", "CG", "Dd", "IG", "Vit", "Git", "SG", "vG", "Wit", "Uit", "NG", "TG", "Hit", "qit", "kG", "Kit", "EG", "_G", "jit", "Xit", "AG", "Yit", "$G", "Zit", "DG", "RG", "Jit", "Qit", "cI", "tat", "FG", "OG", "eat", "rat", "PG", "LG", "nat", "oat", "MG", "sat", "zG", "iat", "BG", "VG", "GG", "WG", "aat", "lat", "UG", "HG", "uat", "cat", "qG", "KG", "pat", "mat", "jG", "XG", "fat", "dat", "YG", "ZG", "JG", "QG", "hat", "gat", "tW", "eW", "xat", "yat", "rW", "nW", "bat", "wat", "oW", "sW", "iW", "Cat", "Iat", "aW", "Sat", "lW", "uW", "vat", "Nat", "cW", "pW", "Tat", "kat", "mW", "fW", "pI", "mI", "Eat", "dW", "_at", "hW", "Aat", "gW", "xW", "yW", "$at", "bW", "wW", "Dat", "Rat", "CW", "IW", "Fat", "Oat", "SW", "Pat", "vW", "Lat", "NW", "Mat", "TW", "zat", "kW", "EW", "Bat", "Vat", "_W", "AW", "$W", "DW", "Gat", "Wat", "RW", "FW", "Uat", "Hat", "OW", "PW", "qat", "Kat", "LW", "jat", "MW", "Xat", "zW", "Yat", "Rk", "zk", "XW", "Bk", "KW", "Zat", "cg", "ZW", "Mk", "Qat", "Jat", "jW", "hI", "lg", "YW", "ag", "Vk", "ug", "tlt", "elt", "rlt", "nlt", "olt", "slt", "ilt", "JW", "alt", "llt", "ult", "clt", "plt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Ft", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "x", "y", "pt", "Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "xo", "avg_g", "avg_b", "avg_rgb", "ne", "ct", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "xo", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "ne", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "label", "callee", "isValidNumber", "LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "label", "score", "classScore", "callee", "isValidProbablitiy", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "nx", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Ft", "imgTensor", "rr", "padToSquare", "Gs", "nx", "imageToSquare", "nr", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "gm", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "_r", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ka", "path", "variable", "ur", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "_r", "manifest", "paramMappings", "params", "weights", "result", "res", "Ft", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "mm", "X", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Fr", "X", "In", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "X", "In", "Fr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "$_", "bias", "Me", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Vs", "fc_bias", "Me", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "$_", "pointwise_filter", "bias", "Me", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "X", "Lt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "iu", "toNetInput", "netInput", "out", "probabilitesByBatch", "vr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "X", "In", "reductionBlock", "isActivateInput", "out", "Fr", "depthwiseSeparableConv", "ru", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "Yl", "age", "fullyConnectedLayer", "gender", "iu", "toNetInput", "netInput", "out", "ages", "vr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "nr", "xo", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "vr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "Yl", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "X", "D", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "In", "X", "scale", "Fr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Ot", "$_", "extractConvParams", "mappedPrefix", "filters", "bias", "Me", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "Vs", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "X", "Fr", "residualDown", "convDown", "pooled", "Yl", "zeros", "Ne", "isPad", "padShapeX", "zerosW", "ne", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "ru", "residual", "residualDown", "globalAvg", "Lt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "vr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "$_", "batch_norm_scale", "Me", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "rx", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "In", "X", "Cr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "Fi", "Di", "Cr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "vr", "Ot", "sizes", "ct", "centers", "X", "pt", "decodeBoxesLayer", "x0", "x1", "div0_out", "D", "er", "add0_out", "div1_out", "add1_out", "nr", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Dr", "scoresAndClasses", "Yr", "Rt", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "ne", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "ct", "pt", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "D", "mt", "X", "Fr", "ct", "convWithBatchNorm", "x", "params", "B", "out", "cn", "In", "ct", "D", "X", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "cn", "mm", "X", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "Me", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "ru", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "vr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "iu", "mt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Ft", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Ft", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] + "sourcesContent": ["/*\n Face-API\n homepage: \n author: '\n*/\n\nvar LU=Object.create;var rS=Object.defineProperty;var MU=Object.getOwnPropertyDescriptor;var zU=Object.getOwnPropertyNames;var BU=Object.getPrototypeOf,VU=Object.prototype.hasOwnProperty;var Lg=(r=>typeof require!=\"undefined\"?require:typeof Proxy!=\"undefined\"?new Proxy(r,{get:(t,e)=>(typeof require!=\"undefined\"?require:t)[e]}):r)(function(r){if(typeof require!=\"undefined\")return require.apply(this,arguments);throw new Error('Dynamic require of \"'+r+'\" is not supported')});var yr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)rS(r,e,{get:t[e],enumerable:!0})},GU=(r,t,e,n)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let o of zU(t))!VU.call(r,o)&&o!==e&&rS(r,o,{get:()=>t[o],enumerable:!(n=MU(t,o))||n.enumerable});return r};var _l=(r,t,e)=>(e=r!=null?LU(BU(r)):{},GU(t||!r||!r.__esModule?rS(e,\"default\",{value:r,enumerable:!0}):e,r));var _1=yr((Plt,E1)=>{E1.exports=Ue;var ho=null;try{ho=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,\"__isLong__\",{value:!0});function Ln(r){return(r&&r.__isLong__)===!0}Ue.isLong=Ln;var b1={},w1={};function Vu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=w1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(w1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=b1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(b1[r]=e),e))}Ue.fromInt=Vu;function go(r,t){if(isNaN(r))return t?Bu:xo;if(t){if(r<0)return Bu;if(r>=S1)return k1}else{if(r<=-I1)return Pn;if(r+1>=I1)return T1}return r<0?go(-r,t).neg():He(r%Gp|0,r/Gp|0,t)}Ue.fromNumber=go;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Vg=Math.pow;function hS(r,t,e){if(r.length===0)throw Error(\"empty string\");if(r===\"NaN\"||r===\"Infinity\"||r===\"+Infinity\"||r===\"-Infinity\")return xo;if(typeof t==\"number\"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error(\"interior hyphen\");if(n===0)return hS(r.substring(1),t,e).neg();for(var o=go(Vg(e,8)),s=xo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Gp+(this.low>>>0):this.high*Gp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c=\"0\"+c;a=\"\"+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Pn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return Ln(t)||(t=Bs(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(Ln(t)||(t=Bs(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Pn)?Pn:this.not().add(Vp)};xt.neg=xt.negate;xt.add=function(t){Ln(t)||(t=Bs(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return Ln(t)||(t=Bs(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return xo;if(Ln(t)||(t=Bs(t)),ho){var e=ho.mul(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}if(t.isZero())return xo;if(this.eq(Pn))return t.isOdd()?Pn:xo;if(t.eq(Pn))return this.isOdd()?Pn:xo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(v1)&&t.lt(v1))return go(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(Ln(t)||(t=Bs(t)),t.isZero())throw Error(\"division by zero\");if(ho){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?ho.div_u:ho.div_s)(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Bu:xo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Bu;if(t.gt(this.shru(1)))return N1;s=Bu}else{if(this.eq(Pn)){if(t.eq(Vp)||t.eq(dS))return Pn;if(t.eq(Pn))return Vp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(xo)?t.isNegative()?Vp:dS:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Pn))return this.unsigned?Bu:xo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=xo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Vg(2,a-48),l=go(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=go(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Vp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Ln(t)||(t=Bs(t)),ho){var e=(this.unsigned?ho.rem_u:ho.rem_s)(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return He(~this.low,~this.high,this.unsigned)};xt.and=function(t){return Ln(t)||(t=Bs(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Ln(t)||(t=Bs(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Ln(t)||(t=Bs(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Ln(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(Ln(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var uE=yr(()=>{});var cE=yr(()=>{});var m_=yr((p_,s0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(\" \"),u.s1=l(\" \"),u.s2=l(\" \"),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c==\"object\"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(p_,typeof s0==\"object\"&&s0,typeof define==\"function\"&&define)});var d_=yr((f_,i0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(f_,typeof i0==\"object\"&&i0,typeof define==\"function\"&&define)});var g_=yr((h_,a0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(h_,typeof a0==\"object\"&&a0,typeof define==\"function\"&&define)});var y_=yr((x_,l0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=\"\"+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(x_,typeof l0==\"object\"&&l0,typeof define==\"function\"&&define)});var w_=yr((b_,u0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+\"\\0\",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(b_,typeof u0==\"object\"&&u0,typeof define==\"function\"&&define)});var I_=yr((C_,c0)=>{(function(r,t,e){function n(i){var a=this,u=\"\";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l==\"object\"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(C_,typeof c0==\"object\"&&c0,typeof define==\"function\"&&define)});var v_=yr(()=>{});var N_=yr((S_,Zx)=>{(function(r,t,e){var n=256,o=6,s=52,i=\"random\",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var E=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),E),$=new f(E),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,\"global\"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,E=this,A=0,$=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var fj=m_(),dj=d_(),hj=g_(),gj=y_(),xj=w_(),yj=I_(),tc=N_();tc.alea=fj;tc.xor128=dj;tc.xorwow=hj;tc.xorshift7=gj;tc.xor4096=xj;tc.tychei=yj;T_.exports=tc});var bN=yr(()=>{});var Jb=yr(()=>{});var ag=yr(()=>{});var HW=yr(()=>{});var qW=yr(()=>{});var KW=yr(()=>{});var jW=yr((dI,Mk)=>{var Lk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&je(st.buffer),ke}function n(){return st.buffer!=jt&&je(st.buffer),fe}function o(){return st.buffer!=jt&&je(st.buffer),$e}function s(){return st.buffer!=jt&&je(st.buffer),Dn}function i(){return st.buffer!=jt&&je(st.buffer),ir}function a(){return st.buffer!=jt&&je(st.buffer),Kn}function u(){return st.buffer!=jt&&je(st.buffer),zr}var l=typeof t!=\"undefined\"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!=\"undefined\"&&process.listeners&&(m={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var f=Object.assign({},l),d=[],h=\"./this.program\",g=(L,U)=>{throw U},x=typeof window==\"object\",b=typeof importScripts==\"function\",w=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",C=l.ENVIRONMENT_IS_PTHREAD||!1,N=\"\";function E(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ou)return;Y(\"exiting due to exception: \"+L)}if(w){b?N=ag().dirname(N)+\"/\":N=__dirname+\"/\";var G,W;typeof Lg==\"function\"&&(G=Jb(),W=ag()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:\"utf8\")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,yt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ae){Dt?yt(Dt):ut(ae.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\\\/g,\"/\")),d=process.argv.slice(2),process.on(\"uncaughtException\",function(U){if(!(U instanceof Ou))throw U}),process.on(\"unhandledRejection\",function(U){throw U}),g=(U,ut)=>{if(zo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return\"[Emscripten Module object]\"};let L;try{L=HW()}catch(U){throw console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(N=document.currentScript.src),typeof r!=\"undefined\"&&r&&(N=r),N.indexOf(\"blob:\")!==0?N=N.substr(0,N.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):N=\"\",w||(A=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open(\"GET\",L,!1),U.responseType=\"arraybuffer\",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var yt=new XMLHttpRequest;yt.open(\"GET\",L,!0),yt.responseType=\"arraybuffer\",yt.onload=()=>{if(yt.status==200||yt.status==0&&yt.response){U(yt.response);return}ut()},yt.onerror=ut,yt.send(null)}),P=L=>document.title=L);w&&typeof performance==\"undefined\"&&(global.performance=qW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+`\n`),H=L=>G.writeSync(2,L+`\n`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Zc(\"no native wasm support detected\");var st,dt,gt=!1,bt;function kt(L,U){L||Zc(U)}var At=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function Vt(L,U,ut){for(var yt=U+ut,Dt=U;L[Dt]&&!(Dt>=yt);)++Dt;if(Dt-U>16&&L.buffer&&At)return At.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ae=\"\";U>10,56320|Zn&1023)}}return ae}function Zt(L,U){return L?Vt(n(),L,U):\"\"}function ce(L,U,ut,yt){if(!(yt>0))return 0;for(var Dt=ut,ae=ut+yt-1,Gt=0;Gt=55296&&Xt<=57343){var xr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|xr&1023}if(Xt<=127){if(ut>=ae)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ae)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ae)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ae)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,$e,We,Dn,ir,Kn,zr;C&&(jt=l.buffer);function je(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=$e=new Int16Array(L),l.HEAP32=Dn=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=ir=new Uint32Array(L),l.HEAPF32=Kn=new Float32Array(L),l.HEAPF64=zr=new Float64Array(L)}var Br=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Br/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\"),w&&console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\"),Error(\"bad memory\");st&&(jt=st.buffer),Br=jt.byteLength,je(jt);var Vr,jn=[],Xn=[],Zr=[],ra=!1;function zo(){return nt}function Nl(){if(l.preRun)for(typeof l.preRun==\"function\"&&(l.preRun=[l.preRun]);l.preRun.length;)Od(l.preRun.shift());Bd(jn)}function Er(){ra=!0,!C&&Bd(Xn)}function na(){if(!C){if(l.postRun)for(typeof l.postRun==\"function\"&&(l.postRun=[l.postRun]);l.postRun.length;)Hk(l.postRun.shift());Bd(Zr)}}function Od(L){jn.unshift(L)}function Pd(L){Xn.unshift(L)}function Hk(L){Zr.unshift(L)}var Tl=0,Yc=null,oa=null;function qk(L){Tl++,l.monitorRunDependencies&&l.monitorRunDependencies(Tl)}function Kk(L){if(Tl--,l.monitorRunDependencies&&l.monitorRunDependencies(Tl),Tl==0&&(Yc!==null&&(clearInterval(Yc),Yc=null),oa)){var U=oa;oa=null,U()}}function Zc(L){C?postMessage({cmd:\"onAbort\",arg:L}):l.onAbort&&l.onAbort(L),L=\"Aborted(\"+L+\")\",Y(L),gt=!0,bt=1,L+=\". Build with -sASSERTIONS for more info.\";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var xI=\"data:application/octet-stream;base64,\";function mg(L){return L.startsWith(xI)}function Ld(L){return L.startsWith(\"file://\")}var rn;rn=\"tfjs-backend-wasm-threaded-simd.wasm\",mg(rn)||(rn=E(rn));function fg(L){try{if(L==rn&&at)return new Uint8Array(at);if(F)return F(L);throw\"both async and sync fetching of the wasm failed\"}catch(U){Zc(U)}}function yI(){if(!at&&(x||b)){if(typeof fetch==\"function\"&&!Ld(rn))return fetch(rn,{credentials:\"same-origin\"}).then(function(L){if(!L.ok)throw\"failed to load wasm binary file at '\"+rn+\"'\";return L.arrayBuffer()}).catch(function(){return fg(rn)});if($)return new Promise(function(L,U){$(rn,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return fg(rn)})}function bI(){var L={env:Ng,wasi_snapshot_preview1:Ng};function U(Gt,Xt){var xr=Gt.exports;if(l.asm=xr,_I(l.asm._emscripten_tls_init),Vr=l.asm.__indirect_function_table,Pd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Zn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ia){Kt.loadWasmModuleToWorker(ia,function(){--Zn||Kk(\"wasm-instantiate\")})})}}C||qk(\"wasm-instantiate\");function ut(Gt){U(Gt.instance,Gt.module)}function yt(Gt){return yI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y(\"failed to asynchronously prepare wasm: \"+Xt),Zc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming==\"function\"&&!mg(rn)&&!Ld(rn)&&!w&&typeof fetch==\"function\"?fetch(rn,{credentials:\"same-origin\"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(xr){return Y(\"wasm streaming compile failed: \"+xr),Y(\"falling back to ArrayBuffer instantiation\"),yt(ut)})}):yt(ut)}if(l.instantiateWasm)try{var ae=l.instantiateWasm(L,U);return ae}catch(Gt){Y(\"Module.instantiateWasm callback failed with error: \"+Gt),p(Gt)}return Dt().catch(p),{}}var wI,jk,CI={};function Ou(L){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+L+\")\",this.status=L}function II(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),Qv(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function vI(L){var U=Kt.pthreads[L];U.postMessage({cmd:\"cancel\"})}function Md(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function dg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:\"run\",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var hg={varargs:void 0,get:function(){hg.varargs+=4;var L=s()[hg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function zd(L){if(C)return kl(1,1,L);bt=L,zo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),gt=!0),g(L,new Ou(L))}function Xk(L,U){if(bt=L,!U&&C)throw xg(L),\"unwind\";zd(L)}var gg=Xk;function SI(L){if(L instanceof Ou||L==\"unwind\")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,Qv(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var yt=ut.data,Dt=yt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),yt.targetThread&&yt.targetThread!=$g()){var ae=Kt.pthreads[yt.targetThread];ae?ae.postMessage(yt,yt.transferList):Y('Internal error! Worker sent a message \"'+Dt+'\" to target pthread '+yt.targetThread+\", but that thread no longer exists!\"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt===\"processProxyingQueue\"?Vd(yt.queue):Dt===\"spawnThread\"?dg(yt):Dt===\"cleanupThread\"?Md(yt.thread):Dt===\"killThread\"?II(yt.thread):Dt===\"cancelThread\"?vI(yt.thread):Dt===\"loaded\"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt===\"print\"?j(\"Thread \"+yt.threadId+\": \"+yt.text):Dt===\"printErr\"?Y(\"Thread \"+yt.threadId+\": \"+yt.text):Dt===\"alert\"?alert(\"Thread \"+yt.threadId+\": \"+yt.text):yt.target===\"setimmediate\"?L.postMessage(yt):Dt===\"onAbort\"?l.onAbort&&l.onAbort(yt.arg):Dt&&Y(\"worker sent an unknown command \"+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var yt=\"worker sent an error!\";throw Y(yt+\" \"+ut.filename+\":\"+ut.lineno+\": \"+ut.message),ut},w&&(L.on(\"message\",function(ut){L.onmessage({data:ut})}),L.on(\"error\",function(ut){L.onerror(ut)}),L.on(\"detachedExit\",function(){})),L.postMessage({cmd:\"load\",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=E(\"tfjs-backend-wasm-threaded-simd.worker.js\");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Bd(L){for(;L.length>0;)L.shift()(l)}function NI(L){var U=tS(),ut=L();return Dg(U),ut}function Yk(L){return L}function Zk(L){var U=/\\b_Z[\\w\\d_]+/g;return L.replace(U,function(ut){var yt=ut;return ut===yt?ut:yt+\" [\"+ut+\"]\"})}function TI(){var L=$g(),U=s()[L+44>>2],ut=s()[L+48>>2],yt=U-ut;o1(U,yt),Dg(U)}l.establishStackSpace=TI;function xg(L){if(C)return kl(2,0,L);try{gg(L)}catch(U){SI(U)}}var Jc=[];function kI(L){var U=Jc[L];return U||(L>=Jc.length&&(Jc.length=L+1),Jc[L]=U=Vr.get(L)),U}function EI(L,U){var ut=kI(L)(U);zo()?Kt.setExitStatus(ut):n1(ut)}l.invokeEntryPoint=EI;function Jk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return\"(no stack trace available)\"}return L.stack.toString()}function _I(L){Kt.tlsInitFunctions.push(L)}function AI(L,U){e().set(L,U)}function $I(L){t1(L,!b,1,!x),Kt.threadInitTLS()}function DI(L){C?postMessage({cmd:\"cleanupThread\",thread:L}):Md(L)}function yg(L,U,ut,yt){return C?kl(3,1,L,U,ut,yt):bg(L,U,ut,yt)}function bg(L,U,ut,yt){if(typeof SharedArrayBuffer==\"undefined\")return Y(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\"),6;var Dt=[],ae=0;if(C&&(Dt.length===0||ae))return yg(L,U,ut,yt);if(ae)return ae;var Gt={startRoutine:ut,pthread_ptr:L,arg:yt,transferList:Dt};return C?(Gt.cmd=\"spawnThread\",postMessage(Gt,Dt),0):dg(Gt)}function RI(){return 2097152}var FI=!0;function OI(){return FI}function Vd(L){Atomics.store(s(),L>>2,1),$g()&&r1(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=Vd;function PI(L,U,ut,yt){if(L==U)setTimeout(()=>Vd(yt));else if(C)postMessage({targetThread:L,cmd:\"processProxyingQueue\",queue:yt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:\"processProxyingQueue\",queue:yt})}return 1}function LI(L,U,ut){return-1}function MI(){Zc(\"\")}function Pu(L){Pu.shown||(Pu.shown={}),Pu.shown[L]||(Pu.shown[L]=1,w&&(L=\"warning: \"+L),Y(L))}function zI(){w||b||Pu(\"Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread\")}function BI(){return Date.now()}function wg(){return 2147483648}function VI(){return wg()}var Qc;w?Qc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Qc=()=>performance.now()-l.__performance_now_clock_drift:Qc=()=>performance.now();function GI(L,U,ut){n().copyWithin(L,U,U+ut)}function WI(){return w?KW().cpus().length:navigator.hardwareConcurrency}function kl(L,U){var ut=arguments.length-2,yt=arguments;return NI(()=>{for(var Dt=ut,ae=Rg(Dt*8),Gt=ae>>3,Xt=0;Xt>3,Dt=0;Dt>>16),je(st.buffer),1}catch(U){}}function qI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=wg();if(L>ut)return!1;let yt=(xr,Zn)=>xr+(Zn-xr%Zn)%Zn;for(var Dt=1;Dt<=4;Dt*=2){var ae=U*(1+.2/Dt);ae=Math.min(ae,L+100663296);var Gt=Math.min(ut,yt(Math.max(L,ae),65536)),Xt=HI(Gt);if(Xt)return!0}return!1}function KI(){throw\"unwind\"}function Cg(L){return C?kl(4,1,L):52}function Ig(L,U,ut,yt,Dt){return C?kl(5,1,L,U,ut,yt,Dt):70}var jI=[null,[],[]];function XI(L,U){var ut=jI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function vg(L,U,ut,yt){if(C)return kl(6,1,L,U,ut,yt);for(var Dt=0,ae=0;ae>2],Xt=i()[U+4>>2];U+=8;for(var xr=0;xr>2]=Dt,0}function Sg(L){var U=l[\"_\"+L];return U}function YI(L,U,ut,yt,Dt){var ae={string:Rn=>{var np=0;if(Rn!=null&&Rn!==0){var a1=(Rn.length<<2)+1;np=Rg(a1),he(Rn,np,a1)}return np},array:Rn=>{var np=Rg(Rn.length);return AI(Rn,np),np}};function Gt(Rn){return U===\"string\"?Zt(Rn):U===\"boolean\"?Boolean(Rn):Rn}var Xt=Sg(L),xr=[],Zn=0;if(yt)for(var ia=0;iaGt===\"number\"||Gt===\"boolean\"),ae=U!==\"string\";return ae&&Dt&&!yt?Sg(L):function(){return YI(L,U,ut,arguments,yt)}}Kt.init();var JI=[null,zd,xg,yg,Cg,Ig,vg],Ng={__emscripten_init_main_thread_js:$I,__emscripten_thread_cleanup:DI,__pthread_create_js:bg,_emscripten_default_pthread_stack_size:RI,_emscripten_get_now_is_monotonic:OI,_emscripten_notify_task_queue:PI,_emscripten_set_offscreencanvas_size:LI,abort:MI,emscripten_check_blocking_allowed:zI,emscripten_date_now:BI,emscripten_get_heap_max:VI,emscripten_get_now:Qc,emscripten_memcpy_big:GI,emscripten_num_logical_cores:WI,emscripten_receive_on_main_thread_js:UI,emscripten_resize_heap:qI,emscripten_unwind_to_js_event_loop:KI,exit:gg,fd_close:Cg,fd_seek:Ig,fd_write:vg,memory:st||l.wasmMemory},Qk=bI(),QI=l.___wasm_call_ctors=function(){return(QI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},tv=l._init=function(){return(tv=l._init=l.asm.init).apply(null,arguments)},ev=l._init_with_threads_count=function(){return(ev=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},rv=l._get_threads_count=function(){return(rv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},nv=l._register_tensor=function(){return(nv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},ov=l._dispose_data=function(){return(ov=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},sv=l._dispose=function(){return(sv=l._dispose=l.asm.dispose).apply(null,arguments)},iv=l._Abs=function(){return(iv=l._Abs=l.asm.Abs).apply(null,arguments)},av=l._Add=function(){return(av=l._Add=l.asm.Add).apply(null,arguments)},lv=l._AddN=function(){return(lv=l._AddN=l.asm.AddN).apply(null,arguments)},uv=l._All=function(){return(uv=l._All=l.asm.All).apply(null,arguments)},cv=l._Any=function(){return(cv=l._Any=l.asm.Any).apply(null,arguments)},pv=l._ArgMax=function(){return(pv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},mv=l._AvgPool=function(){return(mv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},fv=l._BatchMatMul=function(){return(fv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},dv=l._Ceil=function(){return(dv=l._Ceil=l.asm.Ceil).apply(null,arguments)},hv=l._ClipByValue=function(){return(hv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},gv=l._Conv2D=function(){return(gv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},xv=l._Conv2DBackpropInput=function(){return(xv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},yv=l._Cos=function(){return(yv=l._Cos=l.asm.Cos).apply(null,arguments)},bv=l._Cosh=function(){return(bv=l._Cosh=l.asm.Cosh).apply(null,arguments)},wv=l._CropAndResize=function(){return(wv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Cv=l._Cumprod=function(){return(Cv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},Iv=l._Cumsum=function(){return(Iv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},vv=l._DepthToSpace=function(){return(vv=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},Sv=l._DepthwiseConv2dNative=function(){return(Sv=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},Nv=l._Elu=function(){return(Nv=l._Elu=l.asm.Elu).apply(null,arguments)},Tv=l._Equal=function(){return(Tv=l._Equal=l.asm.Equal).apply(null,arguments)},kv=l._Exp=function(){return(kv=l._Exp=l.asm.Exp).apply(null,arguments)},Ev=l._FlipLeftRight=function(){return(Ev=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},_v=l._Floor=function(){return(_v=l._Floor=l.asm.Floor).apply(null,arguments)},Av=l._FloorDiv=function(){return(Av=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},$v=l._FusedBatchNorm=function(){return($v=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},Dv=l._FusedConv2D=function(){return(Dv=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Rv=l._FusedDepthwiseConv2D=function(){return(Rv=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Fv=l._Gather=function(){return(Fv=l._Gather=l.asm.Gather).apply(null,arguments)},Ov=l._GatherNd=function(){return(Ov=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},Pv=l._Greater=function(){return(Pv=l._Greater=l.asm.Greater).apply(null,arguments)},Lv=l._GreaterEqual=function(){return(Lv=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},Mv=l._IsNan=function(){return(Mv=l._IsNan=l.asm.IsNan).apply(null,arguments)},zv=l._LeakyRelu=function(){return(zv=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Bv=l._Less=function(){return(Bv=l._Less=l.asm.Less).apply(null,arguments)},Vv=l._LessEqual=function(){return(Vv=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},Gv=l._Log=function(){return(Gv=l._Log=l.asm.Log).apply(null,arguments)},Wv=l._LogicalAnd=function(){return(Wv=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},Uv=l._LogicalNot=function(){return(Uv=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},Hv=l._LogicalOr=function(){return(Hv=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},qv=l._LogicalXor=function(){return(qv=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Kv=l._Max=function(){return(Kv=l._Max=l.asm.Max).apply(null,arguments)},jv=l._MaxPool=function(){return(jv=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},kg=l._Mean=function(){return(kg=l._Mean=l.asm.Mean).apply(null,arguments)},Wd=l._Min=function(){return(Wd=l._Min=l.asm.Min).apply(null,arguments)},Xv=l._Minimum=function(){return(Xv=l._Minimum=l.asm.Minimum).apply(null,arguments)},Yv=l._MirrorPad=function(){return(Yv=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},tp=l._Multiply=function(){return(tp=l._Multiply=l.asm.Multiply).apply(null,arguments)},Eg=l._Neg=function(){return(Eg=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},rp=l._NonMaxSuppressionV4=function(){return(rp=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Zv=l._NonMaxSuppressionV5=function(){return(Zv=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},K=l._NotEqual=function(){return(K=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},lt=l._OneHot=function(){return(lt=l._OneHot=l.asm.OneHot).apply(null,arguments)},$t=l._PadV2=function(){return($t=l._PadV2=l.asm.PadV2).apply(null,arguments)},ne=l._Pow=function(){return(ne=l._Pow=l.asm.Pow).apply(null,arguments)},Xe=l._Prelu=function(){return(Xe=l._Prelu=l.asm.Prelu).apply(null,arguments)},Ye=l._Prod=function(){return(Ye=l._Prod=l.asm.Prod).apply(null,arguments)},re=l._RealDiv=function(){return(re=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},ee=l._Reciprocal=function(){return(ee=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},gr=l._Relu=function(){return(gr=l._Relu=l.asm.Relu).apply(null,arguments)},Yn=l._Relu6=function(){return(Yn=l._Relu6=l.asm.Relu6).apply(null,arguments)},sa=l._ResizeBilinear=function(){return(sa=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},_g=l._ResizeNearestNeighbor=function(){return(_g=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ud=l._Reverse=function(){return(Ud=l._Reverse=l.asm.Reverse).apply(null,arguments)},Jv=l._RotateWithOffset=function(){return(Jv=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},nn=l._Round=function(){return(nn=l._Round=l.asm.Round).apply(null,arguments)},El=l._Rsqrt=function(){return(El=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Ag=l._ScatterNd=function(){return(Ag=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},oU=l._SelectV2=function(){return(oU=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},sU=l._Sigmoid=function(){return(sU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},iU=l._Sin=function(){return(iU=l._Sin=l.asm.Sin).apply(null,arguments)},aU=l._Softmax=function(){return(aU=l._Softmax=l.asm.Softmax).apply(null,arguments)},lU=l._SparseFillEmptyRows=function(){return(lU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},uU=l._SparseReshape=function(){return(uU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},cU=l._SparseSegmentReduction=function(){return(cU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},pU=l._Sqrt=function(){return(pU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},mU=l._Square=function(){return(mU=l._Square=l.asm.Square).apply(null,arguments)},fU=l._SquaredDifference=function(){return(fU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},dU=l._Step=function(){return(dU=l._Step=l.asm.Step).apply(null,arguments)},hU=l._StridedSlice=function(){return(hU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},gU=l._Sub=function(){return(gU=l._Sub=l.asm.Sub).apply(null,arguments)},xU=l._Sum=function(){return(xU=l._Sum=l.asm.Sum).apply(null,arguments)},yU=l._Tan=function(){return(yU=l._Tan=l.asm.Tan).apply(null,arguments)},bU=l._Tanh=function(){return(bU=l._Tanh=l.asm.Tanh).apply(null,arguments)},wU=l._Tile=function(){return(wU=l._Tile=l.asm.Tile).apply(null,arguments)},CU=l._TopK=function(){return(CU=l._TopK=l.asm.TopK).apply(null,arguments)},IU=l._Transform=function(){return(IU=l._Transform=l.asm.Transform).apply(null,arguments)},vU=l._Transpose=function(){return(vU=l._Transpose=l.asm.Transpose).apply(null,arguments)},SU=l.__FusedMatMul=function(){return(SU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},NU=l._malloc=function(){return(NU=l._malloc=l.asm.malloc).apply(null,arguments)},TU=l._free=function(){return(TU=l._free=l.asm.free).apply(null,arguments)},kU=l.__emscripten_tls_init=function(){return(kU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},$g=l._pthread_self=function(){return($g=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},EU=l.___errno_location=function(){return(EU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},t1=l.__emscripten_thread_init=function(){return(t1=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},_U=l.__emscripten_thread_crashed=function(){return(_U=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},AU=l._emscripten_main_thread_process_queued_calls=function(){return(AU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},$U=l._emscripten_main_browser_thread_id=function(){return($U=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},e1=l._emscripten_run_in_main_runtime_thread_js=function(){return(e1=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},DU=l._emscripten_dispatch_to_thread_=function(){return(DU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},r1=l.__emscripten_proxy_execute_task_queue=function(){return(r1=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Qv=l.__emscripten_thread_free_data=function(){return(Qv=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},n1=l.__emscripten_thread_exit=function(){return(n1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},o1=l._emscripten_stack_set_limits=function(){return(o1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},tS=l.stackSave=function(){return(tS=l.stackSave=l.asm.stackSave).apply(null,arguments)},Dg=l.stackRestore=function(){return(Dg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Rg=l.stackAlloc=function(){return(Rg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},RU=l.dynCall_iijjiiii=function(){return(RU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},FU=l.dynCall_jiji=function(){return(FU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=st,l.cwrap=ZI,l.ExitStatus=Ou,l.PThread=Kt;var Fg;oa=function L(){Fg||s1(),Fg||(oa=L)};function s1(L){if(L=L||d,Tl>0)return;if(C){c(l),Er(),postMessage({cmd:\"loaded\"});return}if(Nl(),Tl>0)return;function U(){Fg||(Fg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),na()))}l.setStatus?(l.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){l.setStatus(\"\")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit==\"function\"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();s1();var Og;m&&(Og={uncaughtException:process.listeners(\"uncaughtException\").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Pg;if(typeof WasmBackendModule!=\"undefined\")Pg=WasmBackendModule;else if(typeof t!=\"undefined\")Pg=t;else throw new Error(\"Could not find wasm module in post.js\");if(Og){var OU=Pg._dispose;Pg._dispose=function(){OU(),Og.uncaughtException.forEach(function(L){process.removeListener(\"uncaughtException\",L)}),Og.unhandledRejection.forEach(function(L){process.removeListener(\"unhandledRejection\",L)})}}return t.ready}})();typeof dI==\"object\"&&typeof Mk==\"object\"?Mk.exports=Lk:typeof define==\"function\"&&define.amd?define([],function(){return Lk}):typeof dI==\"object\"&&(dI.WasmBackendModuleThreadedSimd=Lk)});var YW=yr((w8e,XW)=>{XW.exports.wasmWorkerContents=`\"use strict\";var Module={};var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require(\"worker_threads\");var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",data=>onmessage({data:data}));var fs=require(\"fs\");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,\"utf8\"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+\"\n\");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:Module[\"_pthread_self\"]()})}var err=threadPrintErr;self.alert=threadAlert;Module[\"instantiateWasm\"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);receiveInstance(instance);Module[\"wasmModule\"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd===\"load\"){Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob==\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;Module[\"__emscripten_thread_init\"](e.data.pthread_ptr,0,0,1);Module[\"establishStackSpace\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module[\"executeNotifiedProxyingQueue\"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module[\"invokeEntryPoint\"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!=\"unwind\"){if(ex instanceof Module[\"ExitStatus\"]){if(Module[\"keepRuntimeAlive\"]()){}else{Module[\"__emscripten_thread_exit\"](ex.status)}}else{throw ex}}}}else if(e.data.cmd===\"cancel\"){if(Module[\"_pthread_self\"]()){Module[\"__emscripten_thread_exit\"](-1)}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processProxyingQueue\"){if(initializedJS){Module[\"executeNotifiedProxyingQueue\"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){if(Module[\"__emscripten_thread_crashed\"]){Module[\"__emscripten_thread_crashed\"]()}throw ex}};`});var ZW=yr((hI,Bk)=>{var zk=(()=>{var r=typeof document!=\"undefined\"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!=\"undefined\"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!=\"undefined\"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!=\"undefined\"&&process.listeners&&(s={uncaughtException:process.listeners(\"uncaughtException\"),unhandledRejection:process.listeners(\"unhandledRejection\")});var i=Object.assign({},e),a=[],u=\"./this.program\",l=(K,lt)=>{throw lt},c=typeof window==\"object\",p=typeof importScripts==\"function\",m=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\",f=\"\";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Yc)return;A(\"exiting due to exception: \"+K)}if(m){p?f=ag().dirname(f)+\"/\":f=__dirname+\"/\";var C,N;typeof Lg==\"function\"&&(C=Jb(),N=ag()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:\"utf8\")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,$t)=>{K=N.normalize(K),C.readFile(K,function(ne,Xe){ne?$t(ne):lt(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\\\/g,\"/\")),a=process.argv.slice(2),process.on(\"uncaughtException\",function(K){if(!(K instanceof Yc))throw K}),process.on(\"unhandledRejection\",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return\"[Emscripten Module object]\"}}else(c||p)&&(p?f=self.location.href:typeof document!=\"undefined\"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf(\"blob:\")!==0?f=f.substr(0,f.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1):f=\"\",h=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open(\"GET\",K,!1),lt.responseType=\"arraybuffer\",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,$t)=>{var ne=new XMLHttpRequest;ne.open(\"GET\",K,!0),ne.responseType=\"arraybuffer\",ne.onload=()=>{if(ne.status==200||ne.status==0&&ne.response){lt(ne.response);return}$t()},ne.onerror=$t,ne.send(null)},b=K=>document.title=K);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!=\"object\"&&Zr(\"no native wasm support detected\");var V,G=!1,W;function q(K,lt){K||Zr(lt)}var H=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):void 0;function j(K,lt,$t){for(var ne=lt+$t,Xe=lt;K[Xe]&&!(Xe>=ne);)++Xe;if(Xe-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Xe));for(var Ye=\"\";lt>10,56320|Yn&1023)}}return Ye}function Y(K,lt){return K?j(at,K,lt):\"\"}function Z(K,lt,$t,ne){if(!(ne>0))return 0;for(var Xe=$t,Ye=$t+ne-1,re=0;re=55296&&ee<=57343){var gr=K.charCodeAt(++re);ee=65536+((ee&1023)<<10)|gr&1023}if(ee<=127){if($t>=Ye)break;lt[$t++]=ee}else if(ee<=2047){if($t+1>=Ye)break;lt[$t++]=192|ee>>6,lt[$t++]=128|ee&63}else if(ee<=65535){if($t+2>=Ye)break;lt[$t++]=224|ee>>12,lt[$t++]=128|ee>>6&63,lt[$t++]=128|ee&63}else{if($t+3>=Ye)break;lt[$t++]=240|ee>>18,lt[$t++]=128|ee>>12&63,lt[$t++]=128|ee>>6&63,lt[$t++]=128|ee&63}}return lt[$t]=0,$t-Xe}function et(K,lt,$t){return Z(K,at,lt,$t)}var rt,ot,at,nt,st,dt,gt,bt,kt;function At(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=gt=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function $e(){if(e.preRun)for(typeof e.preRun==\"function\"&&(e.preRun=[e.preRun]);e.preRun.length;)ir(e.preRun.shift());oa(ce)}function We(){ke=!0,oa(he)}function Dn(){if(e.postRun)for(typeof e.postRun==\"function\"&&(e.postRun=[e.postRun]);e.postRun.length;)zr(e.postRun.shift());oa(jt)}function ir(K){ce.unshift(K)}function Kn(K){he.unshift(K)}function zr(K){jt.unshift(K)}var je=0,Br=null,Vr=null;function jn(K){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function Xn(K){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Br!==null&&(clearInterval(Br),Br=null),Vr)){var lt=Vr;Vr=null,lt()}}function Zr(K){e.onAbort&&e.onAbort(K),K=\"Aborted(\"+K+\")\",A(K),G=!0,W=1,K+=\". Build with -sASSERTIONS for more info.\";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var ra=\"data:application/octet-stream;base64,\";function zo(K){return K.startsWith(ra)}function Nl(K){return K.startsWith(\"file://\")}var Er;Er=\"tfjs-backend-wasm.wasm\",zo(Er)||(Er=d(Er));function na(K){try{if(K==Er&&F)return new Uint8Array(F);if(x)return x(K);throw\"both async and sync fetching of the wasm failed\"}catch(lt){Zr(lt)}}function Od(){if(!F&&(c||p)){if(typeof fetch==\"function\"&&!Nl(Er))return fetch(Er,{credentials:\"same-origin\"}).then(function(K){if(!K.ok)throw\"failed to load wasm binary file at '\"+Er+\"'\";return K.arrayBuffer()}).catch(function(){return na(Er)});if(g)return new Promise(function(K,lt){g(Er,function($t){K(new Uint8Array($t))},lt)})}return Promise.resolve().then(function(){return na(Er)})}function Pd(){var K={env:zd,wasi_snapshot_preview1:zd};function lt(re,ee){var gr=re.exports;e.asm=gr,V=e.asm.memory,At(V.buffer),Zt=e.asm.__indirect_function_table,Kn(e.asm.__wasm_call_ctors),Xn(\"wasm-instantiate\")}jn(\"wasm-instantiate\");function $t(re){lt(re.instance)}function ne(re){return Od().then(function(ee){return WebAssembly.instantiate(ee,K)}).then(function(ee){return ee}).then(re,function(ee){A(\"failed to asynchronously prepare wasm: \"+ee),Zr(ee)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming==\"function\"&&!zo(Er)&&!Nl(Er)&&!m&&typeof fetch==\"function\"?fetch(Er,{credentials:\"same-origin\"}).then(function(re){var ee=WebAssembly.instantiateStreaming(re,K);return ee.then($t,function(gr){return A(\"wasm streaming compile failed: \"+gr),A(\"falling back to ArrayBuffer instantiation\"),ne($t)})}):ne($t)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(K,lt);return Ye}catch(re){A(\"Module.instantiateWasm callback failed with error: \"+re),o(re)}return Xe().catch(o),{}}var Hk,Tl;function Yc(K){this.name=\"ExitStatus\",this.message=\"Program terminated with exit(\"+K+\")\",this.status=K}function oa(K){for(;K.length>0;)K.shift()(e)}function qk(K){return K}function Kk(K){var lt=/\\b_Z[\\w\\d_]+/g;return K.replace(lt,function($t){var ne=$t;return $t===ne?$t:ne+\" [\"+$t+\"]\"})}function Zc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return\"(no stack trace available)\"}return K.stack.toString()}function xI(K,lt){ot.set(K,lt)}function mg(){Zr(\"\")}function Ld(){return 2147483648}function rn(){return Ld()}function fg(K,lt,$t){at.copyWithin(K,lt,lt+$t)}function yI(K){try{return V.grow(K-rt.byteLength+65535>>>16),At(V.buffer),1}catch(lt){}}function bI(K){var lt=at.length;K=K>>>0;var $t=Ld();if(K>$t)return!1;let ne=(gr,Yn)=>gr+(Yn-gr%Yn)%Yn;for(var Xe=1;Xe<=4;Xe*=2){var Ye=lt*(1+.2/Xe);Ye=Math.min(Ye,K+100663296);var re=Math.min($t,ne(Math.max(K,Ye),65536)),ee=yI(re);if(ee)return!0}return!1}var wI={varargs:void 0,get:function(){wI.varargs+=4;var K=dt[wI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function jk(K){return 52}function CI(K,lt,$t,ne,Xe){return 70}var Ou=[null,[],[]];function II(K,lt){var $t=Ou[K];lt===0||lt===10?((K===1?E:A)(j($t,0)),$t.length=0):$t.push(lt)}function vI(K,lt,$t,ne){for(var Xe=0,Ye=0;Ye<$t;Ye++){var re=gt[lt>>2],ee=gt[lt+4>>2];lt+=8;for(var gr=0;gr>2]=Xe,0}function Md(K){var lt=e[\"_\"+K];return lt}function dg(K,lt,$t,ne,Xe){var Ye={string:nn=>{var El=0;if(nn!=null&&nn!==0){var Ag=(nn.length<<2)+1;El=Wd(Ag),et(nn,El,Ag)}return El},array:nn=>{var El=Wd(nn.length);return xI(nn,El),El}};function re(nn){return lt===\"string\"?Y(nn):lt===\"boolean\"?Boolean(nn):nn}var ee=Md(K),gr=[],Yn=0;if(ne)for(var sa=0;sare===\"number\"||re===\"boolean\"),Ye=lt!==\"string\";return Ye&&Xe&&!ne?Md(K):function(){return dg(K,lt,$t,arguments,ne)}}var zd={abort:mg,emscripten_get_heap_max:rn,emscripten_memcpy_big:fg,emscripten_resize_heap:bI,fd_close:jk,fd_seek:CI,fd_write:vI},Xk=Pd(),gg=e.___wasm_call_ctors=function(){return(gg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Bd=e._get_threads_count=function(){return(Bd=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},NI=e._register_tensor=function(){return(NI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yk=e._dispose_data=function(){return(Yk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Zk=e._dispose=function(){return(Zk=e._dispose=e.asm.dispose).apply(null,arguments)},TI=e._Abs=function(){return(TI=e._Abs=e.asm.Abs).apply(null,arguments)},xg=e._Add=function(){return(xg=e._Add=e.asm.Add).apply(null,arguments)},Jc=e._AddN=function(){return(Jc=e._AddN=e.asm.AddN).apply(null,arguments)},kI=e._All=function(){return(kI=e._All=e.asm.All).apply(null,arguments)},EI=e._Any=function(){return(EI=e._Any=e.asm.Any).apply(null,arguments)},Jk=e._ArgMax=function(){return(Jk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},_I=e._AvgPool=function(){return(_I=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},AI=e._BatchMatMul=function(){return(AI=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},$I=e._Ceil=function(){return($I=e._Ceil=e.asm.Ceil).apply(null,arguments)},DI=e._ClipByValue=function(){return(DI=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},yg=e._Conv2D=function(){return(yg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},bg=e._Conv2DBackpropInput=function(){return(bg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},RI=e._Cos=function(){return(RI=e._Cos=e.asm.Cos).apply(null,arguments)},FI=e._Cosh=function(){return(FI=e._Cosh=e.asm.Cosh).apply(null,arguments)},OI=e._CropAndResize=function(){return(OI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Vd=e._Cumprod=function(){return(Vd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},PI=e._Cumsum=function(){return(PI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},LI=e._DepthToSpace=function(){return(LI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},MI=e._DepthwiseConv2dNative=function(){return(MI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Pu=e._Elu=function(){return(Pu=e._Elu=e.asm.Elu).apply(null,arguments)},zI=e._Equal=function(){return(zI=e._Equal=e.asm.Equal).apply(null,arguments)},BI=e._Exp=function(){return(BI=e._Exp=e.asm.Exp).apply(null,arguments)},wg=e._FlipLeftRight=function(){return(wg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},VI=e._Floor=function(){return(VI=e._Floor=e.asm.Floor).apply(null,arguments)},Qc=e._FloorDiv=function(){return(Qc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},GI=e._FusedBatchNorm=function(){return(GI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},WI=e._FusedConv2D=function(){return(WI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},kl=e._FusedDepthwiseConv2D=function(){return(kl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Gd=e._Gather=function(){return(Gd=e._Gather=e.asm.Gather).apply(null,arguments)},UI=e._GatherNd=function(){return(UI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},HI=e._Greater=function(){return(HI=e._Greater=e.asm.Greater).apply(null,arguments)},qI=e._GreaterEqual=function(){return(qI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},KI=e._IsNan=function(){return(KI=e._IsNan=e.asm.IsNan).apply(null,arguments)},Cg=e._LeakyRelu=function(){return(Cg=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Ig=e._Less=function(){return(Ig=e._Less=e.asm.Less).apply(null,arguments)},jI=e._LessEqual=function(){return(jI=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},XI=e._Log=function(){return(XI=e._Log=e.asm.Log).apply(null,arguments)},vg=e._LogicalAnd=function(){return(vg=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Sg=e._LogicalNot=function(){return(Sg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},YI=e._LogicalOr=function(){return(YI=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},ZI=e._LogicalXor=function(){return(ZI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},JI=e._Max=function(){return(JI=e._Max=e.asm.Max).apply(null,arguments)},Ng=e._MaxPool=function(){return(Ng=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Qk=e._Maximum=function(){return(Qk=e._Maximum=e.asm.Maximum).apply(null,arguments)},QI=e._Mean=function(){return(QI=e._Mean=e.asm.Mean).apply(null,arguments)},tv=e._Min=function(){return(tv=e._Min=e.asm.Min).apply(null,arguments)},ev=e._Minimum=function(){return(ev=e._Minimum=e.asm.Minimum).apply(null,arguments)},rv=e._MirrorPad=function(){return(rv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},nv=e._Multiply=function(){return(nv=e._Multiply=e.asm.Multiply).apply(null,arguments)},ov=e._Neg=function(){return(ov=e._Neg=e.asm.Neg).apply(null,arguments)},sv=e._NonMaxSuppressionV3=function(){return(sv=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},iv=e._NonMaxSuppressionV4=function(){return(iv=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},av=e._NonMaxSuppressionV5=function(){return(av=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},lv=e._NotEqual=function(){return(lv=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},uv=e._OneHot=function(){return(uv=e._OneHot=e.asm.OneHot).apply(null,arguments)},cv=e._PadV2=function(){return(cv=e._PadV2=e.asm.PadV2).apply(null,arguments)},pv=e._Pow=function(){return(pv=e._Pow=e.asm.Pow).apply(null,arguments)},mv=e._Prelu=function(){return(mv=e._Prelu=e.asm.Prelu).apply(null,arguments)},fv=e._Prod=function(){return(fv=e._Prod=e.asm.Prod).apply(null,arguments)},dv=e._RealDiv=function(){return(dv=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},hv=e._Reciprocal=function(){return(hv=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},gv=e._Relu=function(){return(gv=e._Relu=e.asm.Relu).apply(null,arguments)},xv=e._Relu6=function(){return(xv=e._Relu6=e.asm.Relu6).apply(null,arguments)},yv=e._ResizeBilinear=function(){return(yv=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},bv=e._ResizeNearestNeighbor=function(){return(bv=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},wv=e._Reverse=function(){return(wv=e._Reverse=e.asm.Reverse).apply(null,arguments)},Cv=e._RotateWithOffset=function(){return(Cv=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},Iv=e._Round=function(){return(Iv=e._Round=e.asm.Round).apply(null,arguments)},vv=e._Rsqrt=function(){return(vv=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},Sv=e._ScatterNd=function(){return(Sv=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},Nv=e._SelectV2=function(){return(Nv=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},Tv=e._Sigmoid=function(){return(Tv=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},kv=e._Sin=function(){return(kv=e._Sin=e.asm.Sin).apply(null,arguments)},Ev=e._Softmax=function(){return(Ev=e._Softmax=e.asm.Softmax).apply(null,arguments)},_v=e._SparseFillEmptyRows=function(){return(_v=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},Av=e._SparseReshape=function(){return(Av=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},$v=e._SparseSegmentReduction=function(){return($v=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},Dv=e._Sqrt=function(){return(Dv=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},Rv=e._Square=function(){return(Rv=e._Square=e.asm.Square).apply(null,arguments)},Fv=e._SquaredDifference=function(){return(Fv=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},Ov=e._Step=function(){return(Ov=e._Step=e.asm.Step).apply(null,arguments)},Pv=e._StridedSlice=function(){return(Pv=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},Lv=e._Sub=function(){return(Lv=e._Sub=e.asm.Sub).apply(null,arguments)},Mv=e._Sum=function(){return(Mv=e._Sum=e.asm.Sum).apply(null,arguments)},zv=e._Tan=function(){return(zv=e._Tan=e.asm.Tan).apply(null,arguments)},Bv=e._Tanh=function(){return(Bv=e._Tanh=e.asm.Tanh).apply(null,arguments)},Vv=e._Tile=function(){return(Vv=e._Tile=e.asm.Tile).apply(null,arguments)},Gv=e._TopK=function(){return(Gv=e._TopK=e.asm.TopK).apply(null,arguments)},Wv=e._Transform=function(){return(Wv=e._Transform=e.asm.Transform).apply(null,arguments)},Uv=e._Transpose=function(){return(Uv=e._Transpose=e.asm.Transpose).apply(null,arguments)},Hv=e.__FusedMatMul=function(){return(Hv=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},qv=e._malloc=function(){return(qv=e._malloc=e.asm.malloc).apply(null,arguments)},Kv=e._free=function(){return(Kv=e._free=e.asm.free).apply(null,arguments)},jv=e.___errno_location=function(){return(jv=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Tg=e.stackSave=function(){return(Tg=e.stackSave=e.asm.stackSave).apply(null,arguments)},kg=e.stackRestore=function(){return(kg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Wd=e.stackAlloc=function(){return(Wd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},Xv=e.dynCall_iijjiiii=function(){return(Xv=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},Yv=e.dynCall_jiji=function(){return(Yv=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=hg;var tp;Vr=function K(){tp||Eg(),tp||(Vr=K)};function Eg(K){if(K=K||a,je>0||($e(),je>0))return;function lt(){tp||(tp=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Dn()))}e.setStatus?(e.setStatus(\"Running...\"),setTimeout(function(){setTimeout(function(){e.setStatus(\"\")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit==\"function\"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Eg();var ep;s&&(ep={uncaughtException:process.listeners(\"uncaughtException\").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners(\"unhandledRejection\").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var rp;if(typeof t!=\"undefined\")rp=t;else if(typeof WasmBackendModuleThreadedSimd!=\"undefined\")rp=WasmBackendModuleThreadedSimd;else throw new Error(\"Could not find wasm module in post.js\");if(ep){var Zv=rp._dispose;rp._dispose=function(){Zv(),ep.uncaughtException.forEach(function(K){process.removeListener(\"uncaughtException\",K)}),ep.unhandledRejection.forEach(function(K){process.removeListener(\"unhandledRejection\",K)})}}return t.ready}})();typeof hI==\"object\"&&typeof Bk==\"object\"?Bk.exports=zk:typeof define==\"function\"&&define.amd?define([],function(){return zk}):typeof hI==\"object\"&&(hI.WasmBackendModule=zk)});var aa=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Fn(\"refCount\")}incRef(t){return Fn(\"incRef\")}timerAvailable(){return!0}time(t){return Fn(\"time\")}read(t){return Fn(\"read\")}readSync(t){return Fn(\"readSync\")}readToGPU(t,e){return Fn(\"readToGPU\")}numDataIds(){return Fn(\"numDataIds\")}disposeData(t,e){return Fn(\"disposeData\")}write(t,e,n){return Fn(\"write\")}move(t,e,n,o,s){return Fn(\"move\")}createTensorFromTexture(t,e,n){return Fn(\"createTensorFromTexture\")}memory(){return Fn(\"memory\")}floatPrecision(){return Fn(\"floatPrecision\")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Fn(\"dispose\")}};function Fn(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function l1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Mg(r,t,e)}function WU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Mg(r,e,n),Mg(t,e,n)}function op(r,t,e){return Math.max(r,Math.min(t,e))}function UU(r){return r%2===0?r:r+1}function Mg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function HU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Jn(r){_(r!=null,()=>\"The input to the tensor constructor must be a non-null value.\")}function Vo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||br(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function QU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function cr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>la(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function nS(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:cr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function oS(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function sS(r,t){let e=null;if(r==null||r===\"float32\")e=new Float32Array(t);else if(r===\"int32\")e=new Int32Array(t);else if(r===\"bool\")e=new Uint8Array(t);else if(r===\"string\")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function iS(r,t){for(let e=0;et+=e.length),t}function Go(r){return typeof r==\"string\"||r instanceof String}function u1(r){return typeof r==\"boolean\"}function c1(r){return typeof r==\"number\"}function sp(r){return Array.isArray(r)?sp(r[0]):r instanceof Float32Array?\"float32\":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?\"int32\":c1(r)?\"float32\":Go(r)?\"string\":u1(r)?\"bool\":\"float32\"}function ai(r){return!!(r&&r.constructor&&r.call&&r.apply)}function ip(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function p1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?\" for a complex tensor\":\"\"}.`);return p1(0,r,t,e)}function Hd(r,t){let e=ap(r,t);for(let n=0;nn*o,1);if(t==null||t===\"float32\")return Lu(r,new Float32Array(e));if(t===\"int32\")return Lu(r,new Int32Array(e));if(t===\"bool\")return Lu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Pe(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function r4(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(\":\");this.urlFlags[o]=a4(o,s)})}};function s4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(i4(t,n[0],n[1]),n.join(\"=\"))),t}function i4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||\"\")}function a4(r,t){if(t=t.toLowerCase(),t===\"true\"||t===\"false\")return t===\"true\";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function M(){return uS}var uS=null;function f1(r){uS=r}var cS;function pS(){if(cS==null){let r;if(typeof window!=\"undefined\")r=window;else if(typeof global!=\"undefined\")r=global;else if(typeof process!=\"undefined\")r=process;else if(typeof self!=\"undefined\")r=self;else throw new Error(\"Could not find a global object\");cS=r}return cS}function l4(){let r=pS();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function jd(r,t){let e=l4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ui=\"Abs\",ua=\"Acos\",ca=\"Acosh\",Qn=\"Add\",Wo=\"AddN\",pa=\"All\",ma=\"Any\",Uo=\"ArgMax\",Al=\"ArgMin\",fa=\"Asin\",da=\"Asinh\",ha=\"Atan\",ga=\"Atanh\",xa=\"Atan2\",Ho=\"AvgPool\",lp=\"AvgPoolGrad\",$l=\"AvgPool3D\",up=\"AvgPool3DGrad\",qo=\"BatchMatMul\",ci=\"BatchToSpaceND\",cp=\"Bincount\",d1=\"BroadcastTo\",pp=\"BroadcastArgs\",co=\"Cast\",Ko=\"Ceil\",po=\"ClipByValue\",mp=\"Complex\",Dl=\"ComplexAbs\",pi=\"Concat\",jo=\"Conv2D\",fp=\"Conv2DBackpropFilter\",Xo=\"Conv2DBackpropInput\",Rl=\"Conv3D\",dp=\"Conv3DBackpropFilterV2\",hp=\"Conv3DBackpropInputV2\",Yo=\"Cos\",Zo=\"Cosh\",ya=\"Cumprod\",Jo=\"Cumsum\",ba=\"CropAndResize\",gp=\"DenseBincount\",wa=\"DepthToSpace\",Qo=\"DepthwiseConv2dNative\",xp=\"DepthwiseConv2dNativeBackpropFilter\",yp=\"DepthwiseConv2dNativeBackpropInput\",bp=\"Diag\",Fl=\"Dilation2D\",Xd=\"Dilation2DBackpropInput\",Yd=\"Dilation2DBackpropFilter\",ts=\"RealDiv\",wp=\"Einsum\",es=\"Elu\",Cp=\"EluGrad\",Ca=\"Erf\",Ia=\"Equal\",rs=\"Exp\",mi=\"ExpandDims\",va=\"Expm1\",Ip=\"FFT\",Ol=\"Fill\",Sa=\"FlipLeftRight\",ns=\"Floor\",os=\"FloorDiv\",ss=\"FusedBatchNorm\",fi=\"GatherV2\",Na=\"GatherNd\",Ta=\"Greater\",is=\"GreaterEqual\",mo=\"Identity\",vp=\"IFFT\",Sp=\"Imag\",ka=\"IsFinite\",Ea=\"IsInf\",as=\"IsNan\",ls=\"LeakyRelu\",_a=\"Less\",Aa=\"LessEqual\",Np=\"LinSpace\",us=\"Log\",$a=\"Log1p\",Da=\"LogicalAnd\",Ra=\"LogicalNot\",Fa=\"LogicalOr\",h1=\"LogicalXor\",g1=\"LogSoftmax\",Nlt=\"LowerBound\",Pl=\"LRN\",Tp=\"LRNGrad\",cs=\"Max\",ps=\"Maximum\",ms=\"MaxPool\",kp=\"MaxPoolGrad\",Ll=\"MaxPool3D\",Ep=\"MaxPool3DGrad\",_p=\"MaxPoolWithArgmax\",fs=\"Mean\",ds=\"Min\",hs=\"Minimum\",gs=\"MirrorPad\",Oa=\"Mod\",Ap=\"Multinomial\",xs=\"Multiply\",di=\"Neg\",Pa=\"NotEqual\",La=\"NonMaxSuppressionV3\",Ma=\"NonMaxSuppressionV4\",za=\"NonMaxSuppressionV5\",hi=\"OnesLike\",ys=\"OneHot\",gi=\"Pack\",bs=\"PadV2\",Tlt=\"Pool\",ws=\"Pow\",Cs=\"Prelu\",Is=\"Prod\",$p=\"RaggedGather\",Dp=\"RaggedRange\",Rp=\"RaggedTensorToTensor\",Ml=\"Range\",Fp=\"Real\",vs=\"Reciprocal\",Ss=\"Relu\",xi=\"Reshape\",Ns=\"ResizeNearestNeighbor\",Op=\"ResizeNearestNeighborGrad\",Ts=\"ResizeBilinear\",Pp=\"ResizeBilinearGrad\",ks=\"Relu6\",Es=\"Reverse\",_s=\"Round\",As=\"Rsqrt\",Ba=\"ScatterNd\",Lp=\"SearchSorted\",yi=\"Select\",Va=\"Selu\",bi=\"Slice\",$s=\"Sin\",Ga=\"Sinh\",Wa=\"Sign\",Ds=\"Sigmoid\",Ua=\"Softplus\",Rs=\"Sqrt\",Fs=\"Sum\",wi=\"SpaceToBatchND\",Ci=\"SplitV\",Os=\"Softmax\",zl=\"SparseFillEmptyRows\",Ha=\"SparseReshape\",Bl=\"SparseSegmentMean\",Vl=\"SparseSegmentSum\",Mp=\"SparseToDense\",Ps=\"SquaredDifference\",Gl=\"Square\",qa=\"StridedSlice\",Wl=\"StringNGrams\",Ul=\"StringSplit\",Hl=\"StringToHashBucketFast\",Ls=\"Sub\",Ms=\"Tan\",zs=\"Tanh\",to=\"Tile\",Ka=\"TopK\",ja=\"Transform\",eo=\"Transpose\",zp=\"Unique\",Ii=\"Unpack\",ql=\"UnsortedSegmentSum\",klt=\"UpperBound\",vi=\"ZerosLike\",fo=\"Step\",Zd=\"FromPixels\",Xa=\"RotateWithOffset\",Si=\"_FusedMatMul\",Ni=\"FusedConv2D\",Ti=\"FusedDepthwiseConv2D\";function ki(...r){M().getBool(\"IS_TEST\")||M().getBool(\"PROD\")||console.warn(...r)}function u4(...r){M().getBool(\"IS_TEST\")||M().getBool(\"PROD\")||console.log(...r)}var Bp=jd(\"kernelRegistry\",()=>new Map),Jd=jd(\"gradRegistry\",()=>new Map);function Qd(r,t){let e=fS(r,t);return Bp.get(e)}function mS(r){return Jd.get(r)}function Bg(r){let t=Bp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split(\"_\");a===r&&e.push(i)}return e}function zu(r){let{kernelName:t,backendName:e}=r,n=fS(t,e);Bp.has(n)&&ki(`The kernel '${t}' for backend '${e}' is already registered`),Bp.set(n,r)}function y1(r){let{kernelName:t}=r;Jd.has(t)&&M().getBool(\"DEBUG\")&&ki(`Overriding the gradient for '${t}'`),Jd.set(t,r)}function Dlt(r,t){let e=fS(r,t);if(!Bp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Bp.delete(e)}function Rlt(r){if(!Jd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Jd.delete(r)}function Flt(r,t){Bg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});zu(o)})}function fS(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>On,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Pe,assertNonNull:()=>Jn,assertShapesMatch:()=>De,bytesFromStringArray:()=>lS,bytesPerElement:()=>zg,checkConversionForErrors:()=>iS,clamp:()=>op,computeStrides:()=>li,createScalarValue:()=>g4,createShuffledIndices:()=>ZU,decodeString:()=>Up,distSquared:()=>KU,encodeString:()=>jl,fetch:()=>y4,fingerPrint64:()=>h4,flatten:()=>Vo,getArrayFromDType:()=>sS,getTypedArrayFromDType:()=>oS,hasEncodingLoss:()=>t4,hexToLong:()=>th,indexToLoc:()=>n4,inferDtype:()=>sp,inferFromImplicitShape:()=>QU,isBoolean:()=>u1,isFunction:()=>ai,isInt:()=>la,isNumber:()=>c1,isPromise:()=>qd,isScalarShape:()=>jU,isString:()=>Go,isTypedArray:()=>br,isValidDtype:()=>aS,locToIndex:()=>r4,makeOnesTypedArray:()=>Hd,makeZerosNestedTypedArray:()=>e4,makeZerosTypedArray:()=>ap,nearestDivisor:()=>ip,nearestLargerEven:()=>UU,now:()=>Uu,parseAxisParam:()=>cr,randUniform:()=>qU,repeatedTry:()=>JU,rightPad:()=>Mu,shuffle:()=>l1,shuffleCombo:()=>WU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>YU,squeezeShape:()=>nS,sum:()=>HU,swap:()=>Mg,tanh:()=>XU,toNestedArray:()=>Lu,toTypedArray:()=>Wp});var xS=_l(_1());var Wu=xS.default||xS;function th(r){return Wu.fromString(r,!0,16)}var $1=th(\"c3a5c85c97cb3127\"),Gu=th(\"b492b66fbe98f273\"),on=th(\"9ae16a3b2f90404f\");function gS(r){return r.xor(r.shru(47))}function D1(r,t,e){let n=r.slice(t,t+e);return Wu.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return D1(r,t,8)}function A1(r,t){return D1(r,t,4)}function _r(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Kl(r,t,e=th(\"9ddfea08eb382d69\")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function p4(r,t,e,n,o,s){o=o.add(r),s=_r(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(_r(o,44)),[o.add(n),s.add(i)]}function Gg(r,t,e,n){return p4(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function m4(r,t=r.length){if(t>=8){let e=on.add(t*2),n=Le(r,0).add(on),o=Le(r,t-8),s=_r(o,37).mul(e).add(n),i=_r(n,25).add(o).mul(e);return Kl(s,i,e)}if(t>=4){let e=on.add(t*2),n=A1(r,0);return Kl(n.shl(3).add(t),A1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return gS(on.mul(s).xor($1.mul(i))).mul(on)}return on}function f4(r,t=r.length){let e=on.add(t*2),n=Le(r,0).mul(Gu),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(on);return Kl(_r(n.add(o),43).add(_r(s,30)).add(i),n.add(_r(o.add(on),18)).add(s),e)}function d4(r,t=r.length){let e=on.add(t*2),n=Le(r,0).mul(on),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(on),a=_r(n.add(o),43).add(_r(s,30)).add(i),u=Kl(a,n.add(_r(o.add(on),18)).add(s),e),l=Le(r,16).mul(e),c=Le(r,24),p=a.add(Le(r,t-32)).mul(e),m=u.add(Le(r,t-24)).mul(e);return Kl(_r(l.add(c),43).add(_r(p,30)).add(m),l.add(_r(c.add(n),18)).add(p),e)}function h4(r,t=r.length){let e=Wu.fromNumber(81,!0);if(t<=32)return t<=16?m4(r,t):f4(r,t);if(t<=64)return d4(r,t);let n=e,o=e.mul(Gu).add(113),s=gS(o.mul(on).add(113)).mul(on),i=[Wu.UZERO,Wu.UZERO],a=[Wu.UZERO,Wu.UZERO];n=n.mul(on).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=_r(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(Gu),o=_r(o.add(i[1]).add(Le(r,u+48)),42).mul(Gu),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=_r(s.add(a[0]),33).mul(Gu),i=Gg(r,u,i[1].mul(Gu),n.add(a[0])),a=Gg(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Gu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=_r(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=_r(o.add(i[1]).add(Le(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Le(r,u+40))),s=_r(s.add(a[0]),33).mul(p),i=Gg(r,u,i[1].mul(p),n.add(a[0])),a=Gg(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],Kl(Kl(i[0],a[0],p).add(gS(o).mul($1)).add(s),Kl(i[1],a[1],p).add(n),p)}function g4(r,t){return t===\"string\"?jl(r):Wp([r],t)}function x4(r,t){return r instanceof Float32Array&&t===\"float32\"||r instanceof Int32Array&&t===\"int32\"||r instanceof Uint8Array&&t===\"bool\"}function Wp(r,t){if(t===\"string\")throw new Error(\"Cannot convert a string[] to a TypedArray\");if(Array.isArray(r)&&(r=Vo(r)),M().getBool(\"DEBUG\")&&iS(r,t),x4(r,t))return r;if(t==null||t===\"float32\"||t===\"complex64\")return new Float32Array(r);if(t===\"int32\")return new Int32Array(r);if(t===\"bool\"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Uu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Uu()-a})}if(M().getBool(\"CHECK_COMPUTATION_FOR_ERRORS\"))for(let l=0;l{b4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():\"\")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function b4(r,t,e){if(t!==\"float32\")return!1;for(let n=0;n0?h:\"\"} `}}console.log(`%c${u}\t%c${a}\t%c${l}D ${p}\t%c${c}\t%c${m}\t%c${i}`,\"font-weight:bold\",\"color:red\",\"color:blue\",\"color: orange\",\"color: green\",\"color: steelblue\")}};function R1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!==\"float32\")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!On(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var O1=20,eh=3,bS=7;function P1(r,t,e,n){let o=li(t),s=w4(r,t,e,o),i=t.length,a=Ug(r,t,e,o,s),u=[\"Tensor\"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(\" values:\")),u.push(a.map(l=>\" \"+l).join(`\n`)),u.join(`\n`)}function w4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e===\"complex64\"?nh(r):r;if(a>1)for(let l=0;lO1){let g=eh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-eh)*i,a*i));return e===\"complex64\"&&(x=nh(x),b=nh(b)),[\"[\"+x.map((w,C)=>rh(w,o[C],e)).join(\", \")+\", ..., \"+b.map((w,C)=>rh(w,o[a-eh+C],e)).join(\", \")+\"]\"]}return[\"[\"+(e===\"complex64\"?nh(r):Array.from(r)).map((g,x)=>rh(g,o[x],e)).join(\", \")+\"]\"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>O1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e===\"complex64\")throw new Error(\"complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).\");this.values=n||sS(e,this.size),this.strides=li(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oUp(n))}catch(n){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}}return t}dataToGPU(t){return this.throwIfDisposed(),Vs().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Vs().readSync(this.dataId);if(this.dtype===\"string\")try{return t.map(e=>Up(e))}catch(e){throw new Error(\"Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().\")}return t}async bytes(){this.throwIfDisposed();let t=await Vs().read(this.dataId);return this.dtype===\"string\"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Vs().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error(\"Tensor is disposed.\")}print(t=!1){return Hp.print(this,t)}clone(){return this.throwIfDisposed(),Hp.clone(this)}toString(t=!1){let e=this.dataSync();return P1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Hp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Vs().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return jd(\"Tensor\",()=>Ft)}O();var Ya=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!On(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Vs().disposeTensor(this),this.dataId=t.dataId,Vs().incRef(this,null)}dispose(){Vs().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ya,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var yo={};Wt(yo,{assertTypesMatch:()=>NS,getTensorsInContainer:()=>oh,isTensorInList:()=>v4,makeTypesMatch:()=>Ut});var wS;(function(r){r.R0=\"R0\",r.R1=\"R1\",r.R2=\"R2\",r.R3=\"R3\",r.R4=\"R4\",r.R5=\"R5\",r.R6=\"R6\"})(wS||(wS={}));var CS;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"int32\",r.complex64=\"complex64\"})(CS||(CS={}));var IS;(function(r){r.float32=\"float32\",r.int32=\"int32\",r.bool=\"bool\",r.complex64=\"complex64\"})(IS||(IS={}));var vS;(function(r){r.float32=\"float32\",r.int32=\"float32\",r.bool=\"float32\",r.complex64=\"complex64\"})(vS||(vS={}));var SS;(function(r){r.float32=\"complex64\",r.int32=\"complex64\",r.bool=\"complex64\",r.complex64=\"complex64\"})(SS||(SS={}));var I4={float32:vS,int32:CS,bool:IS,complex64:SS};function ar(r,t){if(r===\"string\"||t===\"string\"){if(r===\"string\"&&t===\"string\")return\"string\";throw new Error(`Can not upcast ${r} with ${t}`)}return I4[r][t]}function Hu(r){return ar(r,\"int32\")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=ar(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function NS(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function v4(r,t){return t.some(e=>e.id===r.id)}function oh(r){let t=[];return V1(r,t,new Set),t}function V1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!S4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),V1(s,t,e))}}function S4(r){return Array.isArray(r)||typeof r==\"object\"}function TS(r){return r.kernelName!=null}var Hg=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},Xl=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Hg}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Bg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then==\"function\"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error(\"Cannot return a Promise inside of tidy.\"),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return Xl.nextTensorId++}nextVariableId(){return Xl.nextVariableId++}clone(t){let e=k.runKernel(mo,{x:t}),n={x:t},o=i=>({x:()=>{let a=\"float32\",u={x:i},l={dtype:a};return k.runKernel(co,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Qd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool(\"IS_TEST\")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype===\"complex64\"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=TS(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:\"\";if(TS(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Qd(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=TS(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool(\"DEBUG\")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool(\"DEBUG\")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=mS(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>\"saveAllInputs is true, expected inputs to be an array.\"),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error(\"Values passed to engine.makeTensor() are null\");n=n||\"float32\",o=o||this.backend;let s=t;n===\"string\"&&Go(t[0])&&(s=t.map(u=>jl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n===\"string\"){let u=this.state.tensorInfo.get(i),l=lS(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||\"float32\";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ya(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype===\"string\"&&this.state.numStringTensors++;let n=0;t.dtype!==\"complex64\"&&t.dtype!==\"string\"&&(n=t.size*zg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ya||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype===\"string\"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!==\"complex64\"&&t.dtype!==\"string\"){let n=t.size*zg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push(\"Memory usage by string tensors is approximate (2 bytes per character)\")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=mS(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ap(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:\"unnamed scope\",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=oh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.length>0,()=>\"gradients() received an empty list of xs.\"),n!=null&&n.dtype!==\"float32\")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy(\"forward\",t));_(s instanceof Ft,()=>\"The result y returned by f() must be a tensor.\");let i=R1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)throw new Error(\"Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.\");return this.tidy(\"backward\",()=>{let a={};a[s.id]=n==null?N4(s.shape):n,F1(a,i,l=>this.tidy(l),T4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return _(ai(t),()=>\"The f passed in customGrad(f) must be a function.\"),(...e)=>{_(e.every(a=>a instanceof Ft),()=>\"The args passed in customGrad(f)(x1, x2,...) must all be tensors\");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Ft,()=>\"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor\"),_(ai(n.gradFunc),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function.\"),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.length,()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...).\"),_(c.every(m=>m instanceof Ft),()=>\"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.\");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Uu(),n=await this.backend.time(t);return n.wallMs=Uu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Hg;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Xl.nextTensorId=0;Xl.nextVariableId=0;function N4(r){let t=Hd(Jt(r),\"float32\");return k.makeTensor(t,r,\"float32\")}function kS(){let r=pS();if(r._tfengine==null){let t=new Kd(r);r._tfengine=new Xl(t)}return f1(r._tfengine.ENV),M1(()=>r._tfengine),r._tfengine}var k=kS();function T4(r,t){let e={a:r,b:t};return k.runKernel(Qn,e)}var Yl={};Wt(Yl,{isBrowser:()=>_S,isMobile:()=>_4,mockIsMobile:()=>E4});function k4(){return typeof navigator!=\"undefined\"&&navigator!=null}var ES;function E4(r){ES=r}function _4(r){if(ES!==void 0)return ES;if(r||k4()){if(r||(r=navigator),r.product===\"ReactNative\")return!0;let t=r.userAgent||r.vendor||(typeof window!=\"undefined\"?window.opera:\"\");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(t.substr(0,4))}return!1}function _S(){return typeof window!=\"undefined\"&&window.document!=null||typeof WorkerGlobalScope!=\"undefined\"}var ro=M();ro.registerFlag(\"DEBUG\",()=>!1,r=>{r&&console.warn(\"Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.\")});ro.registerFlag(\"IS_BROWSER\",()=>_S());ro.registerFlag(\"IS_NODE\",()=>typeof process!=\"undefined\"&&typeof process.versions!=\"undefined\"&&typeof process.versions.node!=\"undefined\");ro.registerFlag(\"IS_CHROME\",()=>typeof navigator!=\"undefined\"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ro.registerFlag(\"PROD\",()=>!1);ro.registerFlag(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\",()=>ro.getBool(\"DEBUG\"));ro.registerFlag(\"DEPRECATION_WARNINGS_ENABLED\",()=>!0);ro.registerFlag(\"IS_TEST\",()=>!1);ro.registerFlag(\"CHECK_COMPUTATION_FOR_ERRORS\",()=>!0);ro.registerFlag(\"WRAP_TO_IMAGEBITMAP\",()=>!1);ro.registerFlag(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\",()=>!1);ro.registerFlag(\"USE_SETTIMEOUTCUSTOM\",()=>!1);function Gr(r,t){let e=r;if(br(r))return t===\"string\"?[]:[r.length];if(typeof r==\"object\"&&\"texture\"in r){let o=r.channels||\"RGBA\";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||br(e)&&t!==\"string\";)n.push(e.length),e=e[0];return Array.isArray(r)&&M().getBool(\"TENSORLIKE_CHECK_SHAPE_CONSISTENCY\")&&W1(r,n,[]),n}function W1(r,t,e){if(e=e||[],!Array.isArray(r)&&!br(r)){_(t.length===0,()=>`Element arr[${e.join(\"][\")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join(\"][\")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join(\"][\")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),G1(n,o,t,e),r==null||!br(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\"){let u=r==null?\"null\":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Gr(r,o);!br(r)&&!Array.isArray(r)&&(r=[r]);let a=o!==\"string\"?Wp(r,o):Vo(r,[],!0);return k.makeTensor(a,s,o)}function Za(r,t,e,n=\"numeric\"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \\`Tensor[]\\` or \\`TensorLike[]\\``);return r.map((s,i)=>v(s,`${t}[${i}]`,e,n))}var AS=\"__op\";function T(r){let t=Object.keys(r);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let e=t[0],n=r[e];e.endsWith(\"_\")&&(e=e.substring(0,e.length-1)),e=e+AS;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return qd(i)&&console.error(\"Cannot return a Promise inside of tidy.\"),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,\"name\",{value:e,configurable:!0}),o}function A4(r,t){let e=v(r,\"real\",\"complex\"),n=v(t,\"imag\",\"complex\");De(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(mp,o)}var In=T({complex_:A4});function sn(r,t,e,n){if(n==null&&(n=sp(r)),n===\"complex64\")throw new Error(\"Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).\");if(typeof r==\"object\"&&\"texture\"in r){if(n!==\"float32\"&&n!==\"int32\")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||\"RGBA\",k.backend.createTensorFromTexture(r,t||e,n)}if(!br(r)&&!Array.isArray(r)&&typeof r!=\"number\"&&typeof r!=\"boolean\"&&typeof r!=\"string\")throw new Error(\"values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray\");if(t!=null){Pe(t);let o=Jt(t),s=Jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!br(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!==\"string\"?Wp(r,n):Vo(r,[],!0),k.makeTensor(r,t,n)}function nr(r,t,e){let n=Gr(r,e);return sn(r,t,n,e)}var sh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var qg=4;async function H1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+qg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var $S=typeof Buffer!=\"undefined\"&&(typeof Blob==\"undefined\"||typeof atob==\"undefined\"||typeof btoa==\"undefined\");function U1(r){return $S?Buffer.byteLength(r):new Blob([r]).size}function q1(r){if($S)return Buffer.from(r).toString(\"base64\");let t=new Uint8Array(r),e=\"\";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function DS(r){let t=\"/\";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function jg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function RS(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error(\"modelJSON has weightsManifest but weightSpecs is null\");if(!e)throw new Error(\"modelJSON has weightsManifest but weightData is null\");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function Kp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),RS(r,e,n)}function Ei(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error(\"Expected JSON model topology, received ArrayBuffer.\");return{dateSaved:new Date,modelTopologyType:\"JSON\",modelTopologyBytes:r.modelTopology==null?0:U1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:U1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function Xg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function D4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function R4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function F4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function O4(){let r=D4(),t=R4(),e=F4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,\"save\")}static getLoadHandlers(t,e){return Ce.getHandlers(t,\"load\",e)}static getHandlers(t,e,n){let o=[];return(e===\"load\"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},j1=r=>Ce.registerSaveRouter(r),X1=r=>Ce.registerLoadRouter(r),Y1=r=>Ce.getSaveHandlers(r),Z1=(r,t)=>Ce.getLoadHandlers(r,t);var FS=\"tensorflowjs\",OS=1,qu=\"models_store\",Zl=\"model_info_store\";function J1(){if(!M().getBool(\"IS_BROWSER\"))throw new Error(\"Failed to obtain IndexedDB factory because the current environmentis not a web browser.\");let r=typeof window==\"undefined\"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error(\"The current browser does not appear to support IndexedDB.\");return t}function PS(r){let t=r.result;t.createObjectStore(qu,{keyPath:\"modelPath\"}),t.createObjectStore(Zl,{keyPath:\"modelPath\"})}var _i=class{constructor(t){if(this.indexedDB=J1(),t==null||!t)throw new Error(\"For IndexedDB, modelPath must not be null, undefined or empty.\");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(FS,OS);s.onupgradeneeded=()=>PS(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(qu,\"readonly\"),l=a.objectStore(qu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ei(e),u=i.transaction(Zl,\"readwrite\"),l=u.objectStore(Zl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(qu,\"readwrite\");let f=p.objectStore(qu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(Zl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};_i.URL_SCHEME=\"indexeddb://\";var Q1=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(_i.URL_SCHEME)?P4(r.slice(_i.URL_SCHEME.length)):null;Ce.registerSaveRouter(Q1);Ce.registerLoadRouter(Q1);function P4(r){return new _i(r)}function L4(r){return r.startsWith(_i.URL_SCHEME)?r.slice(_i.URL_SCHEME.length):r}var Yg=class{constructor(){this.indexedDB=J1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(FS,OS);n.onupgradeneeded=()=>PS(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(Zl,\"readonly\"),a=s.objectStore(Zl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=L4(t),new Promise((e,n)=>{let o=this.indexedDB.open(FS,OS);o.onupgradeneeded=()=>PS(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(Zl,\"readwrite\"),a=i.objectStore(Zl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(qu,\"readwrite\");let f=l.objectStore(qu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Ja=\"/\",jp=\"tensorflowjs_models\",tE=\"info\",M4=\"model_topology\",z4=\"weight_specs\",B4=\"weight_data\",V4=\"model_metadata\";function eE(r){return{info:[jp,r,tE].join(Ja),topology:[jp,r,M4].join(Ja),weightSpecs:[jp,r,z4].join(Ja),weightData:[jp,r,B4].join(Ja),modelMetadata:[jp,r,V4].join(Ja)}}function rE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function G4(r){let t=r.split(Ja);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Ja)}function W4(r){return r.startsWith(Ai.URL_SCHEME)?r.slice(Ai.URL_SCHEME.length):r}var Ai=class{constructor(t){if(!M().getBool(\"IS_BROWSER\")||typeof window==\"undefined\"||typeof window.localStorage==\"undefined\")throw new Error(\"The current environment does not support local storage.\");if(this.LS=window.localStorage,t==null||!t)throw new Error(\"For local storage, modelPath must not be null, undefined or empty.\");this.modelPath=t,this.keys=eE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserLocalStorage.save() does not support saving model topology in binary formats yet.\");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ei(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,q1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw rE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!==\"JSON\")throw new Error(\"BrowserLocalStorage does not support loading non-JSON model topology yet.\");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=K1(i),e}};Ai.URL_SCHEME=\"localstorage://\";var nE=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Ai.URL_SCHEME)?U4(r.slice(Ai.URL_SCHEME.length)):null;Ce.registerSaveRouter(nE);Ce.registerLoadRouter(nE);function U4(r){return new Ai(r)}var Zg=class{constructor(){_(M().getBool(\"IS_BROWSER\"),()=>\"Current environment is not a web browser\"),_(typeof window==\"undefined\"||typeof window.localStorage!=\"undefined\",()=>\"Current browser does not appear to support localStorage\"),this.LS=window.localStorage}async listModels(){let t={},e=jp+Ja,n=Ja+tE;for(let o=0;o\"scheme must not be undefined or null.\"),t.endsWith(Xp)&&(t=t.slice(0,t.indexOf(Xp))),_(t.length>0,()=>\"scheme must not be an empty string.\");let n=Ar.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Ar.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Ar.getInstance().managers)}};function Jg(r){if(r.indexOf(Xp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ar.getSchemes().join(\",\")}`);return{scheme:r.split(Xp)[0],path:r.split(Xp)[1]}}async function oE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);_(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),_(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Jg(r).scheme,u=Jg(r).path,l=a===Jg(r).scheme,c=await o.load();e&&l&&await Ar.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Ar.getManager(a).removeModel(u),p.modelArtifactsInfo}async function sE(){let r=Ar.getSchemes(),t={};for(let e of r){let n=await Ar.getManager(e).listModels();for(let o in n){let s=e+Xp+o;t[s]=n[o]}}return t}async function iE(r){let t=Jg(r);return Ar.getManager(t.scheme).removeModel(t.path)}async function aE(r,t){return oE(r,t,!1)}async function lE(r,t){return oE(r,t,!0)}var LS=class{constructor(){this.messageName=\"setTimeoutCustom\",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window==\"undefined\"||!M().getBool(\"USE_SETTIMEOUTCUSTOM\")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},\"*\")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener(\"message\",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(M().get(\"IS_BROWSER\")){M().setPlatform(\"browser\",new LS);try{Ar.registerManager(Ai.URL_SCHEME,new Zg)}catch(r){}try{Ar.registerManager(_i.URL_SCHEME,new Yg)}catch(r){}}var H4={importFetch:()=>uE()},MS;var zS=class{constructor(){this.util=cE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return M().global.fetch!=null?M().global.fetch(t,e):(MS==null&&(MS=H4.importFetch()),MS(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!==\"utf-8\"&&e!==\"utf8\")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?\"\":new this.util.TextDecoder(e).decode(t)}};M().get(\"IS_NODE\")&&!M().get(\"IS_BROWSER\")&&M().setPlatform(\"node\",new zS);function wt(r,t=\"float32\",e){return t=t||\"float32\",Pe(r),new pe(r,t,e)}function q4(r,t){let e=v(r,\"x\",\"cast\");if(!aS(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t===\"string\"&&e.dtype!==\"string\"||t!==\"string\"&&e.dtype===\"string\")throw new Error(\"Only strings can be casted to strings\");let n={x:e},o={dtype:t};return k.runKernel(co,n,o)}var J=T({cast_:q4});function K4(r){let e={x:v(r,\"x\",\"clone\",\"string_or_numeric\")};return k.runKernel(mo,e)}var an=T({clone_:K4});function Qg(r,t=!1){console.log(r.toString(t))}kS();var j4={buffer:wt,cast:J,clone:an,print:Qg};z1(j4);var $r={};Wt($r,{browserFiles:()=>mE,browserHTTPRequest:()=>hE,concatenateArrayBuffers:()=>qp,copyModel:()=>aE,decodeWeights:()=>Kg,encodeWeights:()=>H1,fromMemory:()=>gE,fromMemorySync:()=>HS,getLoadHandlers:()=>Z1,getModelArtifactsForJSON:()=>Kp,getModelArtifactsForJSONSync:()=>RS,getModelArtifactsInfoForJSON:()=>Ei,getSaveHandlers:()=>Y1,getWeightSpecs:()=>Xg,http:()=>ex,isHTTPScheme:()=>tx,listModels:()=>sE,loadWeights:()=>fE,moveModel:()=>lE,registerLoadRouter:()=>X1,registerSaveRouter:()=>j1,removeModel:()=>iE,weightsLoaderFactory:()=>WS,withSaveHandler:()=>xE,withSaveHandlerSync:()=>yE});var X4=\"model\",Y4=\".json\",Z4=\".weights.bin\";function pE(r){return new Promise(t=>setTimeout(t)).then(r)}var Qa=class{constructor(t){if(!M().getBool(\"IS_BROWSER\"))throw new Error(\"browserDownloads() cannot proceed because the current environment is not a browser.\");t.startsWith(Qa.URL_SCHEME)&&(t=t.slice(Qa.URL_SCHEME.length)),(t==null||t.length===0)&&(t=X4),this.modelJsonFileName=t+Y4,this.weightDataFileName=t+Z4}async save(t){if(typeof document==\"undefined\")throw new Error(\"Browser downloads are not supported in this environment since `document` is not present\");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:\"application/octet-stream\"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserDownloads.save() does not support saving model topology in binary formats yet.\");{let n=[{paths:[\"./\"+this.weightDataFileName],weights:t.weightSpecs}],o=jg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:\"application/json\"})),i=this.modelJsonAnchor==null?document.createElement(\"a\"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await pE(()=>i.dispatchEvent(new MouseEvent(\"click\"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement(\"a\"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await pE(()=>a.dispatchEvent(new MouseEvent(\"click\")))}return{modelArtifactsInfo:Ei(t)}}}};Qa.URL_SCHEME=\"downloads://\";var BS=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Kp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,qp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>DS(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=DS(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},J4=r=>M().getBool(\"IS_BROWSER\")&&!Array.isArray(r)&&r.startsWith(Qa.URL_SCHEME)?Q4(r.slice(Qa.URL_SCHEME.length)):null;Ce.registerSaveRouter(J4);function Q4(r=\"model\"){return new Qa(r)}function mE(r){return new BS(r)}function VS(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>\"promises must be a none empty array\")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function GS(r,t){t==null&&(t={});let e=t.fetchFunc==null?M().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await VS(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await VS(a,t.onProgress,u,l)}async function fE(r,t=\"\",e,n){return WS(i=>GS(i,{requestInit:n}))(r,t,e)}function WS(r){return async(t,e=\"\",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x=\"quantization\"in g?g.quantization.dtype:g.dtype,b=sh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(\", \")}. \nManifest JSON has weights with names: ${a.join(\", \")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith(\"/\")?\"\":\"/\")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),E=Kg(N,[C.manifestEntry]);for(let A in E)p[A]=E[A]}),m+=d}),p}}var tH=\"application/octet-stream\",eH=\"application/json\",ih=class{constructor(t,e){if(this.DEFAULT_METHOD=\"POST\",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.fetchFunc==\"function\",()=>\"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)\"),this.fetch=e.fetchFunc):this.fetch=M().platform.fetch,_(t!=null&&t.length>0,()=>\"URL path for http must not be null, undefined or empty.\"),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error(\"requestInit is expected to have no pre-existing body, but has one.\");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error(\"BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.\");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:[\"./model.weights.bin\"],weights:t.weightSpecs}],o=jg(t,n);e.body.append(\"model.json\",new Blob([JSON.stringify(o)],{type:eH}),\"model.json\"),t.weightData!=null&&e.body.append(\"model.weights.bin\",new Blob([t.weightData],{type:tH}),\"model.weights.bin\");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ei(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(\".pb\")?i+=\" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.\":i+=\" Please make sure the server is serving valid JSON for this request.\",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Kp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=rH(e),s=this.weightPathPrefix||n,i=Xg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await GS(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,qp(l)]}};ih.URL_SCHEME_REGEX=/^https?:\\/\\//;function rH(r){let t=r.lastIndexOf(\"/\"),e=r.lastIndexOf(\"?\"),n=r.substring(0,t),o=e>t?r.substring(e):\"\";return[n+\"/\",o]}function tx(r){return r.match(ih.URL_SCHEME_REGEX)!=null}var dE=(r,t)=>{if(typeof fetch==\"undefined\"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>tx(n)):e=tx(r),e)return ex(r,t)}return null};Ce.registerSaveRouter(dE);Ce.registerLoadRouter(dE);function ex(r,t){return new ih(r,t)}function hE(r,t){return ex(r,t)}var ah=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},rx=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},US=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function gE(r,t,e,n){let o=arguments;return new US(HS(...o))}function HS(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ah(r):(console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"),new ah({modelTopology:r})):(console.warn(\"Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release.\"),new ah({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function xE(r){return new rx(r)}function yE(r){return new rx(r)}var CE={};Wt(CE,{confusionMatrix:()=>wE});function nH(r,t,e=!1,n=!1){let o=v(r,\"a\",\"matMul\"),s=v(t,\"b\",\"matMul\");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(qo,i,a)}var Lt=T({matMul_:nH});function oH(r,t,e=1,n=0,o=\"int32\"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:v(r,\"indices\",\"oneHot\",\"int32\")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(ys,i,a)}var $i=T({oneHot_:oH});function Ipt(){M().set(\"PROD\",!0)}function vpt(){M().set(\"DEBUG\",!0)}function Spt(){M().set(\"DEPRECATION_WARNINGS_ENABLED\",!1),console.warn(\"TensorFlow.js deprecation warnings have been disabled.\")}function qS(r){M().getBool(\"DEPRECATION_WARNINGS_ENABLED\")&&console.warn(r+\" You can disable deprecation warnings with tf.disableDeprecationWarnings().\")}B1(qS);function Npt(){k.disposeVariables()}function Mn(){return k}function lh(){return k.memory()}function Tpt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function Nt(r){oh(r).forEach(e=>e.dispose())}function Ae(r){return k.keep(r)}function kpt(r){return k.time(r)}function sH(r){return k.setBackend(r)}function Ept(){return k.ready()}function _pt(){return k.backendName}function Apt(r){k.removeBackend(r)}function $pt(r){return k.findBackend(r)}function Dpt(r){return k.findBackendFactory(r)}function Yp(r,t,e=1){return k.registerBackend(r,t,e)}function bE(){return k.backend}function Rpt(r,t){M().setPlatform(r,t)}function iH(r){let e={input:v(r,\"input\",\"imag\")};return k.runKernel(Sp,e)}var Jl=T({imag_:iH});function aH(r){let e={x:v(r,\"x\",\"neg\")};return k.runKernel(di,e)}var Ht=T({neg_:aH});function lH(r){let e={input:v(r,\"input\",\"real\")};return k.runKernel(Fp,e)}var tl=T({real_:lH});function uH(r,t,e){let n=v(r,\"x\",\"transpose\");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype===\"complex64\"?B(()=>{let i=tl(n),a=Jl(n);return i=k.runKernel(eo,{x:i},s),a=k.runKernel(eo,{x:a},s),e&&(a=Ht(a)),In(i,a)}):k.runKernel(eo,o,s)}var Ot=T({transpose_:uH});function cH(r,t,e){let n=v(r,\"labels\",\"confusionMatrix\"),o=v(t,\"predictions\",\"confusionMatrix\");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=$i(J(n,\"int32\"),e),i=$i(J(o,\"int32\"),e),a=Ot(s),u=Lt(a,i);return J(u,\"int32\")}var wE=T({confusionMatrix_:cH});var Wr={};Wt(Wr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>IE,getReductionAxes:()=>ge});function IE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;oxH,fromPixelsAsync:()=>hH,toPixels:()=>gH});function nx(r,t,e){if(Jn(r),t!=null&&t.length!==3)throw new Error(\"tensor3d() requires shape to have three numbers\");let n=Gr(r,e);if(n.length!==3&&n.length!==1)throw new Error(\"tensor3d() requires values to be number[][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor3d() requires shape to be provided when `values` are a flat array\");return sn(r,t,n,e)}var Ku;function vE(r,t=3){if(t>4)throw new Error(\"Cannot construct Tensor with more than 4 channels from pixels.\");if(r==null)throw new Error(\"pixels passed to tf.browser.fromPixels() can not be null\");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!=\"undefined\"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!=\"undefined\"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!=\"undefined\"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!=\"undefined\"&&r instanceof ImageBitmap)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(Qd(Zd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Zd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext(\"2d\").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ku==null)if(typeof document==\"undefined\")if(typeof OffscreenCanvas!=\"undefined\"&&typeof OffscreenCanvasRenderingContext2D!=\"undefined\")Ku=new OffscreenCanvas(1,1).getContext(\"2d\");else throw new Error(\"Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.\");else Ku=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:!0});Ku.canvas.width=l,Ku.canvas.height=c,Ku.drawImage(r,0,0,l,c),p=Ku.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!==\"float32\"&&e.dtype!==\"int32\")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype===\"float32\"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype===\"int32\"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext(\"2d\"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var xH=T({fromPixels_:vE});var sx={};Wt(sx,{prepareAndValidate:()=>SE});function SE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!==\"int32\")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var uh={};Wt(uh,{calculateShapes:()=>NE,validateInput:()=>ix,validateUpdateShape:()=>KS});function KS(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pbH,computeFlatOffset:()=>SH,computeOutShape:()=>CH,getNormalizedAxes:()=>IH,isSliceContinous:()=>vH,maskToAxes:()=>wH,parseSliceParams:()=>XS,sliceInfo:()=>NH,startForAxis:()=>RE,startIndicesWithElidedDims:()=>AE,stopForAxis:()=>FE,stopIndicesWithElidedDims:()=>$E,stridesForAxis:()=>DE,stridesWithElidedDims:()=>kE});var jS=-2,yH=-1;function bH(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function wH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function CH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=AE(i,f,d,n,r),p=$E(a,f,d,o,r),m=kE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=EE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=EE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=op(0,i,u-1),i}function FE(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=op(0,i,u):i=op(-1,i,u-1),i}function vH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function SH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>\"slice() does not support negative begin indexing.\")});let s;return e==null?s=new Array(o).fill(-1):typeof e==\"number\"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function NH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error(\"Multiple ellipses in slice is not allowed.\");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error(\"only stride 1 allowed on non-range indexing.\");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=TE(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=TE(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===jS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==jS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function TH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>ch,SerializationMap:()=>Di,registerClass:()=>vn});var ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Di=class{constructor(){this.classNameMap={}}static getMap(){return Di.instance==null&&(Di.instance=new Di),Di.instance}static register(t){Di.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function vn(r){_(r.className!=null,()=>\"Class being registered does not have the static className property defined.\"),_(typeof r.className==\"string\",()=>\"className is required to be a string, but got type \"+typeof r.className),_(r.className.length>0,()=>\"Class being registered has an empty-string as its className, which is disallowed.\"),Di.register(r)}var ME={};Wt(ME,{TEST_EPSILON_FLOAT16:()=>OE,createVideoElement:()=>RH,encodeStrings:()=>LE,expectArrayBuffersEqual:()=>DH,expectArraysClose:()=>EH,expectArraysEqual:()=>AH,expectNumbersClose:()=>PE,expectPromiseToFail:()=>_H,expectValuesInRange:()=>$H,play:()=>FH,testEpsilon:()=>ax});var kH=.001,OE=.1;function EH(r,t,e){return e==null&&(e=ax()),YS(r,t,(n,o)=>ZS(n,o,e))}function ax(){return k.backend.floatPrecision()===32?kH:OE}function YS(r,t,e){let n=!0;if((br(r)||br(t))&&(n=!1),br(r)&&br(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Gr(r),a=Gr(t);if(!On(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=br(r)?r:Vo(r),s=br(t)?t:Vo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}.\nActual: ${o}.\nExpected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!=\"undefined\"&&expect().nothing()}function AH(r,t){let e=typeof t==\"string\"||typeof t==\"number\"||typeof t==\"boolean\"?[t]:t;return Go(r)||Go(r[0])||Go(t)||Go(t[0])?YS(r,e,(n,o)=>n==o):YS(r,t,(n,o)=>ZS(n,o,0))}function PE(r,t,e){if(e==null&&(e=ax()),!ZS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!=\"undefined\"&&expect().nothing()}function ZS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function $H(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function DH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener(\"loadeddata\",n=>e(t)),t.load()})}async function FH(r){await r.play(),\"requestVideoFrameCallback\"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var zE=\"4.1.0\";function OH(r,t){let e=v(r,\"a\",\"add\"),n=v(t,\"b\",\"add\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Qn,o)}var X=T({add_:OH});function PH(r,t){let e=v(r,\"a\",\"floorDiv\"),n=v(t,\"b\",\"floorDiv\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(os,o)}var Zp=T({floorDiv_:PH});function LH(r,t){let e=v(r,\"a\",\"div\"),n=v(t,\"b\",\"div\");if([e,n]=Ut(e,n),e.dtype===\"int32\"&&n.dtype===\"int32\")return Zp(e,n);let o={a:e,b:n},s={};return k.runKernel(ts,o,s)}var pt=T({div_:LH});function MH(r,t){let e=v(r,\"a\",\"mul\"),n=v(t,\"b\",\"mul\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(xs,o)}var D=T({mul_:MH});function zH(r){let t=v(r,\"x\",\"abs\");if(t.dtype===\"complex64\"){let e={x:t};return k.runKernel(Dl,e)}else{let e={x:t};return k.runKernel(ui,e)}}var Ee=T({abs_:zH});function BH(r){let e={x:v(r,\"x\",\"acos\")};return k.runKernel(ua,e)}var lx=T({acos_:BH});function VH(r){let e={x:v(r,\"x\",\"acosh\")};return k.runKernel(ca,e)}var ux=T({acosh_:VH});function GH(r){_(Array.isArray(r),()=>\"The argument passed to tf.addN() must be a list of tensors\"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>v(o,`tensors${s}`,\"addN\")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error(\"All tensors passed to tf.addN() must have the same dtype\")}),t.forEach(o=>{if(!On(o.shape,e.shape))throw new Error(\"All tensors passed to tf.addN() must have the same shape\")});let n=t;return k.runKernel(Wo,n)}var BE=T({addN_:GH});function WH(r,t=null,e=!1){let o={x:v(r,\"x\",\"all\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(pa,o,s)}var Jp=T({all_:WH});function UH(r,t=null,e=!1){let o={x:v(r,\"x\",\"any\",\"bool\")},s={axis:t,keepDims:e};return k.runKernel(ma,o,s)}var ju=T({any_:UH});function HH(r,t=0){let n={x:v(r,\"x\",\"argMax\")},o={axis:t};return k.runKernel(Uo,n,o)}var Ri=T({argMax_:HH});function qH(r,t=0){let n={x:v(r,\"x\",\"argMin\")},o={axis:t};return k.runKernel(Al,n,o)}var cx=T({argMin_:qH});function KH(r){let e={x:v(r,\"x\",\"asin\")};return k.runKernel(fa,e)}var px=T({asin_:KH});function jH(r){let e={x:v(r,\"x\",\"asinh\")};return k.runKernel(da,e)}var mx=T({asinh_:jH});function XH(r){let e={x:v(r,\"x\",\"atan\")};return k.runKernel(ha,e)}var fx=T({atan_:XH});function YH(r,t){let e=v(r,\"a\",\"atan2\"),n=v(t,\"b\",\"atan2\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(xa,o)}var dx=T({atan2_:YH});function ZH(r){let e={x:v(r,\"x\",\"atanh\")};return k.runKernel(ga,e)}var hx=T({atanh_:ZH});function JH(r,t,e,n,o=\"NHWC\",s){let i=r[3],a=[...t,i],u=GE(o);return Yu(r,a,e,s,n,null,null,u)}function QS(r,t,e,n,o,s,i=\"channelsLast\"){let[a,u]=gx(t),l;if(i===\"channelsLast\")l=[a,u,r[3],r[3]];else if(i===\"channelsFirst\")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return Yu(r,l,e,n,o,s,!1,i)}function QH(r,t,e,n,o,s,i=\"NDHWC\"){let[a,u,l]=JS(t),c,p;if(i===\"NDHWC\")p=\"channelsLast\",c=[a,u,l,r[4],r[4]];else if(i===\"NCDHW\")p=\"channelsFirst\",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return VE(r,c,e,n,o,!1,p,s)}function Yu(r,t,e,n,o,s,i=!1,a=\"channelsLast\"){let[u,l,c,p]=[-1,-1,-1,-1];if(a===\"channelsLast\")[u,l,c,p]=r;else if(a===\"channelsFirst\")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=gx(e),[x,b]=gx(n),w=Qp(m,x),C=Qp(f,b),{padInfo:N,outHeight:E,outWidth:A}=rq(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a===\"channelsFirst\"?F=[u,$,E,A]:a===\"channelsLast\"&&(F=[u,E,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function VE(r,t,e,n,o,s=!1,i=\"channelsLast\",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i===\"channelsLast\")[u,l,c,p,m]=r;else if(i===\"channelsFirst\")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=JS(e),[C,N,E]=JS(n),A=Qp(f,C),$=Qp(d,N),F=Qp(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=nq(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i===\"channelsFirst\"?H=[u,q,V,G,W]:i===\"channelsLast\"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function tq(r,t,e,n,o){n==null&&(n=t0(r,t,e));let s=r[0],i=r[1],a=Xu((s-t+2*n)/e+1,o),u=Xu((i-t+2*n)/e+1,o);return[a,u]}function eq(r,t,e,n,o,s){o==null&&(o=t0(r,t,n));let i=r[0],a=r[1],u=r[2],l=Xu((i-t+2*o)/n+1,s),c=Xu((a-t+2*o)/n+1,s),p=Xu((u-t+2*o)/n+1,s);return[l,c,p,e]}function t0(r,t,e,n=1){let o=Qp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function gx(r){return typeof r==\"number\"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function JS(r){return typeof r==\"number\"?[r,r,r]:r}function Qp(r,t){return t<=1?r:r+(r-1)*(t-1)}function rq(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r==\"number\"){l={top:r,bottom:r,left:r,right:r,type:r===0?\"VALID\":\"NUMBER\"};let f=tq([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r===\"same\"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:\"SAME\"}}else if(r===\"valid\")l={top:0,bottom:0,left:0,right:0,type:\"VALID\"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r==\"object\"){let m=u===\"channelsLast\"?r[1][0]:r[2][0],f=u===\"channelsLast\"?r[1][1]:r[2][1],d=u===\"channelsLast\"?r[2][0]:r[3][0],h=u===\"channelsLast\"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?\"VALID\":\"EXPLICIT\"},c=Xu((t-s+m+f)/n+1,a),p=Xu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function nq(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r==\"number\"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?\"VALID\":\"NUMBER\"};let g=eq([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r===\"same\"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,E=Math.floor(x/2),A=x-E;p={top:C,bottom:N,left:E,right:A,front:b,back:w,type:\"SAME\"}}else if(r===\"valid\")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:\"VALID\"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Xu(r,t){if(!t)return Math.trunc(r);switch(t){case\"round\":return Math.round(r);case\"ceil\":return Math.ceil(r);case\"floor\":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function no(r){let[t,e,n]=gx(r);return t===1&&e===1&&n===1}function Dr(r,t){return no(r)||no(t)}function GE(r){if(r===\"NHWC\")return\"channelsLast\";if(r===\"NCHW\")return\"channelsFirst\";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t==\"string\")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t==\"number\")_(la(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t==\"object\")t.forEach(n=>{n.forEach(o=>{_(la(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function oq(r,t){let n={x:v(r,\"x\",\"reshape\",\"string_or_numeric\")},o={shape:t};return k.runKernel(xi,n,o)}var R=T({reshape_:oq});function sq(r,t,e,n,o){let s=v(r,\"x\",\"avgPool\",\"float32\"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie(\"avgPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Ho,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ql=T({avgPool_:sq});function iq(r,t,e,n,o,s=\"NDHWC\"){let i=v(r,\"x\",\"avgPool3d\",\"float32\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"avgPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel($l,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var xx=T({avgPool3d_:iq});function aq(r,t=0){_(r.length>=1,()=>\"Pass at least one tensor to concat\");let e=Za(r,\"tensors\",\"concat\",\"string_or_numeric\");if(e[0].dtype===\"complex64\"&&e.forEach(s=>{if(s.dtype!==\"complex64\")throw new Error(`Cannot concatenate complex64 tensors with a tensor\n with dtype ${s.dtype}. `)}),e.length===1)return an(e[0]);let n=e,o={axis:t};return k.runKernel(pi,n,o)}var oe=T({concat_:aq});function lq(r){let e={x:v(r,\"x\",\"sigmoid\",\"float32\")};return k.runKernel(Ds,e)}var Jr=T({sigmoid_:lq});function uq(r,t,e){let n=v(r,\"x\",\"slice\",\"string_or_numeric\");if(n.rank===0)throw new Error(\"Slicing scalar is not possible\");let o={x:n},s={begin:t,size:e};return k.runKernel(bi,o,s)}var Rt=T({slice_:uq});function cq(r){let e={x:v(r,\"x\",\"tanh\",\"float32\")};return k.runKernel(zs,e)}var Fi=T({tanh_:cq});function pq(r,t,e,n,o,s){let i=v(r,\"forgetBias\",\"basicLSTMCell\"),a=v(t,\"lstmKernel\",\"basicLSTMCell\"),u=v(e,\"lstmBias\",\"basicLSTMCell\"),l=v(n,\"data\",\"basicLSTMCell\"),c=v(o,\"c\",\"basicLSTMCell\"),p=v(s,\"h\",\"basicLSTMCell\"),m=oe([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),E=X(D(Jr(b),Fi(w)),D(c,Jr(X(i,C)))),A=D(Fi(E),Jr(N));return[E,A]}var WE=T({basicLSTMCell_:pq});function mq(r,t,e){let n=v(r,\"x\",\"batchToSpaceND\"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(\" * \")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ci,s,i)}var tu=T({batchToSpaceND_:mq});function UE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function fq(r,t,e,n,o,s){s==null&&(s=.001);let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;n!=null&&(c=v(n,\"offset\",\"batchNorm\")),_(a.rank===u.rank,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),_(c==null||a.rank===c.rank,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),_(l==null||a.rank===l.rank,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let m={x:UE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(ss,m,f);return R(d,i.shape)}var Oi=T({batchNorm_:fq});function dq(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var yx=T({batchNorm2d_:dq});function hq(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var bx=T({batchNorm3d_:hq});function gq(r,t,e,n,o,s){let i=v(r,\"x\",\"batchNorm\"),a=v(t,\"mean\",\"batchNorm\"),u=v(e,\"variance\",\"batchNorm\"),l;o!=null&&(l=v(o,\"scale\",\"batchNorm\"));let c;return n!=null&&(c=v(n,\"offset\",\"batchNorm\")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var wx=T({batchNorm4d_:gq});function xq(r,t,e){let n=v(r,\"x\",\"bincount\"),o=v(t,\"weights\",\"bincount\");_(n.dtype===\"int32\",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(cp,s,i)}var Cx=T({bincount_:xq});function yq(r,t){let e=v(r,\"s0\",\"broadcastArgs\",\"int32\"),n=v(t,\"s1\",\"broadcastArgs\",\"int32\");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(pp,o)}var HE=T({broadcastArgs_:yq});function bq(r,t){let e=v(r,\"broadcastTo\",\"x\"),n=e.shape;if(Pe(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return an(e);let a={x:e},u={reps:s};return k.runKernel(to,a,u)}var Pi=T({broadcastTo_:bq});function wq(r){let e={x:v(r,\"x\",\"ceil\",\"float32\")};return k.runKernel(Ko,e)}var Ix=T({ceil_:wq});function bo(r,t,e){Pe(r);let n={shape:r,value:t,dtype:e};return k.runKernel(Ol,{},n)}function Cq(r,t,e){let n=v(r,\"x\",\"clipByValue\");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return bo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(po,o,s)}var vr=T({clipByValue_:Cq});function Iq(r){return oe(r,0)}var vx=T({concat1d_:Iq});function vq(r,t){return oe(r,t)}var Sx=T({concat2d_:vq});function Sq(r,t){return oe(r,t)}var Nx=T({concat3d_:Sq});function Nq(r,t){return oe(r,t)}var Tx=T({concat4d_:Nq});function Tq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=v(r,\"x\",\"conv2d\",\"float32\"),u=v(t,\"filter\",\"conv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie(\"conv2d\",n,i);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Sn=T({conv2d_:Tq});function kq(r,t,e,n,o=\"NWC\",s=1,i){let a=v(r,\"x\",\"conv1d\"),u=v(t,\"filter\",\"conv1d\"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie(\"conv1d\",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(o===\"NWC\",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Sn(m,p,[1,e],n,\"NHWC\",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var tm=T({conv1d_:kq});function Eq(r,t,e,n,o,s=\"NHWC\",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s===\"NHWC\"?a[3]:a[1],p=s===\"NHWC\"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie(\"conv2dDerInput\",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(Xo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var em=T({conv2DBackpropInput_:Eq});function _q(r,t,e,n,o,s){let i=v(r,\"x\",\"conv2dTranspose\"),a=v(t,\"filter\",\"conv2dTranspose\");return em(e,i,a,n,o,\"NHWC\",s)}var rm=T({conv2dTranspose_:_q});function Aq(r,t,e,n,o=\"NDHWC\",s=[1,1,1]){let i=v(r,\"x\",\"conv3d\"),a=v(t,\"filter\",\"conv3d\"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o===\"NDHWC\",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Rl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3d_:Aq});function $q(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];_(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),_(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(hp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ex=T({conv3DBackpropInput_:$q});function Dq(r,t,e,n,o){let s=v(r,\"x\",\"conv3dTranspose\"),i=v(t,\"filter\",\"conv3dTranspose\");return Ex(e,s,i,n,o)}var _x=T({conv3dTranspose_:Dq});function Rq(r){let e={x:v(r,\"x\",\"cos\",\"float32\")};return k.runKernel(Yo,e)}var eu=T({cos_:Rq});function Fq(r){let e={x:v(r,\"x\",\"cosh\",\"float32\")};return k.runKernel(Zo,e)}var nm=T({cosh_:Fq});function Oq(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumprod\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(ya,s,i)}var Zu=T({cumprod_:Oq});function Pq(r,t=0,e=!1,n=!1){let s={x:v(r,\"x\",\"cumsum\")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Jo,s,i)}var om=T({cumsum_:Pq});function Lq(r,t,e,n=!1){let o=v(r,\"x\",\"denseBincount\"),s=v(t,\"weights\",\"denseBincount\");_(o.dtype===\"int32\",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(gp,i,a)}var ph=T({denseBincount_:Lq});function Mq(r,t,e=\"NHWC\"){let n=v(r,\"x\",\"depthToSpace\",\"float32\"),o=e===\"NHWC\"?n.shape[1]:n.shape[2],s=e===\"NHWC\"?n.shape[2]:n.shape[3],i=e===\"NHWC\"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${o} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying\n ${s} and ${t} for depthToSpace with input shape\n ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(wa,a,u)}var Ax=T({depthToSpace_:Mq});function zq(r,t,e,n,o=\"NHWC\",s=[1,1],i){let a=v(r,\"x\",\"depthwiseConv2d\",\"float32\"),u=v(t,\"filter\",\"depthwiseConv2d\",\"float32\"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o===\"NHWC\"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie(\"depthwiseConv2d\",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Li=T({depthwiseConv2d_:zq});function Bq(r){let e={x:v(r,\"x\",\"diag\")};return k.runKernel(bp,e)}var qE=T({diag_:Bq});function Vq(r,t,e,n,o=[1,1],s=\"NHWC\"){let i=v(r,\"x\",\"dilation2d\"),a=v(t,\"filter\",\"dilation2d\");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s===\"NHWC\",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel(Fl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $x=T({dilation2d_:Vq});function Gq(r,t){let e=v(r,\"a\",\"equal\",\"string_or_numeric\"),n=v(t,\"b\",\"equal\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ia,o)}var Rr=T({equal_:Gq});function Wq(r,t,e){let n=v(t,\"a\",\"where\"),o=v(e,\"b\",\"where\"),s=v(r,\"condition\",\"where\",\"bool\"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Pi(s,i),u=Pi(n,i),l=Pi(o,i),c={condition:a,t:u,e:l};return k.runKernel(yi,c)}var _e=T({where_:Wq});function Uq(r){let e={x:v(r,\"x\",\"zerosLike\")};return k.runKernel(vi,e)}var It=T({zerosLike_:Uq});function Hq(r,t){let e=v(r,\"a\",\"div\"),n=v(t,\"b\",\"div\");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=Rr(n,s);return _e(i,s,o)}var Dx=T({divNoNan_:Hq});function qq(r,t){let e=v(r,\"t1\",\"dot\"),n=v(t,\"t2\",\"dot\");_((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Rx=T({dot_:qq});function Kq(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,\"einsum\")),n={equation:r};return k.runKernel(wp,e,n)}var KE=T({einsum_:Kq});function jq(r){let e={x:v(r,\"x\",\"elu\",\"float32\")};return k.runKernel(es,e)}var Mi=T({elu_:jq});function Xq(r){let t=v(r,\"x\",\"erf\");_(t.dtype===\"int32\"||t.dtype===\"float32\",()=>\"Input dtype must be `int32` or `float32`.\"),t.dtype===\"int32\"&&(t=J(t,\"float32\"));let e={x:t};return k.runKernel(Ca,e)}var Fx=T({erf_:Xq});function e0(r,t){for(let e=0;er[s]);return[e,o]}function wo(r,t){let e=t.map(n=>1);return jE(r,e,t)}function Yq(r,t,e){_(e0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function n0(r,t){if(e0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function mh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function Zq(r,t){let e=[];for(let n=t-r;n\"Axis must be <= rank of the tensor\");let n={input:e},o={dim:t};return k.runKernel(mi,n,o)}var sr=T({expandDims_:aK});function lK(r){let e={x:v(r,\"x\",\"expm1\")};return k.runKernel(va,e)}var Px=T({expm1_:lK});function uK(r,t){let e=v(r,\"x\",\"tile\",\"string_or_numeric\");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(to,n,o)}var Fr=T({tile_:uK});function cK(r,t,e,n=\"float32\"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got\n rank ${s.rank}.`),_(la(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Pl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Bx=T({localResponseNormalization_:CK});function IK(r){let e={x:v(r,\"x\",\"log\",\"float32\")};return k.runKernel(us,e)}var Nr=T({log_:IK});function vK(r){let e={x:v(r,\"x\",\"log1p\")};return k.runKernel($a,e)}var nu=T({log1p_:vK});function SK(r){return _(ai(r),()=>\"The f passed in grad(f) must be a function\"),(t,e)=>{let n=v(t,\"x\",\"tf.grad\",\"string_or_numeric\"),o=e!=null?v(e,\"dy\",\"tf.grad\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&De(s.shape,o.shape,\"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)\"),Gx(i),i[0]})}}function NK(r){return _(ai(r),()=>\"The f passed in grads(f) must be a function\"),(t,e)=>{_(Array.isArray(t),()=>\"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s\");let n=Za(t,\"args\",\"tf.grads\",\"string_or_numeric\"),o=e!=null?v(e,\"dy\",\"tf.grads\"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&De(s.shape,o.shape,\"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Gx(i),i})}}function TK(r){return _(ai(r),()=>\"The f passed in valueAndGrad(f) must be a function\"),(t,e)=>{_(t instanceof Ft,()=>\"The x passed in valueAndGrad(f)(x) must be a tensor\"),_(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrad(f)(x, dy) must be a tensor\");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Gx(n),{grad:n[0],value:o}}}function kK(r){return _(ai(r),()=>\"The f passed in valueAndGrads(f) must be a function\"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>\"The args passed in valueAndGrads(f)(args) must be array of tensors\"),_(e==null||e instanceof Ft,()=>\"The dy passed in valueAndGrads(f)(args, dy) must be a tensor\");let n=k.gradients(()=>r(...t),t,e);return e!=null&&De(n.value.shape,e.shape,\"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])\"),Gx(n.grads),n}}function Vx(r,t){_(ai(r),()=>\"The f passed in variableGrads(f) must be a function\"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ya),()=>\"The varList passed in variableGrads(f, varList) must be an array of variables\");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);_(a.some(l=>l!=null),()=>\"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize().\"),_(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function cn(r){return k.customGrad(r)}function Gx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that\n the f you passed encloses all operations that lead from x to y.`)}function EK(r){let e={x:v(r,\"x\",\"softplus\")};return k.runKernel(Ua,e)}var Gs=T({softplus_:EK});function _K(r){let t=v(r,\"x\",\"logSigmoid\");return cn(n=>({value:Ht(Gs(Ht(n))),gradFunc:i=>D(i,Jr(Ht(n)))}))(t)}var Wx=T({logSigmoid_:_K});function AK(r,t){let e=v(r,\"a\",\"sub\"),n=v(t,\"b\",\"sub\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Ls,o)}var ct=T({sub_:AK});function $K(r,t=-1){let e=v(r,\"logits\",\"logSoftmax\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return cn((o,s)=>{let a=Sr(o,t,!0),u=ct(o,a),l=ct(J(u,\"float32\"),Nr(ft(or(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=or(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var im=T({logSoftmax_:$K});function DK(r,t=null,e=!1){let n=v(r,\"x\",\"logSumExp\"),o=cr(t,n.shape),s=Sr(n,o,!0),i=ct(n,s),a=or(i),u=ft(a,o),l=Nr(u),c=X(R(s,l.shape),l);if(e){let p=wo(c.shape,o);return R(c,p)}return c}var am=T({logSumExp_:DK});function RK(r,t){let e=v(r,\"a\",\"logicalAnd\",\"bool\"),n=v(t,\"b\",\"logicalAnd\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Or=T({logicalAnd_:RK});function FK(r){let e={x:v(r,\"x\",\"logicalNot\",\"bool\")};return k.runKernel(Ra,e)}var ou=T({logicalNot_:FK});function OK(r,t){let e=v(r,\"a\",\"logicalOr\",\"bool\"),n=v(t,\"b\",\"logicalOr\",\"bool\");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Fa,o)}var lm=T({logicalOr_:OK});function PK(r,t){let e=v(r,\"a\",\"logicalXor\",\"bool\"),n=v(t,\"b\",\"logicalXor\",\"bool\");return Pt(e.shape,n.shape),Or(lm(r,t),ou(Or(r,t)))}var Ux=T({logicalXor_:PK});var Hx=2147483648;function LK(r,t,e=\"left\"){let n=v(r,\"sortedSequence\",\"searchSorted\"),o=v(t,\"values\",\"searchSorted\"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error(\"Sorted input argument must be at least 2-dimensional\");if(a.shape[0]!==u.shape[0])throw new Error(\"Leading dimension of 'sortedSequence' and 'values' must match.\");if(Jt(u.shape)>=Hx)throw new Error(`values tensor size must less than ${Hx}`);if(a.shape[1]>=Hx)throw new Error(`trailing dim_size must less than ${Hx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Lp,l,c)}var fh=T({searchSorted_:LK});function ZE(r,t){return fh(r,t,\"left\")}function MK(r,t,e,n,o){let s=v(r,\"x\",\"maxPool\"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie(\"maxPool\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(ms,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var su=T({maxPool_:MK});function zK(r,t=[1,1,1],e,n,o,s=\"NDHWC\"){let i=v(r,\"x\",\"maxPool3d\"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s===\"NDHWC\",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie(\"maxPool3d\",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Ll,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var qx=T({maxPool3d_:zK});function BK(r,t,e,n,o=!1){let i={x:v(r,\"x\",\"maxPoolWithArgmax\")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(_p,i,a);return{result:u[0],indexes:u[1]}}var JE=T({maxPoolWithArgmax_:BK});function VK(r,t){let e=v(r,\"a\",\"maximum\"),n=v(t,\"b\",\"maximum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(ps,o)}var Nn=T({maximum_:VK});function GK(r,t=null,e=!1){let o={x:v(r,\"x\",\"mean\")},s={axis:t,keepDims:e};return k.runKernel(fs,o,s)}var Se=T({mean_:GK});function Ne(r,t=\"float32\"){if(Pe(r),t===\"complex64\"){let n=Ne(r,\"float32\"),o=Ne(r,\"float32\");return In(n,o)}let e=ap(Jt(r),t);return k.makeTensor(e,r,t)}function pr(r,t=\"float32\"){if(Pe(r),t===\"complex64\"){let n=pr(r,\"float32\"),o=Ne(r,\"float32\");return In(n,o)}let e=Hd(Jt(r),t);return k.makeTensor(e,r,t)}function QE(r,t,{indexing:e=\"xy\"}={}){if(e!==\"xy\"&&e!==\"ij\")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=v(r,\"x\",\"meshgrid\",r instanceof Ft?r.dtype:\"float32\");if(t===void 0)return[n];let o=v(t,\"y\",\"meshgrid\",t instanceof Ft?t.dtype:\"float32\"),s=Jt(n.shape),i=Jt(o.shape);return e===\"xy\"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(pr([i,1],n.dtype),n),Lt(o,pr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,pr([1,i],n.dtype)),Lt(pr([s,1],o.dtype),o)])}function WK(r,t){let e=v(r,\"a\",\"minimum\"),n=v(t,\"b\",\"minimum\");[e,n]=Ut(e,n),e.dtype===\"bool\"&&(e=J(e,\"int32\"),n=J(n,\"int32\")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(hs,o)}var Vi=T({minimum_:WK});function UK(r,t,e){_(e===\"reflect\"||e===\"symmetric\",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=v(r,\"x\",\"mirrorPad\");if(n.rank===0)throw new Error(\"mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad\");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e===\"reflect\"?1:0;for(let a=0;a\"Invalid number of paddings. Must be length of 2 each.\"),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(gs,i,s)}var Kx=T({mirrorPad_:UK});function HK(r,t){let e=v(r,\"a\",\"mod\"),n=v(t,\"b\",\"mod\");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Oa,o)}var jx=T({mod_:HK});function qK(r,t=null,e=!1){r=v(r,\"x\",\"moments\");let n=cr(t,r.shape),o=Se(r,n,e),s=o.shape;e||(s=wo(o.shape,n));let i=Mt(ct(J(r,\"float32\"),R(o,s))),a=Se(i,n,e);return{mean:o,variance:a}}var Qu=T({moments_:qK});function KK(r,t,e,n){let o=v(t,\"data\",\"multiRNNCell\"),s=Za(e,\"c\",\"multiRNNCell\"),i=Za(n,\"h\",\"multiRNNCell\"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(Ap,u,l);return i===1?R(c,[c.size]):c}var e_=T({multinomial_:jK});function XK(r,t){let e=v(r,\"a\",\"notEqual\",\"string_or_numeric\"),n=v(t,\"b\",\"notEqual\",\"string_or_numeric\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Pa,o)}var Ws=T({notEqual_:XK});function YK(r){let e={x:v(r,\"x\",\"onesLike\")};return k.runKernel(hi,e)}var wr=T({onesLike_:YK});function ZK(r,t){let e=v(r,\"v1\",\"outerProduct\"),n=v(t,\"v2\",\"outerProduct\");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var r_=T({outerProduct_:ZK});function JK(r,t,e=0){let n=v(r,\"x\",\"pad\");if(n.rank===0)throw new Error(\"pad(scalar) is not defined. Pass non-scalar to pad\");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(bs,s,o)}var pn=T({pad_:JK});function QK(r,t,e=0){return _(t.length===2,()=>\"Invalid number of paddings. Must be length of 2.\"),pn(r,[t],e)}var n_=T({pad1d_:QK});function tj(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),pn(r,t,e)}var o_=T({pad2d_:tj});function ej(r,t,e=0){return _(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),pn(r,t,e)}var s_=T({pad3d_:ej});function rj(r,t,e=0){return _(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>\"Invalid number of paddings. Must be length of 2 each.\"),pn(r,t,e)}var i_=T({pad4d_:rj});function nj(r,t,e){let n=v(r,\"x\",\"spaceToBatchND\");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(wi,o,s)}var iu=T({spaceToBatchND_:nj});function oj(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n=\"valid\");let a=v(r,\"x\",\"maxPool\"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=QS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n===\"same\"?m=ij([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=sj([c.inHeight,c.inWidth],p,m),g=f?n:\"valid\",x=f?u:iu(u,p,d),w=(e===\"avg\"?()=>Ql(x,t,s,g,i):()=>su(x,t,s,g,i))(),C=f?w:tu(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function sj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ij(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Xx=T({pool_:oj});function aj(r,t){let e=v(r,\"x\",\"prelu\"),n=v(t,\"alpha\",\"prelu\"),o={x:e,alpha:n};return k.runKernel(Cs,o)}var au=T({prelu_:aj});function lj(r,t=null,e=!1){let n=v(r,\"x\",\"prod\");n.dtype===\"bool\"&&(n=J(n,\"int32\"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(Is,o,s)}var Yx=T({prod_:lj});function uj(r,t,e,n){let o=r.map((c,p)=>v(c,`tensors${p}`,\"raggedGather\",\"int32\")),s=v(t,\"paramsDenseValues\",\"raggedGather\"),i=v(e,\"indices\",\"raggedGather\",\"int32\"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel($p,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var a_=T({raggedGather_:uj});function cj(r,t,e){let n=v(r,\"starts\",\"raggedRange\"),o=v(t,\"limits\",\"raggedRange\",n.dtype),s=v(e,\"deltas\",\"raggedRange\",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel(Dp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var l_=T({raggedRange_:cj});function pj(r,t,e,n,o){let s=v(r,\"shape\",\"raggedTensorToTensor\",\"int32\"),i=v(t,\"values\",\"raggedTensorToTensor\"),a=v(e,\"defaultValue\",\"raggedTensorToTensor\",i.dtype),u=n.map((p,m)=>v(p,`tensors${m}`,\"raggedTensorToTensor\",\"int32\")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Rp,l,c)}var u_=T({raggedTensorToTensor_:pj});function mj(r,t,e){Pe(r);let n=Jt(r),o=null;if(e==null||e===\"float32\")o=new Float32Array(n);else if(e===\"int32\")o=new Int32Array(n);else if(e===\"bool\")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype===\"float32\"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Jx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=ty.alea(s.toString()),this.randn=new ec(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype===\"float32\",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o==\"number\"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=ty.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function bj(r,t,e=1,n=\"float32\",o){if(Pe(r),e==null&&(e=1),n==null&&(n=\"float32\"),n!==\"float32\"&&n!==\"int32\")throw new Error(`Unsupported data type ${n}`);let s=new Jx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),mr(t,0)}var __=T({reverse1d_:kj});function Ej(r,t){let e=v(r,\"x\",\"reverse\");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),mr(e,t)}var A_=T({reverse2d_:Ej});function _j(r,t){let e=v(r,\"x\",\"reverse\");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),mr(e,t)}var $_=T({reverse3d_:_j});function Aj(r,t){let e=v(r,\"x\",\"reverse\");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),mr(e,t)}var D_=T({reverse4d_:Aj});function $j(r){let e={x:v(r,\"x\",\"round\")};return k.runKernel(_s,e)}var cm=T({round_:$j});function Dj(r){let e={x:v(r,\"x\",\"rsqrt\",\"float32\")};return k.runKernel(As,e)}var pm=T({rsqrt_:Dj});function Rj(r){let e={x:v(r,\"x\",\"selu\")};return k.runKernel(Va,e)}var mm=T({selu_:Rj});function Fj(r,t,e,n,o,s=[1,1],i=\"NHWC\"){let a=v(r,\"x\",\"separableConv2d\"),u=v(t,\"depthwiseFilter\",\"separableConv2d\"),l=v(e,\"pointwiseFilter\",\"separableConv2d\"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i===\"NCHW\")throw new Error(\"separableConv2d currently does not support dataFormat NCHW; only NHWC is supported\");_(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Li(c,u,n,o,i,s),g=Sn(d,l,1,\"valid\",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var fm=T({separableConv2d_:Fj});async function Oj(r,t){let e=v(r,\"x\",\"setdiff1d\"),n=v(t,\"y\",\"setdiff1d\");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var gm=T({slice1d_:zj});function Bj(r,t,e){let n=v(r,\"x\",\"slice2d\");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var hh=T({slice2d_:Bj});function Vj(r,t,e){let n=v(r,\"x\",\"slice3d\");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var xm=T({slice3d_:Vj});function Gj(r,t,e){let n=v(r,\"x\",\"slice4d\");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var nc=T({slice4d_:Gj});function Wj(r,t=-1){let e=v(r,\"logits\",\"softmax\",\"float32\");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Os,n,o)}var lu=T({softmax_:Wj});function Uj(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var uu=T({fft_:Uj});function Hj(r){_(r.dtype===\"complex64\",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(vp,t)}var nl=T({ifft_:Hj});function qj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=nl(o)}else{let o=[e,2*(t-1)],s=R(tl(r),[e,t]),i=R(Jl(r),[e,t]),a=mr(Rt(s,[0,1],[e,t-2]),1),u=D(mr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=oe([s,a],1),c=oe([i,u],1),p=R(In(l,c),[o[0],o[1]]);n=nl(p)}if(n=tl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var ym=T({irfft_:qj});function Kj(r,t,e=0){let o={x:v(r,\"x\",\"split\")},s={numOrSizeSplits:t,axis:e};return k.runKernel(Ci,o,s)}var fr=T({split_:Kj});function jj(r,t){_(r.dtype===\"float32\",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=oe([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(In(o,s),[n,e]),a=uu(i),u=Math.floor(e/2)+1,l=tl(a),c=Jl(a),p=fr(l,[u,e-u],l.shape.length-1),m=fr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(In(p[0],m[0]),f)}var cu=T({rfft_:jj});function Xj(r,t){let e=v(r,\"a\",\"squaredDifference\"),n=v(t,\"b\",\"squaredDifference\");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Ps,o,s)}var bm=T({squaredDifference_:Xj});function Yj(r,t){let e=v(r,\"x\",\"squeeze\",\"string_or_numeric\");return R(e,nS(e.shape,t).newShape)}var Bn=T({squeeze_:Yj});function Zj(r,t=0){let e=Za(r,\"tensors\",\"stack\",\"string_or_numeric\");_(e.length>=1,()=>\"Pass at least one tensor to tf.stack\"),e.length>0&&_(t<=e[0].rank,()=>\"Axis must be <= rank of the tensor\");let n=e,o={axis:t};return k.runKernel(gi,n,o)}var qe=T({stack_:Zj});function Jj(r,t=0){let n={x:v(r,\"x\",\"step\")},o={alpha:t};return k.runKernel(fo,n,o)}var Co=T({step_:Jj});function Qj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:v(r,\"x\",\"stridedSlice\",\"string_or_numeric\")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(qa,c,p)}var ny=T({stridedSlice_:Qj});function t6(r){let e={x:v(r,\"x\",\"tan\",\"float32\")};return k.runKernel(Ms,e)}var oy=T({tan_:t6});function Ke(r,t){Jn(r);let e=Gr(r,t);if(e.length!==1)throw new Error(\"tensor1d() requires values to be a flat/TypedArray\");return sn(r,null,e,t)}function Us(r,t,e){if(Jn(r),t!=null&&t.length!==2)throw new Error(\"tensor2d() requires shape to have two numbers\");let n=Gr(r,e);if(n.length!==2&&n.length!==1)throw new Error(\"tensor2d() requires values to be number[][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor2d() requires shape to be provided when `values` are a flat/TypedArray\");return sn(r,t,n,e)}function F_(r,t,e){if(Jn(r),t!=null&&t.length!==4)throw new Error(\"tensor4d() requires shape to have four numbers\");let n=Gr(r,e);if(n.length!==4&&n.length!==1)throw new Error(\"tensor4d() requires values to be number[][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor4d() requires shape to be provided when `values` are a flat array\");return sn(r,t,n,e)}function O_(r,t,e){if(Jn(r),t!=null&&t.length!==5)throw new Error(\"tensor5d() requires shape to have five numbers\");let n=Gr(r,e);if(n.length!==5&&n.length!==1)throw new Error(\"tensor5d() requires values to be number[][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor5d() requires shape to be provided when `values` are a flat array\");return sn(r,t,n,e)}function P_(r,t,e){if(Jn(r),t!=null&&t.length!==6)throw new Error(\"tensor6d() requires shape to have six numbers\");let n=Gr(r,e);if(n.length!==6&&n.length!==1)throw new Error(\"tensor6d() requires values to be number[][][][][][] or flat/TypedArray\");if(n.length===1&&t==null)throw new Error(\"tensor6d() requires shape to be provided when `values` are a flat array\");return t=t||n,sn(r,t,n,e)}function e6(r,t=1,e=!0){let n=v(r,\"x\",\"topk\");if(n.rank===0)throw new Error(\"topk() expects the input to be of rank 1 or higher\");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ka,s,i);return{values:a,indices:u}}var sy=T({topk_:e6});function r6(r,t=0,e=1,n,o){if(Pe(r),n!=null&&n===\"bool\")throw new Error(\"Unsupported data type $ { dtype }\");let s=new ec(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>\"The input tensor must be at least 1D\");let n={x:e},o={axis:t},[s,i]=k.runKernel(zp,n,o);return{values:s,indices:i}}var iy=T({unique_:n6});function o6(r,t,e){let n=v(r,\"x\",\"unsortedSegmentSum\"),o=v(t,\"segmentIds\",\"unsortedSegmentSum\",\"int32\");_(la(e),()=>\"numSegments must be of dtype int\");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(ql,s,i)}var Cm=T({unsortedSegmentSum_:o6});function s6(r,t=0){let e=v(r,\"x\",\"unstack\",\"string_or_numeric\");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(Ii,n,o)}var dr=T({unstack_:s6});function L_(r,t){return fh(r,t,\"right\")}function ay(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ly(r,t){let e=[];for(let s=0;s0,()=>\"mask cannot be scalar\"),De(a.slice(s,s+i),o.shape,\"mask's shape must match the first K dimensions of tensor's shape,\");let u=1;for(let h=s;h\"Shape mismatch in v and x\");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){_(n!=null,()=>\"When using zeroDebias: true, step is required.\");let p=v(n,\"step\",\"movingAverage\");c=pt(c,ct(u,ln(a,p)))}return X(s,c)}var c6=T({movingAverage_:u6});function p6(r,t,e){Pe(e);let n=v(r,\"indices\",\"scatterND\",\"int32\"),o=v(t,\"updates\",\"scatterND\");ix(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(Ba,s,i)}var m6=T({scatterND_:p6});function M_(r,t,e,n){if(r.dtype!==\"int32\")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error(\"sparseValues.dtype must match defaultValues.dtype\")}function d6(r,t,e,n=0){Pe(e);let o=v(r,\"sparseIndices\",\"sparseToDense\",\"int32\"),s=v(t,\"sparseValues\",\"sparseToDense\",\"string_or_numeric\"),i=v(n,\"defaultValue\",\"sparseToDense\",s.dtype);M_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Mp,a,u)}var h6=T({sparseToDense_:d6});function g6(r,t){let e=v(t,\"indices\",\"gatherND\",\"int32\"),o={params:v(r,\"x\",\"gatherND\",\"string_or_numeric\"),indices:e};return k.runKernel(Na,o)}var x6=T({gatherND_:g6});function z_(r,t){if(t==null)return r.shape.slice();if(On(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=z_(o,e),i=1-t,a=pt(zi(X(Gi(s,0,1,\"float32\",n),i)),i);return D(o,a)}var p0=T({dropout_:y6});function m0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function gh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),De(n.shape.slice(0,n.shape.length-1),o.shape,\"predictions's shape should be align with the targets' shape, except the last dimension.\");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=oS(\"bool\",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hB_,depthwiseConv2d:()=>V_,matMul:()=>G_});function C6(r,t,e,n,o,s=\"NHWC\",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s===\"NHWC\"?a.shape[3]:a.shape[1],c=s===\"NHWC\"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie(\"conv2dDerFilter\",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(fp,p,m)}var Im=T({conv2DBackpropFilter_:C6});function oc(r,t,e){if(e==null||e===\"linear\")return r;if(e===\"relu\")return D(r,Co(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function sc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function ic(r,t,e,n){if(t===\"linear\")return r;if(t===\"relu\")return Pr(r);if(t===\"elu\")return Mi(r);if(t===\"relu6\")return um(r);if(t===\"prelu\")return au(r,e);if(t===\"leakyrelu\")return ru(r,n);if(t===\"sigmoid\")return Jr(r);throw new Error(`Unknown fused activation ${t}.`)}var ac=(r,t)=>!(r>0)||t===\"linear\";function I6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||\"linear\",ac(k.state.gradientDepth,u)===!1){_(o===\"NHWC\",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Sn(r,t,e,n,o,s,i);return a!=null&&(E=X(E,a)),ic(E,u,l,c)}let p=v(r,\"x\",\"conv2d\",\"float32\"),m=v(t,\"filter\",\"conv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie(\"fused conv2d\",n,i);let h=o===\"NHWC\"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=Yu(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,\"bias\",\"fused conv2d\"),[x]=Ut(x,p),o===\"NHWC\"?Pt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Pt(E,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=v(l,\"prelu weights\",\"fused conv2d\")}let w=(E,A)=>{_(o===\"NHWC\",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=oc(E,P,u);_(no(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=em(F.shape,G,$,e,n),q=Im(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=sc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?cn((A,$,F)=>{let P=k.runKernel(Ni,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):cn((A,$,F,P)=>{let V=k.runKernel(Ni,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var B_=T({fusedConv2d_:I6});function v6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(xp,l,c)}var cy=T({depthwiseConv2dNativeBackpropFilter_:v6});function S6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(yp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var py=T({depthwiseConv2dNativeBackpropInput_:S6});function N6({x:r,filter:t,strides:e,pad:n,dataFormat:o=\"NHWC\",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u=\"linear\",preluActivationWeights:l,leakyreluAlpha:c}){if(ac(k.state.gradientDepth,u)===!1){let N=Li(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),ic(N,u,l,c)}let p=v(r,\"x\",\"depthwiseConv2d\",\"float32\"),m=v(t,\"filter\",\"depthwiseConv2d\",\"float32\"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie(\"fused depthwiseConv2d\",n,i);let h=Yu(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,\"bias\",\"fused conv2d\"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=v(l,\"prelu weights\",\"fused depthwiseConv2d\"));let b=(N,E)=>{_(no(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=E,V=oc(N,F,u),G=py($.shape,V,A,e,n,s,i),W=cy($,V,A.shape,e,n,s,i);if(P!=null){let q=sc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?cn((E,A,$)=>{let F=k.runKernel(Ti,w,C);return $([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):cn((E,A,$,F)=>{let P=k.runKernel(Ti,w,C);return F([A,E,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var V_=T({fusedDepthwiseConv2d_:N6});function T6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s=\"linear\",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(ac(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),ic(V,s,i,a)}let u=v(r,\"a\",\"fused matMul\"),l=v(t,\"b\",\"fused matMul\");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=v(o,\"bias\",\"fused matMul\"),[E]=Ut(E,u),Pt(w,E.shape));let A;i!=null&&(A=v(i,\"prelu weights\",\"fused matMul\"));let $=(V,G)=>{let[W,q,H,j]=G,Y=oc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=sc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?cn((G,W,q)=>{let H=k.runKernel(Si,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):cn((G,W,q,H)=>{let j=k.runKernel(Si,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,E)}var G_=T({fusedMatMul_:T6});function k6(r){return gh(r,.54,.46)}var W_=T({hammingWindow_:k6});function E6(r){return gh(r,.5,.5)}var my=T({hannWindow_:E6});function _6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o===\"bilinear\"||o===\"nearest\",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(ba,c,p)}var H_=T({cropAndResize_:$6});function D6(r){let t=v(r,\"image\",\"flipLeftRight\",\"float32\");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(Sa,e,{})}var q_=T({flipLeftRight_:D6});function R6(r){let t=v(r,\"image\",\"grayscaleToRGB\"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Fr(t,o)}var K_=T({grayscaleToRGB_:R6});function F6(r,t,e=0,n=.5){let o=v(r,\"image\",\"rotateWithOffset\",\"float32\");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(Xa,s,i)}var j_=T({rotateWithOffset_:F6});function Io(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),_(t.rank===1,()=>\"scores must be a 1D tensor\"),_(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),_(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function O6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppression\",\"float32\"),i=v(t,\"scores\",\"nonMaxSuppression\",\"float32\"),a=Io(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(La,{boxes:s,scores:i},u)}var X_=T({nonMaxSuppression_:O6});function Y_(r,t,e){let n=P6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function P6(r,t,e){return M6(r,t,e||L6)}function L6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function dy(r,t,e,n,o){return f0(r,t,e,n,o,0)}function hy(r,t,e,n,o,s){return f0(r,t,e,n,o,0,!1,s,!0)}function gy(r,t,e,n,o,s){return f0(r,t,e,n,o,s,!0)}function f0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(Z_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=z6(r,b,p[N]);if(E>=n){C=!0;break}if(g.score=g.score*B6(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&Y_(l,g,Z_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function z6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function B6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function Z_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function V6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),i=v(t,\"scores\",\"nonMaxSuppressionAsync\"),a=Io(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=dy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,\"int32\")}var J_=V6;function G6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=Io(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(za,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Q_=T({nonMaxSuppressionWithScore_:G6});async function W6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=Io(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=gy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,\"int32\"),selectedScores:Ke(f)}}var tA=W6;function U6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppression\"),a=v(t,\"scores\",\"nonMaxSuppression\"),u=Io(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Ma,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var eA=T({nonMaxSuppressionPadded_:U6});async function H6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,\"boxes\",\"nonMaxSuppressionAsync\"),a=v(t,\"scores\",\"nonMaxSuppressionAsync\"),u=Io(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=hy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,\"int32\"),validOutputs:mt(h,\"int32\")}}var rA=H6;function q6(r,t,e=!1,n=!1){let o=v(r,\"images\",\"resizeBilinear\");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>\"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ts,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeBilinear_:q6});function K6(r,t,e=!1,n=!1){let o=v(r,\"images\",\"resizeNearestNeighbor\");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype===\"float32\"||o.dtype===\"int32\",()=>\"`images` must have `int32` or `float32` as dtype\"),_(n===!1||e===!1,()=>\"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.\");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ns,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var yy=T({resizeNearestNeighbor_:K6});function j6(r,t=\"binary\",e=!1,n=.5){let o=v(r,\"image\",\"threshold\"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Ke([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype===\"int32\"||o.dtype===\"float32\",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t===\"otsu\"||t===\"binary\",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=fr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t===\"otsu\"){let g=Cx(J(cm(f),\"int32\"),nr([]),256);l=X6(g,u)}let d=e?zn(f,l):Re(f,l);return J(D(d,255),\"int32\")}function X6(r,t){let e=Ke([-1]),n=Ke([0]),o=Ke([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>\"Error in transform: Input transform should be batch x 8 or 1 x 8\"),_(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(ja,u,l)}var oA=T({transform_:Y6});function Z6(r,t,e){_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=v(r,\"a\",\"bandPart\");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(Wi(0,s,1,\"int32\"),[-1,1]),u=Wi(0,i,1,\"int32\"),l=ct(a,u),c=Or(zn(l,mt(+t,\"int32\")),un(l,mt(-e,\"int32\"))),p=Ne([s,i],n.dtype);return R(qe(dr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var sA=T({bandPart_:Z6});function J6(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>\"Gram-Schmidt process: input must not be null, undefined, or empty\");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=fr(r,r.shape[0],0).map(o=>Bn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return aA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=dr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=aA(u,t);o.push(l),s.push(c)});let i=R(qe(o,0),r.shape),a=R(qe(s,0),r.shape);return[i,a]}}function aA(r,t=!1){return k.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Ju(e),s=an(r),i=Us([[1]],[1,1]),a=an(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=rl(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Us([[-1]]),Us([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=an(i):a=oe([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),E=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(E,C)));else{let F=ct(C,Lt(N,Lt(E,C)));s=oe([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=oe([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Nt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var lA=T({qr_:Q6});var Ze;(function(r){r[r.NONE=0]=\"NONE\",r[r.MEAN=1]=\"MEAN\",r[r.SUM=2]=\"SUM\",r[r.SUM_BY_NONZERO_WEIGHTS=3]=\"SUM_BY_NONZERO_WEIGHTS\"})(Ze||(Ze={}));function tX(r,t,e=Ze.SUM_BY_NONZERO_WEIGHTS){let n=v(r,\"losses\",\"computeWeightedLoss\"),o=null;t!=null&&(o=v(t,\"weights\",\"computeWeightedLoss\"));let s=o==null?n:D(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return ft(s);if(e===Ze.MEAN){if(o==null)return Se(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,pr(n.shape)),a=J(ft(Ws(i,mt(0))),\"float32\");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Ur=T({computeWeightedLoss_:tX});function eX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"absoluteDifference\"),s=v(t,\"predictions\",\"absoluteDifference\"),i=null;e!=null&&(i=v(e,\"weights\",\"absoluteDifference\")),De(o.shape,s.shape,\"Error in absoluteDifference: \");let a=Ee(ct(o,s));return Ur(a,i,n)}var uA=T({absoluteDifference_:eX});function rX(r,t,e,n,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"cosineDistance\"),i=v(t,\"predictions\",\"cosineDistance\"),a=null;n!=null&&(a=v(n,\"weights\",\"cosineDistance\")),De(s.shape,i.shape,\"Error in cosineDistance: \");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Ur(l,a,o)}var cA=T({cosineDistance_:rX});function nX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"hingeLoss\"),s=v(t,\"predictions\",\"hingeLoss\"),i=null;e!=null&&(i=v(e,\"weights\",\"hingeLoss\")),De(o.shape,s.shape,\"Error in hingeLoss: \");let a=mt(1);o=ct(D(mt(2),o),a);let u=Pr(ct(a,D(o,s)));return Ur(u,i,n)}var pA=T({hingeLoss_:nX});function oX(r,t,e,n=1,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"huberLoss\"),i=v(t,\"predictions\",\"huberLoss\"),a=null;e!=null&&(a=v(e,\"weights\",\"huberLoss\")),De(s.shape,i.shape,\"Error in huberLoss: \");let u=mt(n),l=Ee(ct(i,s)),c=Vi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Ur(m,a,o)}var mA=T({huberLoss_:oX});function sX(r,t,e,n=1e-7,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"labels\",\"logLoss\"),i=v(t,\"predictions\",\"logLoss\"),a=null;e!=null&&(a=v(e,\"weights\",\"logLoss\")),De(s.shape,i.shape,\"Error in logLoss: \");let u=mt(1),l=mt(n),c=Ht(D(s,Nr(X(i,l)))),p=D(ct(u,s),Nr(X(ct(u,i),l))),m=ct(c,p);return Ur(m,a,o)}var fA=T({logLoss_:sX});function iX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,\"labels\",\"meanSquaredError\"),s=v(t,\"predictions\",\"meanSquaredError\"),i=null;e!=null&&(i=v(e,\"weights\",\"meanSquaredError\")),De(o.shape,s.shape,\"Error in meanSquaredError: \");let a=bm(o,s);return Ur(a,i,n)}var dA=T({meanSquaredError_:iX});function aX(r,t){let e=v(r,\"labels\",\"sigmoidCrossEntropyWithLogits\"),n=v(t,\"logits\",\"sigmoidCrossEntropyWithLogits\");De(e.shape,n.shape,\"Error in sigmoidCrossEntropyWithLogits: \");let o=Pr(n),s=D(n,e),i=nu(or(Ht(Ee(n))));return X(ct(o,s),i)}function lX(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"multiClassLabels\",\"sigmoidCrossEntropy\"),i=v(t,\"logits\",\"sigmoidCrossEntropy\"),a=null;if(e!=null&&(a=v(e,\"weights\",\"sigmoidCrossEntropy\")),De(s.shape,i.shape,\"Error in sigmoidCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=aX(s,i);return Ur(u,a,o)}var hA=T({sigmoidCrossEntropy_:lX});function uX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${e}`);return cn((o,s,i)=>{let u=am(s,[e],!0),l=ct(J(s,\"float32\"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=wo(f.shape,[e]);return[D(R(f,x),ct(J(h,\"float32\"),or(g))),D(R(f,x),ct(or(g),J(h,\"float32\")))]}}})(r,t)}function cX(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,\"onehotLabels\",\"softmaxCrossEntropy\"),i=v(t,\"logits\",\"softmaxCrossEntropy\"),a=null;if(e!=null&&(a=v(e,\"weights\",\"softmaxCrossEntropy\")),De(s.shape,i.shape,\"Error in softmaxCrossEntropy: \"),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=uX(s,i);return Ur(u,a,o)}var gA=T({softmaxCrossEntropy_:cX});function pX(r,t,e,n){let o=v(r,\"indices\",\"sparseFillEmptyRows\",\"int32\"),s=v(t,\"values\",\"sparseFillEmptyRows\"),i=v(e,\"denseShape\",\"sparseFillEmptyRows\",\"int32\"),a=v(n,\"defaultValue\",\"sparseFillEmptyRows\",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(zl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var xA=T({sparseFillEmptyRows_:pX});function mX(r,t,e){let n=v(r,\"inputIndices\",\"sparseReshape\",\"int32\"),o=v(t,\"inputShape\",\"sparseReshape\",\"int32\"),s=v(e,\"newShape\",\"sparseReshape\",\"int32\");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape\n ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ha,i);return{outputIndices:a[0],outputShape:a[1]}}var yA=T({sparseReshape_:mX});function fX(r,t,e){let n=v(r,\"data\",\"sparseSegmentMean\"),o=v(t,\"indices\",\"sparseSegmentMean\",\"int32\"),s=v(e,\"segmentIds\",\"sparseSegmentMean\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Bl,i)}var bA=T({sparseSegmentMean_:fX});function dX(r,t,e){let n=v(r,\"data\",\"sparseSegmentSum\"),o=v(t,\"indices\",\"sparseSegmentSum\",\"int32\"),s=v(e,\"segmentIds\",\"sparseSegmentSum\",\"int32\");if(n.rank<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape\n ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape\n ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Vl,i)}var wA=T({sparseSegmentSum_:dX});function hX(r,t,e,n,o,s,i,a){let u=v(r,\"data\",\"stringNGrams\",\"string\");if(u.dtype!==\"string\")throw new Error(\"Data must be of datatype string\");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=v(t,\"dataSplits\",\"stringNGrams\");if(l.dtype!==\"int32\")throw new Error(\"Data splits must be of datatype int32\");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Wl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var CA=T({stringNGrams_:hX});function gX(r,t,e=!0){let n=v(r,\"input\",\"stringSplit\",\"string\"),o=v(t,\"delimiter\",\"stringSplit\",\"string\");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Ul,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var IA=T({stringSplit_:gX});function xX(r,t){let e=v(r,\"input\",\"stringToHashBucketFast\",\"string\"),n={numBuckets:t};if(t<=0)throw new Error(\"Number of buckets must be at least 1\");let o={input:e};return k.runKernel(Hl,o,n)}var vA=T({stringToHashBucketFast_:xX});var yX={fft:uu,ifft:nl,rfft:cu,irfft:ym},bX={hammingWindow:W_,hannWindow:my,frame:fy,stft:U_},so={flipLeftRight:q_,grayscaleToRGB:K_,resizeNearestNeighbor:yy,resizeBilinear:xy,rotateWithOffset:j_,cropAndResize:H_,nonMaxSuppression:X_,nonMaxSuppressionAsync:J_,nonMaxSuppressionWithScore:Q_,nonMaxSuppressionWithScoreAsync:tA,nonMaxSuppressionPadded:eA,nonMaxSuppressionPaddedAsync:rA,threshold:nA,transform:oA},d0={bandPart:sA,gramSchmidt:iA,qr:lA},wX={absoluteDifference:uA,computeWeightedLoss:Ur,cosineDistance:cA,hingeLoss:pA,huberLoss:mA,logLoss:fA,meanSquaredError:dA,sigmoidCrossEntropy:hA,softmaxCrossEntropy:gA},CX={sparseFillEmptyRows:xA,sparseReshape:yA,sparseSegmentMean:bA,sparseSegmentSum:wA},IX={stringNGrams:CA,stringSplit:IA,stringToHashBucketFast:vA};var Hr=class extends ch{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Nt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Vx(t,e)}dispose(){this.iterations_!=null&&Nt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:\"iter\",tensor:mt(this.iterations_,\"int32\")}}async getWeights(){throw new Error(\"getWeights() is not implemented for this optimizer yet.\")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Hr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var mu=class extends Hr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(ve(X(l,this.epsilon)),ve(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Nt(this.accumulatedGrads.map(t=>t.variable)),Nt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};mu.className=\"Adadelta\";vn(mu);var fu=class extends Hr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>bo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,ve(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Nt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};fu.className=\"Adagrad\";vn(fu);var du=class extends Hr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(ve(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Nt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Nt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(ln(this.beta1,this.iterations_+1)),this.accBeta2.assign(ln(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};du.className=\"Adam\";vn(du);var hu=class extends Hr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Nn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Nt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Nt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error(\"getWeights() is not implemented for Adamax yet.\")}async setWeights(t){throw new Error(\"setWeights() is not implemented for Adamax yet.\")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};hu.className=\"Adamax\";vn(hu);var Ui=class extends Hr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=Ae(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error(\"SGD optimizer does not have settable weights.\")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Ui.className=\"SGD\";vn(Ui);var gu=class extends Ui{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Nt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};gu.className=\"Momentum\";vn(gu);var xu=class extends Hr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error(\"learningRate for RMSPropOptimizer must be defined.\")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),ve(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),ve(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Nt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Nt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Nt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};xu.className=\"RMSProp\";vn(xu);var Hs=class{static sgd(t){return new Ui(t)}static momentum(t,e,n=!1){return new gu(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new xu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new du(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new mu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new hu(t,e,n,o,s)}static adagrad(t,e=.1){return new fu(t,e)}};var lc={sgd:Hs.sgd,momentum:Hs.momentum,adadelta:Hs.adadelta,adagrad:Hs.adagrad,rmsprop:Hs.rmsprop,adamax:Hs.adamax,adam:Hs.adam};var vX=(()=>typeof requestAnimationFrame!=\"undefined\"?requestAnimationFrame:typeof setImmediate!=\"undefined\"?setImmediate:r=>r())();function xh(){return new Promise(r=>vX(()=>r()))}var S={};Wt(S,{ERF_A1:()=>MX,ERF_A2:()=>zX,ERF_A3:()=>BX,ERF_A4:()=>VX,ERF_A5:()=>GX,ERF_P:()=>LX,PARALLELIZE_THRESHOLD:()=>by,RowPartitionType:()=>Hi,SELU_SCALE:()=>g0,SELU_SCALEALPHA:()=>h0,applyActivation:()=>ic,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Yq,assertParamsConsistent:()=>SX,assignToTypedArray:()=>jX,axesAreInnerMostDims:()=>e0,calculateShapes:()=>NE,checkEinsumDimSizes:()=>t5,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>jE,combineRaggedTensorToTensorShapes:()=>TX,complexWithEvenIndex:()=>HX,complexWithOddIndex:()=>qX,computeConv2DInfo:()=>Yu,computeConv3DInfo:()=>VE,computeDefaultPad:()=>t0,computeDilation2DInfo:()=>JH,computeOptimalWindowSize:()=>AX,computeOutAndReduceShapes:()=>r0,computeOutShape:()=>NX,computePool2DInfo:()=>QS,computePool3DInfo:()=>QH,convertConv2DDataFormat:()=>GE,decodeEinsumEquation:()=>JX,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>wo,exponent:()=>YX,exponents:()=>XX,fromStringArrayToUint8:()=>C5,fromUint8ToStringArray:()=>w5,getAxesPermutation:()=>n0,getBroadcastDims:()=>IE,getComplexWithIndex:()=>KX,getEinsumComputePath:()=>e5,getEinsumPermutation:()=>QX,getFusedBiasGradient:()=>sc,getFusedDyActivation:()=>oc,getImageCenter:()=>$X,getInnerMostAxes:()=>Zq,getPermuted:()=>RX,getRaggedRank:()=>EX,getReductionAxes:()=>ge,getReshaped:()=>DX,getReshapedPermuted:()=>FX,getRowPartitionTypesHelper:()=>kX,getSliceBeginCoords:()=>OX,getSliceSize:()=>PX,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>s5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>i5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>a5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>c5,getSparseReshapeInputOutputMismatchErrorMessage:()=>m5,getSparseReshapeInputOutputMultipleErrorMessage:()=>p5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>l5,getSparseReshapeNegativeOutputDimErrorMessage:()=>u5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>g5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>f5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>d5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>h5,getUndoAxesPermutation:()=>mh,isIdentityPermutation:()=>r5,log:()=>u4,mergeRealAndImagArrays:()=>WX,prepareAndValidate:()=>SE,prepareSplitSize:()=>o5,segment_util:()=>y0,shouldFuse:()=>ac,slice_util:()=>Me,splitRealAndImagArrays:()=>UX,tupleValuesAreOne:()=>no,upcastType:()=>ar,validateDefaultValueShape:()=>_X,validateInput:()=>ix,validateUpdateShape:()=>KS,warn:()=>ki});function SX(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function NX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function kX(r){let t={FIRST_DIM_SIZE:Hi.FIRST_DIM_SIZE,VALUE_ROWIDS:Hi.VALUE_ROWIDS,ROW_LENGTHS:Hi.ROW_LENGTHS,ROW_SPLITS:Hi.ROW_SPLITS,ROW_LIMITS:Hi.ROW_LIMITS,ROW_STARTS:Hi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function EX(r){return r.length===0?0:r[0]===Hi.FIRST_DIM_SIZE?r.length-1:r.length}function _X(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var by=30;function AX(r){return r<=by?r:ip(r,Math.floor(Math.sqrt(r)))}function $X(r,t,e){let n=e*(typeof r==\"number\"?r:r[0]),o=t*(typeof r==\"number\"?r:r[1]);return[n,o]}function DX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function FX(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s\",ZX=/->/g,SA=\",\",NA=\"...\";function JX(r,t){r=r.replace(/\\s/g,\"\");let e=(r.length-r.replace(ZX,\"\").length)/x0.length;if(e<1)throw new Error(\"Equations without an arrow are not supported.\");if(e>1)throw new Error(`Equation must contain exactly one arrow (\"${x0}\").`);let[n,o]=r.split(x0);_(n.indexOf(NA)===-1,()=>`The ellipsis notation (\"${NA}\") is not supported yet.`);let s=n.split(SA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error(\"Support for more than 2 input tensors is not implemented yet.\");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function t5(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function e5(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function n5(r,t){let e=[];for(let n=0;n\"Number of splits must evenly divide the axis.\"),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>\"There should be only one negative value in split array.\");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>\"The sum of sizes must match the size of the axis dimension.\"),n=t}return n}function s5(r){return`Received SparseTensor with denseShape[0] = 0 but\n indices.shape[0] = ${r}`}function i5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function a5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function l5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function u5(r,t){return`size ${r} must be non-negative, not ${t}`}function c5(){return\"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero\"}function p5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e}\n dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function m5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function f5(){return\"segment ids must be >= 0\"}function d5(){return\"segment ids are not increasing\"}function h5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function g5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var y0={};Wt(y0,{collectGatherOpShapeInfo:()=>b5,computeOutShape:()=>y5,segOpComputeOptimalWindowSize:()=>x5});function x5(r,t){let e=!1,n;for(r<=by?(n=r,e=!0):n=ip(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=ip(r,n+1);return n}function y5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) (\n ${s}).`);if(eUp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function C5(r){return r.map(t=>jl(t))}var qr={};Wt(qr,{nonMaxSuppressionV3Impl:()=>dy,nonMaxSuppressionV4Impl:()=>hy,nonMaxSuppressionV5Impl:()=>gy,whereImpl:()=>ly});var wy={kernelName:ui,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Co(J(e,\"float32\"),-1))}}};var TA={kernelName:ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,\"float32\")),o=ve(ct(mt(1),n));return Ht(pt(r,o))}}}};var kA={kernelName:ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(ct(Mt(J(e,\"float32\")),1));return pt(r,n)}}}};var EA={kernelName:Qn,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var _A={kernelName:Wo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var AA={kernelName:Uo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var $A={kernelName:Al,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var DA={kernelName:fa,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ve(ct(mt(1),Mt(J(e,\"float32\")))))}}};var RA={kernelName:da,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(X(mt(1),Mt(J(e,\"float32\"))));return pt(r,n)}}}};var FA={kernelName:xa,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var OA={kernelName:ha,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,\"float32\")),1))}}};var PA={kernelName:ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,\"float32\"))))}}};function I5(r,t,e,n,o,s){let i=v(r,\"dy\",\"avgPool3dGrad\"),a=v(t,\"input\",\"avgPool3dGrad\"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie(\"avgPool3dGrad\",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(up,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var LA=T({avgPool3dGrad_:I5});var MA={kernelName:$l,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>LA(r,n,o,s,i,a)}}};function v5(r,t,e,n,o){let s=v(r,\"dy\",\"avgPoolGrad\"),i=v(t,\"input\",\"avgPoolGrad\");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(lp,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var zA=T({avgPoolGrad_:v5});var BA={kernelName:Ho,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>zA(r,n,o,s,i)}}};var VA={kernelName:qo,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var GA={kernelName:ci,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>iu(r,n,o)}}};var WA={kernelName:d1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var UA={kernelName:co,gradFunc:r=>({x:()=>r.clone()})};var HA={kernelName:Ko,gradFunc:r=>({x:()=>It(r)})};var qA={kernelName:po,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Or(un(n,o),zn(n,s)),r,It(r))}}};var KA={kernelName:Dl,inputsToSave:[\"x\"],gradFunc:wy.gradFunc};var jA={kernelName:pi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=cr(o,t[0].shape)[0],i=n.map(u=>u[s]);return fr(r,i,s).map(u=>()=>u)}};var XA={kernelName:jo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(no(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>em(n.shape,r,o,i,a,u),filter:()=>Im(n,r,o.shape,i,a,u)}}};var YA={kernelName:Xo,inputsToSave:[\"dy\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Sn(r,o,s,i,a,1,u),filter:()=>Im(r,n,o.shape,s,i,a,u)}}};function S5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),_(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),_(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(dp,a,u)}var ZA=T({conv3DBackpropFilter_:S5});var JA={kernelName:Rl,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(no(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>Ex(i.shape,r,a,o,s),filter:()=>ZA(i,r,a.shape,o,s)}}};var QA={kernelName:Yo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(dm(J(e,\"float32\"))),r)}}};var t2={kernelName:Zo,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(hm(J(e,\"float32\")),r)}}};var e2={kernelName:Jo,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=n0([o],n.rank),u=om(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var r2={kernelName:Qo,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(no(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie(\"depthwiseConv2d\",s,i),{x:()=>py(u.shape,r,l,o,s,a,i),filter:()=>cy(u,r,l.shape,o,s,a,i)}}};var n2={kernelName:Fl,inputsToSave:[\"x\",\"filter\"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(Xd,s,e),filter:()=>k.runKernel(Yd,i,e)}}};var o2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(Cp,n)}}};var s2={kernelName:Ca,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(or(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var i2={kernelName:rs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var a2={kernelName:mi,inputsToSave:[\"input\"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var l2={kernelName:va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,or(e))}}};var u2={kernelName:ns,gradFunc:r=>({x:()=>It(r)})};var c2={kernelName:os,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var p2={kernelName:ss,inputsToSave:[\"x\",\"mean\",\"variance\",\"scale\"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Fr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var d2={kernelName:fi,inputsToSave:[\"x\",\"indices\"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=cr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=m2(0,p),h=m2(p+1,p+1+f),g=f2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=f2([[p],d,h]),C=Ot(x,w),N=Cm(C,b,n.shape[i]),E=mh(w);return N=Ot(N,E),N},indices:()=>o}}};function m2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var g2={kernelName:mo,gradFunc:r=>({x:()=>J(r,\"float32\")})};var x2={kernelName:ka,gradFunc:r=>({x:()=>It(r)})};var y2={kernelName:Ea,gradFunc:r=>({x:()=>It(r)})};var b2={kernelName:as,gradFunc:r=>({x:()=>It(r)})};var w2={kernelName:ls,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var C2={kernelName:$a,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var I2={kernelName:us,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,\"float32\"))}}};var v2={kernelName:g1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=or(n);return ct(r,D(ft(r,o,!0),i))}}}};function N5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Tp,a,u)}var S2=T({localResponseNormalizationBackprop_:N5});var N2={kernelName:Pl,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>S2(n,o,r,s,i,a,u)}}};function Cy(r,t,e,n){return t.rankD(r,J(Rr(e,t),r.dtype))}}var b0={kernelName:cs,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=cr(o,s.shape),u=Cy(r,i,s,a);return{x:()=>u.x()}}};var T2={kernelName:ps,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(un(e,n),\"float32\")),b:()=>D(r,J(sm(e,n),\"float32\"))}}};function T5(r,t,e,n,o,s,i){let a=v(r,\"dy\",\"maxPool3dGrad\"),u=v(t,\"input\",\"maxPool3dGrad\"),l=v(e,\"output\",\"maxPool3dGrad\"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),_(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),_(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie(\"maxPool3dGrad\",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(Ep,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var k2=T({maxPool3dGrad_:T5});var E2={kernelName:Ll,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>k2(r,n,o,s,i,a,u)}}};function k5(r,t,e,n,o,s,i){let a=v(r,\"dy\",\"maxPoolGrad\"),u=v(t,\"input\",\"maxPoolGrad\"),l=v(e,\"output\",\"maxPoolGrad\");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie(\"maxPoolGrad\",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(kp,c,p)}var _2=T({maxPoolGrad_:k5});var A2={kernelName:ms,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>_2(r,n,o,s,i,a)}}};var $2={kernelName:fs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=cr(o,n.shape),a=r0(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,pr(n.shape,\"float32\")),u)}}}};var D2={kernelName:ds,inputsToSave:[\"x\"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=cr(o,s.shape),u=Cy(r,i,s,a);return{x:()=>u.x()}}};var R2={kernelName:hs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(zn(e,n),\"float32\")),b:()=>D(r,J(Re(e,n),\"float32\"))}}};var F2={kernelName:gs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var O2={kernelName:Oa,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(zi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var P2={kernelName:xs,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var L2={kernelName:di,gradFunc:r=>({x:()=>Ht(r)})};var M2={kernelName:ys,inputsToSave:[\"indices\"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,\"float32\")}}};var z2={kernelName:hi,gradFunc:r=>({x:()=>It(r)})};var B2={kernelName:gi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return dr(r,n).map(s=>()=>s)}};var w0={kernelName:bs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var V2={kernelName:ws,inputsToSave:[\"a\",\"b\"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,\"float32\"),p=D(r,D(c,ln(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Nr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var G2={kernelName:Cs,inputsToSave:[\"x\",\"alpha\"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function E5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Zu(r,e,!0,!1),i=Zu(r,e,!0,!0),a=D(s,i);return D(o,a)}function _5(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=E5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var W2={kernelName:Is,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o==\"number\"?s=[o]:s=o,{x:()=>_5(n,r,s)}}};var U2={kernelName:ts,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,\"float32\")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,\"float32\")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,\"float32\")))}}}};var H2={kernelName:vs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var q2={kernelName:ks,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t,n=D(zn(e,6),Co(e));return{x:()=>D(r,J(n,\"float32\"))}}};var K2={kernelName:Ss,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(Co(e),\"float32\"))}}};var j2={kernelName:xi,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var X2={kernelName:Ts,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Pp,o,e)}}};var Y2={kernelName:Ns,inputsToSave:[\"images\"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var Z2={kernelName:Es,gradFunc:(r,t,e)=>{let{dims:n}=e,o=cr(n,r.shape);return{x:()=>mr(r,o)}}};var J2={kernelName:_s,gradFunc:r=>({x:()=>It(r)})};var Q2={kernelName:As,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(ln(e,1.5),2)))}}};var t$={kernelName:yi,inputsToSave:[\"condition\"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),\"float32\"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(ou(e),r.dtype))}}};var e$={kernelName:Va,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(h0),s=mt(g0),i=D(r,s),a=D(D(r,o),or(J(e,\"float32\")));return _e(n,i,a)}}}};var r$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var n$={kernelName:Wa,gradFunc:r=>({x:()=>It(r)})};var o$={kernelName:$s,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(eu(J(e,\"float32\")),r)}}};var s$={kernelName:Ga,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(nm(J(e,\"float32\")),r)}}};var i$={kernelName:bi,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=XS(n,o,s),l=[];for(let c=0;cpn(r,l)}}};var a$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var l$={kernelName:Ua,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Jr(e))}}};var C0={kernelName:wi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>tu(r,n,o)}}};var I0={kernelName:Ci,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>oe(r,n)}}};var u$={kernelName:Rs,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(ve(J(e,\"float32\")),2))}}};var c$={kernelName:Gl,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,\"float32\"),2))}}};var p$={kernelName:Ps,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var m$={kernelName:fo,gradFunc:r=>({x:()=>It(r)})};var f$={kernelName:Ls,inputsToSave:[\"a\",\"b\"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var d$={kernelName:Fs,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;cr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,pr(n.shape,\"float32\"));return{x:()=>u}}};var h$={kernelName:Ms,inputsToSave:[\"x\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(eu(e)))}}};var g$={kernelName:zs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var x$={kernelName:to,inputsToSave:[\"x\"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=mh(o);return{x:()=>Ot(r,s)}}};var b$={kernelName:Ii,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var w$={kernelName:ql,inputsToSave:[\"segmentIds\"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>A5(r,e)}}};function A5(r,t){let e=Nn(t,It(t)),n=Bi(r,e),o=un(t,mt(0,\"int32\")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var $5=[wy,TA,kA,EA,_A,AA,$A,DA,RA,FA,OA,PA,MA,BA,VA,GA,WA,UA,HA,qA,KA,jA,YA,XA,JA,QA,t2,e2,r2,n2,U2,o2,s2,i2,a2,l2,c2,u2,p2,d2,h2,g2,x2,y2,b2,w2,C2,I2,v2,N2,b0,b0,T2,E2,A2,$2,D2,R2,F2,O2,P2,L2,M2,z2,B2,w0,w0,V2,G2,W2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,i$,a$,l$,C0,C0,I0,I0,u$,p$,c$,m$,f$,d$,h$,g$,x$,y$,b$,w$,C$];for(let r of $5)y1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),lx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),ux(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Jp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),ju(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),cx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>\"The array must have only 1 element.\"),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),px(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),fx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),dx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),hx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Ql(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),tu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Oi(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Pi(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Ix(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),oe([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),tm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),rm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Sn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),eu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),nm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Zu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),om(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Ax(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Li(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),$x(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Rx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Mi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Fx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Ox(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),or(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),sr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Px(this)};O().prototype.fft=function(){return this.throwIfDisposed(),uu(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),zi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Zp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Bi(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),un(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),nl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),ym(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),zx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),ru(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),zn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Bx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),am(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),nu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),ou(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Ux(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),su(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Nn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Se(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),el(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Vi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Kx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),jx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),rl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Ws(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),$i(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),pn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Xx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),au(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ey(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Pr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),um(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),yy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),mr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),cu(this)};O().prototype.round=function(){return this.throwIfDisposed(),cm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),pm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),mm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),fm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Jr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ry(this)};O().prototype.sin=function(){return this.throwIfDisposed(),dm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),hm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),lu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),Gs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),iu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),fr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ve(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),bm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Bn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),Co(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ny(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),oy(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),Fi(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,\"bool\")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,\"float32\")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,\"int32\")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),sy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),iy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Cm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var Tn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Tn.prototype)}},Kr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Kr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},vt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vt.prototype)}},vm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vm.prototype)}};var yh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var vo={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function v0(r){if(!(r==null||typeof r!=\"object\"))if(Array.isArray(r))r.forEach(t=>v0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n==\"object\"&&(!Array.isArray(n)&&n.type===\"ndarray\"&&typeof n.value==\"number\"?r[e]=n.value:v0(n))}}}function qi(r,t={},e={},n=\"object\",o=!1){if(typeof r==\"string\"){let s=r,i;if(s in e)i=e[s];else if(s in vo)i=vo[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new z(`${n}: Improper config format: ${JSON.stringify(s)}.\n'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in vo?[a,u]=vo.className:i in t&&([a,u]=t[i]),a==null)throw new z(`Unknown ${n}: ${i}. This may be due to one of the following reasons:\n1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code.\n2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(vo))l[f]=vo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},vo);for(let f of Object.keys(e))vo[f]=e[f];v0(s.config);let m=u(a,s.config,e,o);return vo=Object.assign({},p),m}else{let l=Object.assign({},vo);for(let p of Object.keys(e))vo[p]=e[p];let c=new a(s.config);return vo=Object.assign({},l),c}}}function D5(r,t){return rt?1:0}function bh(r,t){return-1*D5(r,t)}function To(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function I$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Ki(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Iy(r,t,e=0,n=1/0){return io(e>=0),io(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Qe(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Qe(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${v$(r)}.`)}function v$(r){return r===null?\"null\":Array.isArray(r)?\"[\"+r.map(t=>v$(t)).join(\",\")+\"]\":typeof r==\"string\"?`\"${r}\"`:`${r}`}function S$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return Nm.set(e,1),e}else return r}var O5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\\._\\/]*$/);function D$(r){return!!r.match(O5)}function R$(r){return r===parseInt(r.toString(),10)}function ko(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function fn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=il(r,1);return _y(e,[1,t,1])})}function O$(r){let t=[ko(r.shape)];return R(r,t)}function P$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],ko(r.shape,1)];return R(r,t)}function sl(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[t,0],[e,r.shape[1]]);case 3:return xm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return nc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function k0(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[0,t],[r.shape[0],e]);case 3:return xm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return nc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Ch(r,t,e,n){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:switch(n){case 1:return sl(r,t,e);case 2:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return sl(r,t,e);case 2:return xm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return sl(r,t,e);case 2:return nc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return nc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Tm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),oe(r,t)}function _0(r,t){switch(r.rank){case 1:return vx([r,t]);case 2:return Sx([r,t],0);case 3:return Nx([r,t],0);case 4:return Tx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function _y(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Fr(r,t)}function km(r,t=0,e=1,n,o){return rc(r,t,e,n,o)}function Eo(r,t,e,n){if(r.rank<2||t.rank<2)throw new vt(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new vt(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return pu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?E0(r.rank,n,dn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(pu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?E0(r.rank,n,dn()):null,activation:e}),p)}}function Ay(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,\"int32\"):t=J(t,\"int32\"),Bi(r,t,e)))}function cc(r){return D(r,r)}function E0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e===\"channelsFirst\")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e===\"channelsLast\")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function hn(r,t,e){return B(()=>(e==null&&(e=dn()),Fe(e),X(r,E0(r.rank,t,e))))}function L$(r,t=1){if(t!==1)throw new vt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Mi(r)}function M$(r){return B(()=>pt(r,X(Ee(r),1)))}function $y(r,t,e,n){return B(()=>p0(r,t,e,n))}function z$(r){return B(()=>{let t=X(.5,D(.2,r));return vr(t,0,1)})}function bu(r,t,e=!1){return e?r():t()}var B$=[\"fanIn\",\"fanOut\",\"fanAvg\"],V$=[\"normal\",\"uniform\",\"truncatedNormal\"];function P5(r){Ki(B$,\"FanMode\",r)}function L5(r){Ki(V$,\"Distribution\",r)}var gn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Em=class extends gn{apply(t,e){return Ne(t,e)}};Em.className=\"Zeros\";Q.registerClass(Em);var wu=class extends gn{apply(t,e){return pr(t,e)}};wu.className=\"Ones\";Q.registerClass(wu);var _m=class extends gn{constructor(t){if(super(),typeof t!=\"object\")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),pr(t,e)))}getConfig(){return{value:this.value}}};_m.className=\"Constant\";Q.registerClass(_m);var Am=class extends gn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Am.className=\"RandomUniform\";Q.registerClass(Am);var $m=class extends gn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new vt(`randomNormal does not support dType ${e}.`);return km(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className=\"RandomNormal\";Q.registerClass($m);var Dm=class extends gn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new vt(`truncatedNormal does not support dType ${e}.`);return wm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Dm.className=\"TruncatedNormal\";Q.registerClass(Dm);var Rm=class extends gn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z(\"Identity matrix initializer can only be used for 2D square matrices.\");return D(this.gain,Ju(t[0]))})}getConfig(){return{gain:this.gain}}};Rm.className=\"Identity\";Q.registerClass(Rm);function M5(r,t=\"channelsLast\"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t===\"channelsFirst\"){let o=ko(r,2);e=r[1]*o,n=r[0]*o}else if(t===\"channelsLast\"){let o=ko(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=ko(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var jr=class extends gn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?\"fanIn\":t.mode,P5(this.mode),this.distribution=t.distribution==null?\"normal\":t.distribution,L5(this.distribution),this.seed=t.seed}apply(t,e){let n=M5(t),o=n[0],s=n[1],i=this.scale;if(this.mode===\"fanIn\"?i/=Math.max(1,o):this.mode===\"fanOut\"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution===\"normal\"){let a=Math.sqrt(i);if(e=e||\"float32\",e!==\"float32\"&&e!==\"int32\")throw new vt(`${this.getClassName()} does not support dType ${e}.`);return wm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};jr.className=\"VarianceScaling\";Q.registerClass(jr);var pc=class extends jr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};pc.className=\"GlorotUniform\";Q.registerClass(pc);var mc=class extends jr{constructor(t){super({scale:1,mode:\"fanAvg\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};mc.className=\"GlorotNormal\";Q.registerClass(mc);var fc=class extends jr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};fc.className=\"HeNormal\";Q.registerClass(fc);var dc=class extends jr{constructor(t){super({scale:2,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};dc.className=\"HeUniform\";Q.registerClass(dc);var hc=class extends jr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"normal\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};hc.className=\"LeCunNormal\";Q.registerClass(hc);var gc=class extends jr{constructor(t){super({scale:1,mode:\"fanIn\",distribution:\"uniform\",seed:t==null?null:t.seed})}getClassName(){return jr.className}};gc.className=\"LeCunNormal\";Q.registerClass(gc);var Fm=class extends gn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new vt(\"Random seed is not implemented for Orthogonal Initializer yet.\")}apply(t,e){return B(()=>{if(t.length<2)throw new vt(\"Shape must be at least 2D.\");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=km(n,0,1,\"float32\"),s=d0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Fm.className=\"Orthogonal\";Q.registerClass(Fm);var G$={constant:\"Constant\",glorotNormal:\"GlorotNormal\",glorotUniform:\"GlorotUniform\",heNormal:\"HeNormal\",heUniform:\"HeUniform\",identity:\"Identity\",leCunNormal:\"LeCunNormal\",leCunUniform:\"LeCunUniform\",ones:\"Ones\",orthogonal:\"Orthogonal\",randomNormal:\"RandomNormal\",randomUniform:\"RandomUniform\",truncatedNormal:\"TruncatedNormal\",varianceScaling:\"VarianceScaling\",zeros:\"Zeros\"};function W$(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,\"initializer\")}function Te(r){return Sm(r)}function de(r){if(typeof r==\"string\"){let t=r in G$?G$[r]:r;if(t===\"GlorotNormal\")return new mc;if(t===\"GlorotUniform\")return new pc;if(t===\"HeNormal\")return new fc;if(t===\"HeUniform\")return new dc;if(t===\"LeCunNormal\")return new hc;if(t===\"LeCunUniform\")return new gc;{let e={};return e.className=t,e.config={},W$(e)}}else return r instanceof gn?r:W$(r)}function Dy(r){return Array.isArray(r)&&Array.isArray(r[0])}function Om(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function St(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function zt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Pm(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var H$=\"Variable\",Ih=class{constructor(t,e=\"float32\",n=H$,o=!0,s=null){this.dtype=e==null?\"float32\":e,this.shape=t.shape,this.id=Ny(),n=n==null?H$:n,this.originalName=Ty(n),this.name=ky(this.originalName),this.trainable_=o,this.constraint=s,this.val=ay(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),B5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(t){this.trainable_=t,this.val.trainable=t}};function B5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error(\"Shape mismatch: \"+JSON.stringify(r.shape)+\" vs. \"+JSON.stringify(t.shape))}function vh(r){return r.map(t=>t.read())}function Lm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},tn=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Ny(),i!=null&&(this.originalName=Ty(i),this.name=ky(this.originalName)),this.rank=e.length}},V5=0,al=class{constructor(t,e){this.callArgs=e,this.id=V5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},G5=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=G5++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let e=t.name;if(!e){let n=this.getClassName();e=No(n)+\"_\"+yu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o=\"float32\"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+\"_ib-\"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Kr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Tr(this.getNodeAtIndex(t,\"input\").inputTensors)}getOutputAt(t){return Tr(this.getNodeAtIndex(t,\"output\").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Tn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer input\" is ill-defined. Use \\`getInputAt(nodeIndex)\\` instead.`);if(this.inboundNodes.length===0)throw new Tn(`Layer ${this.name} is not connected, no input to return.`);return Tr(this.getNodeAtIndex(0,\"input\").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Tn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Tn(`Layer ${this.name} has multiple inbound nodes, hence the notion of \"layer output\" is ill-defined. Use \\`getOutputAt(nodeIndex)\\` instead.`);return Tr(this.getNodeAtIndex(0,\"output\").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error(\"Cannot call the resetStates() method of a non-stateful Layer object.\")}assertInputCompatibility(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new z(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Tr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Tr(u),this.activityRegularizer!=null)throw new vt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return i}else{let i=W5(t),a=this.computeOutputShape(i),u,l=U5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new tn(l,c,this,xe(t),e,this.name,p)):u=new tn(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new vt(\"Layer invocation in the presence of activity regularizer(s) is not supported yet.\");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Tn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new Tn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of \"output shape\" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Kr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Pm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return vh(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer \"${this.name}\" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=vh(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Om(s),i=Om(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new al({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function W5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Tr(t)}function U5(r){return\"float32\"}function A0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(\",\")+\"|\"+t.names().sort().join(\",\"),p=Fy.get(c),m;if(p==null){let d=q5(i,t);p=d.sorted,m=d.recipientCounts,Fy.put(c,p),Oy.put(c,m)}m={},o||Object.assign(m,Oy.get(c));let f=new _o(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>\"Expected at least one fetch, got none\");let e=[],n={};if(r.length===1){let o=q$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=q$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:K5(n)}}function K5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function q$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function j5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,K$);var Y$={};Wt(Y$,{maxNorm:()=>Y5,minMaxNorm:()=>Q5,nonNeg:()=>J5,unitNorm:()=>Z5});function $0(r,t){return B(()=>ve(ft(D(r,r),t,!0)))}var yc=class extends Q.Serializable{getConfig(){return{}}},Mm=class extends yc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=$0(t,this.axis),n=vr(e,0,this.maxValue);return D(t,pt(n,X(lr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Mm.className=\"MaxNorm\";Q.registerClass(Mm);var zm=class extends yc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(lr(),$0(t,this.axis))))}getConfig(){return{axis:this.axis}}};zm.className=\"UnitNorm\";Q.registerClass(zm);var Bm=class extends yc{apply(t){return Pr(t)}};Bm.className=\"NonNeg\";Q.registerClass(Bm);var Vm=class extends yc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=$0(t,this.axis),n=X(D(this.rate,vr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(lr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Vm.className=\"MinMaxNorm\";Q.registerClass(Vm);var j$={maxNorm:\"MaxNorm\",minMaxNorm:\"MinMaxNorm\",nonNeg:\"NonNeg\",unitNorm:\"UnitNorm\"};function ze(r){return Sm(r)}function X$(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,\"constraint\")}function Be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in j$?j$[r]:r,config:{}};return X$(e)}else return r instanceof yc?r:X$(r)}function Y5(r){return new Mm(r)}function Z5(r){return new zm(r)}function J5(){return new Bm}function Q5(r){return new Vm(r)}var Z$={};Wt(Z$,{constant:()=>r8,glorotNormal:()=>u8,glorotUniform:()=>l8,heNormal:()=>c8,heUniform:()=>p8,identity:()=>i8,leCunNormal:()=>m8,leCunUniform:()=>f8,ones:()=>e8,orthogonal:()=>d8,randomNormal:()=>o8,randomUniform:()=>n8,truncatedNormal:()=>s8,varianceScaling:()=>a8,zeros:()=>t8});function t8(){return new Em}function e8(){return new wu}function r8(r){return new _m(r)}function n8(r){return new Am(r)}function o8(r){return new $m(r)}function s8(r){return new Dm(r)}function i8(r){return new Rm(r)}function a8(r){return new jr(r)}function l8(r){return new pc(r)}function u8(r){return new mc(r)}function c8(r){return new fc(r)}function p8(r){return new dc(r)}function m8(r){return new hc(r)}function f8(r){return new gc(r)}function d8(r){return new Fm(r)}var AD={};Wt(AD,{Layer:()=>Et,RNN:()=>En,RNNCell:()=>pl,activation:()=>$Y,add:()=>BY,alphaDropout:()=>vZ,average:()=>VY,averagePooling1d:()=>H0,averagePooling2d:()=>q0,averagePooling3d:()=>K0,avgPool1d:()=>YY,avgPool2d:()=>JY,avgPool3d:()=>tZ,avgPooling1d:()=>ZY,avgPooling2d:()=>QY,avgPooling3d:()=>eZ,batchNormalization:()=>KY,bidirectional:()=>hZ,categoryEncoding:()=>EZ,centerCrop:()=>TZ,concatenate:()=>GY,conv1d:()=>IY,conv2d:()=>vY,conv2dTranspose:()=>SY,conv3d:()=>NY,conv3dTranspose:()=>TY,convLstm2d:()=>pZ,convLstm2dCell:()=>mZ,cropping2D:()=>EY,dense:()=>DY,depthwiseConv2d:()=>AY,dot:()=>qY,dropout:()=>RY,elu:()=>gY,embedding:()=>zY,flatten:()=>OY,gaussianDropout:()=>IZ,gaussianNoise:()=>CZ,globalAveragePooling1d:()=>rZ,globalAveragePooling2d:()=>nZ,globalMaxPool1d:()=>xZ,globalMaxPool2d:()=>yZ,globalMaxPooling1d:()=>TD,globalMaxPooling2d:()=>kD,gru:()=>sZ,gruCell:()=>iZ,input:()=>z0,inputLayer:()=>hY,layerNormalization:()=>jY,leakyReLU:()=>yY,lstm:()=>aZ,lstmCell:()=>lZ,masking:()=>SZ,maxPool1d:()=>bZ,maxPool2d:()=>wZ,maxPooling1d:()=>ED,maxPooling2d:()=>_D,maxPooling3d:()=>oZ,maximum:()=>WY,minimum:()=>UY,multiply:()=>HY,permute:()=>MY,prelu:()=>bY,reLU:()=>xY,repeatVector:()=>PY,rescaling:()=>NZ,reshape:()=>LY,resizing:()=>kZ,rnn:()=>fZ,separableConv2d:()=>kY,simpleRNN:()=>uZ,simpleRNNCell:()=>cZ,softmax:()=>wY,spatialDropout1d:()=>FY,stackedRNNCells:()=>dZ,thresholdedReLU:()=>CY,timeDistributed:()=>gZ,upSampling2d:()=>_Y,zeroPadding2d:()=>XY});async function ji(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!=\"number\"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]==\"number\"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),Ae(e[n])}))}},My=class extends ll{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew zy(n,t))}var xn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),xn.checkForDuplicate(e),xn.constructors[t]==null&&(xn.constructors[t]=[]),xn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in xn.constructors)xn.constructors[+e].forEach(o=>{if(o===t)throw new z(\"Duplicate callback constructor.\")})}static clear(){xn.constructors={}}static createCallbacks(t){let e=[];for(let n in xn.constructors){let o=+n;t>=o&&e.push(...xn.constructors[o])}return e.map(n=>new n)}};xn.constructors={};function Vy(r,t,e,n,o,s,i,a,u){let l=new My,c=[new D0,...xn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Ly(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function yn(r,t={},e=!1){return qi(r,Q.SerializationMap.getMap().classNameMap,t,\"layer\",e)}function Sh(r,t){return B(()=>{r.dtype!==\"float32\"&&(r=J(r,\"float32\"));let e=ft(cc(r),t,!0),n=bo(e.shape,lr()),o=ve(Nn(e,n));return pt(r,o)})}function Xi(r,t){return B(()=>Se(cc(ct(t,r)),-1))}function Gm(r,t){return B(()=>Se(Ee(ct(t,r)),-1))}function Cu(r,t){return B(()=>{let e=ct(r,t),n=vr(Ee(r),lr(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,Se(o,-1))})}function g8(r,t){return B(()=>{let e=vr(t,lr(),Number.MAX_VALUE),n=Nr(X(1,e)),o=vr(r,lr(),Number.MAX_VALUE),s=Nr(X(1,o));return Se(cc(ct(n,s)),-1)})}function x8(r,t){return B(()=>{let e=Nn(0,ct(1,D(r,t)));return Se(cc(e),-1)})}function y8(r,t){return B(()=>{let e=Nn(0,ct(1,D(r,t)));return Se(e,-1)})}function b8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Sr(D(ct(1,r),t),-1);return Nn(0,X(1,ct(n,e)))})}function w8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,Gs(D(-2,n))),e);return Se(o,-1)})}function bc(r,t,e=!1){return B(()=>{if(e)t=lu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=vr(t,lr(),1-lr()),Ht(ft(D(J(r,\"float32\"),Nr(t)),t.shape.length-1))})}function Wm(r,t,e=!1){return B(()=>{let n=J(zi(O$(r)),\"int32\");t=vr(t,lr(),1-lr());let o=t.shape,s=R($i(n,o[o.length-1]),o);return bc(s,t,e)})}function C8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Pr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),nu(or(n)))})}function Um(r,t){return B(()=>{let e;return e=vr(t,lr(),1-lr()),e=Nr(pt(e,ct(1,e))),Se(C8(r,e),-1)})}function I8(r,t){return B(()=>{let e=vr(r,lr(),1),n=vr(t,lr(),1);return ft(D(r,Nr(pt(e,n))),-1)})}function v8(r,t){return B(()=>{let e=Nr(X(lr(),t));return Se(ct(t,D(r,e)),-1)})}function Th(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var Nh={meanSquaredError:Xi,meanAbsoluteError:Gm,meanAbsolutePercentageError:Cu,meanSquaredLogarithmicError:g8,squaredHinge:x8,hinge:y8,categoricalHinge:b8,logcosh:w8,categoricalCrossentropy:bc,sparseCategoricalCrossentropy:Wm,binaryCrossentropy:Um,kullbackLeiblerDivergence:I8,poisson:v8,cosineProximity:Th};function Gy(r){if(typeof r==\"string\"){if(r in Nh)return Nh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes(\"softmaxcrossentropy\")&&(t=`Unknown loss ${r}. Use \"categoricalCrossentropy\" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function kh(r,t){return B(()=>{let e=D(.5,wr(t)),n=Qr(Re(t,e),r.dtype);return Se(Rr(r,n),-1)})}function Eh(r,t){return B(()=>Qr(Rr(Ri(r,-1),Ri(t,-1)),\"float32\"))}function tD(r,t){return B(()=>J(ft(Or(Rr(r,1),Rr(t,1))),\"float32\"))}function S8(r,t){return B(()=>J(ft(Or(Rr(r,1),Rr(t,0))),\"float32\"))}function N8(r,t){return B(()=>J(ft(Or(Rr(r,0),Rr(t,1))),\"float32\"))}function R0(r,t){return B(()=>{let e=tD(r,t),n=N8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function eD(r,t){return B(()=>{let e=tD(r,t),n=S8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),\"float32\")})}function Uy(r,t){return Um(r,t)}function Hy(r,t){return r.rank===t.rank&&(r=Bn(r,[r.rank-1])),t=Ri(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J(Rr(r,t),\"float32\")}var T8=Xi,k8=Xi,E8=Gm,_8=Gm,A8=Cu,$8=Cu,_h=bc,D8=Th,F0=Wm,Wy={binaryAccuracy:kh,categoricalAccuracy:Eh,precision:R0,categoricalCrossentropy:_h,sparseCategoricalCrossentropy:F0,mse:T8,MSE:k8,mae:E8,MAE:_8,mape:A8,MAPE:$8,cosine:D8};function rD(r){if(typeof r==\"string\"&&r in Wy)return Wy[r];if(typeof r!=\"string\"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Ah(r){if(io(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r==\"string\")return r;{let t;for(let e of Object.keys(Nh))if(Nh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Wy))if(Wy[e]===r){t=e;break}return t!==void 0?t:r.name}}function oD(r){let t={Adagrad:()=>lc.adagrad(.01),Adadelta:()=>lc.adadelta(1,.95,lr()),Adam:()=>lc.adam(.001,.9,.999,lr()),Adamax:()=>lc.adamax(.002,.9,.999,lr(),0),RMSProp:()=>lc.rmsprop(.001,.9,0,lr()),SGD:()=>lc.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function P0(r,t,e=!1){if(r==null||typeof r!=\"object\"||Object.getPrototypeOf(r)!==Object.prototype||!O0(r))throw new Error(\"User-defined metadata is expected to be a JSON object, but is not.\");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model \"${t}\" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function O0(r){if(r===null)return!0;if(typeof r==\"object\")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!=\"string\"||!O0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!O0(t))return!1;return!0}else return!1;else{let t=typeof r;return t===\"string\"||t===\"number\"||t===\"boolean\"}}function sD(r,t,e,n=console.log){let o=O8(r),s=[\"Layer (type)\",\"Input Shape\",\"Output shape\",\"Param #\"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push(\"Receives inputs\"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n(\"_\".repeat(t)),qy(s,e,n),n(\"=\".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function qy(r,t,e=console.log){let n=\"\";for(let o=0;o0&&(n=n.slice(0,n.length-1)+\" \"),n+=r[o],n=n.slice(0,t[o]),n+=\" \".repeat(t[o]-n.length);e(n)}function P8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(\",\")}catch(u){o=\"multiple\"}try{n=JSON.stringify(r.outputShape)}catch(u){n=\"multiple\"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];qy(a,t,e)}function L8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(\",\")}catch(p){s=\"multiple\"}try{o=JSON.stringify(r.outputShape)}catch(p){o=\"multiple\"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);To(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;io(C===0,\"input layer has >1 nodes\"),io(N===0,\"input layer has >1 tensors\"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[E];if(C.indexOf($)!==-1)throw new Kr(`The tensor ${b.name} at layer \"${N.name}\" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(Vn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(bh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let E=i[C.id],A=i[N.id];return EA?1:0});for(let C of w)C instanceof Vn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(bh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Kr(`Graph disconnected: cannot obtain value for tensor ${N} at layer \"${C.name}\". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Kr(`The name \"${b}\" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new al({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new z(\"Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.\");if(!this.trainable)return[];let t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new z(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split(\"/\");a=u.slice(0,-2).concat([u[u.length-1]]).join(\"/\")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new z(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new z(`${i.length} of ${o} weights are not set: ${i}`)}Lm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Hm}`,e.backend=\"TensorFlow.js\",e}toJSON(t,e=!0){let n=Ky(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new _o;for(let o=0;o{t=xe(t);let n;return e==null?n=So(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Om(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(bh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(bh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new vt(\"LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.\");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Tr(b),w)}function l(g){let x=g.name,b=yn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!I$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];io(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];io(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z(\"Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.\");for(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function M8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r==\"object\"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r==\"object\"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]==\"object\"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function jy(r,t){return M8(r,t,\"classWeight\")}async function Xy(r,t,e,n){if(t!=null||n!=null)throw new Error(\"Support sampleWeight is not implemented yet\");if(e!=null){let o=B(()=>{if(r.shape.length===1)return an(r);if(r.shape.length===2){if(r.shape[1]>1)return Ri(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());Nt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Ke(i,\"float32\")}else return null}function aD(r,t){return D(r,t)}var z8=32;function cD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \\`{xs: xVal, ys: yVal}\\`, where the two values may be \\`tf.Tensor\\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=lD(\"input\",r.inputNames,e),i=lD(\"output\",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function lD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function B8(r){if(r.length===3)throw new vt(\"Validation with sample weights is not implemented yet.\");return{xs:r[0],ys:r[1]}}async function pD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig).\"),y.assert(e!=null,()=>\"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call.\"),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>\"`validationSplit` is not supported by `fitDataset()`. Use validationData instead.\"),r.isTraining)throw new Error(\"Cannot start training because another fit() call is ongoing.\");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(uD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=B8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>\"val_\"+g)):l=u.slice();let c=By(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Vy(c,p,e.epochs,null,null,V8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;uD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?z8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new vt(\"Verbose mode is not implemented yet.\");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \\`batches\\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=G8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=cD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Nt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&Nt(x)}Nt(f),a+=d,++u}return s}),l.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \\`batches\\` batches (in this case, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function qm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>sl(n,t,e-t)):sl(r,t,e-t)}function Zy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Zy(e,t)):Ay(r,t.dtype===\"int32\"?t:J(t,\"int32\")))}function Jy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function L0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function W8(r){return r instanceof Ft}function M0(r){return Array.isArray(r)}function fD(r){return!W8(r)&&!M0(r)}function dD(r,t,e,n=!0,o=\"\"){if(t==null||t.length===0){if(r!=null){let i=!1;if(M0(r)&&r.length>0)i=!0;else if(fD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(fD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for \"${i}\". Need data for each key in: ${t}`);s.push(r[i])}}else if(M0(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=L0(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function U8(r,t,e){let n=To(r.map(s=>s.shape[0]));n.sort();let o=To(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function H8(r,t,e){let n=[Xi,Um,bc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r==\"string\"||typeof r==\"function\")e=[r];else if(Array.isArray(r)||typeof r==\"object\")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var K8=\"layers-model\",Gn=class extends Vn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z(\"This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).\");sD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer==\"string\")this.optimizer_=oD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Hr))throw new z(\"User-defined optimizer must be an instance of tf.Optimizer.\");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!=\"string\"&&typeof t.loss!=\"function\"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: \"${i}\". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output \"${i}\" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Gy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${t.loss}.`);e=t.loss.map(a=>Gy(a))}else{let i=Gy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+\"_loss\"))}});let o=q8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+\"_\"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Ks(\"metric\",()=>{for(let i=0;i{let c=\"\",p,m,f;for(let d of l){if(typeof d==\"string\"&&[\"accuracy\",\"acc\",\"crossentropy\",\"ce\"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Um?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=kh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=Uy):this.lossFunctions[i]===Wm?[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Hy:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=F0):[\"accuracy\",\"acc\"].indexOf(d)!==-1?m=Eh:[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(m=_h);let x;[\"accuracy\",\"acc\"].indexOf(d)!==-1?x=\"acc\":[\"crossentropy\",\"ce\"].indexOf(d)!==-1&&(x=\"ce\"),f=m,p=c+x}else f=rD(d),p=c+Ah(d);let h;Ks(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn(\"Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?\")}evaluate(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Yy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Tr(l)}finally{Ao(i[0],t),Ao(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),mD(this,t,e)}checkNumSamples(t,e,n,o=\"steps\"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z(\"`outputs` is an empty Array, which is not allowed.\");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new _o;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new vt(\"Verbose predictLoop() is not implemented yet.\");let s=Jy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=qm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Tr(i.map(a=>oe(a,0)))})}predict(t,e={}){let n=L0(t);hD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Yy(o),this.predictLoop(n,o)}finally{Ao(n,t)}}predictOnBatch(t){hD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Kr(\"You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).\");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error(\"sample weight is not supported yet.\");let l=null;if(o!=null){let c=jy(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,\"steps\"),a=[];if(o>0)throw new vt(\"Verbose mode is not implemented yet.\");if(s!=null)throw new vt(\"steps mode in testLoop() is not implemented yet\");{let u=Jy(i,n),l=Ke(fn(0,i));for(let c=0;c1){let i=S0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new vt(\"validationData including sample weights is not supported yet.\"):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await this.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=qm(o,F,P),i=o,o=qm(o,0,F),p=qm(s,F,P),a=s,s=qm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),C=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=C.slice().concat(C.map(F=>\"val_\"+F))):(N=null,x=[],E=C.slice());let A=By(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Ao(o,t),Ao(s,e),Ao(i,t),Ao(a,e),Ao(c,u),Ao(p,l),m!=null&&Nt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new z(\"Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.\");let g=this.checkNumSamples(e,o,f,\"steps_per_epoch\"),x;g!=null&&(x=fn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Vy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=sl(E,P,V-P);F.batch=$,F.size=V-P;let W=Zy(e,G),q=t(W);for(let H=0;HNo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]==\"string\")t[o]=No(n[o]);else throw new Error(\"Serialization of non-string loss is not supported.\")}return t}getMetricIdentifiers(){if(typeof this.metrics==\"string\"||typeof this.metrics==\"function\")return[No(Ah(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>No(Ah(t)));{let t={};for(let e in this.metrics)t[e]=No(Ah(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error(\"Loading weight_metrics is not supported yet.\");if(t.loss_weights!=null)throw new Error(\"Loading loss_weights is not supported yet.\");if(t.sample_weight_mode!=null)throw new Error(\"Loading sample_weight_mode is not supported yet.\");let e=wc(t.optimizer_config),n=yn(e),o;if(typeof t.loss==\"string\")o=ol(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>ol(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=ol(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>ol(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=ol(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t==\"string\"){let l=$r.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z(\"LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");let n=await $r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:K8,generatedBy:`TensorFlow.js tfjs-layers v${Hm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l=\"optimizer\",{data:c,specs:p}=await $r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=$r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(P0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){P0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Gn.className=\"Model\";Q.registerClass(Gn);var Qy=class extends Gn{};Qy.className=\"Functional\";Q.registerClass(Qy);async function gD(r,t){\"modelTopology\"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=wc(e),o=yn(n,t);if(r.weightsManifest!=null){let s=await $r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Nt(s)}return o}async function xD(r,t){if(t==null&&(t={}),typeof r==\"string\"){let e=$r.getLoadHandlers(r,t);if(e.length===0)e.push($r.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return j8(r,void 0,t)}async function j8(r,t,e){if(e==null&&(e={}),r.load==null)throw new z(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=yn(wc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z(\"LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.\");let{modelWeights:l,optimizerWeights:c}=X8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Nt(l),Nt(c.map(p=>p.tensor))}return a}function X8(r,t){let e=$r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group===\"optimizer\"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Yi=class extends Gn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:yu(\"sequential_\"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Yi||t instanceof Gn,n;if(e){if(n=t,n.outputs.length!==1)throw new z(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");if(n.inputs.length!==1)throw new z(\"All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.\")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z(\"The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.\");let o=Ry({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+\"_input\"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new z(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=A0(this.outputs[0])}this.inboundNodes=[],new al({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:So(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))throw new TypeError(\"All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.\");this.checkShape(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError(\"There are no layers in the model.\");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(zt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError(\"Sequential model cannot be built: model is empty. Add some layers first.\");this.model=new Gn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+\"_model\"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Kr(\"The model needs to be compiled before being used.\");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Kr(\"The model needs to be compiled before being used.\");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Kr(\"The model needs to be compiled before being used.\");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Kr(\"The model needs to be compiled before being used.\");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className===\"Merge\")throw new z(\"Legacy serialization format not supported yet.\");s=e}else y.assert(e.layers!=null,()=>\"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field.\"),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof Yi))throw new vt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=yn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z(\"Cannot set the stopTraining property of a sequential model before it is compiled.\");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new z(\"Cannot get the stopTraining property of a sequential model before it is compiled.\");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Yi.className=\"Sequential\";Q.registerClass(Yi);function Y8(r){return new Gn(r)}function Z8(r){return new Yi(r)}function z0(r){return Ry(r)}function J8(r,t){xn.registerCallbackConstructor(r,t)}var en=class extends Q.Serializable{getConfig(){return{}}},tb=class extends en{apply(t,e=1){return L$(t,e)}};tb.className=\"elu\";Q.registerClass(tb);var eb=class extends en{apply(t){return mm(t)}};eb.className=\"selu\";Q.registerClass(eb);var rb=class extends en{apply(t){return Pr(t)}};rb.className=\"relu\";Q.registerClass(rb);var nb=class extends en{apply(t){return B(()=>Vi(6,Pr(t)))}};nb.className=\"relu6\";Q.registerClass(nb);var ob=class extends en{apply(t){return t}};ob.className=\"linear\";Q.registerClass(ob);var sb=class extends en{apply(t){return Jr(t)}};sb.className=\"sigmoid\";Q.registerClass(sb);var ib=class extends en{apply(t){return z$(t)}};ib.className=\"hardSigmoid\";Q.registerClass(ib);var ab=class extends en{apply(t){return Gs(t)}};ab.className=\"softplus\";Q.registerClass(ab);var lb=class extends en{apply(t){return M$(t)}};lb.className=\"softsign\";Q.registerClass(lb);var ub=class extends en{apply(t){return Fi(t)}};ub.className=\"tanh\";Q.registerClass(ub);var Km=class extends en{apply(t,e=-1){return lu(t,e)}};Km.className=\"softmax\";Q.registerClass(Km);var cb=class extends en{apply(t,e=-1){return im(t,e)}};cb.className=\"logSoftmax\";Q.registerClass(cb);var pb=class extends en{apply(t,e=1){return B(()=>D(Jr(D(t,e)),t))}};pb.className=\"swish\";Q.registerClass(pb);var mb=class extends en{apply(t){return B(()=>D(t,Fi(Gs(t))))}};mb.className=\"mish\";Q.registerClass(mb);function Ys(r){return r.getClassName()}function B0(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,\"activation\")}function Zs(r){if(r==null){let t={};return t.className=\"linear\",t.config={},B0(t)}if(typeof r==\"string\"){let t={};return t.className=r,t.config={},B0(t)}else return r instanceof en?r:B0(r)}function V0(r){if(r!=null&&typeof r!=\"object\")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var fb=class extends Q.Serializable{},Iu=class extends fb{constructor(t){super(),V0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,cc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Iu.className=\"L1L2\";Q.registerClass(Iu);function wD(r){return V0(r),new Iu({l1:r!=null?r.l1:null,l2:0})}function CD(r){return V0(r),new Iu({l2:r!=null?r.l2:null,l1:0})}var yD={l1l2:\"L1L2\"};function me(r){return Sm(r)}function bD(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,\"regularizer\")}function be(r){if(r==null)return null;if(typeof r==\"string\"){let e={className:r in yD?yD[r]:r,config:{}};return bD(e)}else return r instanceof fb?r:bD(r)}var jm=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Pr(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};jm.className=\"ReLU\";Q.registerClass(jm);var Xm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return ru(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Xm.className=\"LeakyReLU\";Q.registerClass(Xm);var Ym=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER=\"zeros\",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes==\"number\")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=zt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight(\"alpha\",e,\"float32\",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,1]):r))}function G0(r,t){return B(()=>(Fe(t),t===\"channelsFirst\"?Ot(r,[0,2,3,4,1]):r))}function tY(r,t,e,n=1,o=\"valid\",s,i=1){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s===\"channelsFirst\"&&(r=Ot(r,[0,2,1])),o===\"causal\")throw new vt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");let a=tm(r,t,n,o===\"same\"?\"same\":\"valid\",\"NWC\",i);return e!=null&&(a=hn(a,e)),a})}function ID(r,t,e,n=[1,1],o=\"valid\",s,i,a=null){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=$h(r,s);if(o===\"causal\")throw new vt(\"The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.\");return u=pu.conv2d({x:u,filter:t,strides:n,pad:o===\"same\"?\"same\":\"valid\",dilations:i,dataFormat:\"NHWC\",bias:e,activation:a}),s===\"channelsFirst\"&&(u=Ot(u,[0,3,1,2])),u})}function eY(r,t,e,n=[1,1,1],o=\"valid\",s,i){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=G0(r,s);if(o===\"causal\")throw new vt(\"The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.\");return a=kx(a,t,n,o===\"same\"?\"same\":\"valid\",\"NDHWC\",i),e!=null&&(a=hn(a,e)),s===\"channelsFirst\"&&(a=Ot(a,[0,4,1,2,3])),a})}var Cc=class extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",Cc.verifyArgs(e),this.rank=t,Qe(this.rank,\"rank\"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new vt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=vu(e.kernelSize,t,\"kernelSize\"),this.strides=vu(e.strides==null?1:e.strides,t,\"strides\"),this.padding=e.padding==null?\"valid\":e.padding,mn(this.padding),this.dataFormat=e.dataFormat==null?\"channelsLast\":e.dataFormat,Fe(this.dataFormat),this.activation=Zs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=vu(e.dilationRate==null?1:e.dilationRate,t,\"dilationRate\"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate==\"number\")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(io(\"kernelSize\"in t,\"required key 'kernelSize' not in config\"),typeof t.kernelSize!=\"number\"&&!Iy(t.kernelSize,\"number\",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ys(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Su=class extends Cc{constructor(t,e){super(t,e),this.kernel=null,Su.verifyArgs(e),this.filters=e.filters,Qe(this.filters,\"filters\"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=zt(t);let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight(\"kernel\",o,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=vy(this.activation.getClassName());if(s!=null&&this.rank===2)n=ID(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=tY(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=ID(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=eY(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new vt(\"convolutions greater than 3D are not implemented yet.\");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=zt(t);let e=[],n=this.dataFormat===\"channelsLast\"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},ul=class extends Su{constructor(t){super(2,t),ul.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Iy(t.kernelSize,\"number\",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};ul.className=\"Conv2D\";Q.registerClass(ul);var cl=class extends Su{constructor(t){super(3,t),cl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};cl.className=\"Conv3D\";Q.registerClass(cl);var tf=class extends ul{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=zt(t),t.length!==4)throw new z(\"Input should have rank 4; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"float32\",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],\"float32\",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat===\"channelsFirst\"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Js(u,m,c,this.padding),h=Js(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,1]));let x=rm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=hn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=zt(t);let e=t.slice(),n,o,s;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Js(e[o],u,i,this.padding),e[s]=Js(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className=\"Conv2DTranspose\";Q.registerClass(tf);var ef=class extends cl{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!==\"same\"&&this.padding!==\"valid\")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=zt(t),t.length!==5)throw new z(\"Input should have rank 5; Received input shape: \"+JSON.stringify(t));let e=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[e]==null)throw new z(\"The channel dimension of the inputs should be defined. Found `None`.\");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight(\"kernel\",o,\"float32\",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.filters],\"float32\",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat===\"channelsFirst\"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Js(l,h,m,this.padding),w=Js(c,g,f,this.padding),C=Js(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!==\"channelsLast\"&&(n=Ot(n,[0,2,3,4,1]));let E=_x(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!==\"channelsLast\"&&(E=Ot(E,[0,4,1,2,3])),this.bias!==null&&(E=hn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=zt(t);let e=t.slice(),n,o,s,i;this.dataFormat===\"channelsFirst\"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Js(e[o],c,a,this.padding),e[s]=Js(e[s],p,u,this.padding),e[i]=Js(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};ef.className=\"Conv3DTranspose\";Q.registerClass(ef);var db=class extends Su{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER=\"glorotUniform\",this.DEFAULT_POINTWISE_INITIALIZER=\"glorotUniform\",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z(\"The `filters` configuration field is required by SeparableConv, but is unspecified.\");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z(\"Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.\");if(e.padding!=null&&e.padding!==\"same\"&&e.padding!==\"valid\")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=zt(t),t.length{t=St(t);let n;if(this.rank===1)throw new vt(\"1D separable convolution is not implemented yet.\");return this.rank===2&&(this.dataFormat===\"channelsFirst\"&&(t=Ot(t,[0,2,3,1])),n=fm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,\"NHWC\")),this.useBias&&(n=hn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat===\"channelsFirst\"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};db.className=\"SeparableConv\";var rf=class extends db{constructor(t){super(2,t)}};rf.className=\"SeparableConv2D\";Q.registerClass(rf);var Nu=class extends Su{constructor(t){super(1,t),Nu.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!=\"number\"&&!Iy(t.kernelSize,\"number\",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Nu.className=\"Conv1D\";Q.registerClass(Nu);var nf=class extends Et{constructor(t){super(t),typeof t.cropping==\"number\"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]==\"number\"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?\"channelsLast\":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat===\"channelsFirst\"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat===\"channelsLast\"){let n=Ch(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ch(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ch(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ch(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};nf.className=\"Cropping2D\";Q.registerClass(nf);var of=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?\"nearest\":t.interpolation,$$(this.interpolation)}computeOutputShape(t){if(this.dataFormat===\"channelsFirst\"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat===\"channelsFirst\"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation===\"nearest\"?so.resizeNearestNeighbor(n,[s,i]):so.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation===\"nearest\"?so.resizeNearestNeighbor(n,[s,i]):so.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};of.className=\"UpSampling2D\";Q.registerClass(of);function rY(r,t,e=[1,1],n=\"valid\",o,s){return B(()=>{o==null&&(o=dn()),Fe(o);let i=$h(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Li(i,t,e,n===\"same\"?\"same\":\"valid\",\"NHWC\",s),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}var sf=class extends Cc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=zt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat===\"channelsFirst\"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight(\"depthwise_kernel\",o,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{t=St(t);let n=rY(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=hn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=zt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=kn(e,this.kernelSize[0],this.padding,this.strides[0]),i=kn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat===\"channelsFirst\"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};sf.className=\"DepthwiseConv2D\";Q.registerClass(sf);function W0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z(\"When inputs is an array, neither initialState or constants should be provided\");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function U0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(fn(2,u));if(t=Ot(t,l),s!=null)throw new vt(\"The rnn() functoin of the deeplearn.js backend does not support constants yet.\");i&&console.warn(\"Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend.\"),o!=null&&(o=J(J(o,\"bool\"),\"float32\"),o.rank===u-1&&(o=sr(o,-1)),o=Ot(o,l)),n&&(t=mr(t,0),o!=null&&(o=mr(o,0)));let c=[],p,m=e,f=t.shape[0],d=dr(t),h;o!=null&&(h=dr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],E=ct(wr(N),N),A=X(D(w[0],N),D(m[0],E)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,E)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var En=class extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z(\"cell property is missing for the constructor of RNN.\");if(Array.isArray(t.cell)?e=new Sc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z(\"The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).\");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return fn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Dy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new Tn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape[0];if(n==null)throw new z(\"If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \\n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.\");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)Nt(this.states_),this.keptStates!=null&&(Nt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Nt(this.states_);for(let o=0;oAe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=W0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof tn){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn(\"Ignoring unroll = true for RNN layer, due to imperative backend.\");let a={training:o},l=U0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=il(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?_y(e,[1,n]):e):this.cell.stateSize>1?[_y(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===En.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=yn(o,n);return new t(Object.assign(e,{cell:s}))}};En.className=\"RNN\";Q.registerClass(En);var pl=class extends Et{},Ic=class extends pl{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Qe(this.units,\"units\"),this.activation=Zs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=zt(t),this.kernel=this.addWeight(\"kernel\",[t[t.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Eo(D(t,i),this.kernel.read()):s=Eo(t,this.kernel.read()),this.bias!=null&&(s=hn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,Eo(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:Ys(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};Ic.className=\"SimpleRNNCell\";Q.registerClass(Ic);var af=class extends En{constructor(t){t.cell=new Ic(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};af.className=\"SimpleRNN\";Q.registerClass(af);var vc=class extends pl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.resetAfter)throw new z(\"GRUCell does not support reset_after parameter set to true.\");this.units=t.units,Qe(this.units,\"units\"),this.activation=Zs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Zs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=zt(t);let e=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight(\"bias\",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className=\"GRU\";Q.registerClass(lf);var ml=class extends pl{constructor(t){super(t),this.DEFAULT_ACTIVATION=\"tanh\",this.DEFAULT_RECURRENT_ACTIVATION=\"hardSigmoid\",this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_RECURRENT_INITIALIZER=\"orthogonal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",this.units=t.units,Qe(this.units,\"units\"),this.activation=Zs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Zs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=zt(t);let n=t[t.length-1];this.kernel=this.addWeight(\"kernel\",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight(\"recurrent_kernel\",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends gn{apply(u,l){let c=s.apply([i]),p=new wu().apply([i]),m=s.apply([i*2]);return _0(_0(c,p),m)}},e.className=\"CustomInit\",e)}else o=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};uf.className=\"LSTM\";Q.registerClass(uf);var Sc=class extends pl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Ks(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(yn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return vh(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):$y(t(),e),a=()=>bu(i,t,n);return!o||o<=1?Ae(a().clone()):Array(o).fill(void 0).map(a).map(l=>Ae(l.clone()))}var nY=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z(\"ConvRNN2D cell does not support constants\");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new Tn(\"Cannot call resetStates() on an RNN Layer that is not stateful.\");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new z(\"If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \\n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.\");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)Nt(this.states_),this.keptStates!=null&&(Nt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Nt(this.states_);for(let a=0;aAe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e===\"channelsFirst\",l=t[u?3:2],c=t[u?4:3],p=kn(l,o[0],s,i[0],a[0]),m=kn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};hb.className=\"ConvRNN2D\";var Nc=class extends ml{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Qe(this.filters,\"filters\"),this.kernelSize=vu(n,2,\"kernelSize\"),this.kernelSize.forEach(u=>Qe(u,\"kernelSize\")),this.strides=vu(o||1,2,\"strides\"),this.strides.forEach(u=>Qe(u,\"strides\")),this.padding=s||\"valid\",mn(this.padding),this.dataFormat=i||\"channelsLast\",Fe(this.dataFormat),this.dilationRate=vu(a||1,2,\"dilationRate\"),this.dilationRate.forEach(u=>Qe(u,\"dilationRate\"))}build(t){var e;t=zt(t);let n=this.dataFormat===\"channelsFirst\"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight(\"kernel\",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight(\"recurrent_kernel\",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends gn{apply(m,f){let d=l.apply([c]),h=pr([c]),g=l.apply([c*2]);return Tm([d,h,g])}},e.className=\"CustomInit\",e)}else u=this.biasInitializer;this.bias=this.addWeight(\"bias\",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,E,A]=fr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?fr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=fr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=nY(t,[\"units\"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Sn(t,e,this.strides,o||\"valid\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\",this.dilationRate);return n?hn(s,n,this.dataFormat):s}recurrentConv(t,e){return Sn(t,e,1,\"same\",this.dataFormat===\"channelsFirst\"?\"NCHW\":\"NHWC\")}};Nc.className=\"ConvLSTM2DCell\";Q.registerClass(Nc);var cf=class extends hb{constructor(t){let e=new Nc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};cf.className=\"ConvLSTM2D\";Q.registerClass(cf);var Tc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0$y(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Tc.className=\"Dropout\";Q.registerClass(Tc);var pf=class extends Tc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};pf.className=\"SpatialDropout1D\";Q.registerClass(pf);var mf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER=\"glorotNormal\",this.DEFAULT_BIAS_INITIALIZER=\"zeros\",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Qe(this.units,\"units\"),this.activation=Zs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=zt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight(\"kernel\",[e,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight(\"bias\",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:e}}],this.built=!0}computeOutputShape(t){t=zt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=vy(this.activation.getClassName()),s;return o!=null?s=Eo(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Eo(n,this.kernel.read()),this.bias!=null&&(s=hn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:Ys(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};mf.className=\"Dense\";Q.registerClass(mf);var ff=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=zt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to \"Flatten\" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete \"input_shape\" or \"batch_input_shape\" argument to the first layer in your model.`);return[t[0],ko(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat===\"channelsFirst\"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:Ys(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};df.className=\"Activation\";Q.registerClass(df);var hf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),F$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};hf.className=\"RepeatVector\";Q.registerClass(hf);var gf=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};gf.className=\"Reshape\";Q.registerClass(gf);var xf=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error(\"Required configuration field `dims` is missing during Permute constructor call.\");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \\`dims\\` to be an Array, but received ${t.dims} instead.`);let e=fn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error(\"Invalid permutation `dims`: \"+JSON.stringify(t.dims)+\" `dims` must contain consecutive integers starting from 1.\");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=zt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};xf.className=\"Permute\";Q.registerClass(xf);var yf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t),o=-1;return ju(Ws(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=ju(Ws(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};yf.className=\"Masking\";Q.registerClass(yf);var bf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER=\"randomUniform\",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,\"inputDim\"),this.outputDim=t.outputDim,Qe(this.outputDim,\"outputDim\"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight(\"embeddings\",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),Ws(t,It(t))):null)}computeOutputShape(t){if(t=zt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new z(`\"inputLength\" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!==\"int32\"&&(n=Qr(n,\"int32\"));let o=Ay(this.embeddings.read(),R(n,[n.size]));return R(o,zt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};bf.className=\"Embedding\";Q.registerClass(bf);var dl=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new vt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&To(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=js(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=fn(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(fn(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an Array\");if(!Array.isArray(t))throw new z(\"`inputs` should be an Array\");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:sr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new z(\"A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: \"+JSON.stringify(t))}mergeFunction(t){return B(()=>Tm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z(\"A `Concatenate` layer should be called on a list of inputs.\");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z(\"`mask` should be an array for Concatenate\");if(!Array.isArray(t))throw new z(\"`inputs` should be an array for Concatenate\");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new vt(\"batchDot is not implemented for tensors of 4D or higher rank yet\");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e==\"number\"&&(e=[e,e]),r.dtype===\"complex64\"||t.dtype===\"complex64\")throw new vt(\"batchDot is not implemented for complex64-type Tensors yet.\");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new vt(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \\`Dot\\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Dh(s,t[i].shape.length)):o=[Dh(this.axes,e.shape.length),Dh(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),oY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Dh(this.axes,t.length),Dh(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>\"A `Dot` layer should be called on a list of exactly 2 inputs.\");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new vt(\"Dot layer does not support tensors of 4D or higher rank yet.\");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Tf.className=\"Dot\";Q.registerClass(Tf);var kf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return bu(()=>X(km(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};kf.className=\"GaussianNoise\";Q.registerClass(kf);var Ef=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?bu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,km(n.shape,1,s))},()=>n,e.training||!1):n})}};Ef.className=\"GaussianDropout\";Q.registerClass(Ef);var _f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return bu(()=>{let s=St(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=un(Gi(n),this.rate);l=Qr(l,\"float32\");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>St(t),e.training||!1)}return t})}};_f.className=\"AlphaDropout\";Q.registerClass(_f);function Rh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=yx(r,t,e,n,o,s);else if(r.rank===3)i=bx(r,t,e,n,o,s);else if(r.rank===4)i=wx(r,t,e,n,o,s);else throw new vt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function sY(r,t,e,n,o=.001){return B(()=>{let s=Qu(r,n),i=s.mean,a=s.variance;return[Rh(r,i,a,e,t,o),i,a]})}function iY(r,t,e,n,o=.001){return B(()=>{let s=Qu(r,n),i=s.mean,a=s.variance,u=[];for(let d of fn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Rh(r,l,c,m,p,o),i,a]})}function aY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),fn(0,r.rank-1))?sY(r,t,e,n,o):iY(r,t,e,n,o)}var Af=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.movingMeanInitializer=de(t.movingMeanInitializer||\"zeros\"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||\"ones\"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=zt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight(\"gamma\",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight(\"beta\",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight(\"moving_mean\",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight(\"moving_variance\",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=fn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=So(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,fn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Rh(o,b,w,C,N,this.epsilon)}else return Rh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=aY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,E=b.read(),A=D(ct(E,w),N);b.write(ct(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Af.className=\"BatchNormalization\";Q.registerClass(Af);var $f=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis==\"number\"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||\"zeros\"),this.gammaInitializer=de(t.gammaInitializer||\"ones\"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=zt(t);let e=t.length;typeof this.axis==\"number\"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==To(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight(\"gamma\",n,\"float32\",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight(\"beta\",n,\"float32\",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Qu(n,this.axis,!0),l=So(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z(\"spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.\");if(e==null&&(e=dn()),e!==\"channelsLast\"&&e!==\"channelsFirst\")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e===\"channelsFirst\"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],pn(r,n)})}var Df=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?dn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding==\"number\")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]==\"number\")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=zt(t);let e,n;return this.dataFormat===\"channelsFirst\"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>lY(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Df.className=\"ZeroPadding2D\";Q.registerClass(Df);function Cb(r,t,e,n,o,s){return B(()=>{Fe(o),N0(s),mn(n),e==null&&(e=[1,1]),n==null&&(n=\"valid\"),o==null&&(o=dn()),s==null&&(s=\"max\"),r=$h(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=su(r,t,e,a):i=Ql(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,3,1,2])),i})}function vD(r,t,e,n,o,s){return B(()=>{Fe(o),N0(s),mn(n),e==null&&(e=[1,1,1]),n==null&&(n=\"valid\"),o==null&&(o=dn()),s==null&&(s=\"max\"),r=G0(r,o);let i,a=n===\"same\"?\"same\":\"valid\";return s===\"max\"?i=qx(r,t,e,a):i=xx(r,t,e,a),o===\"channelsFirst\"&&(i=Ot(i,[0,4,1,2,3])),i})}var gb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize==\"number\")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]==\"number\")this.poolSize=t.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Qe(this.poolSize,\"poolSize\"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides==\"number\")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]==\"number\")this.strides=t.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Qe(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,mn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=zt(t);let e=kn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=il(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,\"channelsLast\");return Bn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Rf=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,\"max\")}};Rf.className=\"MaxPooling1D\";Q.registerClass(Rf);var Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,\"avg\")}};Ff.className=\"AveragePooling1D\";Q.registerClass(Ff);var xb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Qe(this.poolSize,\"poolSize\"),Qe(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),mn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=zt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Of=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,\"max\")}};Of.className=\"MaxPooling2D\";Q.registerClass(Of);var Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,\"avg\")}};Pf.className=\"AveragePooling2D\";Q.registerClass(Pf);var yb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Qe(this.poolSize,\"poolSize\"),Qe(this.strides,\"strides\"),this.padding=t.padding==null?\"valid\":t.padding,this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),mn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=zt(t);let e=this.dataFormat===\"channelsFirst\"?t[2]:t[1],n=this.dataFormat===\"channelsFirst\"?t[3]:t[2],o=this.dataFormat===\"channelsFirst\"?t[4]:t[3];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),o=kn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat===\"channelsFirst\"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Lf=class extends yb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),vD(t,e,n,o,s,\"max\")}};Lf.className=\"MaxPooling3D\";Q.registerClass(Lf);var Mf=class extends yb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),vD(t,e,n,o,s,\"avg\")}};Mf.className=\"AveragePooling3D\";Q.registerClass(Mf);var bb=class extends Et{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new vt}},zf=class extends bb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Se(n,1)})}};zf.className=\"GlobalAveragePooling1D\";Q.registerClass(zf);var Bf=class extends bb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Bf.className=\"GlobalMaxPooling1D\";Q.registerClass(Bf);var wb=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?\"channelsLast\":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat===\"channelsLast\"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new vt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Vf=class extends wb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Se(n,[1,2]):Se(n,[2,3])})}};Vf.className=\"GlobalAveragePooling2D\";Q.registerClass(Vf);var Gf=class extends wb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat===\"channelsLast\"?Sr(n,[1,2]):Sr(n,[2,3])})}};Gf.className=\"GlobalMaxPooling2D\";Q.registerClass(Gf);var Ib=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=yn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Wf=class extends Ib{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=zt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=zt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),U0((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Wf.className=\"TimeDistributed\";Q.registerClass(Wf);function uY(r){Ki(_$,\"BidirectionalMergeMode\",r)}var cY=\"concat\",Uf=class extends Ib{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=yn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=yn(o),this.forwardLayer.name=\"forward_\"+this.forwardLayer.name,this.backwardLayer.name=\"backward_\"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?cY:t.mergeMode,uY(this.mergeMode),t.weights)throw new vt(\"weights support is not implemented for Bidirectional layer yet.\");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode===\"concat\"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Tr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=W0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new z(\"When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.\");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new vt(\"Support for constants in Bidirectional layers is not implemented yet.\");let u=i[0]instanceof tn;for(let l of i)if(l instanceof tn!==u)throw new z(\"The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors\");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=mr(s,1));let a;return this.mergeMode===\"concat\"?a=Tm([o,s]):this.mergeMode===\"sum\"?a=X(o,s):this.mergeMode===\"ave\"?a=D(.5,X(o,s)):this.mergeMode===\"mul\"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Ks(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ks(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=yn(e.layer);if(delete e.layer,e.numConstants!=null)throw new vt(\"Deserialization of a Bidirectional layer with numConstants present is not supported yet.\");let o=e;return o.layer=n,new t(o)}};Uf.className=\"Bidirectional\";Q.registerClass(Uf);var Hf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!==\"float32\"&&(t=Qr(t,\"float32\")),X(D(t,this.scale),this.offset)))}};Hf.className=\"Rescaling\";Q.registerClass(Hf);var{resizeBilinear:pY,cropAndResize:mY}=so,qf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=qe([t])):l=t;for(let N=0;N{let s=pY(t,[e,n]);return Qr(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=zt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};qf.className=\"CenterCrop\";Q.registerClass(qf);function SD(r,t,e,n){let o=St(r);if(o.dtype!==\"int32\"&&(o=Qr(o,\"int32\")),t===\"int\")return o;let s=o.shape;if(o.rank===0&&(o=sr(o,-1)),t===\"oneHot\"&&o.shape[o.shape.length-1]!==1&&(o=sr(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=[\"multiHot\",\"oneHot\"].includes(t),a=o,u;if(typeof n!=\"undefined\"&&t===\"count\"?u=ph(a,n,e,i):u=ph(a,[],e,i),t!==\"tfIdf\")return u;if(n)return D(u,n);throw new z(\"When outputMode is 'tfIdf', weights must be provided.\")}var Kf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode=\"multiHot\"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=zt(t),t==null?[this.numTokens]:this.outputMode===\"oneHot\"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!==\"int32\"&&(t=Qr(t,\"int32\"));let n;if(typeof e.countWeights!=\"undefined\"){if(this.outputMode!==\"count\")throw new z(`countWeights is not used when outputMode !== count.\n Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=el(t),i=Re(this.numTokens,o).bufferSync().get(0),a=un(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};Kf.className=\"CategoryEncoding\";Q.registerClass(Kf);var dY=[\"bilinear\",\"nearest\"],ND=new Set(dY),jf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ND.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation=\"bilinear\";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=zt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation===\"bilinear\")return so.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation===\"nearest\")return so.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ND]} are supported`)})}};jf.className=\"Resizing\";Q.registerClass(jf);function hY(r){return new Xs(r)}function gY(r){return new Zm(r)}function xY(r){return new jm(r)}function yY(r){return new Xm(r)}function bY(r){return new Ym(r)}function wY(r){return new Qm(r)}function CY(r){return new Jm(r)}function IY(r){return new Nu(r)}function vY(r){return new ul(r)}function SY(r){return new tf(r)}function NY(r){return new cl(r)}function TY(r){return new ef(r)}function kY(r){return new rf(r)}function EY(r){return new nf(r)}function _Y(r){return new of(r)}function AY(r){return new sf(r)}function $Y(r){return new df(r)}function DY(r){return new mf(r)}function RY(r){return new Tc(r)}function FY(r){return new pf(r)}function OY(r){return new ff(r)}function PY(r){return new hf(r)}function LY(r){return new gf(r)}function MY(r){return new xf(r)}function zY(r){return new bf(r)}function BY(r){return new wf(r)}function VY(r){return new If(r)}function GY(r){return new Nf(r)}function WY(r){return new vf(r)}function UY(r){return new Sf(r)}function HY(r){return new Cf(r)}function qY(r){return new Tf(r)}function KY(r){return new Af(r)}function jY(r){return new $f(r)}function XY(r){return new Df(r)}function H0(r){return new Ff(r)}function YY(r){return H0(r)}function ZY(r){return H0(r)}function q0(r){return new Pf(r)}function JY(r){return q0(r)}function QY(r){return q0(r)}function K0(r){return new Mf(r)}function tZ(r){return K0(r)}function eZ(r){return K0(r)}function rZ(r){return new zf(r)}function nZ(r){return new Vf(r)}function TD(r){return new Bf(r)}function kD(r){return new Gf(r)}function ED(r){return new Rf(r)}function _D(r){return new Of(r)}function oZ(r){return new Lf(r)}function sZ(r){return new lf(r)}function iZ(r){return new vc(r)}function aZ(r){return new uf(r)}function lZ(r){return new ml(r)}function uZ(r){return new af(r)}function cZ(r){return new Ic(r)}function pZ(r){return new cf(r)}function mZ(r){return new Nc(r)}function fZ(r){return new En(r)}function dZ(r){return new Sc(r)}function hZ(r){return new Uf(r)}function gZ(r){return new Wf(r)}var xZ=TD,yZ=kD,bZ=ED,wZ=_D;function CZ(r){return new kf(r)}function IZ(r){return new Ef(r)}function vZ(r){return new _f(r)}function SZ(r){return new yf(r)}function NZ(r){return new Hf(r)}function TZ(r){return new qf(r)}function kZ(r){return new jf(r)}function EZ(r){return new Kf(r)}var $D={};Wt($D,{MAPE:()=>zZ,MSE:()=>GZ,binaryAccuracy:()=>_Z,binaryCrossentropy:()=>AZ,categoricalAccuracy:()=>DZ,categoricalCrossentropy:()=>RZ,cosineProximity:()=>PZ,mape:()=>BZ,meanAbsoluteError:()=>LZ,meanAbsolutePercentageError:()=>MZ,meanSquaredError:()=>VZ,mse:()=>WZ,precision:()=>FZ,recall:()=>OZ,sparseCategoricalAccuracy:()=>$Z});function _Z(r,t){return kh(r,t)}function AZ(r,t){return Uy(r,t)}function $Z(r,t){return Hy(r,t)}function DZ(r,t){return Eh(r,t)}function RZ(r,t){return _h(r,t)}function FZ(r,t){return R0(r,t)}function OZ(r,t){return eD(r,t)}function PZ(r,t){return Th(r,t)}function LZ(r,t){return Gm(r,t)}function MZ(r,t){return Cu(r,t)}function zZ(r,t){return Cu(r,t)}function BZ(r,t){return Cu(r,t)}function VZ(r,t){return Xi(r,t)}function GZ(r,t){return Xi(r,t)}function WZ(r,t){return Xi(r,t)}var DD={};Wt(DD,{modelFromJSON:()=>gD});var RD={};Wt(RD,{l1:()=>HZ,l1l2:()=>UZ,l2:()=>qZ});function UZ(r){return new Iu(r)}function HZ(r){return wD(r)}function qZ(r){return CD(r)}var Sb=class extends ll{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Gn))throw new Error(\"model must be a LayersModel, not some other Container\");this.model=t}};function vb(r,t){return rt}var Nb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new vt(\"restoreBestWeights = True is not implemented in EarlyStopping yet.\");this.monitor=t.monitor||\"val_loss\",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||\"auto\",this.baseline=t.baseline,[\"auto\",\"min\",\"max\"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode=\"auto\"),this.mode===\"min\"?this.monitorFunc=vb:this.mode===\"max\"?this.monitorFunc=FD:this.monitor.indexOf(\"acc\")!==-1?this.monitorFunc=FD:this.monitorFunc=vb,this.monitorFunc===vb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===vb?1/0:-1/0}async onEpochEnd(t,e){await ji(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function KZ(r){return new Nb(r)}var jZ={earlyStopping:KZ};var XZ=M();XZ.registerFlag(\"KEEP_INTERMEDIATE_TENSORS\",()=>!1,r=>{r&&console.warn(\"Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.\")});var ao;(function(r){r[r.DT_INVALID=0]=\"DT_INVALID\",r[r.DT_FLOAT=1]=\"DT_FLOAT\",r[r.DT_DOUBLE=2]=\"DT_DOUBLE\",r[r.DT_INT32=3]=\"DT_INT32\",r[r.DT_UINT8=4]=\"DT_UINT8\",r[r.DT_INT16=5]=\"DT_INT16\",r[r.DT_INT8=6]=\"DT_INT8\",r[r.DT_STRING=7]=\"DT_STRING\",r[r.DT_COMPLEX64=8]=\"DT_COMPLEX64\",r[r.DT_INT64=9]=\"DT_INT64\",r[r.DT_BOOL=10]=\"DT_BOOL\",r[r.DT_QINT8=11]=\"DT_QINT8\",r[r.DT_QUINT8=12]=\"DT_QUINT8\",r[r.DT_QINT32=13]=\"DT_QINT32\",r[r.DT_BFLOAT16=14]=\"DT_BFLOAT16\",r[r.DT_QINT16=15]=\"DT_QINT16\",r[r.DT_QUINT16=16]=\"DT_QUINT16\",r[r.DT_UINT16=17]=\"DT_UINT16\",r[r.DT_COMPLEX128=18]=\"DT_COMPLEX128\",r[r.DT_HALF=19]=\"DT_HALF\",r[r.DT_RESOURCE=20]=\"DT_RESOURCE\",r[r.DT_VARIANT=21]=\"DT_VARIANT\",r[r.DT_UINT32=22]=\"DT_UINT32\",r[r.DT_UINT64=23]=\"DT_UINT64\",r[r.DT_FLOAT_REF=101]=\"DT_FLOAT_REF\",r[r.DT_DOUBLE_REF=102]=\"DT_DOUBLE_REF\",r[r.DT_INT32_REF=103]=\"DT_INT32_REF\",r[r.DT_UINT8_REF=104]=\"DT_UINT8_REF\",r[r.DT_INT16_REF=105]=\"DT_INT16_REF\",r[r.DT_INT8_REF=106]=\"DT_INT8_REF\",r[r.DT_STRING_REF=107]=\"DT_STRING_REF\",r[r.DT_COMPLEX64_REF=108]=\"DT_COMPLEX64_REF\",r[r.DT_INT64_REF=109]=\"DT_INT64_REF\",r[r.DT_BOOL_REF=110]=\"DT_BOOL_REF\",r[r.DT_QINT8_REF=111]=\"DT_QINT8_REF\",r[r.DT_QUINT8_REF=112]=\"DT_QUINT8_REF\",r[r.DT_QINT32_REF=113]=\"DT_QINT32_REF\",r[r.DT_BFLOAT16_REF=114]=\"DT_BFLOAT16_REF\",r[r.DT_QINT16_REF=115]=\"DT_QINT16_REF\",r[r.DT_QUINT16_REF=116]=\"DT_QUINT16_REF\",r[r.DT_UINT16_REF=117]=\"DT_UINT16_REF\",r[r.DT_COMPLEX128_REF=118]=\"DT_COMPLEX128_REF\",r[r.DT_HALF_REF=119]=\"DT_HALF_REF\",r[r.DT_RESOURCE_REF=120]=\"DT_RESOURCE_REF\",r[r.DT_VARIANT_REF=121]=\"DT_VARIANT_REF\",r[r.DT_UINT32_REF=122]=\"DT_UINT32_REF\",r[r.DT_UINT64_REF=123]=\"DT_UINT64_REF\"})(ao||(ao={}));var OD;(function(r){let t;(function(e){e[e.LEGACY=0]=\"LEGACY\",e[e.V1=1]=\"V1\",e[e.V2=2]=\"V2\"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(OD||(OD={}));var j0={};function ZZ(r,t){let e={tfOpName:r,category:\"custom\",inputs:[],attrs:[],customExecutor:t};j0[r]=e}function Tb(r){return j0[r]}function JZ(r){delete j0[r]}function I(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type===\"tensor\")return Cr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type===\"tensors\")return t.inputNames.slice(a,u).map(m=>Cr(m,e,n,o));let l=Cr(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type===\"number\"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function Cr(r,t,e,n){let[o,s]=bn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[kb(o,a)]);return i!==void 0?t[kb(o,i)][s]:void 0}function PD(r,t,e){return t[kb(r,e.currentContextId)]}function Qs(r,t){let[e,n,o]=bn(r);return[kb(e,t&&t.currentContextId),n,o]}function kb(r,t){return t?`${r}-${t}`:r}function bn(r){let t=r.split(\":\");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Fh(r,t,e){let n=I(\"pad\",r,t,e);if(n===\"explicit\"){n=I(\"explicitPaddings\",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function ti(r){return r.kept?r:an(r)}var X0={};Wt(X0,{json:()=>QZ});var QZ=[{tfOpName:\"Add\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AddV2\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AddN\",category:\"arithmetic\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}]},{tfOpName:\"BiasAdd\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"Sub\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"RealDiv\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Div\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"DivNoNan\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"FloorDiv\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Mul\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Maximum\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Minimum\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Pow\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SquaredDifference\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Mod\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"FloorMod\",category:\"arithmetic\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var Y0={};Wt(Y0,{json:()=>t7});var t7=[{tfOpName:\"Abs\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Acos\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Asin\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atan2\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Ceil\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ClipByValue\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"clipValueMin\",type:\"number\"},{start:2,name:\"clipValueMax\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Complex\",category:\"basic_math\",inputs:[{start:0,name:\"real\",type:\"tensor\"},{start:1,name:\"imag\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ComplexAbs\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cos\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Cosh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Elu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Exp\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Floor\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Log\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Imag\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"outputType\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Neg\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Real\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"outputType\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Prelu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"alpha\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Relu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Relu6\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Selu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sigmoid\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sin\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sinh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sqrt\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Rsqrt\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Square\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Tan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Tanh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Sign\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Round\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Expm1\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Log1p\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Reciprocal\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Softplus\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Asinh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Acosh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Atanh\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Erf\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Prod\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axes\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LeakyRelu\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"alpha\",name:\"alpha\",type:\"number\",defaultValue:.2},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"IsNan\",category:\"basic_math\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var Z0={};Wt(Z0,{json:()=>e7});var e7=[{tfOpName:\"EmptyTensorList\",category:\"control\",inputs:[{start:0,name:\"elementShape\",type:\"shape\"},{start:1,name:\"maxNumElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"LoopCond\",category:\"control\",inputs:[{start:0,name:\"pred\",type:\"tensor\"}]},{tfOpName:\"Switch\",category:\"control\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"pred\",type:\"tensor\"}]},{tfOpName:\"Merge\",category:\"control\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}]},{tfOpName:\"Enter\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"frame_name\",name:\"frameName\",type:\"string\"},{tfName:\"is_constant\",name:\"isConstant\",type:\"bool\"}]},{tfOpName:\"Exit\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"NextIteration\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayV3\",category:\"control\",inputs:[{start:0,name:\"size\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"dynamic_size\",name:\"dynamicSize\",type:\"bool\"},{tfName:\"clear_after_read\",name:\"clearAfterRead\",type:\"bool\"},{tfName:\"identical_element_shapes\",name:\"identicalElementShapes\",type:\"bool\"},{tfName:\"tensor_array_name\",name:\"name\",type:\"string\"}]},{tfOpName:\"TensorArrayWriteV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"tensor\",type:\"tensor\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayReadV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"TensorArrayGatherV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"}]},{tfOpName:\"TensorArrayScatterV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"tensor\",type:\"tensor\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TensorArrayConcatV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"element_shape_except0\",name:\"elementShapeExcept0\",type:\"shape\",notSupported:!0}]},{tfOpName:\"TensorArraySplitV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"tensor\",type:\"tensor\"},{start:2,name:\"lengths\",type:\"number[]\"},{start:3,name:\"flowIn\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TensorArraySizeV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"},{start:1,name:\"flowIn\",type:\"number\"}]},{tfOpName:\"TensorArrayCloseV3\",category:\"control\",inputs:[{start:0,name:\"tensorArrayId\",type:\"tensor\"}]},{tfOpName:\"StatelessIf\",category:\"control\",inputs:[{start:0,name:\"cond\",type:\"tensor\"},{start:1,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"then_branch\",name:\"thenBranch\",type:\"func\"},{tfName:\"else_branch\",name:\"elseBranch\",type:\"func\"}]},{tfOpName:\"If\",category:\"control\",inputs:[{start:0,name:\"cond\",type:\"tensor\"},{start:1,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"then_branch\",name:\"thenBranch\",type:\"func\"},{tfName:\"else_branch\",name:\"elseBranch\",type:\"func\"}]},{tfOpName:\"StatelessWhile\",category:\"control\",inputs:[{start:0,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"cond\",name:\"cond\",type:\"func\"},{tfName:\"body\",name:\"body\",type:\"func\"}]},{tfOpName:\"While\",category:\"control\",inputs:[{start:0,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"cond\",name:\"cond\",type:\"func\"},{tfName:\"body\",name:\"body\",type:\"func\"}]},{tfOpName:\"TensorListScatter\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListScatterV2\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"},{start:3,name:\"numElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListGather\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"indices\",type:\"number[]\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListGetItem\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListSetItem\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"index\",type:\"number\"},{start:2,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListReserve\",category:\"control\",inputs:[{start:0,name:\"elementShape\",type:\"shape\"},{start:1,name:\"numElements\",type:\"number\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListFromTensor\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListStack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"},{tfName:\"num_elements\",name:\"numElements\",type:\"dtype\"}]},{tfOpName:\"TensorListSplit\",category:\"control\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"},{start:2,name:\"lengths\",type:\"number[]\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListConcat\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}],attrs:[{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListConcatV2\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}],attrs:[{tfName:\"element_shape\",name:\"elementShape\",type:\"shape\"},{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListPopBack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"elementShape\",type:\"shape\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListPushBack\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"element_dtype\",name:\"elementDType\",type:\"dtype\"}]},{tfOpName:\"TensorListLength\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"}]},{tfOpName:\"TensorListResize\",category:\"control\",inputs:[{start:0,name:\"tensorListId\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"}]}];var J0={};Wt(J0,{json:()=>r7});var r7=[{tfOpName:\"AvgPool\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPool\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[],notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPoolWithArgmax\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"include_batch_in_index\",name:\"includeBatchInIndex\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"AvgPool3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MaxPool3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"ksize\",name:\"kernelSize\",type:\"number[]\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Conv1D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"stride\",name:\"stride\",type:\"number\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NWC\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"dilation\",name:\"dilation\",type:\"number\",defaultValue:1}]},{tfOpName:\"Conv2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"useCudnnOnGpu\",name:\"useCudnnOnGpu\",type:\"bool\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"_FusedConv2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"use_cudnn_on_gpu\",name:\"useCudnnOnGpu\",type:\"bool\",defaultValue:!0},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",defaultValue:[1,1,1,1]},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:1e-4},{tfName:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2}]},{tfOpName:\"Conv2DBackpropInput\",category:\"convolution\",inputs:[{start:2,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:0,name:\"outputShape\",type:\"number[]\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",notSupported:!0}]},{tfOpName:\"DepthwiseConv2d\",category:\"convolution\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"DepthwiseConv2dNative\",category:\"convolution\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"FusedDepthwiseConv2dNative\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\",defaultValue:[1,1,1,1]},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"explicit_paddings\",name:\"explicitPaddings\",type:\"number[]\",defaultValue:[]}]},{tfOpName:\"Conv3D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",defaultValue:\"NHWC\"},{tfName:\"dilations\",name:\"dilations\",type:\"number[]\"}]},{tfOpName:\"Dilation2D\",category:\"convolution\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"filter\",type:\"tensor\"}],attrs:[{tfName:\"strides\",name:\"strides\",type:\"number[]\"},{tfName:\"rates\",name:\"dilations\",type:\"number[]\"},{tfName:\"padding\",name:\"pad\",type:\"string\"}]}];var Q0={};Wt(Q0,{json:()=>n7});var n7=[{tfOpName:\"Fill\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"},{start:1,name:\"value\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"LinSpace\",category:\"creation\",inputs:[{start:0,name:\"start\",type:\"number\"},{start:1,name:\"stop\",type:\"number\"},{start:2,name:\"num\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"OneHot\",category:\"creation\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"depth\",type:\"number\"},{start:2,name:\"onValue\",type:\"number\",defaultValue:1},{start:3,name:\"offValue\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",notSupported:!0},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Ones\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"OnesLike\",category:\"creation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"RandomStandardNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"RandomUniform\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"minval\",name:\"minval\",type:\"number\",defaultValue:0},{tfName:\"maxval\",name:\"maxval\",type:\"number\",defaultValue:1},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"seed\",name:\"seed\",type:\"number\",defaultValue:0},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"Range\",category:\"creation\",inputs:[{start:0,name:\"start\",type:\"number\"},{start:1,name:\"stop\",type:\"number\"},{start:2,name:\"step\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"Tidx\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"TruncatedNormal\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"means\",name:\"mean\",type:\"number\",defaultValue:0},{tfName:\"stddev\",name:\"stdDev\",type:\"number\",defaultValue:1},{tfName:\"seed\",name:\"seed\",type:\"number\"},{tfName:\"seed2\",name:\"seed2\",type:\"number\",defaultValue:0,notSupported:!0},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"},{tfName:\"T\",name:\"T\",type:\"number\",notSupported:!0}]},{tfOpName:\"Zeros\",category:\"creation\",inputs:[{start:0,name:\"shape\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"ZerosLike\",category:\"creation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Multinomial\",category:\"creation\",inputs:[{start:0,name:\"logits\",type:\"tensor\"},{start:1,name:\"numSamples\",type:\"number\"}],attrs:[{tfName:\"seed\",name:\"seed\",type:\"number\"},{tfName:\"seed2\",name:\"seed2\",type:\"number\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\"},{tfName:\"output_dtype\",name:\"output_dtype\",type:\"dtype\"}]}];var tN={};Wt(tN,{json:()=>o7});var o7=[{tfOpName:\"NonMaxSuppressionV2\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"}]},{tfOpName:\"NonMaxSuppressionV3\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"}]},{tfOpName:\"NonMaxSuppressionV4\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0},{tfName:\"T_threshold\",name:\"threshold\",type:\"dtype\",notSupported:!0},{tfName:\"pad_to_max_output_size\",name:\"padToMaxOutputSize\",type:\"bool\"}]},{tfOpName:\"NonMaxSuppressionV5\",category:\"dynamic\",inputs:[{start:0,name:\"boxes\",type:\"tensor\"},{start:1,name:\"scores\",type:\"tensor\"},{start:2,name:\"maxOutputSize\",type:\"number\"},{start:3,name:\"iouThreshold\",type:\"number\"},{start:4,name:\"scoreThreshold\",type:\"number\"},{start:5,name:\"softNmsSigma\",type:\"number\"}]},{tfOpName:\"Where\",category:\"dynamic\",inputs:[{start:0,name:\"condition\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ListDiff\",category:\"dynamic\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"y\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var eN={};Wt(eN,{json:()=>s7});var s7=[{tfOpName:\"LowerBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{tfOpName:\"TopKV2\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"k\",type:\"number\"}],attrs:[{tfName:\"sorted\",name:\"sorted\",type:\"bool\"}]},{tfOpName:\"UpperBound\",category:\"evaluation\",inputs:[{start:0,name:\"sortedSequence\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"}]},{tfOpName:\"Unique\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"UniqueV2\",category:\"evaluation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]}];var rN={};Wt(rN,{json:()=>i7});var i7=[{tfOpName:\"PlaceholderWithDefault\",category:\"graph\",inputs:[{start:0,name:\"default\",type:\"tensor\"}],attrs:[{tfName:\"shape\",name:\"shape\",type:\"shape\"},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Placeholder\",category:\"graph\",attrs:[{tfName:\"shape\",name:\"shape\",type:\"shape\"},{tfName:\"dtype\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"Const\",category:\"graph\"},{tfOpName:\"Identity\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"IdentityN\",category:\"graph\",inputs:[{start:0,end:0,name:\"x\",type:\"tensors\"}]},{tfOpName:\"Snapshot\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Rank\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Size\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"Shape\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"ShapeN\",category:\"graph\",inputs:[{start:0,end:0,name:\"x\",type:\"tensors\"}]},{tfOpName:\"Print\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"data\",type:\"tensors\"}],attrs:[{tfName:\"message\",name:\"message\",type:\"string\"},{tfName:\"first_n\",name:\"firstN\",type:\"number\",notSupported:!0},{tfName:\"summarize\",name:\"summarize\",type:\"number\",defaultValue:3}]},{tfOpName:\"NoOp\",category:\"graph\",inputs:[]},{tfOpName:\"StopGradient\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"FakeQuantWithMinMaxVars\",category:\"graph\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"min\",name:\"min\",type:\"number\"},{tfName:\"max\",name:\"max\",type:\"number\"}]}];var nN={};Wt(nN,{json:()=>a7});var a7=[{tfOpName:\"HashTable\",category:\"hash_table\",inputs:[],attrs:[{tfName:\"shared_name\",name:\"sharedName\",type:\"string\"},{tfName:\"use_node_name_sharing\",name:\"useNodeNameSharing\",type:\"bool\"},{tfName:\"key_dtype\",name:\"keyDType\",type:\"dtype\"},{tfName:\"value_dtype\",name:\"valueDType\",type:\"dtype\"}]},{tfOpName:\"HashTableV2\",category:\"hash_table\",inputs:[],attrs:[{tfName:\"shared_name\",name:\"sharedName\",type:\"string\"},{tfName:\"use_node_name_sharing\",name:\"useNodeNameSharing\",type:\"bool\"},{tfName:\"key_dtype\",name:\"keyDType\",type:\"dtype\"},{tfName:\"value_dtype\",name:\"valueDType\",type:\"dtype\"}]},{tfOpName:\"LookupTableImport\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableImportV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableFind\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableFindV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"Tin\",name:\"tIn\",type:\"dtype\",notSupported:!0},{tfName:\"Tout\",name:\"tOut\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LookupTableSize\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"}]},{tfOpName:\"LookupTableSizeV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"}]},{tfOpName:\"InitializeTable\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]},{tfOpName:\"InitializeTableV2\",category:\"hash_table\",inputs:[{start:0,name:\"tableHandle\",type:\"tensor\"},{start:1,name:\"keys\",type:\"tensor\"},{start:2,name:\"values\",type:\"tensor\"}]}];var oN={};Wt(oN,{json:()=>l7});var l7=[{tfOpName:\"ResizeBilinear\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"size\",type:\"number[]\"}],attrs:[{tfName:\"align_corners\",name:\"alignCorners\",type:\"bool\"},{tfName:\"half_pixel_centers\",name:\"halfPixelCenters\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"ResizeNearestNeighbor\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"size\",type:\"number[]\"}],attrs:[{tfName:\"align_corners\",name:\"alignCorners\",type:\"bool\"},{tfName:\"half_pixel_centers\",name:\"halfPixelCenters\",type:\"bool\"},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"CropAndResize\",category:\"image\",inputs:[{start:0,name:\"image\",type:\"tensor\"},{start:1,name:\"boxes\",type:\"tensor\"},{start:2,name:\"boxInd\",type:\"tensor\"},{start:3,name:\"cropSize\",type:\"number[]\"}],attrs:[{tfName:\"method\",name:\"method\",type:\"string\"},{tfName:\"extrapolation_value\",name:\"extrapolationValue\",type:\"number\"}]},{tfOpName:\"ImageProjectiveTransformV3\",category:\"image\",inputs:[{start:0,name:\"images\",type:\"tensor\"},{start:1,name:\"transforms\",type:\"tensor\"},{start:2,name:\"outputShape\",type:\"number[]\"},{start:3,name:\"fillValue\",type:\"number\"}],attrs:[{tfName:\"interpolation\",name:\"interpolation\",type:\"string\"},{tfName:\"fill_mode\",name:\"fillMode\",type:\"string\"}]}];var sN={};Wt(sN,{json:()=>u7});var u7=[{tfOpName:\"Equal\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"NotEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Greater\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"GreaterEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Less\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LessEqual\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalAnd\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalNot\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"LogicalOr\",category:\"logical\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Select\",category:\"logical\",inputs:[{start:0,name:\"condition\",type:\"tensor\"},{start:1,name:\"a\",type:\"tensor\"},{start:2,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SelectV2\",category:\"logical\",inputs:[{start:0,name:\"condition\",type:\"tensor\"},{start:1,name:\"a\",type:\"tensor\"},{start:2,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]}];var iN={};Wt(iN,{json:()=>c7});var c7=[{tfOpName:\"_FusedMatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"},{start:2,end:0,name:\"args\",type:\"tensors\"}],attrs:[{tfName:\"num_args\",name:\"numArgs\",type:\"number\"},{tfName:\"fused_ops\",name:\"fusedOps\",type:\"string[]\",defaultValue:[]},{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:1e-4},{tfName:\"transpose_a\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"transpose_b\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"leakyrelu_alpha\",name:\"leakyreluAlpha\",type:\"number\",defaultValue:.2},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"MatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"transpose_a\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"transpose_b\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"BatchMatMul\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"adj_x\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"adj_y\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"BatchMatMulV2\",category:\"matrices\",inputs:[{start:0,name:\"a\",type:\"tensor\"},{start:1,name:\"b\",type:\"tensor\"}],attrs:[{tfName:\"adj_x\",name:\"transposeA\",type:\"bool\",defaultValue:!1},{tfName:\"adj_y\",name:\"transposeB\",type:\"bool\",defaultValue:!1},{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Transpose\",category:\"matrices\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"perm\",type:\"number[]\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"Einsum\",category:\"matrices\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"equation\",name:\"equation\",type:\"string\"},{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2},{tfName:\"T\",name:\"dtype\",type:\"dtype\"}]}];var aN={};Wt(aN,{json:()=>p7});var p7=[{tfOpName:\"EuclideanNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\",defaultValue:!1}]},{tfOpName:\"FusedBatchNorm\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"FusedBatchNormV2\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"FusedBatchNormV3\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"scale\",type:\"tensor\"},{start:2,name:\"offset\",type:\"tensor\"},{start:3,name:\"mean\",type:\"tensor\"},{start:4,name:\"variance\",type:\"tensor\"}],attrs:[{tfName:\"epsilon\",name:\"epsilon\",type:\"number\",defaultValue:.001},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\",notSupported:!0}]},{tfOpName:\"LRN\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"depth_radius\",name:\"radius\",type:\"number\",defaultValue:5},{tfName:\"bias\",name:\"bias\",type:\"number\",defaultValue:1},{tfName:\"alpha\",name:\"alpha\",type:\"number\",defaultValue:1},{tfName:\"beta\",name:\"beta\",type:\"number\",defaultValue:.5}]},{tfOpName:\"Softmax\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"LogSoftmax\",category:\"normalization\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"SparseToDense\",category:\"normalization\",inputs:[{start:0,name:\"sparseIndices\",type:\"tensor\"},{start:1,name:\"outputShape\",type:\"number[]\"},{start:2,name:\"sparseValues\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",defaultValue:!0,notSupported:!0}]}];var lN={};Wt(lN,{json:()=>m7});var m7=[{tfOpName:\"Bincount\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"},{start:2,name:\"weights\",type:\"tensor\"}]},{tfOpName:\"DenseBincount\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"size\",type:\"number\"},{start:2,name:\"weights\",type:\"tensor\"}],attrs:[{tfName:\"binary_output\",name:\"binaryOutput\",type:\"bool\"}]},{tfOpName:\"Max\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Mean\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Min\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Sum\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"All\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Any\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"ArgMax\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"ArgMin\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"Prod\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}],attrs:[{tfName:\"keep_dims\",name:\"keepDims\",type:\"bool\"}]},{tfOpName:\"Cumprod\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"exclusive\",name:\"exclusive\",type:\"bool\"},{tfName:\"reverse\",name:\"reverse\",type:\"bool\"}]},{tfOpName:\"Cumsum\",category:\"reduction\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"exclusive\",name:\"exclusive\",type:\"bool\"},{tfName:\"reverse\",name:\"reverse\",type:\"bool\"}]}];var uN={};Wt(uN,{json:()=>f7});var f7=[{tfOpName:\"ConcatV2\",category:\"slice_join\",inputs:[{start:0,end:-1,name:\"tensors\",type:\"tensors\"},{start:-1,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2}]},{tfOpName:\"Concat\",category:\"slice_join\",inputs:[{start:1,end:0,name:\"tensors\",type:\"tensors\"},{start:0,name:\"axis\",type:\"number\"}],attrs:[{tfName:\"N\",name:\"n\",type:\"number\",defaultValue:2}]},{tfOpName:\"GatherV2\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"axis\",type:\"number\",defaultValue:0}],attrs:[{tfName:\"batch_dims\",name:\"batchDims\",type:\"number\",defaultValue:0}]},{tfOpName:\"Gather\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",notSupported:!0}]},{tfOpName:\"Reverse\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"dims\",type:\"bool[]\"}]},{tfOpName:\"ReverseV2\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number[]\"}]},{tfOpName:\"Slice\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"begin\",type:\"number[]\"},{start:2,name:\"size\",type:\"number[]\"}]},{tfOpName:\"StridedSlice\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"begin\",type:\"number[]\"},{start:2,name:\"end\",type:\"number[]\"},{start:3,name:\"strides\",type:\"number[]\"}],attrs:[{tfName:\"begin_mask\",name:\"beginMask\",type:\"number\",defaultValue:0},{tfName:\"end_mask\",name:\"endMask\",type:\"number\",defaultValue:0},{tfName:\"new_axis_mask\",name:\"newAxisMask\",type:\"number\",defaultValue:0},{tfName:\"ellipsis_mask\",name:\"ellipsisMask\",type:\"number\",defaultValue:0},{tfName:\"shrink_axis_mask\",name:\"shrinkAxisMask\",type:\"number\",defaultValue:0}]},{tfOpName:\"Pack\",category:\"slice_join\",inputs:[{start:0,end:0,name:\"tensors\",type:\"tensors\"}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",defaultValue:0}]},{tfOpName:\"Unpack\",category:\"slice_join\",inputs:[{start:0,name:\"tensor\",type:\"tensor\"}],attrs:[{tfName:\"axis\",name:\"axis\",type:\"number\",defaultValue:0},{tfName:\"num\",name:\"num\",type:\"number\",defaultValue:0,notSupported:!0}]},{tfOpName:\"Tile\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"reps\",type:\"number[]\"}]},{tfOpName:\"Split\",category:\"slice_join\",inputs:[{start:0,name:\"axis\",type:\"number\",defaultValue:0},{start:1,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"num_split\",name:\"numOrSizeSplits\",type:\"number\",defaultValue:1}]},{tfOpName:\"SplitV\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"numOrSizeSplits\",type:\"number[]\"},{start:2,name:\"axis\",type:\"number\",defaultValue:0}]},{tfOpName:\"ScatterNd\",category:\"slice_join\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"shape\",type:\"number[]\"}]},{tfOpName:\"GatherNd\",category:\"slice_join\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"}]},{tfOpName:\"SparseToDense\",category:\"slice_join\",inputs:[{start:0,name:\"sparseIndices\",type:\"tensor\"},{start:1,name:\"outputShape\",type:\"number[]\"},{start:2,name:\"sparseValues\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}],attrs:[{tfName:\"validate_indices\",name:\"validateIndices\",type:\"bool\",defaultValue:!1,notSupported:!0}]}];var cN={};Wt(cN,{json:()=>d7});var d7=[{tfOpName:\"SparseFillEmptyRows\",category:\"sparse\",inputs:[{start:0,name:\"indices\",type:\"tensor\"},{start:1,name:\"values\",type:\"tensor\"},{start:2,name:\"denseShape\",type:\"tensor\"},{start:3,name:\"defaultValue\",type:\"tensor\"}]},{tfOpName:\"SparseReshape\",category:\"sparse\",inputs:[{start:0,name:\"inputIndices\",type:\"tensor\"},{start:1,name:\"inputShape\",type:\"tensor\"},{start:2,name:\"newShape\",type:\"tensor\"}],attrs:[{tfName:\"T\",name:\"dtype\",type:\"dtype\",notSupported:!0}]},{tfOpName:\"SparseSegmentMean\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]},{tfOpName:\"SparseSegmentSum\",category:\"sparse\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"indices\",type:\"tensor\"},{start:2,name:\"segmentIds\",type:\"tensor\"}]}];var pN={};Wt(pN,{json:()=>h7});var h7=[{tfOpName:\"FFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"IFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"}]},{tfOpName:\"RFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"fft_length\",type:\"number\",notSupported:!0}]},{tfOpName:\"IRFFT\",category:\"spectral\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"fft_length\",type:\"number\",notSupported:!0}]}];var mN={};Wt(mN,{json:()=>g7});var g7=[{tfOpName:\"StringNGrams\",category:\"string\",inputs:[{start:0,name:\"data\",type:\"tensor\"},{start:1,name:\"dataSplits\",type:\"tensor\"}],attrs:[{tfName:\"separator\",name:\"separator\",type:\"string\"},{tfName:\"ngram_widths\",name:\"nGramWidths\",type:\"number[]\"},{tfName:\"left_pad\",name:\"leftPad\",type:\"string\"},{tfName:\"right_pad\",name:\"rightPad\",type:\"string\"},{tfName:\"pad_width\",name:\"padWidth\",type:\"number\"},{tfName:\"preserve_short_sequences\",name:\"preserveShortSequences\",type:\"bool\"}],outputs:[\"ngrams\",\"ngrams_splits\"]},{tfOpName:\"StringSplit\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"},{start:1,name:\"delimiter\",type:\"tensor\"}],attrs:[{tfName:\"skip_empty\",name:\"skipEmpty\",type:\"bool\"}],outputs:[\"indices\",\"values\",\"shape\"]},{tfOpName:\"StringToHashBucketFast\",category:\"string\",inputs:[{start:0,name:\"input\",type:\"tensor\"}],attrs:[{tfName:\"num_buckets\",name:\"numBuckets\",type:\"number\"}]}];var fN={};Wt(fN,{json:()=>x7});var x7=[{tfOpName:\"Cast\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"SrcT\",name:\"sdtype\",type:\"dtype\",notSupported:!0},{tfName:\"DstT\",name:\"dtype\",type:\"dtype\"}]},{tfOpName:\"ExpandDims\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"axis\",type:\"number\"}]},{tfOpName:\"MirrorPad\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"}],attrs:[{tfName:\"mode\",name:\"mode\",type:\"string\"}]},{tfOpName:\"Pad\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"}],attrs:[{tfName:\"constant_value\",name:\"constantValue\",type:\"number\",defaultValue:0}]},{tfOpName:\"PadV2\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"padding\",type:\"number[]\"},{start:2,name:\"constantValue\",type:\"number\",defaultValue:0}]},{tfOpName:\"Reshape\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"shape\",type:\"number[]\"}]},{tfOpName:\"Squeeze\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"axis\",tfDeprecatedName:\"squeeze_dims\",name:\"axis\",type:\"number[]\"}]},{tfOpName:\"SpaceToBatchND\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"blockShape\",type:\"number[]\"},{start:2,name:\"paddings\",type:\"number[]\"}]},{tfOpName:\"BatchToSpaceND\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"blockShape\",type:\"number[]\"},{start:2,name:\"crops\",type:\"number[]\"}]},{tfOpName:\"DepthToSpace\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"}],attrs:[{tfName:\"block_size\",name:\"blockSize\",type:\"number\"},{tfName:\"data_format\",name:\"dataFormat\",type:\"string\"}]},{tfOpName:\"BroadcastTo\",category:\"transformation\",inputs:[{start:0,name:\"x\",type:\"tensor\"},{start:1,name:\"shape\",type:\"number[]\"}],attrs:[]},{tfOpName:\"BroadcastArgs\",category:\"transformation\",inputs:[{start:0,name:\"s0\",type:\"tensor\"},{start:1,name:\"s1\",type:\"tensor\"}],attrs:[]}];var Oh=class{constructor(){let t=[X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN,pN,mN,fN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith(\"Placeholder\")?o.push(h[g.name]):g.op===\"Const\"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=Qs(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(C);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=Qs(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=Qs(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Tb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith(\"^\")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case\"string\":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"string[]\":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number\":a=Ab(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"number[]\":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool\":a=_b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"bool[]\":a=Lb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Lb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape\":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"shape[]\":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype\":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"dtype[]\":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"func\":a=LD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=LD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case\"tensor\":case\"tensors\":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op===\"Const\"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=Qs(p.name),f={name:m,op:\"Placeholder\",inputs:[],inputNames:[],category:\"graph\",inputParams:{},attrParams:{dtype:{value:dN(p.type),type:\"dtype\"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=Qs(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=Qs(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function y7(r){let t=M().global;if(typeof t.atob!=\"undefined\")return t.atob(r);if(typeof Buffer!=\"undefined\")return new Buffer(r,\"base64\").toString();throw new Error(\"Unable to decode base64 in this environment. Missing built-in atob() or Buffer()\")}function MD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):y7(r);return t?e:e.toLowerCase()}function Eb(r,t,e,n=!1){let o=r[t];return o!=null?MD(o.s,n):e}function _b(r,t,e){let n=r[t];return n?n.b:e}function Ab(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o==\"number\"?o:parseInt(o,10)}function dN(r){switch(typeof r==\"string\"&&(r=ao[r]),r){case ao.DT_FLOAT:case ao.DT_HALF:return\"float32\";case ao.DT_INT32:case ao.DT_INT64:case ao.DT_INT8:case ao.DT_UINT8:return\"int32\";case ao.DT_BOOL:return\"bool\";case ao.DT_DOUBLE:return\"float32\";case ao.DT_STRING:return\"string\";default:return null}}function LD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function $b(r,t,e){let n=r[t];return n&&n.type?dN(n.type):e}function Db(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>dN(o)):e}function zD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size==\"number\"?t.size:parseInt(t.size,10)):[]}function Rb(r,t,e){let n=r[t];return n&&n.shape?zD(n.shape):e}function Fb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o==\"number\"?o:parseInt(o,10)):e}function Ob(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>MD(s,n)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>zD(o)):e}function Lb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Mb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return Cr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return Cr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Ab(this.node.rawAttrs,t,e);if(n.s!=null)return Eb(this.node.rawAttrs,t,e);if(n.b!=null)return _b(this.node.rawAttrs,t,e);if(n.shape!=null)return Rb(this.node.rawAttrs,t,e);if(n.type!=null)return $b(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Lb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Db(this.node.rawAttrs,t,e)}return e}};var se={};Wt(se,{OP_SCOPE_SUFFIX:()=>AS,abs:()=>Ee,acos:()=>lx,acosh:()=>ux,add:()=>X,addN:()=>BE,all:()=>Jp,any:()=>ju,argMax:()=>Ri,argMin:()=>cx,asin:()=>px,asinh:()=>mx,atan:()=>fx,atan2:()=>dx,atanh:()=>hx,avgPool:()=>Ql,avgPool3d:()=>xx,basicLSTMCell:()=>WE,batchNorm:()=>Oi,batchNorm2d:()=>yx,batchNorm3d:()=>bx,batchNorm4d:()=>wx,batchToSpaceND:()=>tu,bincount:()=>Cx,booleanMaskAsync:()=>l6,broadcastArgs:()=>HE,broadcastTo:()=>Pi,buffer:()=>wt,cast:()=>J,ceil:()=>Ix,clipByValue:()=>vr,clone:()=>an,complex:()=>In,concat:()=>oe,concat1d:()=>vx,concat2d:()=>Sx,concat3d:()=>Nx,concat4d:()=>Tx,conv1d:()=>tm,conv2d:()=>Sn,conv2dTranspose:()=>rm,conv3d:()=>kx,conv3dTranspose:()=>_x,cos:()=>eu,cosh:()=>nm,cosineWindow:()=>gh,cumprod:()=>Zu,cumsum:()=>om,denseBincount:()=>ph,depthToSpace:()=>Ax,depthwiseConv2d:()=>Li,diag:()=>qE,dilation2d:()=>$x,div:()=>pt,divNoNan:()=>Dx,dot:()=>Rx,dropout:()=>p0,einsum:()=>KE,elu:()=>Mi,enclosingPowerOfTwo:()=>m0,equal:()=>Rr,erf:()=>Fx,euclideanNorm:()=>Ox,exp:()=>or,expandDims:()=>sr,expm1:()=>Px,eye:()=>Ju,fft:()=>uu,fill:()=>bo,floor:()=>zi,floorDiv:()=>Zp,fused:()=>pu,gather:()=>Bi,gatherND:()=>x6,greater:()=>Re,greaterEqual:()=>un,ifft:()=>nl,imag:()=>Jl,image:()=>so,inTopKAsync:()=>w6,irfft:()=>ym,isFinite:()=>Lx,isInf:()=>Mx,isNaN:()=>zx,leakyRelu:()=>ru,less:()=>sm,lessEqual:()=>zn,linalg:()=>d0,linspace:()=>YE,localResponseNormalization:()=>Bx,log:()=>Nr,log1p:()=>nu,logSigmoid:()=>Wx,logSoftmax:()=>im,logSumExp:()=>am,logicalAnd:()=>Or,logicalNot:()=>ou,logicalOr:()=>lm,logicalXor:()=>Ux,losses:()=>wX,lowerBound:()=>ZE,matMul:()=>Lt,max:()=>Sr,maxPool:()=>su,maxPool3d:()=>qx,maxPoolWithArgmax:()=>JE,maximum:()=>Nn,mean:()=>Se,meshgrid:()=>QE,min:()=>el,minimum:()=>Vi,mirrorPad:()=>Kx,mod:()=>jx,moments:()=>Qu,movingAverage:()=>c6,mul:()=>D,multiRNNCell:()=>t_,multinomial:()=>e_,neg:()=>Ht,norm:()=>rl,notEqual:()=>Ws,oneHot:()=>$i,ones:()=>pr,onesLike:()=>wr,op:()=>T,outerProduct:()=>r_,pad:()=>pn,pad1d:()=>n_,pad2d:()=>o_,pad3d:()=>s_,pad4d:()=>i_,pool:()=>Xx,pow:()=>ln,prelu:()=>au,print:()=>Qg,prod:()=>Yx,raggedGather:()=>a_,raggedRange:()=>l_,raggedTensorToTensor:()=>u_,rand:()=>c_,randomGamma:()=>k_,randomNormal:()=>rc,randomStandardNormal:()=>E_,randomUniform:()=>Gi,range:()=>Wi,real:()=>tl,reciprocal:()=>ey,relu:()=>Pr,relu6:()=>um,reshape:()=>R,reverse:()=>mr,reverse1d:()=>__,reverse2d:()=>A_,reverse3d:()=>$_,reverse4d:()=>D_,rfft:()=>cu,round:()=>cm,rsqrt:()=>pm,scalar:()=>mt,scatterND:()=>m6,searchSorted:()=>fh,selu:()=>mm,separableConv2d:()=>fm,setdiff1dAsync:()=>R_,sigmoid:()=>Jr,sign:()=>ry,signal:()=>bX,sin:()=>dm,sinh:()=>hm,slice:()=>Rt,slice1d:()=>gm,slice2d:()=>hh,slice3d:()=>xm,slice4d:()=>nc,softmax:()=>lu,softplus:()=>Gs,spaceToBatchND:()=>iu,sparse:()=>CX,sparseToDense:()=>h6,spectral:()=>yX,split:()=>fr,sqrt:()=>ve,square:()=>Mt,squaredDifference:()=>bm,squeeze:()=>Bn,stack:()=>qe,step:()=>Co,stridedSlice:()=>ny,string:()=>IX,sub:()=>ct,sum:()=>ft,tan:()=>oy,tanh:()=>Fi,tensor:()=>nr,tensor1d:()=>Ke,tensor2d:()=>Us,tensor3d:()=>nx,tensor4d:()=>F_,tensor5d:()=>O_,tensor6d:()=>P_,tile:()=>Fr,topk:()=>sy,transpose:()=>Ot,truncatedNormal:()=>wm,unique:()=>iy,unsortedSegmentSum:()=>Cm,unstack:()=>dr,upperBound:()=>L_,variable:()=>ay,where:()=>_e,whereAsync:()=>uy,zeros:()=>Ne,zerosLike:()=>It});var BD=(r,t,e,n=se)=>{switch(r.op){case\"BiasAdd\":case\"AddV2\":case\"Add\":return[n.add(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"AddN\":return[n.addN(I(\"tensors\",r,t,e))];case\"FloorMod\":case\"Mod\":return[n.mod(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Mul\":return[n.mul(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"RealDiv\":case\"Div\":return[n.div(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"DivNoNan\":return[n.divNoNan(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"FloorDiv\":return[n.floorDiv(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Sub\":return[n.sub(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Minimum\":return[n.minimum(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Maximum\":return[n.maximum(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Pow\":return[n.pow(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"SquaredDifference\":return[n.squaredDifference(I(\"a\",r,t,e),I(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var VD=(r,t,e,n=se)=>{switch(r.op){case\"Abs\":case\"ComplexAbs\":return[n.abs(I(\"x\",r,t,e))];case\"Acos\":return[n.acos(I(\"x\",r,t,e))];case\"Acosh\":return[n.acosh(I(\"x\",r,t,e))];case\"Asin\":return[n.asin(I(\"x\",r,t,e))];case\"Asinh\":return[n.asinh(I(\"x\",r,t,e))];case\"Atan\":return[n.atan(I(\"x\",r,t,e))];case\"Atan2\":return[n.atan2(I(\"x\",r,t,e),I(\"y\",r,t,e))];case\"Atanh\":return[n.atanh(I(\"x\",r,t,e))];case\"Ceil\":return[n.ceil(I(\"x\",r,t,e))];case\"Complex\":return[n.complex(I(\"real\",r,t,e),I(\"imag\",r,t,e))];case\"Cos\":return[n.cos(I(\"x\",r,t,e))];case\"Cosh\":return[n.cosh(I(\"x\",r,t,e))];case\"Elu\":return[n.elu(I(\"x\",r,t,e))];case\"Erf\":return[n.erf(I(\"x\",r,t,e))];case\"Exp\":return[n.exp(I(\"x\",r,t,e))];case\"Expm1\":return[n.expm1(I(\"x\",r,t,e))];case\"Floor\":return[n.floor(I(\"x\",r,t,e))];case\"Log\":return[n.log(I(\"x\",r,t,e))];case\"Log1p\":return[n.log1p(I(\"x\",r,t,e))];case\"Imag\":return[n.imag(I(\"x\",r,t,e))];case\"Neg\":return[n.neg(I(\"x\",r,t,e))];case\"Reciprocal\":return[n.reciprocal(I(\"x\",r,t,e))];case\"Real\":return[n.real(I(\"x\",r,t,e))];case\"Relu\":return[n.relu(I(\"x\",r,t,e))];case\"Round\":return[n.round(I(\"x\",r,t,e))];case\"Selu\":return[n.selu(I(\"x\",r,t,e))];case\"Sigmoid\":return[n.sigmoid(I(\"x\",r,t,e))];case\"Sin\":return[n.sin(I(\"x\",r,t,e))];case\"Sign\":return[n.sign(I(\"x\",r,t,e))];case\"Sinh\":return[n.sinh(I(\"x\",r,t,e))];case\"Softplus\":return[n.softplus(I(\"x\",r,t,e))];case\"Sqrt\":return[n.sqrt(I(\"x\",r,t,e))];case\"Square\":return[n.square(I(\"x\",r,t,e))];case\"Tanh\":return[n.tanh(I(\"x\",r,t,e))];case\"Tan\":return[n.tan(I(\"x\",r,t,e))];case\"ClipByValue\":return[n.clipByValue(I(\"x\",r,t,e),I(\"clipValueMin\",r,t,e),I(\"clipValueMax\",r,t,e))];case\"Relu6\":return[n.relu6(I(\"x\",r,t,e))];case\"Rsqrt\":return[n.rsqrt(Cr(r.inputNames[0],t,e))];case\"Prod\":return[n.prod(I(\"x\",r,t,e),I(\"axes\",r,t,e))];case\"LeakyRelu\":return[n.leakyRelu(I(\"x\",r,t,e),I(\"alpha\",r,t,e))];case\"Prelu\":return[n.prelu(I(\"x\",r,t,e),I(\"alpha\",r,t,e))];case\"IsNan\":return[n.isNaN(Cr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Wn(r,t,e=\"\"){if(!(typeof r==\"number\"||typeof t==\"number\")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function GD(r){return!(typeof r==\"number\"||r.some(t=>t<0))}function Xf(r,t,e){let n=zb(r,e),o=!GD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=zb(s.shape,n)}),!GD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function zb(r,t){if(typeof r==\"number\")return t;if(typeof t==\"number\")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var Bb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),Ae(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t},\n because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Wn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,Ae(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,dr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Wn(e,s.shape,\"TensorList shape mismatch: \"),Ae(s)}),this.idTensor=mt(0),this.maxNumElements=o,Ae(this.idTensor)}get id(){return this.idTensor.id}copy(){return new hl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Wn(t,this.elementShape,\"TensorList shape mismatch: \");let o=Xf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return qe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error(\"Trying to pop from an empty list.\");let n=Xf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Wn(o.shape,t,\"TensorList shape mismatch: \"),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Wn(t.shape,this.elementShape,\"TensorList shape mismatch: \"),this.maxNumElements===this.size())throw new Error(\"Trying to push element into a full list.\");Ae(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new hl([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Wn(this.tensors[t].shape,e,\"TensorList shape mismatch: \");let o=Xf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Wn(this.elementShape,e.shape,\"TensorList shape mismatch: \"),Ae(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Wn(this.elementShape,n,\"TensorList shape mismatch: \"),t=t.slice(0,this.size());let o=Xf(this.elementShape,this.tensors,n);return t.length===0?nr([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return qe(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Wn(this.elementShape,e,\"TensorList shape mismatch: \");let n=Xf(this.elementShape,this.tensors,e);return this.size()===0?nr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return oe(o,0)})}};function WD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Wn(o,t,\"TensorList shape mismatch: \");let s=dr(r);return new hl(s,t,n)}function UD(r,t,e,n){return new hl([],r,t,n)}function HD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new hl([],e,r.dtype,n),i=dr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function qD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to\n tensor.shape[0], but sum of lengths is\n ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=zb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case\"If\":case\"StatelessIf\":{let n=I(\"thenBranch\",r,t,e),o=I(\"elseBranch\",r,t,e),s=I(\"cond\",r,t,e),i=I(\"args\",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case\"While\":case\"StatelessWhile\":{let n=I(\"body\",r,t,e),o=I(\"cond\",r,t,e),s=I(\"args\",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case\"LoopCond\":{let n=I(\"pred\",r,t,e);return[ti(n)]}case\"Switch\":{let n=I(\"pred\",r,t,e),o=I(\"data\",r,t,e);return o.kept||(o=ti(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case\"Merge\":{let n=r.inputNames.find(o=>Cr(o,t,e)!==void 0);if(n){let o=Cr(n,t,e);return[ti(o)]}return}case\"Enter\":{let n=I(\"frameName\",r,t,e),o=I(\"tensor\",r,t,e);return e.enterFrame(n),[ti(o)]}case\"Exit\":{let n=I(\"tensor\",r,t,e);return e.exitFrame(),[ti(n)]}case\"NextIteration\":{let n=I(\"tensor\",r,t,e);return e.nextIteration(),[ti(n)]}case\"TensorArrayV3\":{let n=I(\"size\",r,t,e),o=I(\"dtype\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"dynamicSize\",r,t,e),a=I(\"clearAfterRead\",r,t,e),u=I(\"identicalElementShapes\",r,t,e),l=I(\"name\",r,t,e),c=new Bb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case\"TensorArrayWriteV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case\"TensorArrayReadV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"index\",r,t,e);return[e.getTensorArray(n.id).read(o)]}case\"TensorArrayGatherV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"dtype\",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case\"TensorArrayScatterV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case\"TensorArrayConcatV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id),s=I(\"dtype\",r,t,e);return[o.concat(s)]}case\"TensorArraySplitV3\":{let n=I(\"tensorArrayId\",r,t,e),o=I(\"tensor\",r,t,e),s=I(\"lengths\",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case\"TensorArraySizeV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),\"int32\")]}case\"TensorArrayCloseV3\":{let n=I(\"tensorArrayId\",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case\"TensorListSetItem\":{let n=I(\"tensorListId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"tensor\",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case\"TensorListGetItem\":{let n=I(\"tensorListId\",r,t,e),o=I(\"index\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case\"TensorListScatterV2\":case\"TensorListScatter\":{let n=I(\"indices\",r,t,e),o=I(\"tensor\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"numElements\",r,t,e),a=HD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case\"TensorListReserve\":case\"EmptyTensorList\":{let n=I(\"elementShape\",r,t,e),o=I(\"elementDType\",r,t,e),s;r.op===\"TensorListReserve\"?s=\"numElements\":s=\"maxNumElements\";let i=I(s,r,t,e),a=r.op===\"TensorListReserve\"?-1:i,u=UD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case\"TensorListGather\":{let n=I(\"tensorListId\",r,t,e),o=I(\"indices\",r,t,e),s=I(\"elementShape\",r,t,e),i=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case\"TensorListStack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e),i=I(\"numElements\",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case\"TensorListFromTensor\":{let n=I(\"tensor\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e),i=WD(n,o,s);return e.addTensorList(i),[i.idTensor]}case\"TensorListConcat\":case\"TensorListConcatV2\":{let n=I(\"tensorListId\",r,t,e),o=e.getTensorList(n.id),s=I(\"dtype\",r,t,e),i=I(\"elementShape\",r,t,e);return[o.concat(s,i)]}case\"TensorListPushBack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"tensor\",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case\"TensorListPopBack\":{let n=I(\"tensorListId\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"elementDType\",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case\"TensorListSplit\":{let n=I(\"tensor\",r,t,e),o=I(\"elementShape\",r,t,e),s=I(\"lengths\",r,t,e),i=qD(n,s,o);return e.addTensorList(i),[i.idTensor]}case\"TensorListLength\":{let n=I(\"tensorListId\",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),\"int32\")]}case\"TensorListResize\":{let n=I(\"tensorListId\",r,t,e),o=I(\"size\",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function jD(r,t,e){let[n,o]=I(\"fusedOps\",r,t,e),s=n===\"biasadd\",i=!s,a=o===\"prelu\",u=n===\"fusedbatchnorm\",l=I(\"numArgs\",r,t,e);if(s){if(a&&l!==2)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&s&&l!==1)throw new Error(\"FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.\")}if(u)throw new Error(\"FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported\");let c=I(\"strides\",r,t,e),p=Fh(r,t,e),m=I(\"dataFormat\",r,t,e).toUpperCase(),f=I(\"dilations\",r,t,e),[d,h]=I(\"args\",r,t,e);i&&(h=d,d=void 0);let g=I(\"leakyreluAlpha\",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var XD=(r,t,e,n=se)=>{switch(r.op){case\"Conv1D\":{let o=I(\"stride\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilation\",r,t,e);return[n.conv1d(I(\"x\",r,t,e),I(\"filter\",r,t,e),o,s,i,a)]}case\"Conv2D\":{let o=I(\"strides\",r,t,e),s=Fh(r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilations\",r,t,e);return[n.conv2d(I(\"x\",r,t,e),I(\"filter\",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case\"_FusedConv2D\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=jD(r,t,e);return[n.fused.conv2d({x:I(\"x\",r,t,e),filter:I(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"FusedDepthwiseConv2dNative\":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=jD(r,t,e);return[n.fused.depthwiseConv2d({x:I(\"x\",r,t,e),filter:I(\"filter\",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case\"Conv2DBackpropInput\":case\"Conv2dTranspose\":{let o=I(\"outputShape\",r,t,e),s=I(\"strides\",r,t,e),i=Fh(r,t,e);return[n.conv2dTranspose(I(\"x\",r,t,e),I(\"filter\",r,t,e),o,[s[1],s[2]],i)]}case\"DepthwiseConv2dNative\":case\"DepthwiseConv2d\":{let o=I(\"strides\",r,t,e),s=Fh(r,t,e),i=I(\"dilations\",r,t,e),a=I(\"dataFormat\",r,t,e).toUpperCase();return[n.depthwiseConv2d(I(\"input\",r,t,e),I(\"filter\",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case\"Conv3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dataFormat\",r,t,e).toUpperCase(),a=I(\"dilations\",r,t,e);return[n.conv3d(I(\"x\",r,t,e),I(\"filter\",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case\"AvgPool\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.avgPool(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPool\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.maxPool(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case\"MaxPoolWithArgmax\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e),a=I(\"includeBatchInIndex\",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(I(\"x\",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case\"AvgPool3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.avgPool3d(I(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"MaxPool3D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"kernelSize\",r,t,e);return[n.maxPool3d(I(\"x\",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case\"Dilation2D\":{let o=I(\"strides\",r,t,e),s=I(\"pad\",r,t,e),i=I(\"dilations\",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(I(\"x\",r,t,e),I(\"filter\",r,t,e),[a,u],s,[l,c],\"NHWC\")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=se)=>{switch(r.op){case\"Fill\":{let o=I(\"shape\",r,t,e),s=I(\"dtype\",r,t,e),i=I(\"value\",r,t,e);return[n.fill(o,i,s)]}case\"LinSpace\":{let o=I(\"start\",r,t,e),s=I(\"stop\",r,t,e),i=I(\"num\",r,t,e);return[n.linspace(o,s,i)]}case\"Multinomial\":{let o=I(\"logits\",r,t,e),s=I(\"numSamples\",r,t,e),i=I(\"seed\",r,t,e);return[n.multinomial(o,s,i)]}case\"OneHot\":{let o=I(\"indices\",r,t,e),s=I(\"depth\",r,t,e),i=I(\"onValue\",r,t,e),a=I(\"offValue\",r,t,e),u=I(\"dtype\",r,t,e);return[n.oneHot(o,s,i,a,u)]}case\"Ones\":return[n.ones(I(\"shape\",r,t,e),I(\"dtype\",r,t,e))];case\"OnesLike\":return[n.onesLike(I(\"x\",r,t,e))];case\"RandomStandardNormal\":return[n.randomStandardNormal(I(\"shape\",r,t,e),I(\"dtype\",r,t,e),I(\"seed\",r,t,e))];case\"RandomUniform\":return[n.randomUniform(I(\"shape\",r,t,e),I(\"minval\",r,t,e),I(\"maxval\",r,t,e),I(\"dtype\",r,t,e))];case\"Range\":{let o=I(\"start\",r,t,e),s=I(\"stop\",r,t,e),i=I(\"step\",r,t,e);return[n.range(o,s,i,I(\"dtype\",r,t,e))]}case\"TruncatedNormal\":{let o=I(\"shape\",r,t,e),s=I(\"mean\",r,t,e),i=I(\"stdDev\",r,t,e),a=I(\"seed\",r,t,e);return[n.truncatedNormal(o,s,i,I(\"dtype\",r,t,e),a)]}case\"Zeros\":return[n.zeros(I(\"shape\",r,t,e),I(\"dtype\",r,t,e))];case\"ZerosLike\":return[n.zerosLike(I(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function hN(r,t,e){let n=I(\"boxes\",r,t,e),o=I(\"scores\",r,t,e),s=I(\"maxOutputSize\",r,t,e),i=I(\"iouThreshold\",r,t,e),a=I(\"scoreThreshold\",r,t,e),u=I(\"softNmsSigma\",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var ZD=async(r,t,e,n,o=se)=>{switch(r.op){case\"NonMaxSuppressionV5\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=hN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case\"NonMaxSuppressionV4\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=hN(r,t,e),c=I(\"padToMaxOutputSize\",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case\"NonMaxSuppressionV3\":case\"NonMaxSuppressionV2\":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=hN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case\"Where\":{let s=o.cast(I(\"condition\",r,t,e),\"bool\"),i=[await o.whereAsync(s)];return s.dispose(),i}case\"ListDiff\":return o.setdiff1dAsync(I(\"x\",r,t,e),I(\"y\",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var JD=(r,t,e,n=se)=>{switch(r.op){case\"LowerBound\":{let o=I(\"sortedSequence\",r,t,e),s=I(\"values\",r,t,e);return[n.lowerBound(o,s)]}case\"TopKV2\":{let o=I(\"x\",r,t,e),s=I(\"k\",r,t,e),i=I(\"sorted\",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case\"UpperBound\":{let o=I(\"sortedSequence\",r,t,e),s=I(\"values\",r,t,e);return[n.upperBound(o,s)]}case\"Unique\":{let o=I(\"x\",r,t,e),s=n.unique(o);return[s.values,s.indices]}case\"UniqueV2\":{let o=I(\"x\",r,t,e),s=I(\"axis\",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=se)=>{switch(r.op){case\"Const\":return t[r.name];case\"PlaceholderWithDefault\":let o=I(\"default\",r,t,e);return[Cr(r.name,t,e)||o];case\"Placeholder\":return[Cr(r.name,t,e)];case\"Identity\":case\"StopGradient\":case\"FakeQuantWithMinMaxVars\":{let c=I(\"x\",r,t,e);return[ti(c)]}case\"IdentityN\":return I(\"x\",r,t,e).map(c=>ti(c));case\"Snapshot\":let s=I(\"x\",r,t,e);return[ti(s)];case\"Shape\":return[n.tensor1d(I(\"x\",r,t,e).shape,\"int32\")];case\"ShapeN\":return I(\"x\",r,t,e).map(c=>n.tensor1d(c.shape));case\"Size\":return[n.scalar(I(\"x\",r,t,e).size,\"int32\")];case\"Rank\":return[n.scalar(I(\"x\",r,t,e).rank,\"int32\")];case\"NoOp\":return[n.scalar(1)];case\"Print\":let i=I(\"x\",r,t,e),a=I(\"data\",r,t,e),u=I(\"message\",r,t,e),l=I(\"summarize\",r,t,e);console.warn(\"The graph has a tf.print() operation,usually used for debugging, which slows down performance.\"),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),\"int32\")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=dr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case\"HashTable\":case\"HashTableV2\":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=I(\"keyDType\",r,t,e),i=I(\"valueDType\",r,t,e),a=new Vb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case\"InitializeTable\":case\"InitializeTableV2\":case\"LookupTableImport\":case\"LookupTableImportV2\":{let o=I(\"tableHandle\",r,t,e,n),s=I(\"keys\",r,t,e),i=I(\"values\",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case\"LookupTableFind\":case\"LookupTableFindV2\":{let o=I(\"tableHandle\",r,t,e,n),s=I(\"keys\",r,t,e),i=I(\"defaultValue\",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case\"LookupTableSize\":case\"LookupTableSizeV2\":{let o=I(\"tableHandle\",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=se)=>{switch(r.op){case\"ResizeBilinear\":{let o=I(\"images\",r,t,e),s=I(\"size\",r,t,e),i=I(\"alignCorners\",r,t,e),a=I(\"halfPixelCenters\",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case\"ResizeNearestNeighbor\":{let o=I(\"images\",r,t,e),s=I(\"size\",r,t,e),i=I(\"alignCorners\",r,t,e),a=I(\"halfPixelCenters\",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case\"CropAndResize\":{let o=I(\"image\",r,t,e),s=I(\"boxes\",r,t,e),i=I(\"boxInd\",r,t,e),a=I(\"cropSize\",r,t,e),u=I(\"method\",r,t,e),l=I(\"extrapolationValue\",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case\"ImageProjectiveTransformV3\":{let o=I(\"images\",r,t,e),s=I(\"transforms\",r,t,e),i=I(\"outputShape\",r,t,e),a=I(\"fillValue\",r,t,e),u=I(\"interpolation\",r,t,e),l=I(\"fillMode\",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=se)=>{switch(r.op){case\"Equal\":return[n.equal(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"NotEqual\":return[n.notEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Greater\":return[n.greater(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"GreaterEqual\":return[n.greaterEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Less\":return[n.less(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LessEqual\":return[n.lessEqual(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LogicalAnd\":return[n.logicalAnd(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"LogicalNot\":return[n.logicalNot(I(\"a\",r,t,e))];case\"LogicalOr\":return[n.logicalOr(I(\"a\",r,t,e),I(\"b\",r,t,e))];case\"Select\":case\"SelectV2\":return[n.where(I(\"condition\",r,t,e),I(\"a\",r,t,e),I(\"b\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=se)=>{switch(r.op){case\"BatchMatMul\":case\"BatchMatMulV2\":case\"MatMul\":return[n.matMul(I(\"a\",r,t,e),I(\"b\",r,t,e),I(\"transposeA\",r,t,e),I(\"transposeB\",r,t,e))];case\"Einsum\":return[n.einsum(I(\"equation\",r,t,e),...I(\"tensors\",r,t,e))];case\"Transpose\":return[n.transpose(I(\"x\",r,t,e),I(\"perm\",r,t,e))];case\"_FusedMatMul\":let[o,s]=I(\"fusedOps\",r,t,e),i=o===\"biasadd\",a=s===\"prelu\",u=I(\"numArgs\",r,t,e),l=I(\"leakyreluAlpha\",r,t,e);if(i){if(a&&u!==2)throw new Error(\"Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.\");if(!a&&u!==1)throw new Error(\"Fused MatMul with BiasAdd must have one extra argument: bias.\")}let[c,p]=I(\"args\",r,t,e);return[n.fused.matMul({a:I(\"a\",r,t,e),b:I(\"b\",r,t,e),transposeA:I(\"transposeA\",r,t,e),transposeB:I(\"transposeB\",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=se)=>{switch(r.op){case\"EuclideanNorm\":return[n.euclideanNorm(I(\"x\",r,t,e),I(\"axis\",r,t,e),I(\"keepDims\",r,t,e))];case\"FusedBatchNorm\":case\"FusedBatchNormV2\":return[n.batchNorm(I(\"x\",r,t,e),I(\"mean\",r,t,e),I(\"variance\",r,t,e),I(\"offset\",r,t,e),I(\"scale\",r,t,e),I(\"epsilon\",r,t,e))];case\"FusedBatchNormV3\":return[n.batchNorm(I(\"x\",r,t,e),I(\"mean\",r,t,e),I(\"variance\",r,t,e),I(\"offset\",r,t,e),I(\"scale\",r,t,e),I(\"epsilon\",r,t,e))];case\"LRN\":return[n.localResponseNormalization(I(\"x\",r,t,e),I(\"radius\",r,t,e),I(\"bias\",r,t,e),I(\"alpha\",r,t,e),I(\"beta\",r,t,e))];case\"Softmax\":return[n.softmax(I(\"x\",r,t,e))];case\"LogSoftmax\":return[n.logSoftmax(I(\"x\",r,t,e))];case\"SparseToDense\":return[n.sparseToDense(I(\"sparseIndices\",r,t,e),I(\"outputShape\",r,t,e),I(\"sparseValues\",r,t,e),I(\"defaultValue\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=se)=>{switch(r.op){case\"RaggedGather\":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(I(\"paramsNestedSplits\",r,t,e),I(\"paramsDenseValues\",r,t,e),I(\"indices\",r,t,e),I(\"outputRaggedRank\",r,t,e));return o.concat(s)}case\"RaggedRange\":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(I(\"starts\",r,t,e),I(\"limits\",r,t,e),I(\"splits\",r,t,e));return[o,s]}case\"RaggedTensorToTensor\":return[n.raggedTensorToTensor(I(\"shape\",r,t,e),I(\"values\",r,t,e),I(\"defaultValue\",r,t,e),I(\"rowPartitionTensors\",r,t,e),I(\"rowPartitionTypes\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=se)=>{switch(r.op){case\"Max\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.max(I(\"x\",r,t,e),a,u)]}case\"Mean\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.mean(I(\"x\",r,t,e),a,u)]}case\"Min\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.min(I(\"x\",r,t,e),a,u)]}case\"Sum\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.sum(I(\"x\",r,t,e),a,u)]}case\"All\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.all(I(\"x\",r,t,e),a,u)]}case\"Any\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.any(I(\"x\",r,t,e),a,u)]}case\"ArgMax\":{let a=I(\"axis\",r,t,e);return[n.argMax(I(\"x\",r,t,e),a)]}case\"ArgMin\":{let a=I(\"axis\",r,t,e);return[n.argMin(I(\"x\",r,t,e),a)]}case\"Prod\":{let a=I(\"axis\",r,t,e),u=I(\"keepDims\",r,t,e);return[n.prod(I(\"x\",r,t,e),a,u)]}case\"Cumprod\":{let a=I(\"axis\",r,t,e),u=I(\"exclusive\",r,t,e),l=I(\"reverse\",r,t,e);return[n.cumprod(I(\"x\",r,t,e),a,u,l)]}case\"Cumsum\":{let a=I(\"axis\",r,t,e),u=I(\"exclusive\",r,t,e),l=I(\"reverse\",r,t,e);return[n.cumsum(I(\"x\",r,t,e),a,u,l)]}case\"Bincount\":let o=I(\"x\",r,t,e),s=I(\"weights\",r,t,e),i=I(\"size\",r,t,e);return[n.bincount(o,s,i)];case\"DenseBincount\":{let a=I(\"x\",r,t,e),u=I(\"weights\",r,t,e),l=I(\"size\",r,t,e),c=I(\"binaryOutput\",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=se)=>{switch(r.op){case\"ConcatV2\":case\"Concat\":{let o=I(\"n\",r,t,e),s=I(\"axis\",r,t,e),i=I(\"tensors\",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case\"Gather\":{let o=I(\"x\",r,t,e),s=I(\"indices\",r,t,e);return[n.gather(o,n.cast(s,\"int32\"),0)]}case\"GatherV2\":{let o=I(\"axis\",r,t,e),s=I(\"batchDims\",r,t,e),i=I(\"x\",r,t,e),a=I(\"indices\",r,t,e);return[n.gather(i,n.cast(a,\"int32\"),o,s)]}case\"Reverse\":{let o=I(\"dims\",r,t,e),s=[];for(let a=0;a{let o=I(\"axis\",r,t,e),s=I(\"tensors\",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error(\"the input tensors shape does not match\");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case\"Unpack\":{let o=I(\"axis\",r,t,e),s=I(\"tensor\",r,t,e);return n.unstack(s,o)}case\"Tile\":{let o=I(\"reps\",r,t,e);return[n.tile(I(\"x\",r,t,e),o)]}case\"Split\":case\"SplitV\":{let o=I(\"axis\",r,t,e),s=I(\"numOrSizeSplits\",r,t,e),i=I(\"x\",r,t,e);return n.split(i,s,o)}case\"ScatterNd\":{let o=I(\"indices\",r,t,e),s=I(\"values\",r,t,e),i=I(\"shape\",r,t,e);return[n.scatterND(o,s,i)]}case\"GatherNd\":{let o=I(\"x\",r,t,e),s=I(\"indices\",r,t,e);return[n.gatherND(o,s)]}case\"SparseToDense\":{let o=I(\"sparseIndices\",r,t,e),s=I(\"outputShape\",r,t,e),i=I(\"sparseValues\",r,t,e),a=I(\"defaultValue\",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=se)=>{switch(r.op){case\"SparseFillEmptyRows\":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(I(\"indices\",r,t,e),I(\"values\",r,t,e),I(\"denseShape\",r,t,e),I(\"defaultValue\",r,t,e));return[o,s,i,a]}case\"SparseReshape\":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(I(\"inputIndices\",r,t,e),I(\"inputShape\",r,t,e),I(\"newShape\",r,t,e));return[o,s]}case\"SparseSegmentMean\":return[n.sparse.sparseSegmentMean(I(\"data\",r,t,e),I(\"indices\",r,t,e),I(\"segmentIds\",r,t,e))];case\"SparseSegmentSum\":return[n.sparse.sparseSegmentSum(I(\"data\",r,t,e),I(\"indices\",r,t,e),I(\"segmentIds\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var uR=(r,t,e,n=se)=>{switch(r.op){case\"FFT\":return[n.fft(I(\"x\",r,t,e))];case\"IFFT\":return[n.ifft(I(\"x\",r,t,e))];case\"RFFT\":return[n.rfft(I(\"x\",r,t,e))];case\"IRFFT\":return[n.irfft(I(\"x\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var cR=(r,t,e,n=se)=>{switch(r.op){case\"StringNGrams\":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(I(\"data\",r,t,e),I(\"dataSplits\",r,t,e),I(\"separator\",r,t,e),I(\"nGramWidths\",r,t,e),I(\"leftPad\",r,t,e),I(\"rightPad\",r,t,e),I(\"padWidth\",r,t,e),I(\"preserveShortSequences\",r,t,e));return[o,s]}case\"StringSplit\":{let{indices:o,values:s,shape:i}=n.string.stringSplit(I(\"input\",r,t,e),I(\"delimiter\",r,t,e),I(\"skipEmpty\",r,t,e));return[o,s,i]}case\"StringToHashBucketFast\":return[n.string.stringToHashBucketFast(I(\"input\",r,t,e),I(\"numBuckets\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pR=(r,t,e,n=se)=>{switch(r.op){case\"Cast\":return[n.cast(I(\"x\",r,t,e),I(\"dtype\",r,t,e))];case\"ExpandDims\":{let o=I(\"axis\",r,t,e);return[n.expandDims(I(\"x\",r,t,e),o)]}case\"Squeeze\":{let o=I(\"axis\",r,t,e);return[n.squeeze(I(\"x\",r,t,e),o)]}case\"Reshape\":return[n.reshape(I(\"x\",r,t,e),I(\"shape\",r,t,e))];case\"MirrorPad\":return[n.mirrorPad(I(\"x\",r,t,e),I(\"padding\",r,t,e),I(\"mode\",r,t,e))];case\"PadV2\":case\"Pad\":return[n.pad(I(\"x\",r,t,e),I(\"padding\",r,t,e),I(\"constantValue\",r,t,e))];case\"SpaceToBatchND\":{let o=I(\"blockShape\",r,t,e),s=I(\"paddings\",r,t,e);return[n.spaceToBatchND(I(\"x\",r,t,e),o,s)]}case\"BatchToSpaceND\":{let o=I(\"blockShape\",r,t,e),s=I(\"crops\",r,t,e);return[n.batchToSpaceND(I(\"x\",r,t,e),o,s)]}case\"DepthToSpace\":{let o=I(\"blockSize\",r,t,e),s=I(\"dataFormat\",r,t,e).toUpperCase();return[n.depthToSpace(I(\"x\",r,t,e),o,s)]}case\"BroadcastTo\":return[n.broadcastTo(I(\"x\",r,t,e),I(\"shape\",r,t,e))];case\"BroadcastArgs\":return[n.broadcastArgs(I(\"s0\",r,t,e),I(\"s1\",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function gN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case\"arithmetic\":return o(()=>BD(i,a,u));case\"basic_math\":return o(()=>VD(i,a,u));case\"control\":return KD(i,a,u);case\"convolution\":return o(()=>XD(i,a,u));case\"creation\":return o(()=>YD(i,a,u));case\"dynamic\":return ZD(i,a,u);case\"evaluation\":return o(()=>JD(i,a,u));case\"image\":return o(()=>eR(i,a,u));case\"graph\":return o(()=>QD(i,a,u));case\"logical\":return o(()=>rR(i,a,u));case\"matrices\":return o(()=>nR(i,a,u));case\"normalization\":return o(()=>oR(i,a,u));case\"ragged\":return o(()=>sR(i,a,u));case\"reduction\":return o(()=>iR(i,a,u));case\"slice_join\":return o(()=>aR(i,a,u));case\"sparse\":return o(()=>lR(i,a,u));case\"spectral\":return o(()=>uR(i,a,u));case\"string\":return o(()=>cR(i,a,u));case\"transformation\":return o(()=>pR(i,a,u));case\"hash_table\":return tR(i,a,u,n);case\"custom\":let l=Tb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Mb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Ph=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:\"\",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?\"\":`${e.frameName}-${e.iterationId}`).join(\"/\"):\"\"}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error(\"Cannot exit frame, the context is empty\")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error(\"Cannot increase frame iteration, the context is empty\")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function xN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>bn(m)[0]),c=[];n!=null&&(c=n.map(m=>bn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((yN(m)||G7(m)||W7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function mR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>bn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var z7=[\"Switch\",\"Merge\",\"Enter\",\"Exit\",\"NextIteration\",\"StatelessIf\",\"StatelessWhile\",\"if\",\"While\"],B7=[\"NonMaxSuppressionV2\",\"NonMaxSuppressionV3\",\"NonMaxSuppressionV5\",\"Where\"],V7=[\"HashTable\",\"HashTableV2\",\"LookupTableImport\",\"LookupTableImportV2\",\"LookupTableFind\",\"LookupTableFindV2\",\"LookupTableSize\",\"LookupTableSizeV2\"];function yN(r){return z7.indexOf(r.op)>=0}function G7(r){return B7.indexOf(r.op)>=0}function W7(r){return V7.indexOf(r.op)>=0}var kc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=\",\",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new kc(t.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+\"--\"+o.join(this.SEPERATOR)}compile(t,e){let n=xN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return mR(this.graph,this.weightMap,n)}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return Ae(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[bn(p)[0]]),s=e.map(p=>bn(p)[0]),i=s.map(p=>this.graph.nodes[p]);i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));try{this.keepIntermediateTensors=M().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(p){this.keepIntermediateTensors=!1,console.warn(p.message)}let l={},c={};return B(()=>{let p=new Ph(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(h=>{let[g,x]=bn(h),b=[];b[x]=t[h],m[g]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g]=this.cloneTensorList(b))});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hCr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category===\"control\"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!==\"control\"){let l=PD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.clonedTensorsMap||(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=M().getBool(\"KEEP_INTERMEDIATE_TENSORS\")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Ph(this.weightMap,o,s,this.functionExecutorMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>Cr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[bn(w)[0]]),a=n.map(w=>bn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=xN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=bn(w),E=[];E[N]=t[w],d[C]=E});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn(\"This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.\");let b=u.filter(w=>!yN(w)&&!Cr(w.name,d,e)).map(w=>w.name);if(b.length>0){let w=\"\";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m=\"\";if(p.node.op===\"Enter\"&&I(\"isConstant\",p.node,o,n)&&([m]=Qs(p.node.name,n)),o[p.node.name]==null){let f=gN(p.node,o,n,this._resourceManager);m||([m]=Qs(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=Qs(a.name,n);s[u]||!i.has(a.name)||(a.op===\"Merge\"?a.inputNames.some(l=>!!Cr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!Cr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=bn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=bn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=bn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Gb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var U7=\"?tfjs-format=file\",H7=\"model.json\",Lh=class{constructor(t,e={},n=$r){this.modelUrl=t,this.loadOptions=e,this.version=\"n/a\",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Gb}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error(\"Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.\");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new kc(Oh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Oh.Instance.transformGraph(t.modelInitializer);this.initializer=new kc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t==\"string\"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error(\"GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.\");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Ft?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Ft)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Nt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function q7(r,t={},e=$r){if(r==null)throw new Error(\"modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model\");t==null&&(t={}),t.fromTFHub&&typeof r==\"string\"&&(r=j7(r));let n=new Lh(r,t,e);return await n.load(),n}function K7(r){if(r==null)throw new Error(\"modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model\");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error(\"modelJSON must be the first element of the array\");if(!o||!(o instanceof ArrayBuffer))throw new Error(\"An ArrayBuffer of weights must be the second element of the array\");if(!(\"modelTopology\"in n))throw new Error(\"Model JSON is missing 'modelTopology'\");if(!(\"weightsManifest\"in n))throw new Error(\"Model JSON is missing 'weightsManifest'\");let s=$r.getWeightSpecs(n.weightsManifest),i=$r.getModelArtifactsForJSONSync(n,s,o);t=$r.fromMemorySync(i)}else if(\"load\"in r)t=r;else if(\"modelTopology\"in r&&\"weightSpecs\"in r&&\"weightData\"in r)t=$r.fromMemorySync(r);else throw new Error(\"Unknown model format\");let e=new Lh(t);return e.load(),e}function j7(r){return r.endsWith(\"/\")||(r=r+\"/\"),`${r}${H7}${U7}`}var fR=\"4.1.0\";var RR={};Wt(RR,{CSVDataset:()=>Jf,Dataset:()=>ei,FileDataSource:()=>nd,TextLineDataset:()=>Zf,URLDataSource:()=>od,array:()=>vR,csv:()=>ER,func:()=>_R,generator:()=>AR,microphone:()=>DR,version_data:()=>zN,webcam:()=>$R,zip:()=>SR});var IR=_l(dh());var bR=_l(dh());function dR(r,t){return Wb(r,t)}function Wb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob==\"function\"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error(\"Circular references are not supported.\");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep map function may not return both a value and recurse=true.\");if(o.recurse)if(Tu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Wb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function hR(r,t=wN){return gR(r,t)}function gR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error(\"Circular references are not supported.\");let o=t(r);if(o.recurse&&o.value!==null)throw new Error(\"A deep zip function may not return both a value and recurse=true.\");if(o.recurse)if(Tu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=gR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function wN(r){return r===null?null:Tu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Ub(r,t){let e=new Map;Wb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Wb(r,t,e)}function Tu(r){let t=!1;if(M().get(\"IS_BROWSER\"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=bN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r==\"object\"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function xR(r){return r==null||X7(r)||Array.isArray(r)||typeof r==\"object\"&&r instanceof Ft||y.isTypedArray(r)}function X7(r){return r===null||typeof r!=\"object\"&&typeof r!=\"function\"}function yR(r){return dR(r,Y7)}function Y7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:Tu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Yf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError(\"Can't create a ring buffer of unknown capacity.\");if(t<1)throw new RangeError(\"Can't create ring buffer of capacity < 1.\");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError(\"Can't get item at a negative index.\");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError(\"Can't set item at a negative index.\");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError(\"Ring buffer is full.\");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError(\"Ring buffer is empty.\");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Ec=class extends Yf{constructor(){super(Ec.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new TN(this,t,e)}columnMajorBatch(t,e=!0,n=wN){return this.rowMajorBatch(t,e).map(s=>hR(s,n))}concatenate(t,e){return new qb(RN([this,t]),e)}take(t){return t<0||t==null?this:new NN(this,t)}skip(t){return t<0||t==null?this:new SN(this,t)}prefetch(t){return new Kb(this,t)}shuffle(t,e){return new DN(this,t,e)}serial(){return new vN(this)}},CN=class extends tr{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:yR(t),done:!1}}},IN=class extends tr{constructor(t){super(),this.nextFn=t}summary(){return\"Function call\"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},vN=class extends tr{constructor(t){super(),this.upstream=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SN=class extends tr{constructor(t,e){super(),this.upstream=t,this.maxCount=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},TN=class extends tr{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},kN=class extends tr{constructor(t,e){super(),this.upstream=t,this.predicate=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Nt(t.value)}}},EN=class extends tr{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=yo.getTensorsInContainer(t.value),n=this.transform(t.value),o=yo.getTensorsInContainer(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},_N=class extends tr{constructor(t,e){super(),this.upstream=t,this.handler=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(t){if(!this.handler(t))return{value:null,done:!0}}}},Hb=class extends tr{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=yo.getTensorsInContainer(t.value),n=await this.transform(t.value),o=yo.getTensorsInContainer(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},_c=class extends tr{constructor(){super(),this.outputQueue=new Ec,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},AN=class extends _c{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=yo.getTensorsInContainer(t.value),n=this.transform(t.value),o=yo.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return!0}},qb=class extends tr{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return\"TODO: fill in upstream of chained summaries -> Chained\"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},gl;(function(r){r[r.FAIL=0]=\"FAIL\",r[r.SHORTEST=1]=\"SHORTEST\",r[r.LONGEST=2]=\"LONGEST\"})(gl||(gl={}));var $N=class extends tr{constructor(t,e=gl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return\"{TODO: fill in upstream of zip summaries} -> Zip\"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof tr?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Ub(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case gl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case gl.SHORTEST:return{value:null,done:!0};case gl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Kb=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new Yf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},DN=class extends Kb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=bR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var ei=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is\n ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),_n(async()=>(await n.iterator()).columnMajorBatch(t,e,Z7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,_n(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,_n(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return _n(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return _n(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError(\"`Dataset.prefetch()` requires bufferSize to be specified.\");let e=this;return _n(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,_n(async()=>{let o=Mh(async()=>({value:await e.iterator(),done:!1}));return wR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?new RangeError(\"`Dataset.shuffle()` requires bufferSize to be specified.\"):new RangeError(`\\`Dataset.shuffle()\\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \\`tf.Tensor\\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let o=this,s=IR.alea(e||y.now().toString());return _n(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,_n(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error(\"Can not convert infinite data stream to array.\");return(await this.iterator()).toArrayForTest()}};ei.MAX_BUFFER_SIZE=1e4;function _n(r,t=null){return new class extends ei{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function vR(r){return _n(async()=>RN(r),r.length)}function SR(r){if(!Tu(r))throw new Error(\"The argument to zip() must be an object or array.\");let t;if(Array.isArray(r))for(let e=0;e{let e=await Ub(r,n=>{if(n instanceof ei)return{value:n.iterator(),recurse:!1};if(Tu(n))return{value:null,recurse:!0};throw new Error(\"Leaves of the structure passed to zip() must be Datasets, not primitives.\")});return CR(e,gl.SHORTEST)},t)}function Z7(r){if(r===null)return null;let t=r[0];return xR(t)?{value:J7(r),recurse:!1}:{value:null,recurse:!0}}function J7(r){if(r.length===0)throw new Error(\"Can't make a batch of zero elements.\");return r[0]instanceof Ft?qe(r):nr(r)}var Zf=class extends ei{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(`\n`).map(o=>(o.endsWith(\"\\r\")&&(o=o.slice(0,-1)),o))}};var jb='\"',zh=Symbol(\"out\"),NR=Symbol(\"field\"),Xb=Symbol(\"quote\"),FN=Symbol(\"quoteafterquote\"),TR=Symbol(\"quoteinquote\"),Jf=class extends ei{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=\",\",this.delimWhitespace=!1,this.base=new Zf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>\"Delimiter should not be provided when delimWhitespace is true.\"),this.delimWhitespace=!0,this.delimiter=\" \"):this.delimiter=e.delimiter?e.delimiter:\",\"}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error(\"Column names must be provided if there is no header line.\");this.fullColumnNames&&t&&y.assert(t.length===this.fullColumnNames.length,()=>\"The length of provided columnNames (\"+this.fullColumnNames.length.toString()+\") does not match the length of the header line read from file (\"+t.length.toString()+\").\"),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>\"Duplicate column names found: \"+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key \"'+o+'\" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+\").\")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error(\"No data was found for CSV parsing.\");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error(\"Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.\")}summary(){return\"microphone\"}static async create(t={}){if(!M().get(\"IS_BROWSER\"))throw new Error(\"microphone API is only supported in browser environment.\");let e=new Qf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error(\"Could not obtain audio from microphone.\");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error(\"Can not convert infinite audio stream to array.\")}getSampleRate(){return this.sampleRateHz}flattenQueue(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),nr(n,e)}};var td=class extends tr{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],\"int32\"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Us([i,s,u,a],[1,4])}else this.cropBox=Us([0,0,1,1],[1,4])}summary(){return\"webcam\"}static async create(t,e={}){if(!M().get(\"IS_BROWSER\"))throw new Error(\"tf.data.webcam is only supported in browser environment.\");if(!t){if(t=document.createElement(\"video\"),!e.resizeWidth||!e.resizeHeight)throw new Error(\"Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.\");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new td(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode===\"user\"||this.webcamConfig.facingMode===\"environment\",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:\"user\",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error(\"Could not obtain video from webcam.\");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=ox.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=sr(J(t,\"float32\"),0),n;n=so.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,\"bilinear\");let o=n.shape;return R(n,o.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error(\"Can not convert infinite video stream to array.\")}};var ed=class{};var Bh=class extends tr{split(t){return new ON(this,t)}},ON=class extends Bh{constructor(t,e){super(),this.upstream=t,this.impl=new PN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},PN=class extends _c{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=\"\"}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===\"\"?!1:(this.outputQueue.push(this.carryover),this.carryover=\"\",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Yb=class extends tr{decodeUTF8(){return new LN(this)}},LN=class extends Bh{constructor(t){super(),this.upstream=t,this.impl=new MN(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},MN=class extends _c{constructor(t){if(super(),this.upstream=t,M().get(\"IS_BROWSER\"))this.decoder=new TextDecoder(\"utf-8\");else{let{StringDecoder:e}=bN();this.decoder=new e(\"utf8\")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return M().get(\"IS_BROWSER\")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var rd=class extends Yb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(M().get(\"IS_BROWSER\")?t instanceof File||t instanceof Blob:!1),()=>\"FileChunkIterator only supports File, Blob and Uint8Array right now.\"),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError(\"FileReader returned unknown type.\"));e(u)},s.onabort=a=>n(new Error(\"Aborted\")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function kR(r,t={},e){let n,o;typeof r==\"string\"?n=r:(n=r.url,o=Q7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new rd(i,t)}else throw new Error(s.statusText)}var Q7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Zb(r){return typeof r==\"string\"&&r.slice(0,7)===\"file://\"}var nd=class extends ed{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Zb(this.input)&&M().get(\"IS_NODE\")){let t=Jb();this.input=t.readFileSync(this.input.slice(7))}return new rd(this.input,this.options)}};var od=class extends ed{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Zb(this.url)?new nd(this.url,this.fileOptions).iterator():kR(this.url,this.fileOptions)}};function ER(r,t={}){return new Jf(new od(r),t)}function _R(r){let t=Mh(r);return _n(async()=>t)}function AR(r){return _n(async()=>{let t=await r();return Mh(()=>t.next())})}async function $R(r,t){return td.create(r,t)}async function DR(r){return Qf.create(r)}var zN=\"4.1.0\";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var tJ=qr.whereImpl,ku=class extends Bo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new aa(this,Mn())}nextDataId(){return ku.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,M().get(\"IS_NODE\")&&S.warn(`\n============================\nHi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. \n============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e===\"string\"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e===\"complex64\"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Mn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:[\"The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less.\"]}}where(t){tt([t],\"where\");let e=this.readSync(t.dataId);return tJ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};ku.nextDataId=0;var fw={};Wt(fw,{addImpl:()=>GN,bincountImpl:()=>ad,bincountReduceImpl:()=>Qb,castImpl:()=>VN,ceilImpl:()=>WN,concatImpl:()=>Ac,equalImpl:()=>UN,expImpl:()=>qN,expm1Impl:()=>jN,floorImpl:()=>XN,gatherNdImpl:()=>tw,gatherV2Impl:()=>ew,greaterEqualImpl:()=>ZN,greaterImpl:()=>YN,lessEqualImpl:()=>QN,lessImpl:()=>JN,linSpaceImpl:()=>rw,logImpl:()=>tT,maxImpl:()=>nw,maximumImpl:()=>eT,minimumImpl:()=>rT,multiplyImpl:()=>Vh,negImpl:()=>nT,notEqualImpl:()=>oT,prodImpl:()=>sT,raggedGatherImpl:()=>ow,raggedRangeImpl:()=>sw,raggedTensorToTensorImpl:()=>iw,rangeImpl:()=>Dc,rsqrtImpl:()=>iT,scatterImpl:()=>xl,sigmoidImpl:()=>lF,simpleAbsImpl:()=>BN,sliceImpl:()=>Rc,sparseFillEmptyRowsImpl:()=>aw,sparseReshapeImpl:()=>lw,sparseSegmentReductionImpl:()=>cd,sqrtImpl:()=>pF,squaredDifferenceImpl:()=>lT,stridedSliceImpl:()=>uw,stringNGramsImpl:()=>Fc,stringSplitImpl:()=>Oc,stringToHashBucketFastImpl:()=>Pc,subImpl:()=>cT,tileImpl:()=>cw,topKImpl:()=>pw,transposeImpl:()=>ld,uniqueImpl:()=>mw});function BN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,\"abs\");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=BN(o),e.makeOutput(n,t.shape,t.dtype)},FR={kernelName:ui,backendName:\"cpu\",kernelFunc:eJ};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[C],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,\"complex64\"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,\"float32\",s),imag:e.makeTensorInfo(o.shape,\"float32\",i)},a}var OR={kernelName:mp,backendName:\"cpu\",kernelFunc:Ir};function sd(r,t,e=\"float32\"){if(e===\"complex64\"){let o=sd(r,t,\"float32\"),s=sd(r,t,\"float32\");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Xr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var PR={kernelName:mo,backendName:\"cpu\",kernelFunc:Xr};function $o(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var LR={kernelName:Fp,backendName:\"cpu\",kernelFunc:$o};function VN(r,t,e,n){if(n===\"int32\"){let o=Int32Array.from(r);return[t,\"int32\",o]}if(n===\"bool\"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,\"bool\");return[i,\"bool\",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Do(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return Xr({inputs:{x:o},backend:e});let c=sd(e,o.shape,o.dtype),p=Do({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype===\"complex64\"){let c=$o({inputs:{input:o},backend:e}),p=Do({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Xr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=VN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var MR={kernelName:co,backendName:\"cpu\",kernelFunc:Do};function ie(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype===\"string\"?S.fromUint8ToStringArray(l):l,m=i.dtype===\"string\"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype===\"complex64\"||a.dtype===\"complex64\"){let l=Do({inputs:{x:i},backend:u,attrs:{dtype:\"complex64\"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Do({inputs:{x:a},backend:u,attrs:{dtype:\"complex64\"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,\"float32\",N),F=u.makeTensorInfo(A,\"float32\",E),P=Ir({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function id(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType(\"float32\",u),m=y.getTypedArrayFromDType(\"float32\",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var GN=Qt((r,t)=>r+t),rJ=id((r,t,e,n)=>({real:r+e,imag:t+n})),Zi=ie(Qn,GN,rJ),zR={kernelName:Qn,backendName:\"cpu\",kernelFunc:Zi};function ad(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Qb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function wn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype===\"string\"||e===\"string\")throw new Error(\"unaryKernelFunc does not support string input/output\");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var WN=wn(r=>Math.ceil(r)),nJ=Ro(Ko,WN),BR={kernelName:Ko,backendName:\"cpu\",kernelFunc:nJ};function Ac(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!==\"string\"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e===\"string\"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),HN=ie(Ia,UN,null,\"bool\"),VR={kernelName:Ia,backendName:\"cpu\",kernelFunc:HN};var qN=wn(r=>Math.exp(r)),KN=Ro(rs,qN,\"float32\"),GR={kernelName:rs,backendName:\"cpu\",kernelFunc:KN};var jN=wn(r=>Math.expm1(r)),oJ=Ro(va,jN),WR={kernelName:va,backendName:\"cpu\",kernelFunc:oJ};var XN=wn(r=>Math.floor(r)),sJ=Ro(ns,XN),UR={kernelName:ns,backendName:\"cpu\",kernelFunc:sJ};function tw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),iJ=ie(Ta,YN,null,\"bool\"),HR={kernelName:Ta,backendName:\"cpu\",kernelFunc:iJ};var ZN=Qt((r,t)=>r>=t?1:0),aJ=ie(is,ZN,null,\"bool\"),qR={kernelName:is,backendName:\"cpu\",kernelFunc:aJ};var JN=Qt((r,t)=>rr<=t?1:0),uJ=ie(Aa,QN,null,\"bool\"),jR={kernelName:Aa,backendName:\"cpu\",kernelFunc:uJ};function rw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,\"float32\");o[0]=r;for(let s=1;sMath.log(r)),cJ=Ro(us,tT),XR={kernelName:us,backendName:\"cpu\",kernelFunc:cJ};function nw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var eT=Qt((r,t)=>Math.max(r,t)),pJ=ie(ps,eT),YR={kernelName:ps,backendName:\"cpu\",kernelFunc:pJ};var rT=Qt((r,t)=>Math.min(r,t)),mJ=ie(hs,rT),ZR={kernelName:hs,backendName:\"cpu\",kernelFunc:mJ};var Vh=Qt((r,t)=>r*t),fJ=id((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),$c=ie(xs,Vh,fJ),JR={kernelName:xs,backendName:\"cpu\",kernelFunc:$c};function nT(r,t,e){let n=y.createScalarValue(-1,e);return Vh([],t,n,r,e)}function dJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,\"neg\");let o=e.data.get(n.dataId).values,[s,i]=nT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var QR={kernelName:di,backendName:\"cpu\",kernelFunc:dJ};var oT=Qt((r,t)=>r!==t?1:0),hJ=ie(Pa,oT,null,\"bool\"),tF={kernelName:Pa,backendName:\"cpu\",kernelFunc:hJ};function ld(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var rF={kernelName:Is,backendName:\"cpu\",kernelFunc:gJ};function xJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(\",\");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function yJ(r,t){for(let e=0;eo)throw new Error(\"Ragged splits must not point past values\");for(let s=1;sn[s])throw new Error(\"Ragged splits must be sorted in ascending order\")}}function bJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);yJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function nF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error(\"starts must be a scalar or vector\");if(o.length>1)throw new Error(\"limits must be a scalar or vector\");if(i.length>1)throw new Error(\"deltas must be a scalar or vector\");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>oF)throw new Error(`Requires ((limit - start) / delta) <= ${oF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i\"Final length of result must be equal to firstDimension.\"),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error(\"Invalid row split size.\");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error(\"Invalid row ids.\");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Fo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Fo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Fo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error(\"No row_partition_types given.\");let e=this.rowPartitionTypes[0];switch(e){case Fo.FIRST_DIM_SIZE:return t[0];case Fo.VALUE_ROWIDS:throw new Error(\"Cannot handle VALUE_ROWIDS in first dimension.\");case Fo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Fo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error(\"Invalid first partition input. Tensor requires at least one element.\");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=iF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Pi(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);sF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function sF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function iw(r,t,e,n,o,s,i,a,u,l){return new ud(r,t,e,n,o,s,i,a,u,l).compute()}function Dc(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),vJ=Ro(As,iT),aF={kernelName:As,backendName:\"cpu\",kernelFunc:vJ};function xl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u==\"string\"||typeof u==\"number\"?f.values.fill(u):typeof u==\"boolean\"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),aT=_t(Ds,r=>1/(1+Math.exp(-r))),uF={kernelName:Ds,backendName:\"cpu\",kernelFunc:aT};function Rc(r,t,e,n,o){let s=Me.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Me.computeFlatOffset(t,a);return o===\"string\"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o===\"string\"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o===\"string\"?S.fromStringArrayToUint8(c.values):c.values}function Oo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,\"slice\");let[a,u]=Me.parseSliceParams(o,s,i);Me.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=Rc(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var cF={kernelName:bi,backendName:\"cpu\",kernelFunc:Oo};function aw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),SJ=_t(Rs,r=>Math.sqrt(r)),mF={kernelName:Rs,backendName:\"cpu\",kernelFunc:SJ};var lT=Qt((r,t)=>{let e=r-t;return e*e}),NJ=ie(Ps,lT),fF={kernelName:Ps,backendName:\"cpu\",kernelFunc:NJ};function uw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType(\"int32\",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Fc(r,t,e,n,o,s,i,a){return new uT(e,n,o,s,i,a).compute(r,t)}function TJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),kJ=id((r,t,e,n)=>({real:r-e,imag:t-n})),Gh=ie(Ls,cT,kJ),dF={kernelName:Ls,backendName:\"cpu\",kernelFunc:Gh};function cw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function hF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));hF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Wh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Wh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function pw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType(\"int32\",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew ku,1);var pT=_t(es,r=>r>=0?r:Math.exp(r)-1),gF={kernelName:es,backendName:\"cpu\",kernelFunc:pT};function mT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],\"leakyRelu\");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType(\"float32\",i);for(let l=0;lr<0?t*r:r);function fT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],\"prelu\");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=_J(n.shape,o.shape,s,i,\"float32\");return e.makeTensorInfo(u,\"float32\",a)}var yF={kernelName:Cs,backendName:\"cpu\",kernelFunc:fT};var dT=_t(Ss,r=>Math.max(0,r)),bF={kernelName:Ss,backendName:\"cpu\",kernelFunc:dT};var hT=_t(ks,r=>Math.min(Math.max(0,r),6)),wF={kernelName:ks,backendName:\"cpu\",kernelFunc:hT};function Lc(r,t,e,n,o){if(e===\"linear\")return Xr({inputs:{x:t},backend:r});if(e===\"relu\")return dT({inputs:{x:t},backend:r});if(e===\"elu\")return pT({inputs:{x:t},backend:r});if(e===\"relu6\")return hT({inputs:{x:t},backend:r});if(e===\"prelu\")return fT({inputs:{x:t,alpha:n},backend:r});if(e===\"leakyrelu\")return mT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e===\"sigmoid\")return aT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var CF={kernelName:xi,backendName:\"cpu\",kernelFunc:Yt};function gT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],\"matMul\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],E.dtype),st=nt.values,dt=e.blockSize;for(let gt=0;gtMath.acos(r)),SF={kernelName:ua,backendName:\"cpu\",kernelFunc:$J};var DJ=_t(ca,r=>Math.acosh(r)),NF={kernelName:ca,backendName:\"cpu\",kernelFunc:DJ};function RJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,\"addN\");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var _F={kernelName:Uo,backendName:\"cpu\",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,\"argMin\");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims(\"argMin\",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,\"int32\"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,\"int32\",f)}var AF={kernelName:Al,backendName:\"cpu\",kernelFunc:LJ};var MJ=_t(fa,r=>Math.asin(r)),$F={kernelName:fa,backendName:\"cpu\",kernelFunc:MJ};var zJ=_t(da,r=>Math.asinh(r)),DF={kernelName:da,backendName:\"cpu\",kernelFunc:zJ};var BJ=_t(ha,r=>Math.atan(r)),RF={kernelName:ha,backendName:\"cpu\",kernelFunc:BJ};var VJ=Qt((r,t)=>Math.atan2(r,t)),GJ=ie(xa,VJ),FF={kernelName:xa,backendName:\"cpu\",kernelFunc:GJ};var WJ=_t(ga,r=>Math.atanh(r)),OF={kernelName:ga,backendName:\"cpu\",kernelFunc:WJ};function pd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s===\"avg\"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s===\"avg\"?Z/et:Y}}}return h}function dw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,\"int32\"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function hw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s===\"max\"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s===\"avg\"&&(At+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s===\"avg\"?At/Vt:kt}}}}return w}function PF(r,t){let e=wt(t.outShape,\"int32\"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function UJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=pd(m,o.shape,o.dtype,f,c,\"avg\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LF={kernelName:Ho,backendName:\"cpu\",kernelFunc:UJ};function HJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"avgPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=hw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"avg\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var MF={kernelName:$l,backendName:\"cpu\",kernelFunc:HJ};function qJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"avgPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=E-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,\"float32\"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let gt=0;gt=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var zF={kernelName:up,backendName:\"cpu\",kernelFunc:qJ};function KJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,\"float32\"),E=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,\"float32\",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var BF={kernelName:lp,backendName:\"cpu\",kernelFunc:KJ};function jJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||a.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(s==null||a.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\"),tt([o,a,u,s,i],\"batchNorm\");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,E=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var VF={kernelName:ss,backendName:\"cpu\",kernelFunc:jJ};function XJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],\"batchToSpaceND\");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Oo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var GF={kernelName:ci,backendName:\"cpu\",kernelFunc:XJ};function YJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=ad(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var WF={kernelName:cp,backendName:\"cpu\",kernelFunc:YJ};function ZJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var UF={kernelName:pp,backendName:\"cpu\",kernelFunc:ZJ};var JJ=_t(po,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Xr({inputs:{x:u[0]},backend:e});if(u[0].dtype===\"complex64\"){let h=u.map(C=>$o({inputs:{input:C},backend:e})),g=u.map(C=>Ji({inputs:{input:C},backend:e})),x=Eu({inputs:h,backend:e,attrs:{axis:s}}),b=Eu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ac(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var jF={kernelName:pi,backendName:\"cpu\",kernelFunc:Eu};function xT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],\"conv2d\");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat===\"channelsLast\",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let gt=st*E[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=gt+Zt*E[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],gt=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=gt+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),eO={kernelName:Yo,backendName:\"cpu\",kernelFunc:sQ};var iQ=_t(Zo,r=>Math.cosh(r)),rO={kernelName:Zo,backendName:\"cpu\",kernelFunc:iQ};function aQ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],\"float32\"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let gt=0;gt1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,E=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],gt=et+st*f.inChannels,bt=ot,kt=dt;for(let At=0;At{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,s,i,\"NHWC\",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&>ot&&(ot=At)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var fO={kernelName:Yd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Yd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=gt,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var dO={kernelName:Xd,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,\"NHWC\",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=gt,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function yl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"sum\");let a;o.dtype===\"bool\"?a=Do({inputs:{x:o},backend:e,attrs:{dtype:\"int32\"}}):a=Xr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims(\"sum\",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,\"int32\"),g=sd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=yl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var gO={kernelName:wp,backendName:\"cpu\",kernelFunc:hQ};function gQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],\"eluGrad\");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,\"float32\",s)}var xO={kernelName:Cp,backendName:\"cpu\",kernelFunc:gQ};var xQ=S.ERF_P,yQ=S.ERF_A1,bQ=S.ERF_A2,wQ=S.ERF_A3,CQ=S.ERF_A4,IQ=S.ERF_A5,vQ=_t(Ca,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+xQ*e);return t*(1-((((IQ*n+CQ)*n+wQ)*n+bQ)*n+yQ)*n*Math.exp(-e*e))}),yO={kernelName:Ca,backendName:\"cpu\",kernelFunc:vQ};function md(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var bO={kernelName:mi,backendName:\"cpu\",kernelFunc:md};var SQ=Qt((r,t)=>r/t),Uh=ie(ts,SQ),Hh={kernelName:ts,backendName:\"cpu\",kernelFunc:Uh};function gw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType(\"float32\",c),m=y.getTypedArrayFromDType(\"float32\",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),$Q=ie(os,AQ,null,\"int32\"),vO={kernelName:os,backendName:\"cpu\",kernelFunc:$Q};function DQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=xT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c===\"NCHW\"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Zi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Zi({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c===\"NCHW\"&&f===\"prelu\"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Lc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Lc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var SO={kernelName:Ni,backendName:\"cpu\",kernelFunc:DQ};function RQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=yT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Zi({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Lc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var NO={kernelName:Ti,backendName:\"cpu\",kernelFunc:RQ};function FQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=S.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=tw(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var TO={kernelName:Na,backendName:\"cpu\",kernelFunc:FQ};function OQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],\"gatherV2\");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=ew(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var kO={kernelName:fi,backendName:\"cpu\",kernelFunc:OQ};function PQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=gw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var EO={kernelName:vp,backendName:\"cpu\",kernelFunc:PQ};var LQ=_t(ka,r=>Number.isFinite(r)?1:0,\"bool\"),_O={kernelName:ka,backendName:\"cpu\",kernelFunc:LQ};var MQ=_t(Ea,r=>Math.abs(r)===1/0?1:0,\"bool\"),AO={kernelName:Ea,backendName:\"cpu\",kernelFunc:MQ};var zQ=_t(as,r=>Number.isNaN(r)?1:0,\"bool\"),$O={kernelName:as,backendName:\"cpu\",kernelFunc:zQ};function BQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=rw(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var DO={kernelName:Np,backendName:\"cpu\",kernelFunc:BQ};var VQ=_t($a,r=>Math.log1p(r)),RO={kernelName:$a,backendName:\"cpu\",kernelFunc:VQ};var GQ=Qt((r,t)=>r&&t),WQ=ie(Da,GQ,null,\"bool\"),FO={kernelName:Da,backendName:\"cpu\",kernelFunc:WQ};var UQ=_t(Ra,r=>r?0:1,\"bool\"),OO={kernelName:Ra,backendName:\"cpu\",kernelFunc:UQ};var HQ=Qt((r,t)=>r||t),qQ=ie(Fa,HQ,null,\"bool\"),PO={kernelName:Fa,backendName:\"cpu\",kernelFunc:qQ};function KQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,\"LRN\");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=pd(m,o.shape,o.dtype,f,c,\"max\");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var BO={kernelName:ms,backendName:\"cpu\",kernelFunc:XQ};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,\"maxPool3d\");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=hw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,\"max\");return e.makeTensorInfo(m.shape,\"float32\",m.values)}var VO={kernelName:Ll,backendName:\"cpu\",kernelFunc:YQ};function ZQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],\"maxPool3DGrad\");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=PF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,\"float32\"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let gt=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=gt===bt?1:0;if(kt===0)continue;let At=P.get(V,ot,nt,dt,G);et+=At*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var GO={kernelName:Ep,backendName:\"cpu\",kernelFunc:ZQ};function JQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,dw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,\"float32\"),$=e.data.get(o.dataId).values,F=wt(o.shape,\"float32\",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var WO={kernelName:kp,backendName:\"cpu\",kernelFunc:JQ};function UO(r,t,e,n,o){let s=y.computeStrides(t),i=pd(r,t,e,s,o,\"max\"),a=dw(r,t,e,o,!0,n);return[i.values,a.values]}var HO={kernelName:_p,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,\"MaxPoolWithArgmax\");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=UO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:\"int32\"}]}};function QQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],\"float32\",new Float32Array([c]));p.push(m);let f=Do({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}});p.push(f);let d=Uh({inputs:{a:f,b:m},backend:e});p.push(d);let h=yl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var qO={kernelName:fs,backendName:\"cpu\",kernelFunc:QQ};function t9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,\"min\");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims(\"min\",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i===\"reflect\"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(C[E]=(l[E]-1)*2-C[E]+c);C=C.map((E,A)=>E-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var jO={kernelName:gs,backendName:\"cpu\",kernelFunc:e9};var r9=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),n9=ie(Oa,r9),XO={kernelName:Oa,backendName:\"cpu\",kernelFunc:n9};var ZO=_l(dh());function CT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=wT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Gh({inputs:{a:o,b:p},backend:e}),f=KN({inputs:{x:m},backend:e}),d=yl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Uh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var YO={kernelName:Os,backendName:\"cpu\",kernelFunc:CT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,\"multinomial\");let u=a?o:CT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),\"int32\");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=md({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Eu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var iP={kernelName:gi,backendName:\"cpu\",kernelFunc:IT};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,\"pad\");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var xw={kernelName:bs,backendName:\"cpu\",kernelFunc:m9};var f9=Qt((r,t)=>Math.pow(r,t)),d9=ie(ws,f9),aP={kernelName:ws,backendName:\"cpu\",kernelFunc:d9};function h9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=ow(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var lP={kernelName:$p,backendName:\"cpu\",kernelFunc:h9};function g9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=sw(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var uP={kernelName:Dp,backendName:\"cpu\",kernelFunc:g9};function x9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=iw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var cP={kernelName:Rp,backendName:\"cpu\",kernelFunc:x9};function y9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Dc(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var pP={kernelName:Ml,backendName:\"cpu\",kernelFunc:y9};var b9=_t(vs,r=>1/r),mP={kernelName:vs,backendName:\"cpu\",kernelFunc:b9};function w9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,\"resizeBilinear\");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,E=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let gt=0;gt<$;gt++){let bt=gt+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],At=bt*C,Vt=Math.min(p-1,i?Math.round(At):Math.floor(At));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var gP={kernelName:Op,backendName:\"cpu\",kernelFunc:v9};function S9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,\"reverse\");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Xr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var xP={kernelName:Es,backendName:\"cpu\",kernelFunc:S9};var yP={kernelName:Xa,backendName:\"cpu\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),bP={kernelName:_s,backendName:\"cpu\",kernelFunc:N9};function T9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=xl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var wP={kernelName:Ba,backendName:\"cpu\",kernelFunc:T9};function k9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?D9*r:$9*(Math.exp(r)-1)),SP={kernelName:Va,backendName:\"cpu\",kernelFunc:R9};var F9=_t(Wa,r=>r<0?-1:r>0?1:0),NP={kernelName:Wa,backendName:\"cpu\",kernelFunc:F9};var O9=_t($s,r=>Math.sin(r)),TP={kernelName:$s,backendName:\"cpu\",kernelFunc:O9};var P9=_t(Ga,r=>Math.sinh(r)),kP={kernelName:Ga,backendName:\"cpu\",kernelFunc:P9};var L9=11920928955078125e-23,EP=Math.log(L9)+2,M9=_t(Ua,r=>{let t=r>-EP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var $P={kernelName:zl,backendName:\"cpu\",kernelFunc:B9};function V9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=lw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var DP={kernelName:Ha,backendName:\"cpu\",kernelFunc:V9};function G9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=cd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var RP={kernelName:Bl,backendName:\"cpu\",kernelFunc:G9};function W9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error(\"segmentIds and indices should have same size.\");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=cd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var FP={kernelName:Vl,backendName:\"cpu\",kernelFunc:W9};function U9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case\"bool\":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=xl(d,g,a,m,c,l,u,p,x,f);break}case\"float32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=xl(d,g,a,m,c,l,u,p,x,f);break}case\"int32\":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=xl(d,g,a,m,c,l,u,p,x,f);break}case\"string\":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=xl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var OP={kernelName:Mp,backendName:\"cpu\",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Oo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var PP={kernelName:Ci,backendName:\"cpu\",kernelFunc:H9};var LP={kernelName:Gl,backendName:\"cpu\",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,\"square\");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),MP={kernelName:fo,backendName:\"cpu\",kernelFunc:q9};function K9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,\"stridedSlice\");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Me.computeOutShape(b,w,C),A=Oo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=uw(f,E,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var zP={kernelName:qa,backendName:\"cpu\",kernelFunc:K9};function j9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Fc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var BP={kernelName:Wl,backendName:\"cpu\",kernelFunc:j9};function X9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Oc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var VP={kernelName:Ul,backendName:\"cpu\",kernelFunc:X9};function Y9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.data.get(s.dataId).values,a=Pc(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var GP={kernelName:Hl,backendName:\"cpu\",kernelFunc:Y9};var Z9=_t(Ms,r=>Math.tan(r)),WP={kernelName:Ms,backendName:\"cpu\",kernelFunc:Z9};var J9=_t(zs,r=>Math.tanh(r)),UP={kernelName:zs,backendName:\"cpu\",kernelFunc:J9};function Q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,\"tile\");let i=cw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var HP={kernelName:to,backendName:\"cpu\",kernelFunc:Q9};function ttt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,\"topk\");let a=e.data.get(o.dataId).values,[u,l]=pw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var qP={kernelName:Ka,backendName:\"cpu\",kernelFunc:ttt};function ett(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),E=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function ntt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function ott(r,t){return r}function stt(r,t){return y.clamp(0,r,t-1)}function jh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var ZP={kernelName:ql,backendName:\"cpu\",kernelFunc:ctt};var ptt=[vF,FR,SF,NF,zR,TF,kF,EF,_F,AF,$F,DF,RF,FF,OF,LF,MF,zF,BF,IF,VF,GF,WF,UF,MR,BR,HF,OR,qF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,mO,fO,dO,gO,gF,xO,VR,yO,GR,bO,WR,wO,CO,IO,UR,vO,SO,NO,TO,kO,HR,qR,PR,EO,KF,_O,AO,$O,xF,KR,jR,DO,XR,RO,FO,OO,PO,LO,MO,zO,YR,BO,VO,GO,WO,HO,qO,KO,ZR,jO,XO,JO,JR,QR,QO,tP,eP,tF,rP,sP,iP,xw,aP,yF,rF,lP,uP,cP,pP,LR,Hh,mP,bF,wF,CF,fP,dP,hP,gP,xP,yP,bP,aF,wP,IP,vP,SP,uF,NP,TP,kP,cF,YO,_P,AP,$P,DP,RP,FP,OP,PP,mF,LP,fF,MP,zP,BP,VP,GP,dF,hO,WP,UP,HP,qP,jP,eF,XP,YP,ZP,nP];for(let r of ptt)zu(r);var gd={};Wt(gd,{assertNotComplex:()=>ri,bindCanvasToFramebuffer:()=>wtt,bindColorTextureToFramebuffer:()=>Jh,bindTextureToProgramUniformSampler:()=>MT,bindTextureUnit:()=>eL,bindVertexBufferToProgramAttribute:()=>vw,callAndCheck:()=>ht,canBeRepresented:()=>TT,createFragmentShader:()=>ET,createFramebuffer:()=>OT,createProgram:()=>_T,createStaticIndexBuffer:()=>DT,createStaticVertexBuffer:()=>$T,createTexture:()=>RT,createVertexShader:()=>kT,getBatchDim:()=>wl,getExtensionOrThrow:()=>fd,getFramebufferErrorMessage:()=>rL,getMaxTexturesInShader:()=>VT,getNumChannels:()=>ytt,getProgramUniformLocation:()=>LT,getProgramUniformLocationOrThrow:()=>PT,getRowsCols:()=>Cl,getShapeAs3D:()=>hd,getTextureShapeFromLogicalShape:()=>zT,getWebGLDisjointQueryTimerVersion:()=>GT,getWebGLErrorMessage:()=>tL,getWebGLMaxTextureSize:()=>BT,hasExtension:()=>Hn,isCapableOfRenderingToFloatTexture:()=>WT,isDownloadFloatTextureEnabled:()=>UT,isReshapeFree:()=>Au,isWebGLFenceEnabled:()=>HT,isWebGLVersionEnabled:()=>Nw,linkProgram:()=>AT,logShaderSourceAndInfoLog:()=>Iw,resetMaxTextureSize:()=>Ctt,resetMaxTexturesInShader:()=>Itt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>btt,validateFramebuffer:()=>dd,validateProgram:()=>Zh,validateTextureSize:()=>FT});var Mc={},yw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function vT(r,t){Mc[r]=t}function Un(r,t){if(!(r in Mc)||t!=null){let n=ftt(r,t);if(n!==null)Mc[r]=n;else return console.log(\"Could not get context for WebGL version\",r),null}let e=Mc[r];return e==null||e.isContextLost()?(delete Mc[r],Un(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Mc[r])}function mtt(r){if(typeof OffscreenCanvas!=\"undefined\"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!=\"undefined\")return document.createElement(\"canvas\");throw new Error(\"Cannot create a canvas in this context\")}function ftt(r,t){if(r!==1&&r!==2)throw new Error(\"Cannot get WebGL rendering context, WebGL is disabled.\");let e=t==null?mtt(r):t;return e.addEventListener(\"webglcontextlost\",n=>{n.preventDefault(),delete Mc[r]},!1),M().getBool(\"SOFTWARE_WEBGL_ENABLED\")&&(yw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext(\"webgl\",yw)||e.getContext(\"experimental-webgl\",yw):e.getContext(\"webgl2\",yw)}var _u;(function(r){r[r.DENSE=0]=\"DENSE\",r[r.SHARED_BATCH=1]=\"SHARED_BATCH\"})(_u||(_u={}));var Yr;(function(r){r[r.RENDER=0]=\"RENDER\",r[r.UPLOAD=1]=\"UPLOAD\",r[r.PIXELS=2]=\"PIXELS\",r[r.DOWNLOAD=3]=\"DOWNLOAD\"})(Yr||(Yr={}));var Lr;(function(r){r[r.UNPACKED_FLOAT16=0]=\"UNPACKED_FLOAT16\",r[r.UNPACKED_FLOAT32=1]=\"UNPACKED_FLOAT32\",r[r.PACKED_4X1_UNSIGNED_BYTE=2]=\"PACKED_4X1_UNSIGNED_BYTE\",r[r.PACKED_2X2_FLOAT32=3]=\"PACKED_2X2_FLOAT32\",r[r.PACKED_2X2_FLOAT16=4]=\"PACKED_2X2_FLOAT16\"})(Lr||(Lr={}));function zc(r,t){return[t,r]}function JP(r,t){return r*t}function Xh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Qi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function QP(r,t){let[e,n]=Qi(r,t);return e*n*4}function Yh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return M().getNumber(\"WEBGL_VERSION\")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return M().getBool(\"DEBUG\")&&dtt(r),e}function dtt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error(\"WebGL Error: \"+tL(r,t))}var htt=596e-10,gtt=65504;function TT(r){return!!(M().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")||r===0||httr.getExtension(t),'Extension \"'+t+'\" not supported on this browser.')}function kT(r,t){let e=bl(r,()=>r.createShader(r.VERTEX_SHADER),\"Unable to create vertex WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error(\"Failed to compile vertex shader.\");return e}function ET(r,t){let e=bl(r,()=>r.createShader(r.FRAGMENT_SHADER),\"Unable to create fragment WebGLShader.\");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),M().get(\"ENGINE_COMPILE_ONLY\"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Iw(t,r.getShaderInfoLog(e)),new Error(\"Failed to compile fragment shader.\");return e}var xtt=/ERROR: [0-9]+:([0-9]+):/g;function Iw(r,t){let e=xtt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(`\n`),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),\"Unable to create WebGLProgram.\")}function AT(r,t){if(ht(r,()=>r.linkProgram(t)),!M().get(\"ENGINE_COMPILE_ONLY\")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Failed to link vertex and fragment shaders.\")}function Zh(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error(\"Shader program validation failed.\")}function $T(r,t){let e=bl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function DT(r,t){let e=bl(r,()=>r.createBuffer(),\"Unable to create WebGLBuffer\");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ytt(){return M().getNumber(\"WEBGL_VERSION\")===2?1:4}function RT(r){return bl(r,()=>r.createTexture(),\"Unable to create WebGLTexture.\")}function FT(r,t){let e=M().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error(\"Requested texture size \"+n+\" is invalid.\")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error(\"Requested texture size \"+n+\" greater than WebGL maximum on this browser / GPU \"+o+\".\")}}function OT(r){return bl(r,()=>r.createFramebuffer(),\"Unable to create WebGLFramebuffer.\")}function vw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function eL(r,t,e){nL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function btt(r,t){nL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function PT(r,t,e){return bl(r,()=>r.getUniformLocation(t,e),'uniform \"'+e+'\" not present in program.')}function LT(r,t,e){return r.getUniformLocation(t,e)}function MT(r,t,e,n){ht(r,()=>eL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function wtt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Jh(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function dd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error(\"Error binding framebuffer: \"+rL(r,t))}function rL(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return\"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT\";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return\"FRAMEBUFFER_INCOMPLETE_DIMENSIONS\";case r.FRAMEBUFFER_UNSUPPORTED:return\"FRAMEBUFFER_UNSUPPORTED\";default:return`unknown error ${t}`}}function bl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function nL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function wl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Cl(r){if(r.length===0)throw Error(\"Cannot get rows and columns of an empty shape array.\");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function hd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[wl(r),...Cl(r)]),t}function zT(r,t=!1){let e=M().getNumber(\"WEBGL_MAX_TEXTURE_SIZE\"),n=M().getNumber(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\");n===1/0&&M().getBool(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=wl(r),u=2,l=2;r.length&&([u,l]=Cl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function bw(r){return r%2===0}function Au(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||bw(e)&&bw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&bw(r[0])&&bw(t[0])}var ww,Cw;function BT(r){if(ww==null){let t=Un(r);ww=t.getParameter(t.MAX_TEXTURE_SIZE)}return ww}function Ctt(){ww=null}function Itt(){Cw=null}function VT(r){if(Cw==null){let t=Un(r);Cw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Cw)}function GT(r){if(r===0)return 0;let t,e=Un(r);return Hn(e,\"EXT_disjoint_timer_query_webgl2\")&&r===2?t=2:Hn(e,\"EXT_disjoint_timer_query\")?t=1:t=0,t}function Hn(r,t){return r.getExtension(t)!=null}function Nw(r){try{if(Un(r)!=null)return!0}catch(t){return console.log(\"Error when getting WebGL context: \",t),!1}return!1}function WT(r){if(r===0)return!1;let t=Un(r);if(r===1){if(!Hn(t,\"OES_texture_float\"))return!1}else if(!Hn(t,\"EXT_color_buffer_float\"))return!1;return NT(t)}function UT(r){if(r===0)return!1;let t=Un(r);if(r===1){if(!Hn(t,\"OES_texture_float\")||!Hn(t,\"WEBGL_color_buffer_float\"))return!1}else{if(Hn(t,\"EXT_color_buffer_float\"))return NT(t);let n=\"EXT_color_buffer_half_float\";if(Hn(t,n)){let o=t.getExtension(n);return vtt(t,o)}return!1}return NT(t)}function NT(r){let t=Yh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function vtt(r,t){let e=Yh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function HT(r){return r!==2?!1:Un(r).fenceSync!=null}function ri(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!==\"complex64\",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=M();Tt.registerFlag(\"HAS_WEBGL\",()=>Tt.getNumber(\"WEBGL_VERSION\")>0);Tt.registerFlag(\"WEBGL_VERSION\",()=>Nw(2)?2:Nw(1)?1:0);Tt.registerFlag(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\",()=>!1);Tt.registerFlag(\"WEBGL_BUFFER_SUPPORTED\",()=>Tt.get(\"WEBGL_VERSION\")===2);Tt.registerFlag(\"WEBGL_CPU_FORWARD\",()=>!0);Tt.registerFlag(\"WEBGL_FORCE_F16_TEXTURES\",()=>!1);Tt.registerFlag(\"WEBGL_PACK\",()=>Tt.getBool(\"HAS_WEBGL\"));Tt.registerFlag(\"WEBGL_PACK_NORMALIZATION\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_CLIP\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_DEPTHWISECONV\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_BINARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_UNARY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_ARRAY_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_IMAGE_OPERATIONS\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_PACK_REDUCE\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_LAZILY_UNPACK\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_CONV_IM2COL\",()=>Tt.getBool(\"WEBGL_PACK\"));Tt.registerFlag(\"WEBGL_MAX_TEXTURE_SIZE\",()=>BT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_MAX_TEXTURES_IN_SHADER\",()=>VT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\",()=>{let r=Tt.getNumber(\"WEBGL_VERSION\");return r===0?0:GT(r)});Tt.registerFlag(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\",()=>Tt.getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0&&!Yl.isMobile());Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_CAPABLE\",()=>WT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_RENDER_FLOAT32_ENABLED\",()=>Tt.getBool(\"WEBGL_FORCE_F16_TEXTURES\")?!1:Tt.getBool(\"WEBGL_RENDER_FLOAT32_CAPABLE\"));Tt.registerFlag(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\",()=>UT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_FENCE_API_ENABLED\",()=>HT(Tt.getNumber(\"WEBGL_VERSION\")));Tt.registerFlag(\"WEBGL_SIZE_UPLOAD_UNIFORM\",()=>Tt.getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?4:0);Tt.registerFlag(\"WEBGL_DELETE_TEXTURE_THRESHOLD\",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag(\"WEBGL_FLUSH_THRESHOLD\",()=>Yl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag(\"CPU_HANDOFF_SIZE_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_USE_SHAPES_UNIFORMS\",()=>!1);Tt.registerFlag(\"TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD\",()=>1e5);Tt.registerFlag(\"TOPK_K_CPU_HANDOFF_THRESHOLD\",()=>128);Tt.registerFlag(\"WEBGL_EXP_CONV\",()=>!1);Tt.registerFlag(\"SOFTWARE_WEBGL_ENABLED\",()=>Tt.getBool(\"IS_TEST\"));Tt.registerFlag(\"WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE\",()=>1/0);Tt.registerFlag(\"WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE\",()=>!1);Tt.registerFlag(\"WEBGL2_ISNAN_CUSTOM\",()=>!1);Tt.registerFlag(\"ENGINE_COMPILE_ONLY\",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return M().getNumber(\"WEBGL_VERSION\")===2?(r=\"#version 300 es\",t=\"in\",e=\"out\",n=\"in\",o=\"texture\",s=\"outputColor\",i=\"out vec4 outputColor;\",a=M().getBool(\"WEBGL2_ISNAN_CUSTOM\")?`\n bool isnan_custom(float val) {\n uint floatToUint = floatBitsToUint(val);\n return (floatToUint & 0x7fffffffu) > 0x7f800000u;\n }\n\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan_custom(val.x),\n isnan_custom(val.y), isnan_custom(val.z), isnan_custom(val.w));\n }\n\n #define isnan(value) isnan_custom(value)\n `:\"\",u=\"\",l=`\n #define round(value) newRound(value)\n int newRound(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 newRound(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `):(r=\"\",t=\"attribute\",e=\"varying\",n=\"varying\",o=\"texture2D\",s=\"gl_FragColor\",i=\"\",a=`\n #define isnan(value) isnan_custom(value)\n bool isnan_custom(float val) {\n return (val > 0. || val < 1. || val == 0.) ? false : true;\n }\n bvec4 isnan_custom(vec4 val) {\n return bvec4(isnan(val.x), isnan(val.y), isnan(val.z), isnan(val.w));\n }\n `,u=`\n uniform float INFINITY;\n\n bool isinf(float val) {\n return abs(val) == INFINITY;\n }\n bvec4 isinf(vec4 val) {\n return equal(abs(val), vec4(INFINITY));\n }\n `,l=`\n int round(float value) {\n return int(floor(value + 0.5));\n }\n\n ivec4 round(vec4 value) {\n return ivec4(floor(value + vec4(0.5)));\n }\n `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ni(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join(\"\")}function Bc(r,t,e=\"index\"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join(\"\")}function Stt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function oL(r,t,e=\"index\"){let n=r.map((s,i)=>i),o=Stt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join(\"\")}function xd(r){let t=y.computeStrides(r).map(e=>e.toString());return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z;\n }\n`}function yd(){return`\n int getFlatIndex(ivec3 coords) {\n return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z;\n }\n`}var Tw=`\n const float FLOAT_MAX = 1.70141184e38;\n const float FLOAT_MIN = 1.17549435e-38;\n\n lowp vec4 encode_float(highp float v) {\n if (isnan(v)) {\n return vec4(255, 255, 255, 255);\n }\n\n highp float av = abs(v);\n\n if(av < FLOAT_MIN) {\n return vec4(0.0, 0.0, 0.0, 0.0);\n } else if(v > FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 127.0) / 255.0;\n } else if(v < -FLOAT_MAX) {\n return vec4(0.0, 0.0, 128.0, 255.0) / 255.0;\n }\n\n highp vec4 c = vec4(0,0,0,0);\n\n highp float e = floor(log2(av));\n highp float m = exp2(fract(log2(av))) - 1.0;\n\n c[2] = floor(128.0 * m);\n m -= c[2] / 128.0;\n c[1] = floor(32768.0 * m);\n m -= c[1] / 32768.0;\n c[0] = floor(8388608.0 * m);\n\n highp float ebias = e + 127.0;\n c[3] = floor(ebias / 2.0);\n ebias -= c[3] * 2.0;\n c[2] += floor(ebias) * 128.0;\n\n c[3] += 128.0 * step(0.0, -v);\n\n return c / 255.0;\n }\n`;var{getBroadcastDims:sL}=S;function iL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:\"\"};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=kw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push(\"uniform int outShape;\");break;case 2:n.push(\"uniform ivec2 outShape;\"),n.push(\"uniform int outShapeStrides;\");break;case 3:n.push(\"uniform ivec3 outShape;\"),n.push(\"uniform ivec2 outShapeStrides;\");break;case 4:n.push(\"uniform ivec4 outShape;\"),n.push(\"uniform ivec3 outShapeStrides;\");break;default:break}n.push(\"uniform ivec2 outTexShape;\")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:\"\"};`)});let o=n.join(`\n`),s=r.map(f=>Ntt(f,t,e.packedInputs,e.enableShapeUniforms)).join(`\n`),i=t.texShape,a=Ge(),u=Ett(a),l,c,p=$tt(a);return t.isPacked?(l=Ttt(t.logicalShape,i,e.enableShapeUniforms),c=Att(a)):(l=ktt(t.logicalShape,i,e.enableShapeUniforms),c=_tt(a)),e.packedInputs&&(p+=Ott),[p,u,c,o,l,s,e.userCode].join(`\n`)}function wd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Ktt(r,t);case 1:return Xtt(r,t);case 2:return Ztt(r,t);case 3:return Qtt(r,t);case 4:return eet(r,t);case 5:return ret(r);case 6:return net(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function aL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return qtt(r);case 1:return jtt(r,t);case 2:return Ytt(r,t);case 3:return Jtt(r,t);default:return tet(r,t)}}function Ntt(r,t,e=!1,n){let o=\"\";e?o+=aL(r,n):o+=wd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=oet(r,t):o+=set(r,t)),o}function Ttt(r,t,e){switch(r.length){case 0:return lL();case 1:return Ptt(r,t,e);case 2:return Utt(r,t,e);case 3:return Mtt(r,t,e);default:return Btt(r,t,e)}}function ktt(r,t,e){switch(r.length){case 0:return lL();case 1:return Ltt(r,t,e);case 2:return Htt(r,t,e);case 3:return ztt(r,t,e);case 4:return Vtt(r,t,e);case 5:return Gtt(r,t);case 6:return Wtt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Ett(r){return`\n float sampleTexture(sampler2D textureSampler, vec2 uv) {\n return ${r.texture2D}(textureSampler, uv).r;\n }\n `}function _tt(r){return`\n void setOutput(float val) {\n ${r.output} = vec4(val, 0, 0, 0);\n }\n `}function Att(r){return`\n void setOutput(vec4 val) {\n ${r.output} = val;\n }\n `}function $tt(r){return`${r.version}\n precision highp float;\n precision highp int;\n precision highp sampler2D;\n ${r.varyingFs} vec2 resultUV;\n ${r.defineOutput}\n const vec2 halfCR = vec2(0.5, 0.5);\n\n struct ivec5\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n };\n\n struct ivec6\n {\n int x;\n int y;\n int z;\n int w;\n int u;\n int v;\n };\n\n uniform float NAN;\n ${r.defineSpecialNaN}\n ${r.defineSpecialInf}\n ${r.defineRound}\n\n int imod(int x, int y) {\n return x - y * (x / y);\n }\n\n int idiv(int a, int b, float sign) {\n int res = a / b;\n int mod = imod(a, b);\n if (sign < 0. && mod != 0) {\n res -= 1;\n }\n return res;\n }\n\n //Based on the work of Dave Hoskins\n //https://www.shadertoy.com/view/4djSRW\n #define HASHSCALE1 443.8975\n float random(float seed){\n vec2 p = resultUV * seed;\n vec3 p3 = fract(vec3(p.xyx) * HASHSCALE1);\n p3 += dot(p3, p3.yzx + 19.19);\n return fract((p3.x + p3.y) * p3.z);\n }\n\n ${Dtt}\n ${Rtt}\n ${Ftt}\n `}var Dtt=`\nvec2 uvFromFlat(int texNumR, int texNumC, int index) {\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\nvec2 packedUVfrom1D(int texNumR, int texNumC, int index) {\n int texelIndex = index / 2;\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Rtt=`\nvec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR,\n int texNumC, int row, int col) {\n int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = texelIndex / texNumC;\n int texC = texelIndex - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ftt=`\nvec2 packedUVfrom3D(int texNumR, int texNumC,\n int texelsInBatch, int texelsInLogicalRow, int b,\n int row, int col) {\n int index = b * texelsInBatch + (row / 2) * texelsInLogicalRow + (col / 2);\n int texR = index / texNumC;\n int texC = index - texR * texNumC;\n return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR);\n}\n`,Ott=`\n float getChannel(vec4 frag, vec2 innerDims) {\n vec2 modCoord = mod(innerDims, 2.);\n return modCoord.x == 0. ?\n (modCoord.y == 0. ? frag.r : frag.g) :\n (modCoord.y == 0. ? frag.b : frag.a);\n }\n float getChannel(vec4 frag, int dim) {\n float modCoord = mod(float(dim), 2.);\n return modCoord == 0. ? frag.r : frag.g;\n }\n`;function lL(){return`\n int getOutputCoords() {\n return 0;\n }\n `}function Ptt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.x * ${n[1]}.0);\n }\n `:n[1]===1?e?`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ceil(float(outTexShape[0]) / 2.0));\n }\n `:`\n int getOutputCoords() {\n return 2 * int(resultUV.y * ${n[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n return 2 * (resTexRC.x * packedTexShape[1] + resTexRC.y);\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n return 2 * (resTexRC.x * ${n[1]} + resTexRC.y);\n }\n `}function Ltt(r,t,e){return t[0]===1?e?`\n int getOutputCoords() {\n return int(resultUV.x * float(outTexShape[1]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.x * ${t[1]}.0);\n }\n `:t[1]===1?e?`\n int getOutputCoords() {\n return int(resultUV.y * float(outTexShape[0]));\n }\n `:`\n int getOutputCoords() {\n return int(resultUV.y * ${t[0]}.0);\n }\n `:e?`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n return resTexRC.x * outTexShape[1] + resTexRC.y;\n }\n `:`\n int getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n return resTexRC.x * ${t[1]} + resTexRC.y;\n }\n `}function Mtt(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec3(b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[2]/2),s=o*Math.ceil(r[1]/2);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${n[0]}, ${n[1]}));\n int index = resTexRC.x * ${n[1]} + resTexRC.y;\n\n int b = index / ${s};\n index -= b * ${s};\n\n int r = 2 * (index / ${o});\n int c = imod(index, ${o}) * 2;\n\n return ivec3(b, r, c);\n }\n `}function ztt(r,t,e){if(e)return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(outTexShape[0], outTexShape[1]));\n int index = resTexRC.x * outTexShape[1] + resTexRC.y;\n ${Bc([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n`;let n=ni([\"r\",\"c\",\"d\"],r);return`\n ivec3 getOutputCoords() {\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(${t[0]}, ${t[1]}));\n int index = resTexRC.x * ${t[1]} + resTexRC.y;\n ${n}\n return ivec3(r, c, d);\n }\n `}function Btt(r,t,e){if(e)return`\n ivec4 getOutputCoords() {\n ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0));\n ivec2 resTexRC = ivec2(resultUV.yx *\n vec2(packedTexShape[0], packedTexShape[1]));\n int index = resTexRC.x * packedTexShape[1] + resTexRC.y;\n\n int texelsInLogicalRow = int(ceil(float(outShape[3]) / 2.0));\n int texelsInBatch = texelsInLogicalRow * int(ceil(float(outShape[2]) / 2.0));\n int texelsInBatchN = texelsInBatch * outShape[1];\n\n int b2 = index / texelsInBatchN;\n index -= b2 * texelsInBatchN;\n\n int b = index / texelsInBatch;\n index -= b * texelsInBatch;\n\n int r = 2 * (index / texelsInLogicalRow);\n int c = imod(index, texelsInLogicalRow) * 2;\n\n return ivec4(b2, b, r, c);\n }\n `;let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)],o=Math.ceil(r[r.length-1]/2),s=o*Math.ceil(r[r.length-2]/2),i=s,a=\"\",u=\"b, r, c\";for(let l=2;l=1?c=\"coords = 0;\":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(`\n`);let m=\"\";i<2&&s>0?m=\"coords\":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(\", \");let f=\"return outputValue;\",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=`\n return vec4(outputValue.xy, outputValue.xy);\n `;else if(h&&!x)i===1?f=`\n return vec4(outputValue.x, outputValue.x, 0., 0.);\n `:f=`\n return vec4(outputValue.x);\n `;else if(a.length){let b=s-2,w=s-1;a.indexOf(b)>-1&&a.indexOf(w)>-1?f=\"return vec4(outputValue.x);\":a.indexOf(b)>-1?f=\"return vec4(outputValue.x, outputValue.y, outputValue.x, outputValue.y);\":a.indexOf(w)>-1&&(f=\"return vec4(outputValue.xx, outputValue.zz);\")}return`\n vec4 ${o}() {\n ${u} coords = getOutputCoords();\n ${c}\n vec4 outputValue = get${n}(${m});\n ${f}\n }\n `}function set(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o=\"get\"+n+\"AtOutCoords\",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return`\n float ${o}() {\n return sampleTexture(${e}, resultUV);\n }\n `;let l=Bt(u),c=sL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];a===0?m=\"\":u<2&&c.length>=1?m=\"coords = 0;\":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(`\n`);let d=\"\";return u<2&&a>0?d=\"coords\":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(\", \"),`\n float ${o}() {\n ${l} coords = getOutputCoords();\n ${m}\n return get${n}(${d});\n }\n `}function Bt(r){if(r<=1)return\"int\";if(r===2)return\"ivec2\";if(r===3)return\"ivec3\";if(r===4)return\"ivec4\";if(r===5)return\"ivec5\";if(r===6)return\"ivec6\";throw Error(`GPU for rank ${r} is not yet supported`)}function kw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(\", \")}function cL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=iL(o,i,t),u=ET(r.gl,a),l=r.createProgram(u);return M().get(\"ENGINE_COMPILE_ONLY\")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},qT(r,t,l))}function qT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,\"NAN\",!1),M().getNumber(\"WEBGL_VERSION\")===1&&(c=r.getUniformLocation(e,\"INFINITY\",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function uL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function pL(r,t,e,n,o){t.program.enableShapeUniforms||(uL(t.inShapeInfos,e),uL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),M().getNumber(\"WEBGL_VERSION\")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=kw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type===\"float\")r.gl.uniform1fv(c,p);else if(u.type===\"vec2\")r.gl.uniform2fv(c,p);else if(u.type===\"vec3\")r.gl.uniform3fv(c,p);else if(u.type===\"vec4\")r.gl.uniform4fv(c,p);else if(u.type===\"int\")r.gl.uniform1iv(c,p);else if(u.type===\"ivec2\")r.gl.uniform2iv(c,p);else if(u.type===\"ivec3\")r.gl.uniform3iv(c,p);else if(u.type===\"ivec4\")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function mL(r,t,e){let n=\"\";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=kw(r.packedInputs,i.shape,u),m=\"\",f=\"\",d=\"\";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?\"\":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:\"\"}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?\"uniform\":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+=\"_\"+n+\"_\"+o+`${M().getNumber(\"WEBGL_VERSION\")}`,s}function we(r){return M().getBool(\"WEBGL_USE_SHAPES_UNIFORMS\")&&r<=4}var Ew=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=_u.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Bc([\"r\",\"c\",\"d\"],t):ni([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getA(rc.x, rc.y, rc.z);\n }\n\n ${e.output} = result;\n }\n `}};var _w=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=_u.DENSE,this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n ivec3 outCoordsFromFlatIndex(int index) {\n ${this.enableShapeUniforms?Bc([\"r\",\"c\",\"d\"],t):ni([\"r\",\"c\",\"d\"],t)}\n return ivec3(r, c, d);\n }\n\n void main() {\n ivec2 resTexRC = ivec2(resultUV.yx * vec2(texShape[0], texShape[1]));\n int index = 4 * (resTexRC.x * texShape[1] + resTexRC.y);\n\n vec4 result = vec4(0.);\n\n for (int i=0; i<4; i++) {\n int flatIndex = index + i;\n ivec3 rc = outCoordsFromFlatIndex(flatIndex);\n result[i] = getChannel(getA(rc.x, rc.y, rc.z), vec2(rc.y, rc.z));\n }\n\n ${e.output} = result;\n }\n `}};var Aw=class{constructor(t){this.variableNames=[\"A\"],this.outTexUsage=Yr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Tw}\n\n void main() {\n float x = getAAtOutCoords();\n ${e.output} = encode_float(x);\n }\n `}};var $w=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Yr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=`\n ${Tw}\n\n void main() {\n ivec3 coords = getOutputCoords();\n float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z));\n ${e.output} = encode_float(x);\n }\n `}};var uet={R:0,G:1,B:2,A:3},Qh=class{constructor(t,e=!1,n=\"RGBA\"){this.variableNames=[\"A\"],this.customUniforms=[{name:\"texShape\",type:\"ivec2\"}];let o=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let s=\"result\";e&&(s=\"floor(result * 255. + 0.5)\");let i=\"\";for(let a=0;aek,createBufferFromOutputTexture:()=>ok,createFloat16MatrixTexture:()=>ZT,createFloat16PackedMatrixTexture:()=>tk,createFloat32MatrixTexture:()=>YT,createIndexBuffer:()=>XT,createPackedMatrixTexture:()=>QT,createUnsignedBytesMatrixTexture:()=>JT,createVertexBuffer:()=>jT,createVertexShader:()=>KT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>ik,downloadFloat32MatrixFromBuffer:()=>sk,downloadMatrixFromPackedOutputTexture:()=>lk,downloadPackedMatrixFromBuffer:()=>ak,getInternalFormatForFloat16MatrixTexture:()=>Fw,getInternalFormatForFloat16PackedMatrixTexture:()=>Lw,getInternalFormatForFloat32MatrixTexture:()=>Rw,getInternalFormatForPackedMatrixTexture:()=>Pw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Ow,uploadDenseMatrixToTexture:()=>rk,uploadPixelDataToTexture:()=>nk});function KT(r){let t=Ge(),e=`${t.version}\n precision highp float;\n ${t.attribute} vec3 clipSpacePos;\n ${t.attribute} vec2 uv;\n ${t.varyingVs} vec2 resultUV;\n\n void main() {\n gl_Position = vec4(clipSpacePos, 1);\n resultUV = uv;\n }`;return kT(r,e)}function jT(r){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return $T(r,t)}function XT(r){let t=new Uint16Array([0,1,2,2,1,3]);return DT(r,t)}function tg(r,t,e,n,o,s){FT(t,e);let i=RT(r),a=r.TEXTURE_2D;return ht(r,()=>r.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),M().getNumber(\"WEBGL_VERSION\")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Rw(r){return r.internalFormatFloat}function YT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Rw(n),n.textureFormatFloat,r.FLOAT)}function Fw(r){return r.internalFormatHalfFloat}function ZT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Fw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Ow(r){return r.downloadTextureFormat}function JT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Ow(n),r.RGBA,r.UNSIGNED_BYTE)}function Pw(r){return r.internalFormatPackedFloat}function QT(r,t,e,n){let[o,s]=Qi(t,e);return tg(r,o,s,Pw(n),r.RGBA,r.FLOAT)}function Lw(r){return r.internalFormatPackedHalfFloat}function tk(r,t,e,n){let[o,s]=Qi(t,e);return tg(r,o,s,Lw(n),r.RGBA,n.textureTypeHalfFloat)}function ek(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),vw(r,t,\"clipSpacePos\",e,3,20,0)&&vw(r,t,\"uv\",e,2,20,12)}function rk(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),M().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function nk(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?M().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):M().getNumber(\"WEBGL_VERSION\")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ok(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function sk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function ik(r,t,e,n){let[o,s]=zc(t,e),i=4,a=new Uint8Array(JP(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ak(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(QP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function lk(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Gc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=M().getNumber(\"WEBGL_VERSION\");if(t!=null?(this.gl=t,vT(e,t)):this.gl=Un(e),t=this.gl,M().getNumber(\"WEBGL_VERSION\")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension(\"OES_vertex_array_object\");if(s==null)throw new Error(\"All WebGL1 implementations are expected to offer OES_vertex_array_object.\");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n=\"WEBGL_color_buffer_float\",o=\"EXT_color_buffer_half_float\";if(this.parallelCompilationExtension=this.gl.getExtension(\"KHR_parallel_shader_compile\"),M().getNumber(\"WEBGL_VERSION\")===1){let s=\"OES_texture_float\",i=\"OES_texture_half_float\";if(this.textureFloatExtension=fd(this.gl,s),Hn(this.gl,i))this.textureHalfFloatExtension=fd(this.gl,i);else if(M().get(\"WEBGL_FORCE_F16_TEXTURES\"))throw new Error(\"GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Hn(this.gl,o))this.colorBufferHalfFloatExtension=fd(this.gl,o);else if(M().get(\"WEBGL_FORCE_F16_TEXTURES\"))throw new Error(\"GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.\")}else if(n=\"EXT_color_buffer_float\",Hn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Hn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error(\"GL context does not support color renderable floats\");this.vertexBuffer=jT(this.gl),this.indexBuffer=XT(this.gl),this.framebuffer=OT(this.gl),this.textureConfig=Yh(this.gl,this.textureHalfFloatExtension)}get debug(){return M().getBool(\"DEBUG\")}dispose(){if(this.disposed)return;this.program!=null&&console.warn(\"Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing.\"),this.outputTexture!=null&&console.warn(\"Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.\");let t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),JT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),nk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),rk(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),tk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),QT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>ik(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ak(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return sk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ok(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(M().getBool(\"WEBGL_FENCE_API_ENABLED\")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>lk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=KT(e));let n=_T(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),AT(e,n);let o;return o=Object.assign(n,{vao:this.createVertexArray()}),this.bindVertexArray(o.vao),ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),console.assert(ek(e,o,this.vertexBuffer),\"gpgpu_util.bindVertexProgramAttributeStreams not fully successful.\"),this.debug&&Zh(e,o),this.setProgram(o),o}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&(this.bindVertexArray(this.program.vao),this.debug&&Zh(this.gl,this.program)),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?PT(this.gl,t,e):LT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),MT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Qi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error(\"setOutputPackedMatrixWriteRegion not implemented.\")}debugValidate(){this.program!=null&&Zh(this.gl,this.program),dd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,\"VAO changed between setProgram and executeProgram!\"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=fd(this.gl,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2?\"EXT_disjoint_timer_query_webgl2\":\"EXT_disjoint_timer_query\")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))),this.getQueryTime(t,M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION\"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=cet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;\"setTimeoutCustom\"in M().platform&&(n=M().platform.setTimeoutCustom.bind(M().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Jh(this.gl,t,this.framebuffer),this.debug&&dd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Jh(this.gl,this.outputTexture,this.framebuffer),this.debug&&dd(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Jh(o,t,this.framebuffer),this.debug&&dd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error(\"Attempted to use disposed GPGPUContext.\")}throwIfNoProgram(){if(this.program==null)throw new Error(\"No GPU program is currently set.\")}};function cet(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:ck(r,t)}function rM(r,t){if(r===1)return\"rc\";let e=\"\";for(let n=0;n ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]}`;let e=\"\";for(let n=this.rank-2;n= ${this.enableShapeUniforms?`outShape[${n}]`:this.outputShape[n]}`,n= ${n};\n bool rEdge = rp1 >= ${o};\n `}getOutput(t){let e=this.getSourceCoordsArr(t);return this.rank===1?`getA(rc), (rc + 1 >= ${this.enableShapeUniforms?\"outShape\":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}),\n cEdge ? 0. : getA(${e[1]}),\n rEdge ? 0. : getA(${e[2]}),\n rEdge || cEdge ? 0. : getA(${e[3]})`}};var Sd=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"inputShape\",type:\"ivec3\"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n=\"\";for(let o=0;o<4;o++){let s=\"thisRC = rc;\";o%2===1&&(s+=\"thisRC.z += 1;\"),o>1&&(s+=\"thisRC.y += 1;\"),n+=`\n ${s}\n ${o>0?\"if(thisRC.y < rows && thisRC.z < cols){\":\"\"}\n int flatIndex = getFlatIndex(thisRC);\n\n ivec3 inputRC = inputCoordsFromReshapedOutCoords(flatIndex);\n vec2 inputRCInnerDims = vec2(float(inputRC.y),float(inputRC.z));\n\n result[${o}] =\n getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims);\n ${o>0?\"}\":\"\"}\n `}this.userCode=`\n ${pet(e,this.enableShapeUniforms)}\n ${this.enableShapeUniforms?yd():xd(t)}\n\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0.);\n\n ivec3 thisRC;\n int rows = ${this.enableShapeUniforms?\"outShape[1]\":t[1]};\n int cols = ${this.enableShapeUniforms?\"outShape[2]\":t[2]};\n\n ${n}\n\n setOutput(result);\n }\n `}};function pet(r,t){return`\n ivec3 inputCoordsFromReshapedOutCoords(int index) {\n ${t?oL([\"r\",\"c\",\"d\"],\"inputShape\"):ni([\"r\",\"c\",\"d\"],r)}\n return ivec3(r, c, d);\n }\n `}var Gw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=oM(e,n),s=sM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=nM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Lr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Lr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Lr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=oM(n,o),i=sM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=nM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=M().get(\"WEBGL_DELETE_TEXTURE_THRESHOLD\");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error(\"Cannot release a texture that was never provided by this texture manager\");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log(\"Free/Used\",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function met(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function nM(r,t,e,n,o){let s=fet(t,n),i;if(o){let[u,l]=Qi(r[0],r[1]);i=u*l}else{let[u,l]=zc(r[0],r[1]);i=u*l}let a=met(e,s);return i*a}function fet(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return Pw(t);case Lr.PACKED_2X2_FLOAT16:return Lw(t);case Lr.UNPACKED_FLOAT32:return Rw(t);case Lr.UNPACKED_FLOAT16:return Fw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Ow(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function det(r){return M().getBool(\"WEBGL_RENDER_FLOAT32_ENABLED\")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function oM(r,t){if(r===Yr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Yr.RENDER||r==null)return det(t);if(r===Yr.DOWNLOAD||r===Yr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function sM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Mr=class{constructor(t,e){this.variableNames=[\"A\"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float unaryOperation(float x) {\n ${e}\n }\n\n void main() {\n float x = getAAtOutCoords();\n float y = unaryOperation(x);\n\n setOutput(y);\n }\n `}},hr=\"if (isnan(x)) return x;\",iM=\"return x;\",pk=\"return abs(x);\";var aM=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",lM=hr+`\n return (x < 0.0) ? 0.0 : x;\n`,uM=hr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,ta=\"return x;\",cM=\"return 1.0 / (1.0 + exp(-1.0 * x));\";var mM=\"return x;\",fM=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,dM=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,hM=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,gM=\"return 1.0 / (1.0 + exp(-1.0 * x));\",An=class{constructor(t,e){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n vec4 unaryOperation(vec4 x) {\n ${e}\n }\n\n void main() {\n vec4 x = getAAtOutCoords();\n vec4 y = unaryOperation(x);\n\n setOutput(y);\n }\n `}};var Ww=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=er(\"rc\",e),o=Bt(e),s=rM(e,n),i=n.slice(-2),a=e<=1?\"rc\":`vec2(${i.join(\",\")})`;this.userCode=`\n void main() {\n ${o} rc = getOutputCoords();\n vec4 packedInput = getA(${s});\n\n setOutput(getChannel(packedInput, ${a}));\n }\n `}};var get=qr.whereImpl,xet=1e-7,yet=1e-4,Uw={};function bet(r){return r in Uw||(Uw[r]={}),Uw[r]}var wet=M().getNumber(\"CPU_HANDOFF_SIZE_THRESHOLD\"),Cet=600;function Iet(){return M().global.screen==null?1024:M().global.screen.height*M().global.screen.width*window.devicePixelRatio*Cet/1024/1024}var $u=class extends Bo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!M().getBool(\"HAS_WEBGL\"))throw new Error(\"WebGL is not supported on this device\");let e;if(t!=null){if(t instanceof Gc)e=t;else{let n=Un(M().getNumber(\"WEBGL_VERSION\"),t);e=new Gc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Un(M().getNumber(\"WEBGL_VERSION\"));e=new Gc(n),this.binaryCache=bet(M().getNumber(\"WEBGL_VERSION\")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Gw(this.gpgpu),this.numMBBeforeWarning=Iet(),this.texData=new aa(this,Mn())}nextDataId(){return $u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=hd(e),c=new Qh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((M().getBool(\"WEBGL_CHECK_NUMERICAL_PROBLEMS\")||M().getBool(\"DEBUG\"))&&this.checkNumericalProblems(t),n===\"complex64\"&&t!=null)throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Yr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(M().getBool(\"DEBUG\")&&this.checkNumericalProblems(e),o===\"complex64\")throw new Error(\"Cannot write to a complex64 dtype. Please use tf.complex(real, imag).\");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Yr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new An(a,ta):m=new Mr(a,ta);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o===\"string\")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o===\"complex64\"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new An(o,ta):d=new Mr(o,ta);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(M().getBool(\"DEBUG\")&&!M().getBool(\"WEBGL_DOWNLOAD_FLOAT_ENABLED\")&&M().getNumber(\"WEBGL_VERSION\")===2)throw new Error(\"tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.\");let l=null,c;if(i!==\"complex64\"&&M().get(\"WEBGL_BUFFER_SUPPORTED\")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...Xh(o))}this.pendingRead.set(t,[]),i!==\"complex64\"&&await this.gpgpu.createAndWaitForFence();let p;if(i===\"complex64\"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Mn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a===\"complex64\")throw new Error(\"Does not support reading texture for complex64 dtype.\");if(i!=null){let f;u?f=new An(s,ta):f=new Mr(s,ta);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error(\"Data is not on GPU but on CPU.\"):new Error(\"There is no data on GPU or CPU.\");let c=this.decode(t,e.customTexShape),p=Mn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype===\"string\")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error(\"Failed to decode encoded string bytes into utf-8\")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(\", \")}else a.kernelMs={error:\"WebGL query timers are not supported in this environment.\"};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(M().getNumber(\"WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE\")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=wet){return M().getBool(\"WEBGL_CPU_FORWARD\")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Mn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Ww(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Vw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[wl(t.shape),...Cl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[wl(e),...Cl(e)],i=new Sd(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>\"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.\")}let a=hd(s),u;o?u=new _w(a):u=new Ew(a);let l=!0,c=[e!=null?e:Xh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===_u.DENSE){let x=i!=null?i:Xh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype===\"complex64\")throw new Error(\"GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.\");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=M().getNumber(\"WEBGL_SIZE_UPLOAD_UNIFORM\"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Au(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=mL(t,c,p),f=this.getAndSaveBinary(m,()=>cL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),M().get(\"ENGINE_COMPILE_ONLY\")||pL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=M().get(\"WEBGL_FLUSH_THRESHOLD\");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!M().getBool(\"WEBGL_LAZILY_UNPACK\")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(M().getBool(\"IS_TEST\")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!=\"undefined\"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!M().get(\"WEBGL_RENDER_FLOAT32_ENABLED\")){let t=M().getBool(\"DEBUG\");M().set(\"DEBUG\",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(M().set(\"DEBUG\",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?xet:yet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=zT(n,u),e.texShape=p),s!=null){let m=hd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Qi(p[0],p[1])),u?f=new Dw(m,g):f=new Qh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Yr.PIXELS:w.usage=Yr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,M().get(\"ENGINE_COMPILE_ONLY\")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=vet(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await xh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Iw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error(\"Failed to compile fragment shader.\")):new Error(\"Failed to link vertex and fragment shaders.\");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=qT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Mn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error(\"The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.\");let l=u.writeTexture(o,e,n,s,i,a);return Mn().makeTensorFromDataId(l,e,n,u)}};$u.nextDataId=0;function vet(r,t){if(t===\"float32\"||t===\"complex64\")return r;if(t===\"int32\"||t===\"bool\"){let e=t===\"int32\"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew $u,2);var b1e={forceHalfFloat:yM};var Nd=`\n if (isnan(a)) return a;\n if (isnan(b)) return b;\n`;var lo=class{constructor(t,e,n){this.variableNames=[\"A\",\"B\"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=`\n float binaryOperation(float a, float b) {\n ${t}\n }\n\n void main() {\n float a = getAAtOutCoords();\n float b = getBAtOutCoords();\n setOutput(binaryOperation(a, b));\n }\n `}};var ea=`\n result.r = isNaN.r ? NAN : result.r;\n result.g = isNaN.g ? NAN : result.g;\n result.b = isNaN.b ? NAN : result.b;\n result.a = isNaN.a ? NAN : result.a;\n`;var Po=class{constructor(t,e,n,o=!1){this.variableNames=[\"A\",\"B\"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i=\"\";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=`\n result.y = 0.;\n result.z = 0.;\n result.w = 0.;\n `;else if(i=`\n ${Bt(s)} coords = getOutputCoords();\n `,s===1)this.enableShapeUniforms?i+=`\n result.y = (coords + 1) >= outShape ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `:i+=`\n result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y;\n result.z = 0.;\n result.w = 0.;\n `;else{let u=er(\"coords\",s);this.enableShapeUniforms?i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= outShape[${s} - 2];\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= outShape[${s} - 1];\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `:i+=`\n bool nextRowOutOfBounds =\n (${u[s-2]} + 1) >= ${this.outputShape[s-2]};\n bool nextColOutOfBounds =\n (${u[s-1]} + 1) >= ${this.outputShape[s-1]};\n result.y = nextColOutOfBounds ? 0. : result.y;\n result.z = nextRowOutOfBounds ? 0. : result.z;\n result.w = nextColOutOfBounds || nextRowOutOfBounds ? 0. : result.w;\n `}this.userCode=`\n vec4 binaryOperation(vec4 a, vec4 b) {\n ${t}\n }\n\n void main() {\n vec4 a = getAAtOutCoords();\n vec4 b = getBAtOutCoords();\n\n vec4 result = binaryOperation(a, b);\n ${i}\n\n setOutput(result);\n }\n `}};function rr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var bM={kernelName:mo,backendName:\"webgl\",kernelFunc:rr};function $n(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,\"complex64\"),i=e.texData.get(s.dataId),a=rr({inputs:{x:n},backend:e}),u=rr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var wM={kernelName:mp,backendName:\"webgl\",kernelFunc:$n};var mk=\"return (a < 0.) ? b * a : a;\",fk=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Net(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],\"float32\",y.createScalarValue(s,\"float32\")),a=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Po(fk,o.shape,i.shape):new lo(mk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],\"float32\");return e.disposeIntermediateTensorInfo(i),u}var CM={kernelName:ls,backendName:\"webgl\",kernelFunc:Net};var dk=\"return (a < 0.) ? b * a : a;\",hk=`\n vec4 aLessThanZero = vec4(lessThan(a, vec4(0.)));\n return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a);\n`;function Tet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Po(hk,n.shape,o.shape):new lo(dk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],\"float32\")}var IM={kernelName:Cs,backendName:\"webgl\",kernelFunc:Tet};var Lo=\"if (isnan(x)) return x;\";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")&&t!=null,c;return l?c=new An(i.shape,t):c=new Mr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype===\"complex64\"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,E={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new lo(r,u.shape,l.shape);return c.runWebGLProgram($,[E,A],ar(C.dtype,N.dtype))}),b=$n({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ar(u.dtype,l.dtype);if((u.dtype===\"string\"||l.dtype===\"string\"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype===\"string\"?S.fromUint8ToStringArray(d):d,x=u.dtype===\"string\"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")&&t!=null,f;return m?f=new Po(t,u.shape,l.shape,e):f=new lo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Il(r,t=!1){if(r===\"linear\")return t?mM:iM;if(r===\"relu\")return t?dM:lM;if(r===\"elu\")return t?fM:aM;if(r===\"relu6\")return t?hM:uM;if(r===\"prelu\")return t?hk:dk;if(r===\"leakyrelu\")return t?fk:mk;if(r===\"sigmoid\")return t?gM:cM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Td=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=[\"matrixA\",\"matrixB\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?\"i * 2, rc.y\":\"rc.y, i * 2\",f=s?\"rc.z, i * 2\":\"i * 2, rc.z\",d=o?[\"a.xxyy\",\"a.zzww\"]:[\"a.xxzz\",\"a.yyww\"],h=s?[\"b.xzxz\",\"b.ywyw\"]:[\"b.xyxy\",\"b.zwzw\"],g=\"\",x=\"\";a&&(u?g=`vec4 activation(vec4 a) {\n vec4 b = getPreluActivationWeightsAtOutCoords();\n ${a}\n }`:l?g=`vec4 activation(vec4 a) {\n vec4 b = getLeakyreluAlphaAtOutCoords();\n ${a}\n }`:g=`vec4 activation(vec4 x) {\n ${a}\n }`,x=\"result = activation(result);\");let b=i?\"result += getBiasAtOutCoords();\":\"\";i&&this.variableNames.push(\"bias\"),u&&this.variableNames.push(\"preluActivationWeights\"),l&&this.variableNames.push(\"leakyreluAlpha\");let w=\"rc.x\",C=\"rc.x\";t[0]`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Au(o.shape,u)&&!(c.texture!==null&&Au(c.shape,u))?NM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var TM={kernelName:xi,backendName:\"webgl\",kernelFunc:it};var ng=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l=\"sumValue += dot(values, ones);\";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c=\"\";s%n>0&&(c=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return 0.0;\n }\n `),this.userCode=`\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${c}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${a}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${l}\n }\n\n int inIdx = inOffset + ${a};\n if (${u===1}) {\n vec4 values = vec4(getValue(batch, inIdx), 0.0, 0.0, 0.0);\n\n ${l}\n } else if (${u===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1), 0.0, 0.0);\n\n ${l}\n } else if (${u===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2), 0.0);\n\n ${l}\n }\n setOutput(sumValue);\n }\n `}};var Hw=class{constructor(t,e){this.variableNames=[\"x\"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=\"0.0\",u=\"\";e===\"prod\"?a=\"1.0\":e===\"min\"?(a=\"1.0 / 1e-20\",u=\"min\"):e===\"max\"&&(a=\"-1.0 / 1e-20\",u=\"max\");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"sum\"?l=\"sumValue\":e===\"prod\"?l=\"prodValue\":e===\"all\"?l=\"allValue\":e===\"any\"&&(l=\"anyValue\");let c=Math.floor(n/4)*4,p=n%4,m=`\n if (${e===\"sum\"}) {\n sumValue += dot(values, ones);\n } else if (${e===\"prod\"}) {\n vec2 tmp = vec2(values[0], values[1]) * vec2(values[2], values[3]);\n prodValue *= tmp[0] * tmp[1];\n } else {\n minMaxValue = ${u}(values, minMaxValue);\n if (${e===\"min\"} || ${e===\"max\"}) {\n minMaxValue = ${u}(values, minMaxValue);\n bvec4 isNaN = isnan(values);\n if (isNaN.r || isNaN.g || isNaN.b || isNaN.a) {\n minMaxValue = vec4(NAN);\n }\n }\n }\n `,f=\"vec4\";e===\"all\"?(a=\"1.0\",m=`\n bool reducedAllValue = all(values);\n float floatedReducedAllValue = float(reducedAllValue);\n allValue = float(allValue >= 1.0 && floatedReducedAllValue >= 1.0);\n `,f=\"bvec4\"):e===\"any\"&&(a=\"0.0\",m=`\n bool reducedAnyValue = any(values);\n float floatedReducedAnyValue = float(reducedAnyValue);\n anyValue = float(anyValue >= 1.0 || floatedReducedAnyValue >= 1.0);\n `,f=\"bvec4\");let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `),this.userCode=`\n const float initializationValue = ${a};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float getValue(int batch, int inIdx) {\n ${d}\n return getX(batch, inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${n};\n\n vec4 minMaxValue = vec4(${a});\n float prodValue = 1.0;\n float sumValue = 0.0;\n float allValue = 1.0;\n float anyValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===2}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n ${m}\n } else if (${p===3}) {\n ${f} values = ${f}(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function Eet(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=S.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function qn(r,t,e,n){let o=Eet(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\",\"resRC.v\"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=Bt(this.rank),s=ck(\"rc\",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u===\"leakyrelu\",H=u!=null?Il(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>xk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let gt=rg({inputs:{a:nt,b:dt},backend:o});Y=Uc({inputs:{x:gt},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(gt)}else{let et=ar(r.dtype,t.dtype),rt=new Td(N,E,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],\"float32\",y.createScalarValue(a,\"float32\"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Hc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var AM={kernelName:Si,backendName:\"webgl\",kernelFunc:Aet};var $M=\"return abs(x);\";function $et(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!==\"complex64\"){let s=e.texData.get(n.dataId),i=zw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new An(n.shape,$M):o=new Mr(n.shape,$M),e.runWebGLProgram(o,[n],n.dtype)}var DM={kernelName:ui,backendName:\"webgl\",kernelFunc:$et};var Det=hr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return acos(x);\n`,Ret=Ct({opSnippet:Det}),RM={kernelName:ua,backendName:\"webgl\",kernelFunc:Ret};var Fet=hr+`\n if (x < 1.0) return NAN;\nreturn log(x + sqrt(x * x - 1.0));`,Oet=Ct({opSnippet:Fet}),FM={kernelName:ca,backendName:\"webgl\",kernelFunc:Oet};var OM=\"return a + b;\",Pet=le({opSnippet:OM,packedOpSnippet:OM,supportsComplex:!0,cpuKernelImpl:fL}),PM={kernelName:Qn,backendName:\"webgl\",kernelFunc:Pet};var jw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n float result = ${o};\n setOutput(result);\n }\n `}};var Xw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(\" + \");this.userCode=`\n void main() {\n ${n.join(`\n `)}\n\n vec4 result = ${o};\n setOutput(result);\n }\n `}};function Yw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>M().get(\"WEBGL_MAX_TEXTURES_IN_SHADER\")){let u=Math.floor(n.length/2),l=Yw({inputs:n.slice(0,u),backend:e}),c=Yw({inputs:n.slice(u),backend:e});return Yw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ar(u,l)),s=n.map(u=>u.shape),a=M().getBool(\"WEBGL_PACK\")?new Xw(n[0].shape,s):new jw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var LM={kernelName:Wo,backendName:\"webgl\",kernelFunc:Yw};function Let(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"all\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=qn(h,h.dtype,\"all\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var MM={kernelName:pa,backendName:\"webgl\",kernelFunc:Let};function Met(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims(\"any\",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=qn(h,h.dtype,\"any\",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var zM={kernelName:ma,backendName:\"webgl\",kernelFunc:Met};var Zw=class{constructor(t,e,n){this.variableNames=[\"A\"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push(\"bestIndicesA\"),this.outputShape=[s,i];let a=e===\"max\"?\">\":\"<\",u=n?\"inOffset + i;\":\"round(getBestIndicesA(batch, inOffset + i));\";this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = outIdx * ${o};\n\n int bestIndex = inOffset;\n float bestValue = getA(batch, bestIndex);\n\n for (int i = 0; i < ${o}; i++) {\n int inIdx = ${u};\n float candidate = getA(batch, inIdx);\n if (candidate ${a} bestValue) {\n bestValue = candidate;\n bestIndex = inIdx;\n }\n }\n setOutput(float(bestIndex));\n }\n `}};var Jw=class{constructor(t,e,n,o){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push(\"bestIndicesA\");let a=this.outputShape,u=a.length,l=Bt(u),c=er(\"coords\",u),p,m;if(i===1){m=u+1;let $=Bt(m);p=`\n ${$} sourceLocR = ${$}(${c.join()}, 0);\n ++${c[u-1]};\n ${$} sourceLocG = ${$}(${c.join()}, 0);\n ++${c[u-2]};\n ${$} sourceLocA = ${$}(${c.join()}, 0);\n --${c[u-1]};\n ${$} sourceLocB = ${$}(${c.join()}, 0);\n --${c[u-2]};`}else m=u,p=`\n ${l} sourceLocR = coords;\n ++${c[u-1]};\n ${l} sourceLocG = coords;\n ++${c[u-2]};\n ${l} sourceLocA = coords;\n --${c[u-1]};\n ${l} sourceLocB = coords;\n --${c[u-2]};`;let f=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"].slice(0,m),d=\".\"+f[m-1],h=f.map($=>\"int \"+$),g=er(\"sourceLocR\",m-1).concat(\"inIdx.r\"),x=er(\"sourceLocG\",m-1).concat(\"inIdx.g\"),b=er(\"sourceLocB\",m-1).concat(\"inIdx.b\"),w=er(\"sourceLocA\",m-1).concat(\"inIdx.a\"),C=n===\"max\"?\"greaterThan\":\"lessThan\",N=o?\"\":`\n inIdx = round(vec4(getBestIndicesAChannel(${g.join()}),\n getBestIndicesAChannel(${x.join()}),\n getBestIndicesAChannel(${b.join()}),\n getBestIndicesAChannel(${w.join()})));`,E=`vec4(\n getAChannel(${g.join()}),\n hasNextCol ? getAChannel(${x.join()}) : 0.,\n hasNextRow ? getAChannel(${b.join()}) : 0.,\n hasNextRow && hasNextCol ? getAChannel(${w.join()}) : 0.)`,A=o?\"\":`\n float getBestIndicesAChannel(${h.join()}) {\n return getChannel(getBestIndicesA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }`;this.userCode=`\n float getAChannel(${h.join()}) {\n return getChannel(getA(${f.join()}),\n vec2(${f.slice(-2).join()}));\n }\n ${A}\n void main() {\n ${l} coords = getOutputCoords();\n bool hasNextCol = ${c[u-1]} < ${a[u-1]-1};\n bool hasNextRow = ${c[u-2]} < ${a[u-2]-1};\n ${p}\n ivec4 srcIdx = ivec4(sourceLocR${d}, sourceLocG${d},\n sourceLocB${d}, sourceLocA${d}) * ${e};\n ivec4 inIdx = srcIdx;\n vec4 bestIndex = vec4(inIdx);\n vec4 bestValue = ${E};\n\n for (int i = 0; i < ${e}; i++) {\n inIdx = srcIdx;\n ${N}\n vec4 candidate = ${E};\n bvec4 nan = isnan(candidate);\n bvec4 replace = bvec4(\n vec4(${C}(candidate, bestValue)) * (vec4(1.0) - vec4(nan)));\n\n bestValue = vec4(replace.x ? candidate.x : bestValue.x,\n replace.y ? candidate.y : bestValue.y,\n replace.z ? candidate.z : bestValue.z,\n replace.w ? candidate.w : bestValue.w);\n bestIndex = mix(bestIndex, vec4(inIdx), vec4(replace));\n srcIdx++;\n }\n setOutput(bestIndex);\n }\n `}};function BM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Zw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,\"int32\");if(c.shape[1]===1)return c;let p=BM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function VM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new Jw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,\"int32\");if(l.shape.length===t.shape.length){let c=VM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Qw(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims(\"arg\"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!M().getBool(\"WEBGL_PACK_REDUCE\")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=BM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return VM(r,t,n)}function zet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMax\",[i[0]],u.shape.length);let c=Qw(e,u,i[0],\"max\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var GM={kernelName:Uo,backendName:\"webgl\",kernelFunc:zet};function Bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims(\"argMin\",[i[0]],u.shape.length);let c=Qw(e,u,i[0],\"min\");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var WM={kernelName:Al,backendName:\"webgl\",kernelFunc:Bet};var Vet=hr+`\n if (abs(x) > 1.) {\n return NAN;\n }\n return asin(x);\n`,Get=Ct({opSnippet:Vet}),UM={kernelName:fa,backendName:\"webgl\",kernelFunc:Get};var Wet=hr+\"return log(x + sqrt(x * x + 1.0));\",Uet=Ct({opSnippet:Wet}),HM={kernelName:da,backendName:\"webgl\",kernelFunc:Uet};var Het=hr+`\n return atan(x);\n`,qet=Ct({opSnippet:Het}),qM={kernelName:ha,backendName:\"webgl\",kernelFunc:qet};var Ket=Nd+`\n return atan(a, b);\n`,jet=`\n vec4 result = atan(a, b);\n bvec4 isNaNA = isnan(a);\n bvec4 isNaNB = isnan(b);\n bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w);\n `+ea+`\n return result;\n`,Xet=le({opSnippet:Ket,packedOpSnippet:jet}),KM={kernelName:xa,backendName:\"webgl\",kernelFunc:Xet};var Yet=hr+`\n if ((x < -1.0) || (x > 1.0)) return NAN;\nreturn (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Zet=Ct({opSnippet:Yet}),jM={kernelName:ga,backendName:\"webgl\",kernelFunc:Zet};var oi=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e===\"avg\",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b=\"0.0\";if(h||(b=\"-1.0 / 1e-20\"),n){let $=\">=\";this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n float avgValue = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${m};\n wC += ${c}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xR, xC, d);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${$} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?g:x:`wR * ${m} + wC`};\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let w=\"max\",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(C=\"avgValue / count\");let N=Math.floor(i/4)*4,E=i%4,A=`\n if (${h}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${w}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec2 strides = ivec2(${a}, ${u});\n const ivec2 pads = ivec2(${f}, ${d});\n const float initializationValue = ${b};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xR, int xC, int d) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xR, xC, d);\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d = coords[3];\n\n ivec2 xRCCorner = coords.yz * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // max/min x(?, ?, d) to get y(yR, yC, d).\n // ? = to be determined\n vec4 minMaxValue = vec4(${b});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wR = 0; wR < ${p};\n wR += ${l}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${N}; wC += 4) {\n int xC = xCCorner + wC * ${c};\n\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n getValue(batch, xR, xC + 3 * ${c}, d)\n );\n\n ${A}\n }\n\n int xC = xCCorner + ${N};\n if (${E===1}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===2}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n initializationValue,\n initializationValue\n );\n\n ${A}\n } else if (${E===3}) {\n vec4 values = vec4(\n getValue(batch, xR, xC, d),\n getValue(batch, xR, xC + ${c}, d),\n getValue(batch, xR, xC + 2 * ${c}, d),\n initializationValue\n );\n\n ${A}\n }\n }\n setOutput(${C});\n }\n `}},Ru=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=[\"x\"],e===\"avg\"&&n)throw new Error(\"Cannot compute positions for average pool.\");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e===\"avg\",C=\"0.0\";if(w||(C=\"-1.0 / 1e-20\"),n){let P=\">=\";this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, ch) to get y(yD, yR, yC, ch).\n // ? = to be determined\n float minMaxValue = 0.0;\n float minMaxValueFound = 0.0;\n int minMaxPosition = 0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${h};\n wC += ${m}) {\n int xC = xCCorner + wC;\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float value = getX(batch, xD, xR, xC, ch);\n\n // If a min / max value has already been found, use it. If not,\n // use the current value.\n float currMinMaxValue = mix(\n value, minMaxValue, minMaxValueFound);\n if (value ${P} currMinMaxValue) {\n minMaxValue = value;\n minMaxValueFound = 1.0;\n minMaxPosition = ${o?s?`(((batch * ${t.inDepth} + xD) * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`((xD * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + ch`:`wD * ${d} * ${h} +\n wR * ${h} + wC`};\n }\n }\n }\n }\n setOutput(float(minMaxPosition));\n }\n `;return}let N=\"max\",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e===\"avg\"&&(E=\"avgValue / count\");let A=Math.floor(i/4)*4,$=i%4,F=`\n if (${w}) {\n avgValue += dot(values, ones);\n } else {\n minMaxValue = ${N}(values, minMaxValue);\n }\n `;this.userCode=`\n const ivec3 strides =\n ivec3(${a}, ${u}, ${l});\n const ivec3 pads = ivec3(${g}, ${x}, ${b});\n const float initializationValue = ${C};\n const vec4 ones = vec4(1.0, 1.0, 1.0, 1.0);\n\n float count = 0.0;\n\n float getValue(int batch, int xD, int xR, int xC, int ch) {\n if (xC < 0 || xC >= ${t.inWidth}) {\n return initializationValue;\n }\n count += 1.0;\n return getX(batch, xD, xR, xC, ch);\n }\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 xCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xDCorner = xCorner.x;\n int xRCorner = xCorner.y;\n int xCCorner = xCorner.z;\n\n // max/min x(?, ?, ?, d) to get y(yD, yR, yC, ch).\n // ? = to be determined\n vec4 minMaxValue = vec4(${C});\n float avgValue = 0.0;\n count = 0.0;\n\n for (int wD = 0; wD < ${f};\n wD += ${c}) {\n int xD = xDCorner + wD;\n\n if (xD < 0 || xD >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${d};\n wR += ${p}) {\n int xR = xRCorner + wR;\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${A}; wC += 4) {\n int xC = xCCorner + wC * ${m};\n\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n getValue(batch, xD, xR, xC + 3 * ${m}, ch)\n );\n\n ${F}\n }\n\n int xC = xCCorner + ${A};\n if (${$===1}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===2}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n initializationValue,\n initializationValue\n );\n\n ${F}\n } else if (${$===3}) {\n vec4 values = vec4(\n getValue(batch, xD, xR, xC, ch),\n getValue(batch, xD, xR, xC + ${m}, ch),\n getValue(batch, xD, xR, xC + 2 * ${m}, ch),\n initializationValue\n );\n\n ${F}\n }\n }\n setOutput(${E});\n }\n }\n `}};function Jet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;ri(o,\"avgPool\");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return rr({inputs:{x:o},backend:e});let p=new oi(c,\"avg\",!1);return e.runWebGLProgram(p,[o],\"float32\")}var XM={kernelName:Ho,backendName:\"webgl\",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Ru(p,\"avg\",!1);return e.runWebGLProgram(m,[o],\"float32\")}var YM={kernelName:$l,backendName:\"webgl\",kernelFunc:Qet};var tC=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=`\n const ivec2 pads = ivec2(${c}, ${p});\n const float avgMultiplier = float(${m});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${u};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${l};\n wC+= ${a}) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n setOutput(dotProd);\n }\n `}},eC=class{constructor(t){this.variableNames=[\"dy\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=`\n const ivec3 pads = ivec3(${d}, ${h}, ${g});\n const float avgMultiplier = float(${x});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, d) with pos mask(:, :, :, ch) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${p};\n wD += ${u}) {\n float dyD = float(dyDCorner + wD) / ${s}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${m};\n wR += ${l}) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${f};\n wC += ${c}) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n\n dotProd += dyValue * avgMultiplier;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function trt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new eC(m);return e.runWebGLProgram(f,[o],i.dtype)}var ZM={kernelName:up,backendName:\"webgl\",kernelFunc:trt};function ert(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;ri([o,s],\"avgPoolGrad\");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new tC(c);return e.runWebGLProgram(p,[o],i.dtype)}var JM={kernelName:lp,backendName:\"webgl\",kernelFunc:ert};function rrt(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Hc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var QM={kernelName:qo,backendName:\"webgl\",kernelFunc:rrt};var rC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"0.0\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"1.0\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n float x = getXAtOutCoords();\n float mean = getMeanAtOutCoords();\n float variance = getVarianceAtOutCoords();\n float offset = ${a};\n float scale = ${u};\n float inv = scale * inversesqrt(variance + float(${i}));\n setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1)));\n }\n `}};var nC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=[\"x\",\"mean\",\"variance\"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a=\"vec4(0.0)\";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push(\"offset\"),a=\"getOffsetAtOutCoords()\");let u=\"vec4(1.0)\";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push(\"scale\"),u=\"getScaleAtOutCoords()\"),this.outputShape=t,this.userCode=`\n void main() {\n vec4 offset = ${a};\n vec4 scale = ${u};\n\n vec4 x = getXAtOutCoords();\n vec4 mean = getMeanAtOutCoords();\n vec4 variance = getVarianceAtOutCoords();\n\n vec4 inv = scale * inversesqrt(variance + vec4(${i}));\n\n setOutput((x - mean) * inv + offset);\n }\n `}};var nrt=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>\"Batch normalization gradient requires mean and variance to have equal ranks.\"),y.assert(i==null||o.shape.length===i.shape.length,()=>\"Batch normalization gradient requires mean and offset to have equal ranks.\"),y.assert(a==null||o.shape.length===a.shape.length,()=>\"Batch normalization gradient requires mean and scale to have equal ranks.\");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=M().getBool(\"WEBGL_PACK_NORMALIZATION\")?new nC(n.shape,o.shape,s.shape,c,p,u):new rC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},tz={kernelName:ss,backendName:\"webgl\",kernelFunc:nrt};var oC=class{constructor(t){this.variableNames=[\"source\"],this.outputShape=t,this.rank=t.length;let e=Bt(this.rank);this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let n=ort(this.rank),o,s=t.map((i,a)=>`sourceLoc.${yk[a]} = start[${a}] + coords.${yk[a]};`);o=`\n ${e} sourceLoc;\n ${e} coords = getOutputCoords();\n ${s.join(`\n`)}\n `,this.userCode=`\n void main() {\n ${o}\n setOutput(getSource(${n}));\n }\n `}},yk=[\"x\",\"y\",\"z\",\"w\",\"u\",\"v\"];function ort(r){if(r===1)return\"sourceLoc\";if(r<=6)return yk.slice(0,r).map(t=>\"sourceLoc.\"+t).join(\",\");throw Error(`Slicing for rank ${r} is not yet supported`)}var sC=class{constructor(t){this.variableNames=[\"source\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:\"start\",arrayIndex:this.rank,type:\"int\"}];let e=Bt(this.rank),n=er(\"coords\",this.rank),o=er(\"sourceLoc\",this.rank),s=this.rank===1?\"sourceLoc\":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=`\n result.x = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.y = ${i};\n --${o[this.rank-1]};\n }\n `,u=this.rank===1?\"\":`\n --${n[this.rank-1]};\n if (++${n[this.rank-2]} < ${t[this.rank-2]}) {\n ++${o[this.rank-2]};\n result.z = ${i};\n if (++${n[this.rank-1]} < ${t[this.rank-1]}) {\n ++${o[this.rank-1]};\n result.w = ${i};\n }\n }\n `,l=this.rank<=4?`sourceLoc = coords +\n ${e}(${t.map((c,p)=>`start[${p}]`).join()});`:t.map((c,p)=>`${o[p]} = ${n[p]} + start[${p}];`).join(`\n`);this.userCode=`\n void main() {\n ${e} coords = getOutputCoords();\n ${e} sourceLoc;\n ${l}\n vec4 result = vec4(0.);\n ${a}\n ${u}\n setOutput(result);\n }\n `}};function srt(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Me.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function si(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Me.parseSliceParams(o,s,i);if(Me.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype===\"string\"){let p=e.texData.get(o.dataId),m=UL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Me.isSliceContinous(o.shape,a,u);if(l||!c){let p=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new sC(u):new oC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),srt(o,a,u,e)}var ez={kernelName:bi,backendName:\"webgl\",kernelFunc:si};var irt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>\"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=si({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},rz={kernelName:ci,backendName:\"webgl\",kernelFunc:irt};function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Mw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var nz={kernelName:cp,backendName:\"webgl\",kernelFunc:art};function lrt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],\"int32\",Int32Array.from(a))}var oz={kernelName:pp,backendName:\"webgl\",kernelFunc:lrt};var urt=\"return float(a != b);\",bk=le({opSnippet:urt,cpuKernelImpl:OL,dtype:\"bool\"}),sz={kernelName:Pa,backendName:\"webgl\",kernelFunc:bk};function vl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return rr({inputs:{x:o.complexTensorInfos.real},backend:e})}var iz={kernelName:Fp,backendName:\"webgl\",kernelFunc:vl};var crt=\"return float(int(x));\";function az(r,t){let e=new Mr(r.shape,crt),n=t.runWebGLProgram(e,[r],\"int32\");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function wk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s===\"complex64\"){if(o.dtype===\"complex64\")return rr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=wk({inputs:{x:o},backend:e,attrs:{dtype:\"float32\"}}),u=$n({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype===\"complex64\"){let i=vl({inputs:{input:o},backend:e}),a=wk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=rr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=hL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s===\"int32\")return az(o,e);if(s===\"bool\"){let i=e.makeTensorInfo([],\"bool\",y.getTypedArrayFromDType(\"bool\",1)),u=bk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var lz={kernelName:co,backendName:\"webgl\",kernelFunc:wk};var uz=\"return ceil(x);\",prt=Ct({opSnippet:uz,packedOpSnippet:uz,cpuKernelImpl:gL}),cz={kernelName:Ko,backendName:\"webgl\",kernelFunc:prt};var iC=class{constructor(t){this.variableNames=[\"A\"],this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n\n void main() {\n float value = getAAtOutCoords();\n if (isnan(value)) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, minVal, maxVal));\n }\n `}};var aC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"minVal\",type:\"float\"},{name:\"maxVal\",type:\"float\"}],this.outputShape=t,this.userCode=`\n void main() {\n vec4 value = getAAtOutCoords();\n\n if (any(isnan(value))) {\n setOutput(value);\n return;\n }\n\n setOutput(clamp(value, vec4(minVal), vec4(maxVal)));\n }\n `}};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;M().getBool(\"WEBGL_PACK_CLIP\")?a=new aC(o.shape):a=new iC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var pz={kernelName:po,backendName:\"webgl\",kernelFunc:mrt};var lC=class{constructor(t){this.variableNames=[\"real\",\"imag\"],this.outputShape=t,this.userCode=`\n void main() {\n float re = abs(getRealAtOutCoords());\n float im = abs(getImagAtOutCoords());\n float mx = max(re, im);\n\n // sadly the length function in glsl is not underflow-safe\n // (at least not on Intel GPUs). So the safe solution is\n // to ensure underflow-safety in all cases.\n setOutput(\n mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx))\n );\n }\n `}};function mz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function frt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new lC(n.shape),i=[mz(n,o.complexTensorInfos.real),mz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var fz={kernelName:Dl,backendName:\"webgl\",kernelFunc:frt};var uC=class{constructor(t){this.outputShape=[],this.outputShape=S.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) {\n return getChannel(\n getT${h}(${cC(a,l,g)}),\n vec2(${cC(c,l,g)}));\n }`}let f=u.length,d=u[u.length-1];m+=`\n return getChannel(\n getT${f}(${cC(a,l,d)}),\n vec2(${cC(c,l,d)}));`,this.userCode=`\n float getValue(${a.map(h=>\"int \"+h)}) {\n ${m}\n }\n\n void main() {\n ${s} coords = getOutputCoords();\n vec4 result = vec4(getValue(${i}), 0., 0., 0.);\n\n ${i[o-1]} = ${i[o-1]} + 1;\n if (${i[o-1]} < ${n[o-1]}) {\n result.g = getValue(${i});\n }\n\n ${i[o-2]} = ${i[o-2]} + 1;\n if (${i[o-2]} < ${n[o-2]}) {\n result.a = getValue(${i});\n }\n\n ${i[o-1]} = ${i[o-1]} - 1;\n if (${i[o-2]} < ${n[o-2]} &&\n ${i[o-1]} < ${n[o-1]}) {\n result.b = getValue(${i});\n }\n setOutput(result);\n }\n `}};function cC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function qc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return rr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var dz={kernelName:Sp,backendName:\"webgl\",kernelFunc:qc};function kd(r,t,e){let n=r[0].dtype;if(n===\"complex64\"){let f=r.map(b=>vl({inputs:{input:b},backend:e})),d=r.map(b=>qc({inputs:{input:b},backend:e})),h=kd(f,t,e),g=kd(d,t,e),x=$n({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n===\"string\"&&(o=!0),o){let f=r.map(C=>{let E=[-1,y.sizeFromShape(C.shape.slice(t))];return it({inputs:{x:C},backend:e,attrs:{shape:E}})}),d=f.map(C=>({vals:e.readSync(C.dataId),shape:C.shape})),h=S.computeOutShape(f.map(C=>C.shape),1),g=f[0].shape[0]===1,x=xL(d,h,n,g),b=S.computeOutShape(r.map(C=>C.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")&&s[0].shape.length>1;if(s.length===1){let f=i?new Mr(r[0].shape,ta):new An(r[0].shape,ta);return e.runWebGLProgram(f,r,n)}let a=M().getNumber(\"WEBGL_MAX_TEXTURES_IN_SHADER\");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=drt(s,t,e),c=new uC(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=it({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function drt(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function Ck(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?rr({inputs:{x:u[0]},backend:e}):kd(u,s,e)}var hz={kernelName:pi,backendName:\"webgl\",kernelFunc:Ck};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat===\"channelsLast\",x=g?1:2,b=g?2:3,w=g?3:1,C=\"\",N=\"\";n&&(o?C=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?C=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:C=`\n float activation(float x) {\n ${n}\n }\n `,N=\"result = activation(result);\");let E=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${C}\n\n const ivec2 strides = ivec2(${u}, ${l});\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d2 = coords[${w}];\n\n ivec2 xRCCorner =\n ivec2(coords[${x}], coords[${b}]) * strides - pads;\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, d2) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${c};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${p};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 wValues = vec4(\n getW(wR, wC, d1, d2),\n getW(wR, wC, d1 + 1, d2),\n getW(wR, wC, d1 + 2, d2),\n getW(wR, wC, d1 + 3, d2)\n );\n\n if (${g}) {\n vec4 xValues = vec4(\n getX(batch, xR, xC, d1),\n getX(batch, xR, xC, d1 + 1),\n getX(batch, xR, xC, d1 + 2),\n getX(batch, xR, xC, d1 + 3)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec4 xValues = vec4(\n getX(batch, d1, xR, xC),\n getX(batch, d1 + 1, xR, xC),\n getX(batch, d1 + 2, xR, xC),\n getX(batch, d1 + 3, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n\n if (${h===1}) {\n\n if (${g}) {\n dotProd +=\n getX(batch, xR, xC, ${d}) *\n getW(wR, wC, ${d}, d2);\n } else {\n dotProd +=\n getX(batch, ${d}, xR, xC) *\n getW(wR, wC, ${d}, d2);\n }\n\n } else if (${h===2}) {\n vec2 wValues = vec2(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2)\n );\n\n if (${g}) {\n vec2 xValues = vec2(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec2 xValues = vec2(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n } else if (${h===3}) {\n vec3 wValues = vec3(\n getW(wR, wC, ${d}, d2),\n getW(wR, wC, ${d} + 1, d2),\n getW(wR, wC, ${d} + 2, d2)\n );\n\n if (${g}) {\n vec3 xValues = vec3(\n getX(batch, xR, xC, ${d}),\n getX(batch, xR, xC, ${d} + 1),\n getX(batch, xR, xC, ${d} + 2)\n );\n dotProd += dot(xValues, wValues);\n } else {\n vec3 xValues = vec3(\n getX(batch, ${d}, xR, xC),\n getX(batch, ${d} + 1, xR, xC),\n getX(batch, ${d} + 2, xR, xC)\n );\n dotProd += dot(xValues, wValues);\n }\n\n }\n }\n }\n\n float result = dotProd;\n ${E}\n ${N}\n setOutput(result);\n }\n `}},mC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=`\n const ivec3 strides = ivec3(${s}, ${i}, ${a});\n const ivec3 pads = ivec3(${e}, ${n}, ${o});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d2 = coords.u;\n\n ivec3 xFRCCorner = ivec3(coords.y, coords.z, coords.w) * strides - pads;\n int xFCorner = xFRCCorner.x;\n int xRCorner = xFRCCorner.y;\n int xCCorner = xFRCCorner.z;\n\n // Convolve x(?, ?, ?, d1) with w(:, :, :, d1, d2) to get\n // y(yF, yR, yC, d2). ? = to be determined. : = across all\n // values in that axis.\n float dotProd = 0.0;\n for (int wF = 0; wF < ${p}; wF++) {\n int xF = xFCorner + wF * ${u};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int wR = 0; wR < ${m}; wR++) {\n int xR = xRCorner + wR * ${l};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int wC = 0; wC < ${f}; wC++) {\n int xC = xCCorner + wC * ${c};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n for (int d1 = 0; d1 < ${d}; d1 += 4) {\n vec4 xValues = vec4(\n getX(batch, xF, xR, xC, d1),\n getX(batch, xF, xR, xC, d1 + 1),\n getX(batch, xF, xR, xC, d1 + 2),\n getX(batch, xF, xR, xC, d1 + 3)\n );\n vec4 wValues = vec4(\n getW(wF, wR, wC, d1, d2),\n getW(wF, wR, wC, d1 + 1, d2),\n getW(wF, wR, wC, d1 + 2, d2),\n getW(wF, wR, wC, d1 + 3, d2)\n );\n\n dotProd += dot(xValues, wValues);\n }\n\n if (${h===1}) {\n dotProd +=\n getX(batch, xF, xR, xC, ${d}) *\n getW(wF, wR, wC, ${d}, d2);\n } else if (${h===2}) {\n vec2 xValues = vec2(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1)\n );\n vec2 wValues = vec2(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2)\n );\n dotProd += dot(xValues, wValues);\n } else if (${h===3}) {\n vec3 xValues = vec3(\n getX(batch, xF, xR, xC, ${d}),\n getX(batch, xF, xR, xC, ${d} + 1),\n getX(batch, xF, xR, xC, ${d} + 2)\n );\n vec3 wValues = vec3(\n getW(wF, wR, wC, ${d}, d2),\n getW(wF, wR, wC, ${d} + 1, d2),\n getW(wF, wR, wC, ${d} + 2, d2)\n );\n dotProd += dot(xValues, wValues);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=0 && xR < inDims[0]) {\n `;for(let g=0;g<(p+1)/2;g++){let x=g*2;if(m+=`\n xC = xCCorner + ${x*u};\n `,a===1){if(x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n `,u===1&&x>0?m+=`\n xC${x} = vec4(xTexelC${x-2}.zw, xTexelC${x}.xy);\n `:m+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${x} = vec4(previous.zw, xTexelC${x}.xy);\n } else {\n xC${x} = vec4(0.0, 0.0, xTexelC${x}.xy);\n }\n `):m+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xC${x} = xTexelC${x};\n `,x+1= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n `,u>1?m+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${x+1} = vec4(previous.zw, xTexelC${x+1}.xy);\n } else {\n xC${x+1} = vec4(0.0, 0.0, xTexelC${x+1}.xy);\n }\n `:m+=`\n xC${x+1} = vec4(xTexelC${x}.zw, xTexelC${x+1}.xy);\n `):b===1?m+=`\n xC${x+1} = xTexelC${x};\n `:m+=`\n xCOffset = xC + ${b};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x+1} = xTexelC${x+1};\n `}}else x= 0 && xCOffset < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.0);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(xTexelC${x}.zw, xTexelC${x+1}.zw);\n `,x+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${x+1} = vec4(xTexelC${x+1}.xy, final.xy);\n `)):(m+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${x}Ready == 0) {\n xTexelC${x} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${x}.zw = vec2(0.0);\n }\n xTexelC${x}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${x+1}Ready == 0) {\n xTexelC${x+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${x+1}.zw = vec2(0.);\n }\n xTexelC${x+1}Ready = 1;\n }\n\n xC${x} = vec4(\n xTexelC${x}.xy, xTexelC${x+1}.xy);\n `,x+1= 0) {\n // Use custom imod instead mod. On Intel GPU, mod may generate\n // unexpected value.\n // https://github.com/tensorflow/tfjs/issues/5447\n offsetX = imod(blockIndex, outWidth) * stride[1] - pad[1];\n d1 = offsetX + dilation[1] * (imod(pos, itemsPerBlockRow) /\n inChannels);\n\n if(d1 < inputShape[${a}] && d1 >= 0) {\n\n ch = imod(pos, inChannels);\n\n if (${s}) {\n innerDims = vec2(d1, ch);\n result[${c*2+p}] = getChannel(\n getA(rc.x, d0, int(innerDims.x),\n int(innerDims.y)), innerDims);\n } else {\n innerDims = vec2(d0, d1);\n result[${c*2+p}] = getChannel(\n getA(rc.x, ch, int(innerDims.x),\n int(innerDims.y)), innerDims);\n }\n }\n }\n }\n `;this.userCode=`\n void main() {\n ivec3 rc = getOutputCoords();\n\n vec4 result = vec4(0);\n\n int blockIndex, pos, offsetY, d0, offsetX, d1, ch;\n vec2 innerDims;\n\n ${l}\n\n ${o.output} = result;\n }\n `}};function dC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat===\"channelsLast\",d=!1,h=!1,g,x=[];if(s!=null){let C=dC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=dC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>xk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Au(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Hc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>\"batchMatMul result is expected to be packed\"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),E=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Hc({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function gC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f===\"channelsLast\",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=dC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=dC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let E=new fC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(E,[r],\"float32\",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a===\"leakyrelu\",W=a?Il(a,!0):null,q=new Td(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],\"float32\",y.createScalarValue(i,\"float32\"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,\"float32\"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function hrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type===\"SAME\"||m.padInfo.type===\"VALID\"))f=hC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p===\"channelsLast\"&&M().getBool(\"WEBGL_EXP_CONV\")){let h=new _d(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],\"float32\",g)}else if(M().getBool(\"WEBGL_CONV_IM2COL\"))f=gC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Ed(m);f=e.runWebGLProgram(h,[o,s],\"float32\")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var gz={kernelName:jo,backendName:\"webgl\",kernelFunc:hrt};var xC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat===\"channelsLast\";this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int d2 = coords.w;\n\n // Convolve x(?, ?, d1) with dy(:, :, d2) to get dw(wR, wC, d1, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n if (${i}) {\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n } else {\n float dyValue = getDy(b, d2, yR, yC);\n float xValue = getX(b, d1, xR, xC);\n dotProd += (xValue * dyValue);\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},yC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat===\"channelsLast\",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[${p}];\n\n ivec2 dyCorner = ivec2(coords[${l}], coords[${c}]) - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n // Convolve dy(?, ?, d2) with w(:, :, d1, d2) to compute dx(xR, xC, d1).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n\n if (${i}) {\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n } else {\n float xValue = getDy(batch, d2, idyR, idyC);\n float wValue = getW(wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n\n }\n }\n }\n setOutput(dotProd);\n }\n `}},bC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=`\n void main() {\n ivec5 coords = getOutputCoords();\n int wF = coords.x;\n int wR = coords.y;\n int wC = coords.z;\n int d1 = coords.w;\n int d2 = coords.u;\n\n float dotProd = 0.0;\n\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yF = 0; yF < ${t.outDepth}; yF++) {\n int xF = wF + yF * ${e} - ${s};\n\n if (xF < 0 || xF >= ${t.inDepth}) {\n continue;\n }\n\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${n} - ${i};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${o} - ${a};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yF, yR, yC, d2);\n float xValue = getX(b, xF, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}},wC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=`\n const ivec3 pads = ivec3(${u}, ${l}, ${c});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.u;\n\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyFCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n float dotProd = 0.0;\n for (int wF = 0; wF < ${e}; wF++) {\n float dyF = float(dyFCorner + wF) / ${s}.0;\n\n if (dyF < 0.0 || dyF >= ${t.outDepth}.0 || fract(dyF) > 0.0) {\n continue;\n }\n int idyF = int(dyF);\n\n int wFPerm = ${e} - 1 - wF;\n\n for (int wR = 0; wR < ${n}; wR++) {\n float dyR = float(dyRCorner + wR) / ${i}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${n} - 1 - wR;\n\n for (int wC = 0; wC < ${o}; wC++) {\n float dyC = float(dyCCorner + wC) / ${a}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${o} - 1 - wC;\n\n for (int d2 = 0; d2 < ${t.outChannels}; d2++) {\n float xValue = getDy(batch, idyF, idyR, idyC, d2);\n float wValue = getW(wFPerm, wRPerm, wCPerm, d1, d2);\n dotProd += xValue * wValue;\n }\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function grt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var xz={kernelName:fp,backendName:\"webgl\",kernelFunc:grt};function xrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new yC(m);return e.runWebGLProgram(f,[o,s],\"float32\")}var yz={kernelName:Xo,backendName:\"webgl\",kernelFunc:xrt};function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new mC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var bz={kernelName:Rl,backendName:\"webgl\",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new bC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var wz={kernelName:dp,backendName:\"webgl\",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new wC(l);return e.runWebGLProgram(c,[o,s],\"float32\")}var Cz={kernelName:hp,backendName:\"webgl\",kernelFunc:wrt};var Crt=Lo+`\n return cos(x);\n`,Irt=Ct({opSnippet:Crt}),Iz={kernelName:Yo,backendName:\"webgl\",kernelFunc:Irt};var vrt=`\n float e2x = exp(-x);\n return (e2x + 1.0 / e2x) / 2.0;\n`,Srt=Ct({opSnippet:vrt}),vz={kernelName:Zo,backendName:\"webgl\",kernelFunc:Srt};var CC=class{constructor(t,e,n,o,s){this.variableNames=[\"Image\",\"Boxes\",\"BoxInd\"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o===\"bilinear\"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,\"(y2-y1) * height_ratio\",`y1*${d} + float(y)*(height_scale)`]:[\"0.0\",\"0.0\",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,\"(x2-x1) * width_ratio\",`x1*${h} + float(x)*(width_scale)`]:[\"0.0\",\"0.0\",`0.5 * (x1+x2) * ${h}`];this.userCode=`\n const float height_ratio = float(${g});\n const float width_ratio = float(${w});\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int y = coords[1];\n int x = coords[2];\n int d = coords[3];\n\n // get box vals\n float y1 = getBoxes(b,0);\n float x1 = getBoxes(b,1);\n float y2 = getBoxes(b,2);\n float x2 = getBoxes(b,3);\n\n // get image in batch index\n int bInd = round(getBoxInd(b));\n if(bInd < 0 || bInd >= ${i}) {\n return;\n }\n\n float height_scale = ${x};\n float width_scale = ${C};\n\n float in_y = ${b};\n if( in_y < 0.0 || in_y > ${d} ) {\n setOutput(float(${s}));\n return;\n }\n float in_x = ${N};\n if( in_x < 0.0 || in_x > ${h} ) {\n setOutput(float(${s}));\n return;\n }\n\n vec2 sourceFracIndexCR = vec2(in_x,in_y);\n if(${f} == 1) {\n // Compute the four integer indices.\n ivec2 sourceFloorCR = ivec2(sourceFracIndexCR);\n ivec2 sourceCeilCR = ivec2(ceil(sourceFracIndexCR));\n\n float topLeft = getImage(b, sourceFloorCR.y, sourceFloorCR.x, d);\n float bottomLeft = getImage(b, sourceCeilCR.y, sourceFloorCR.x, d);\n float topRight = getImage(b, sourceFloorCR.y, sourceCeilCR.x, d);\n float bottomRight = getImage(b, sourceCeilCR.y, sourceCeilCR.x, d);\n\n vec2 fracCR = sourceFracIndexCR - vec2(sourceFloorCR);\n\n float top = topLeft + (topRight - topLeft) * fracCR.x;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracCR.x;\n float newValue = top + (bottom - top) * fracCR.y;\n setOutput(newValue);\n } else {\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestCR = ivec2(floor(\n sourceFracIndexCR + vec2(0.5,0.5)));\n float newValue = getImage(b, sourceNearestCR.y, sourceNearestCR.x, d);\n setOutput(newValue);\n }\n }\n `}};var Nrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new CC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],\"float32\")},Sz={kernelName:ba,backendName:\"webgl\",kernelFunc:Nrt};var Kc;(function(r){r.Prod=\"*\",r.Sum=\"+\"})(Kc||(Kc={}));var og=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=[\"x\"],this.customUniforms=[{name:\"index\",type:\"float\"}];let s=this.outputShape.length,i=this.op===Kc.Prod?\"1.0\":\"0.0\",a=n?i:`getX(${Nz(s,\"coords\",this.op)})`,u=this.outputShape[this.outputShape.length-1],l=\"\",c=\"\";n?(l=o?`end != ${u-1}`:\"end != 0\",c=o?\"end + 1\":\"end - 1\"):(l=o?`end + pow2 < ${u}`:\"end >= pow2\",c=o?\"end + pow2\":\"end - pow2\"),this.userCode=`\n void main() {\n ${Bt(s)} coords = getOutputCoords();\n int end = ${Tz(s,\"coords\",this.op)};\n float val = ${a};\n int pow2 = int(pow(2.0, index));\n if (${l}) {\n int idx = ${c};\n ${Tz(s,\"coords\",this.op)} = idx;\n val ${this.op}= getX(${Nz(s,\"coords\",this.op)});\n }\n setOutput(val);\n }\n `}};function Nz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Tz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function IC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=rr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new og(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new og(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return IC(Kc.Prod,o,e,s,i,a)}var kz={kernelName:ya,backendName:\"webgl\",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return IC(Kc.Sum,o,e,s,i,a)}var Ez={kernelName:Jo,backendName:\"webgl\",kernelFunc:krt};function Ert(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Mw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=dL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var _z={kernelName:gp,backendName:\"webgl\",kernelFunc:Ert};var vC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int h = ${this.getHeightCoordString()};\n int w = ${this.getWidthCoordString()};\n int d = ${this.getDepthCoordString()};\n\n int in_h = h / ${e};\n int offset_h = imod(h, ${e});\n int in_w = w / ${e};\n int offset_w = imod(w, ${e});\n int offset_d = (offset_h * ${e} + offset_w) *\n ${this.getOutputDepthSize()};\n int in_d = d + offset_d;\n\n float result = ${this.getInputSamplingString()};\n setOutput(result);\n }\n `}getHeightCoordString(){return this.dataFormat===\"NHWC\"?\"coords[1]\":\"coords[2]\"}getWidthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[2]\":\"coords[3]\"}getDepthCoordString(){return this.dataFormat===\"NHWC\"?\"coords[3]\":\"coords[1]\"}getOutputDepthSize(){return this.dataFormat===\"NHWC\"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat===\"NHWC\"?\"getX(b, in_h, in_w, in_d)\":\"getX(b, in_d, in_h, in_w)\"}};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=new vC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var Az={kernelName:wa,backendName:\"webgl\",kernelFunc:_rt};var Ad=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l=\"\",c=\"\";n&&(o?l=`float activation(float a) {\n float b = getPreluActivationWeightsAtOutCoords();\n ${n}\n }`:s?l=`float activation(float a) {\n float b = getLeakyreluAlphaAtOutCoords();\n ${n}\n }`:l=`\n float activation(float x) {\n ${n}\n }\n `,c=\"result = activation(result);\");let p=e?\"result += getBiasAtOutCoords();\":\"\";e&&this.variableNames.push(\"bias\"),o&&this.variableNames.push(\"preluActivationWeights\"),s&&this.variableNames.push(\"leakyreluAlpha\"),this.userCode=`\n ${l}\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n ivec2 xRCCorner = coords.yz * strides - pads;\n int d2 = coords.w;\n int d1 = d2 / ${u};\n int q = d2 - d1 * ${u};\n\n int xRCorner = xRCCorner.x;\n int xCCorner = xRCCorner.y;\n\n // Convolve x(?, ?, d1) with w(:, :, d1, q) to get y(yR, yC, d2).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n // TO DO(dsmilkov): Flatten the two for loops and vec4 the operations.\n for (int wR = 0; wR < ${i}; wR++) {\n int xR = xRCorner + wR * dilations[0];\n\n if (xR < 0 || xR >= inDims[0]) {\n continue;\n }\n\n for (int wC = 0; wC < ${a}; wC++) {\n int xC = xCCorner + wC * dilations[1];\n\n if (xC < 0 || xC >= inDims[1]) {\n continue;\n }\n\n float xVal = getX(batch, xR, xC, d1);\n float wVal = getW(wR, wC, d1, q);\n dotProd += xVal * wVal;\n }\n }\n\n float result = dotProd;\n ${p}\n ${c}\n setOutput(result);\n }\n `}};var $d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=[\"x\",\"W\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"pads\",type:\"ivec2\"},{name:\"strides\",type:\"ivec2\"},{name:\"dilations\",type:\"ivec2\"},{name:\"inDims\",type:\"ivec2\"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=`\n int xR; int xC; int xCOffset;\n vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x=0 && xR < inDims[0]) {\n `;for(let x=0;x<(m+1)/2;x++){let b=x*2;if(f+=`\n xC = xCCorner + ${b*l};\n `,u===1){if(b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n `,l===1&&b>0?f+=`\n xC${b} = vec4(xTexelC${b-2}.zw, xTexelC${b}.xy);\n `:f+=`\n xCOffset = xC + 1 - 2;\n\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n previous.zw = vec2(0.0);\n }\n\n xC${b} = vec4(previous.zw, xTexelC${b}.xy);\n } else {\n xC${b} = vec4(0.0, 0.0, xTexelC${b}.xy);\n }\n `):f+=`\n if (xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xC${b} = xTexelC${b};\n `,b+1= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n `,l>1?f+=`\n xCOffset -= 2;\n if (xCOffset >= 0 && xCOffset < inDims[1]) {\n previous = getX(batch, xR, xCOffset, d1);\n xC${b+1} = vec4(previous.zw, xTexelC${b+1}.xy);\n } else {\n xC${b+1} = vec4(0.0, 0.0, xTexelC${b+1}.xy);\n }\n `:f+=`\n xC${b+1} = vec4(xTexelC${b}.zw, xTexelC${b+1}.xy);\n `):w===1?f+=`\n xC${b+1} = xTexelC${b};\n `:f+=`\n xCOffset = xC + ${w};\n\n if (xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b+1} = xTexelC${b+1};\n `}}else b= 0 && xCOffset < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xCOffset, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n if(xC + 1 >= 0 && xC + 1 < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xC + 1, d1);\n // Need to manually clear unused channels in case\n // we're reading from recycled texture.\n if (xC + 2 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.0);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(xTexelC${b}.zw, xTexelC${b+1}.zw);\n `,b+1= 0 && xCOffset < inDims[1]) {\n final = getX(batch, xR, xCOffset, d1);\n }\n xC${b+1} = vec4(xTexelC${b+1}.xy, final.xy);\n `)):(f+=`\n if(xC >= 0 && xC < inDims[1] && xTexelC${b}Ready == 0) {\n xTexelC${b} = getX(batch, xR, xC, d1);\n if (xC + 1 >= inDims[1]) {\n xTexelC${b}.zw = vec2(0.0);\n }\n xTexelC${b}Ready = 1;\n }\n\n xCOffset = xC + strides[1];\n if(xCOffset >= 0 && xCOffset < inDims[1] && xTexelC${b+1}Ready == 0) {\n xTexelC${b+1} = getX(batch, xR, xCOffset, d1);\n if (xCOffset + 1 >= inDims[1]) {\n xTexelC${b+1}.zw = vec2(0.);\n }\n xTexelC${b+1}Ready = 1;\n }\n\n xC${b} = vec4(\n xTexelC${b}.xy, xTexelC${b+1}.xy);\n `,b+1`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;M().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new $d(p):m=new Ad(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],\"float32\",f)}var $z={kernelName:Qo,backendName:\"webgl\",kernelFunc:Art};var SC=class{constructor(t){this.variableNames=[\"x\",\"dy\"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int wR = coords.x;\n int wC = coords.y;\n int d1 = coords.z;\n int dm = coords.w;\n int d2 = d1 * ${i} + dm;\n\n float dotProd = 0.0;\n\n // TO DO: Vec4 over the batch size\n for (int b = 0; b < ${t.batchSize}; b++) {\n for (int yR = 0; yR < ${t.outHeight}; yR++) {\n int xR = wR + yR * ${e} - ${o};\n\n if (xR < 0 || xR >= ${t.inHeight}) {\n continue;\n }\n\n for (int yC = 0; yC < ${t.outWidth}; yC++) {\n int xC = wC + yC * ${n} - ${s};\n\n if (xC < 0 || xC >= ${t.inWidth}) {\n continue;\n }\n\n float dyValue = getDy(b, yR, yC, d2);\n float xValue = getX(b, xR, xC, d1);\n dotProd += (xValue * dyValue);\n }\n }\n }\n setOutput(dotProd);\n }\n `}},NC=class{constructor(t){this.variableNames=[\"dy\",\"W\"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=`\n const ivec2 pads = ivec2(${i}, ${a});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords[0];\n int d1 = coords[3];\n ivec2 dyCorner = coords.yz - pads;\n int dyRCorner = dyCorner.x;\n int dyCCorner = dyCorner.y;\n\n float dotProd = 0.0;\n\n for (int wR = 0; wR < ${e}; wR++) {\n float dyR = float(dyRCorner + wR) / ${o}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n int wRPerm = ${e} - 1 - wR;\n\n for (int wC = 0; wC < ${n}; wC++) {\n float dyC = float(dyCCorner + wC) / ${s}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n int wCPerm = ${n} - 1 - wC;\n\n // TO DO: Vec4 over the channelMul\n for (int dm = 0; dm < ${u}; dm++) {\n int d2 = d1 * ${u} + dm;\n float xValue = getDy(batch, idyR, idyC, d2);\n float wValue = getW(wRPerm, wCPerm, d1, dm);\n dotProd += xValue * wValue;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Dz={kernelName:xp,backendName:\"webgl\",kernelFunc:$rt};function Drt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new NC(p);return e.runWebGLProgram(m,[o,s],\"float32\")}var Rz={kernelName:yp,backendName:\"webgl\",kernelFunc:Drt};var TC=class{constructor(t){this.variableNames=[\"X\"],this.outputShape=[t,t],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0;\n setOutput(val);\n }\n `}};function Rrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new TC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var Fz={kernelName:bp,backendName:\"webgl\",kernelFunc:Rrt};var kC=class{constructor(t){this.variableNames=[\"x\",\"W\"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=`\n const ivec2 strides = ivec2(${s}, ${i});\n const ivec2 pads = ivec2(${p}, ${m});\n const float neg_infinity = -3.4e38;\n\n void main() {\n ivec4 coords = getOutputCoords();\n int batch = coords.x;\n int d1 = coords.w;\n ivec2 outTopLeftCorner =\n coords.yz * strides - pads;\n int hBeg = outTopLeftCorner.x;\n int wBeg = outTopLeftCorner.y;\n\n float curVal = neg_infinity;\n for (int h = 0; h < ${a}; h++) {\n int hIn = hBeg + h * ${l};\n\n if (hIn >= 0 && hIn < ${e}) {\n for (int w = 0; w < ${u}; w++) {\n int wIn = wBeg + w * ${c};\n\n if (wIn >= 0 && wIn < ${n}) {\n float xVal = getX(batch, hIn, wIn, d1);\n float wVal = getW(h, w, d1);\n\n float val = xVal + wVal;\n if (val > curVal) {\n curVal = val;\n }\n }\n }\n }\n }\n\n float result = curVal;\n setOutput(result);\n }\n `}};function Frt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,\"NHWC\",u),c,p=new kC(l);c=e.runWebGLProgram(p,[o,s],\"float32\");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Oz={kernelName:Fl,backendName:\"webgl\",kernelFunc:Frt};function Ort(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Uc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Pz={kernelName:wp,backendName:\"webgl\",kernelFunc:Ort};var Prt=\"return (x >= 0.0) ? x : (exp(x) - 1.0);\",Lrt=`\n vec4 result;\n\n result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0);\n result.g = (x.g >= 0.0) ? x.g : (exp(x.g) - 1.0);\n result.b = (x.b >= 0.0) ? x.b : (exp(x.b) - 1.0);\n result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0);\n\n return result;\n`,Mrt=Ct({opSnippet:Prt,packedOpSnippet:Lrt}),Lz={kernelName:es,backendName:\"webgl\",kernelFunc:Mrt};var zrt=\"return (b >= 1.0) ? a : a * (b + 1.0);\",Brt=`\n vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.)));\n return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0))));\n`,Vrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=M().getBool(\"WEBGL_PACK_BINARY_OPERATIONS\")?new Po(Brt,n.shape,o.shape):new lo(zrt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Mz={kernelName:Cp,backendName:\"webgl\",kernelFunc:Vrt};var Grt=`\n return vec4(equal(a, b));\n`,Wrt=\"return float(a == b);\",Urt=le({opSnippet:Wrt,packedOpSnippet:Grt,dtype:\"bool\",cpuKernelImpl:yL}),zz={kernelName:Ia,backendName:\"webgl\",kernelFunc:Urt};var Hrt=`\n // Error function is calculated approximately with elementary function.\n // See \"Handbook of Mathematical Functions with Formulas,\n // Graphs, and Mathematical Tables\", Abramowitz and Stegun.\n float p = ${S.ERF_P};\n float a1 = ${S.ERF_A1};\n float a2 = ${S.ERF_A2};\n float a3 = ${S.ERF_A3};\n float a4 = ${S.ERF_A4};\n float a5 = ${S.ERF_A5};\n\n float sign = sign(x);\n x = abs(x);\n float t = 1.0 / (1.0 + p * x);\n return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x));\n`,qrt=Ct({opSnippet:Hrt}),Bz={kernelName:Ca,backendName:\"webgl\",kernelFunc:qrt};var Krt=Lo+`\n return exp(x);\n`,jrt=`\n vec4 result = exp(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Ik=Ct({opSnippet:Krt,packedOpSnippet:jrt,cpuKernelImpl:bL,dtype:\"float32\"}),Vz={kernelName:rs,backendName:\"webgl\",kernelFunc:Ik};function EC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var Gz={kernelName:mi,backendName:\"webgl\",kernelFunc:EC};var Wz=\"return exp(x) - 1.0;\",Xrt=Ct({opSnippet:Wz,packedOpSnippet:Wz,cpuKernelImpl:wL}),Uz={kernelName:va,backendName:\"webgl\",kernelFunc:Xrt};var sg=class{constructor(t,e,n){this.variableNames=[\"real\",\"imag\"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:\"1.0\",a;if(t===\"real\")a=\"return real * expR - imag * expI;\";else if(t===\"imag\")a=\"return real * expI + imag * expR;\";else throw new Error(`FFT component must be either \"real\" or \"imag\", got ${t}.`);this.userCode=`\n const float exponentMultiplier = ${s};\n\n float unaryOpComplex(float real, float expR, float imag, float expI) {\n ${a}\n }\n\n float mulMatDFT(int batch, int index) {\n float indexRatio = float(index) / float(${o});\n float exponentMultiplierTimesIndexRatio =\n exponentMultiplier * indexRatio;\n\n float result = 0.0;\n\n for (int i = 0; i < ${o}; i++) {\n // x = (-2|2 * PI / N) * index * i;\n float x = exponentMultiplierTimesIndexRatio * float(i);\n float expR = cos(x);\n float expI = sin(x);\n float real = getReal(batch, i);\n float imag = getImag(batch, i);\n\n result +=\n unaryOpComplex(real, expR, imag, expI) / ${i};\n }\n\n return result;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n setOutput(mulMatDFT(coords[0], coords[1]));\n }\n `}};function _C(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new sg(\"real\",u,t),c=new sg(\"imag\",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,\"float32\"),f=e.runWebGLProgram(c,p,\"float32\"),d=$n({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Yrt(r){let{inputs:t,backend:e}=r,{input:n}=t;return _C(n,!1,e)}var Hz={kernelName:Ip,backendName:\"webgl\",kernelFunc:Yrt};var AC=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:\"value\",type:\"float\"}],this.variableNames=[\"x\"],this.outputShape=t,this.userCode=`\n void main() {\n // Input can be obtained from uniform value.\n setOutput(value);\n }\n `}};function Sl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s===\"string\"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new AC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var qz={kernelName:Ol,backendName:\"webgl\",kernelFunc:Sl};var $C=class{constructor(t){this.variableNames=[\"Image\"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n\n int coordX = ${e} - x - 1;\n float outputValue;\n if(coordX >= 0 && coordX < ${e}) {\n outputValue = getImage(coords[0], coords[1], coordX, coords[3]);\n } else {\n outputValue = getImage(coords[0], coords[1], coords[2], coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var Kz={kernelName:Sa,backendName:\"webgl\",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new $C(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var jz=\"return floor(x);\",Zrt=Ct({opSnippet:jz,packedOpSnippet:jz,cpuKernelImpl:CL}),Xz={kernelName:ns,backendName:\"webgl\",kernelFunc:Zrt};var Jrt=`\n float s = sign(a) * sign(b);\n int ia = round(a);\n int ib = round(b);\n if (ib != 0) {\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n return float(idiv(ia, ib, s));\n } else {\n return NAN;\n }\n`,Qrt=`\n ivec4 ia = round(a);\n ivec4 ib = round(b);\n bvec4 cond = notEqual(ib, ivec4(0));\n ivec4 result = ivec4(0);\n vec4 s = sign(a) * sign(b);\n\n // Windows (D3D) wants guaranteed non-zero int division at compile-time.\n if (cond[0]) {\n result[0] = idiv(ia[0], ib[0], s[0]);\n }\n if (cond[1]) {\n result[1] = idiv(ia[1], ib[1], s[1]);\n }\n if (cond[2]) {\n result[2] = idiv(ia[2], ib[2], s[2]);\n }\n if (cond[3]) {\n result[3] = idiv(ia[3], ib[3], s[3]);\n }\n return vec4(result);\n`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,dtype:\"int32\"}),Yz={kernelName:os,backendName:\"webgl\",kernelFunc:tnt};var DC=class{constructor(t){this.variableNames=[\"A\"];let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n vec2 uv = (vec2(texC, texR) + halfCR) / vec2(${o}.0, ${n}.0);\n\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n setOutput(floor(value * 255.0 + 0.5));\n }\n `}};var RC=class{constructor(t){this.variableNames=[\"A\"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=`\n void main() {\n ivec3 coords = getOutputCoords();\n int texR = coords[0];\n int texC = coords[1];\n int depth = coords[2];\n\n vec4 result = vec4(0.);\n\n for(int row=0; row<=1; row++) {\n for(int col=0; col<=1; col++) {\n texC = coords[1] + row;\n depth = coords[2] + col;\n\n vec2 uv = (vec2(texC, texR) + halfCR) /\n vec2(${o}.0, ${n}.0);\n vec4 values = ${e.texture2D}(A, uv);\n float value;\n if (depth == 0) {\n value = values.r;\n } else if (depth == 1) {\n value = values.g;\n } else if (depth == 2) {\n value = values.b;\n } else if (depth == 3) {\n value = values.a;\n }\n\n result[row * 2 + col] = floor(value * 255.0 + 0.5);\n }\n }\n\n ${e.output} = result;\n }\n `}};var Zz={kernelName:Zd,backendName:\"webgl\",kernelFunc:ent},Dd,vk=M().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");function ent(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!=\"undefined\"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!=\"undefined\"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=M().getBool(\"CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU\");(Dd==null||h!==vk)&&(vk=h,Dd=document.createElement(\"canvas\").getContext(\"2d\",{willReadFrequently:vk})),Dd.canvas.width=u,Dd.canvas.height=l,Dd.drawImage(o,0,0,u,l),o=Dd.canvas}let m=e.makeTensorInfo(c,\"int32\");e.texData.get(m.dataId).usage=Yr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=M().getBool(\"WEBGL_PACK\")?new RC(p):new DC(p),d=e.runWebGLProgram(f,[m],\"int32\");return e.disposeData(m.dataId),d}function rnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f===\"leakyrelu\",E=()=>{let $=[o,s],F=(P,V)=>{if(V===\"NCHW\"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(d,\"float32\"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type===\"SAME\"||g.padInfo.type===\"VALID\"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h===\"channelsLast\"&&M().getBool(\"WEBGL_EXP_CONV\")){let $=f?Il(f,!0):null,F=new _d(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,\"float32\",P)}else if(M().getBool(\"WEBGL_CONV_IM2COL\"))x=gC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?Il(f,!1):null,F=new Ed(g,w,$,C,N),P=E();x=e.runWebGLProgram(F,P,\"float32\")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Jz={kernelName:Ni,backendName:\"webgl\",kernelFunc:rnt};function nnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=M().getBool(\"WEBGL_PACK_DEPTHWISECONV\")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Il(m,x):null,w=[o,s],C=i!=null,N=a!=null,E=m===\"leakyrelu\";if(C&&w.push(i),N&&w.push(a),E){let P=e.makeTensorInfo([],\"float32\",y.createScalarValue(f,\"float32\"));w.push(P),d.push(P)}let A;x?A=new $d(g,C,b,N,E):A=new Ad(g,C,b,N,E);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,\"float32\",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Qz={kernelName:Ti,backendName:\"webgl\",kernelFunc:nnt};var FC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=[\"x\",\"indices\"],this.outputShape=n;let s=Bt(n.length),i=`\n int index;`;for(let a=0;a= ${this.paramsShape[a]};\n flattenIndex += index * ${this.strides[a]};`;this.userCode=`\n void main() {\n ${s} coords = getOutputCoords();\n int flattenIndex = 0;\n bool out_of_bounds = false;\n\n ${i}\n\n setOutput(out_of_bounds ? 0.0 : getX(flattenIndex, coords[1]));\n }\n `}};function ont(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=o.shape,i=s[s.length-1],a=y.sizeFromShape(n.shape),[u,l,c,p]=S.prepareAndValidate(n,o),m=it({inputs:{x:o},backend:e,attrs:{shape:[l,i]}}),f=it({inputs:{x:n},backend:e,attrs:{shape:[y.sizeFromShape(n.shape)/c,c]}});if(e.shouldExecuteOnCPU([n,o])||n.dtype===\"string\"){let x=e.readSync(o.dataId),b=e.bufferSync(n),w=IL(x,b,n.dtype,l,i,c,p,n.shape,a);return e.makeTensorInfo(u,n.dtype,w.values)}let d=new FC(i,p,[l,c],n.shape),h=e.runWebGLProgram(d,[f,m],f.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:u}});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(h),g}var t3={kernelName:Na,backendName:\"webgl\",kernelFunc:ont};var OC=class{constructor(t,e){this.variableNames=[\"A\",\"indices\"],this.outputShape=e,this.rank=e.length;let n=Bt(this.rank),o=snt(t,2);this.userCode=`\n void main() {\n ${n} resRC = getOutputCoords();\n int index = int(getIndices(resRC.x, resRC.z));\n float inBounds = (index >= 0) && (index < ${t[2]}) ? 1.0 : 0.0;\n setOutput(inBounds * getA(${o}));\n }\n `}};function snt(r,t){let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype===\"string\"){let b=e.bufferSync(f),w=e.bufferSync(m),C=vL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new OC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var e3={kernelName:fi,backendName:\"webgl\",kernelFunc:Sk};var int=\"return float(a > b);\",ant=`\n return vec4(greaterThan(a, b));\n`,lnt=le({opSnippet:int,packedOpSnippet:ant,cpuKernelImpl:SL,dtype:\"bool\"}),r3={kernelName:Ta,backendName:\"webgl\",kernelFunc:lnt};var unt=\"return float(a >= b);\",cnt=`\n return vec4(greaterThanEqual(a, b));\n`,pnt=le({opSnippet:unt,packedOpSnippet:cnt,dtype:\"bool\",cpuKernelImpl:NL}),n3={kernelName:is,backendName:\"webgl\",kernelFunc:pnt};function mnt(r){let{inputs:t,backend:e}=r,{input:n}=t;return _C(n,!0,e)}var o3={kernelName:vp,backendName:\"webgl\",kernelFunc:mnt};var fnt=\"return float(!isnan(x) && !isinf(x));\",dnt=Ct({opSnippet:fnt,dtype:\"bool\"}),s3={kernelName:ka,backendName:\"webgl\",kernelFunc:dnt};var hnt=\"return float(isinf(x));\",gnt=Ct({opSnippet:hnt,dtype:\"bool\"}),i3={kernelName:Ea,backendName:\"webgl\",kernelFunc:gnt};var xnt=\"return float(isnan(x));\",ynt=Ct({opSnippet:xnt,dtype:\"bool\"}),a3={kernelName:as,backendName:\"webgl\",kernelFunc:ynt};var bnt=\"return float(a < b);\",wnt=`\n return vec4(lessThan(a, b));\n`,Cnt=le({opSnippet:bnt,packedOpSnippet:wnt,cpuKernelImpl:TL,dtype:\"bool\"}),l3={kernelName:_a,backendName:\"webgl\",kernelFunc:Cnt};var Int=\"return float(a <= b);\",vnt=`\n return vec4(lessThanEqual(a, b));\n`,Snt=le({opSnippet:Int,packedOpSnippet:vnt,cpuKernelImpl:kL,dtype:\"bool\"}),u3={kernelName:Aa,backendName:\"webgl\",kernelFunc:Snt};function Nnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=EL(n,o,s);return t.makeTensorInfo([i.length],\"float32\",i)}var c3={kernelName:Np,backendName:\"webgl\",kernelFunc:Nnt};var Tnt=Lo+`\n return x < 0.0 ? 0./0. : log(x);\n`,knt=`\n vec4 result = log(x);\n bvec4 isNaN = isnan(x);\n result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r);\n result.g = isNaN.g ? x.g : (x.g < 0.0 ? 0./0. : result.g);\n result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b);\n result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a);\n return result;\n`,Ent=Ct({opSnippet:Tnt,packedOpSnippet:knt,cpuKernelImpl:_L}),p3={kernelName:us,backendName:\"webgl\",kernelFunc:Ent};var _nt=Lo+`\n return log(1.0 + x);\n`,Ant=Ct({opSnippet:_nt}),m3={kernelName:$a,backendName:\"webgl\",kernelFunc:Ant};var $nt=\"return float(a >= 1.0 && b >= 1.0);\",Dnt=`\n return vec4(\n vec4(greaterThanEqual(a, vec4(1.0))) *\n vec4(greaterThanEqual(b, vec4(1.0))));\n`,Rnt=le({opSnippet:$nt,packedOpSnippet:Dnt,dtype:\"bool\"}),f3={kernelName:Da,backendName:\"webgl\",kernelFunc:Rnt};var Fnt=\"return float(!(x >= 1.0));\",Ont=Ct({opSnippet:Fnt}),d3={kernelName:Ra,backendName:\"webgl\",kernelFunc:Ont};var Pnt=\"return float(a >= 1.0 || b >= 1.0);\",Lnt=`\n return min(\n vec4(greaterThanEqual(a, vec4(1.0))) +\n vec4(greaterThanEqual(b, vec4(1.0))),\n vec4(1.0));\n`,Mnt=le({opSnippet:Pnt,packedOpSnippet:Lnt,dtype:\"bool\"}),h3={kernelName:Fa,backendName:\"webgl\",kernelFunc:Mnt};var PC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n int d = coords[3];\n float x = getX(b, r, c, d);\n float sum = 0.0;\n for (int j = -${i}; j <= ${i}; j++) {\n int idx = d + j;\n if (idx >= 0 && idx <= ${a}) {\n float z = getX(b, r, c, idx);\n sum += z * z;\n }\n }\n float val = x * ${u};\n setOutput(val);\n }\n `}};var LC=class{constructor(t,e,n,o,s){this.variableNames=[\"x\"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords.x;\n int r = coords.y;\n int c = coords.z;\n int d = coords.w;\n\n bool hasNextCol = d < ${this.outputShape[3]};\n bool hasNextRow = c < ${this.outputShape[2]};\n\n vec4 sum = vec4(0.);\n vec4 xFragAtOutputCoords = getX(b, r, c, d);\n\n vec4 xAtOutputCoords = vec4(\n getChannel(xFragAtOutputCoords, vec2(c, d)),\n hasNextCol ?\n getChannel(xFragAtOutputCoords, vec2(c, d + 1)) : 0.0,\n hasNextRow ?\n getChannel(xFragAtOutputCoords , vec2(c + 1, d)) : 0.0,\n (hasNextRow && hasNextCol) ?\n getChannel(xFragAtOutputCoords, vec2(c + 1, d + 1)) : 0.0\n );\n\n int firstChannel = d - ${i};\n vec2 cache = vec2(0.);\n if(firstChannel >= 0){\n vec4 firstChannelFrag = getX(b, r, c, firstChannel);\n cache.x = getChannel(firstChannelFrag, vec2(c, firstChannel));\n if(hasNextRow){\n cache.y = getChannel(firstChannelFrag, vec2(c + 1, firstChannel));\n }\n }\n\n ivec2 depth = ivec2(d, d + 1);\n for (int j = - ${i}; j <= ${i}; j++) {\n ivec2 idx = depth + j;\n bvec2 aboveLowerBound = greaterThanEqual(idx, ivec2(0));\n bvec2 belowUpperBound = lessThanEqual(idx, ivec2(${a}));\n\n bool depthInRange = aboveLowerBound.x && belowUpperBound.x;\n bool depthPlusOneInRange = aboveLowerBound.y && belowUpperBound.y;\n\n if(depthInRange || depthPlusOneInRange){\n vec4 z = vec4(0.);\n vec4 xFragAtCurrentDepth;\n z.xz = cache.xy;\n if(depthPlusOneInRange && hasNextCol){\n xFragAtCurrentDepth = idx.y != d ?\n getX(b, r, c, idx.y) : xFragAtOutputCoords;\n z.y = getChannel(xFragAtCurrentDepth, vec2(c, idx.y));\n if(hasNextRow){\n z.w = getChannel(xFragAtCurrentDepth, vec2(c + 1, idx.y));\n }\n }\n cache.xy = z.yw;\n sum += z * z;\n }\n }\n vec4 result = xAtOutputCoords * ${u};\n setOutput(result);\n }\n `}};var znt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=M().getBool(\"WEBGL_PACK_NORMALIZATION\")?new LC(o.shape,s,i,a,u):new PC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},g3={kernelName:Pl,backendName:\"webgl\",kernelFunc:znt};var MC=class{constructor(t,e,n,o,s){this.variableNames=[\"inputImage\",\"outputImage\",\"dy\"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int r = coords[1];\n int c = coords[2];\n\n float result = 0.0;\n for (int d = 0; d < ${this.depth}; ++d) {\n int depthBegin = int(max(0.0, float(d - ${e})));\n int depthEnd = int(min(float(${this.depth}),\n float(d + ${e} + 1)));\n\n const int MIN_DEPTH_BEGIN = 0;\n const int MAX_DEPTH_END = ${this.depth};\n\n float norm = 0.0;\n for (int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k) {\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd) {\n norm += getInputImage(b, r, c, k) * getInputImage(b, r, c, k);\n }\n else {\n break;\n }\n }\n\n norm = float(${o}) * norm + float(${n});\n\n for(int k = MIN_DEPTH_BEGIN; k < MAX_DEPTH_END; ++k){\n if (k < depthBegin){\n continue;\n }\n else if (k >= depthBegin && k < depthEnd){\n float dyi = -2.0 * float(${o})\n * float(${s})\n * getInputImage(b ,r ,c, k) * getOutputImage(b, r, c, d)\n / norm;\n if (k == d) {\n dyi += pow(norm, -1.0 * ${s});\n }\n if (k == coords[3]) {\n dyi *= getDy(b, r, c, d);\n result += dyi;\n }\n }\n else {\n break;\n }\n }\n }\n setOutput(result);\n }\n `}};var Bnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new MC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},x3={kernelName:Tp,backendName:\"webgl\",kernelFunc:Bnt};function y3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=qn(a,r.dtype,\"max\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return rr({inputs:{x:o},backend:e});let p=new oi(c,\"max\",!1);return e.runWebGLProgram(p,[o],o.dtype)}var C3={kernelName:ms,backendName:\"webgl\",kernelFunc:Unt};function Hnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Ru(p,\"max\",!1);return e.runWebGLProgram(m,[o],o.dtype)}var I3={kernelName:Ll,backendName:\"webgl\",kernelFunc:Hnt};var zC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=`\n const ivec2 pads = ivec2(${a}, ${u});\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n\n ivec2 dyRCCorner = coords.yz - pads;\n int dyRCorner = dyRCCorner.x;\n int dyCCorner = dyRCCorner.y;\n\n // Convolve dy(?, ?, d) with pos mask(:, :, d) to get dx(xR, xC, d).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n for (int wR = 0; wR < ${s};\n wR += ${o}) {\n float dyR = float(dyRCorner + wR) / ${e}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 || fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${i}; wC++) {\n float dyC = float(dyCCorner + wC) / ${n}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(b, idyR, idyC, d);\n int maxPosValue = ${l} - int(getMaxPos(b, idyR, idyC, d));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue = wR * ${i} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n setOutput(dotProd);\n }\n `}},BC=class{constructor(t){this.variableNames=[\"dy\",\"maxPos\"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=`\n const ivec3 pads = ivec3(${p}, ${m}, ${f});\n\n void main() {\n ivec5 coords = getOutputCoords();\n int batch = coords.x;\n int ch = coords.u;\n\n ivec3 dyCorner = ivec3(coords.y, coords.z, coords.w) - pads;\n int dyDCorner = dyCorner.x;\n int dyRCorner = dyCorner.y;\n int dyCCorner = dyCorner.z;\n\n // Convolve dy(?, ?, ?, ch) with pos mask(:, :, :, d) to get\n // dx(xD, xR, xC, ch).\n // ? = to be determined. : = across all values in that axis.\n float dotProd = 0.0;\n\n for (int wD = 0; wD < ${u};\n wD += ${s}) {\n float dyD = float(dyDCorner + wD) / ${e}.0;\n\n if (dyD < 0.0 || dyD >= ${t.outDepth}.0 || fract(dyD) > 0.0) {\n continue;\n }\n int idyD = int(dyD);\n\n for (int wR = 0; wR < ${l};\n wR += ${i}) {\n float dyR = float(dyRCorner + wR) / ${n}.0;\n\n if (dyR < 0.0 || dyR >= ${t.outHeight}.0 ||\n fract(dyR) > 0.0) {\n continue;\n }\n int idyR = int(dyR);\n\n for (int wC = 0; wC < ${c};\n wC += ${a}) {\n float dyC = float(dyCCorner + wC) / ${o}.0;\n\n if (dyC < 0.0 || dyC >= ${t.outWidth}.0 ||\n fract(dyC) > 0.0) {\n continue;\n }\n int idyC = int(dyC);\n\n float dyValue = getDy(batch, idyD, idyR, idyC, ch);\n int maxPosValue = ${d} -\n int(getMaxPos(batch, idyD, idyR, idyC, ch));\n\n // Get the current value, check it against the value from the\n // position matrix.\n int curPosValue =\n wD * ${l} * ${c} +\n wR * ${c} + wC;\n float mask = float(maxPosValue == curPosValue ? 1.0 : 0.0);\n\n dotProd += dyValue * mask;\n }\n }\n }\n setOutput(dotProd);\n }\n `}};function qnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new Ru(m,\"max\",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new BC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var v3={kernelName:Ep,backendName:\"webgl\",kernelFunc:qnt};function Knt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;ri([s,i],\"maxPoolGrad\");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new oi(m,\"max\",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new zC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var S3={kernelName:kp,backendName:\"webgl\",kernelFunc:Knt};function N3(r,t,e,n){let o=new oi(e,\"max\",!1),s=n.runWebGLProgram(o,[r],\"float32\");o=new oi(e,\"max\",!0,!0,t);let i=n.runWebGLProgram(o,[r],\"float32\");return[s,i]}var T3={kernelName:_p,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=N3(n,a,c,u);return[p,m]}};function k3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=qn(a,\"float32\",\"mean\",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var E3={kernelName:fs,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;$c[0]+t[p]+c[1]);let o=t.length,s=Bt(o),i=e.map(c=>c[0]).join(\",\"),a=e.map((c,p)=>c[0]+t[p]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o),l=n===\"reflect\"?0:1;if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start) {\n outC = start * 2 - outC - ${l};\n } else if(outC >= end) {\n outC = (end - 1) * 2 - outC + ${l};\n }\n setOutput(getX(outC - start));\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n for (int i = 0; i < ${o}; i++) {\n if (outC[i] < start[i]) {\n outC[i] = start[i] * 2 - outC[i] - ${l};\n } else if(outC[i] >= end[i]) {\n outC[i] = (end[i] - 1) * 2 - outC[i] + ${l};\n }\n }\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n `}};var GC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=Bt(o),i=e.map(d=>d[0]).join(\",\"),a=e.map((d,h)=>d[0]+t[h]).join(\",\"),u=er(\"rc\",o),l=er(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=n===\"reflect\"?0:1,f=\"\";if(o===1){let d=`\n ${s} source = rc;\n if (source < start) {\n source = start * 2 - source - ${m};\n } else if (source >= end) {\n source = (end - 1) * 2 - source + ${m};\n }\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n `}else{let d=`\n ${s} source = rc;\n ${s} lt = ${s}(lessThan(source, start));\n ${s} gte = ${s}(greaterThanEqual(source, end));\n ${s} orig = 1 - (lt + gte);\n source = orig * source +\n lt * (start * 2 - source - ${m}) +\n gte * ((end - 1) * 2 - source + ${m});\n source -= start;\n `;f=`\n ${s} rc = outputLoc;\n ${d}\n result[0] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[1] = getChannel(getX(${l.join()}), ${p});\n }\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {\n ${d}\n result[2] = getChannel(getX(${l.join()}), ${p});\n ${u[o-1]} += 1;\n if(${c}) {\n ${d}\n result[3] = getChannel(getX(${l.join()}), ${p});\n }\n }\n `}this.userCode=`\n const ${s} start = ${s}(${i});\n const ${s} end = ${s}(${a});\n\n void main() {\n ${s} outputLoc = getOutputCoords();\n vec4 result = vec4(0.);\n ${f}\n setOutput(result);\n }\n `}};var Jnt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new GC(n.shape,o,s):new VC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},$3={kernelName:gs,backendName:\"webgl\",kernelFunc:Jnt};var Qnt=`if (b == 0.0) return NAN;\n return mod(a, b);`,tot=`\n vec4 result = mod(a, b);\n bvec4 isNaN = equal(b, vec4(0.0));\n `+ea+`\n return result;\n`,eot=le({opSnippet:Qnt,packedOpSnippet:tot}),D3={kernelName:Oa,backendName:\"webgl\",kernelFunc:eot};var WC=class{constructor(t,e,n){this.variableNames=[\"probs\"],this.customUniforms=[{name:\"seed\",type:\"float\"}],this.outputShape=[t,n],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n\n float r = random(seed);\n float cdf = 0.0;\n\n for (int i = 0; i < ${e-1}; i++) {\n cdf += getProbs(batch, i);\n\n if (r < cdf) {\n setOutput(float(i));\n return;\n }\n }\n\n // If no other event happened, last event happened.\n setOutput(float(${e-1}));\n }\n `}};var rot=`\nif (a == b) {\n return 1.0;\n};\nreturn a / b;`,not=`\n // vec4 one = vec4(equal(a, b));\n // return one + (vec4(1.0) - one) * a / b;\n vec4 result = a / b;\n if(a.x == b.x) {\n result.x = 1.;\n }\n if(a.y == b.y) {\n result.y = 1.;\n }\n if(a.z == b.z) {\n result.z = 1.;\n }\n if(a.w == b.w) {\n result.w = 1.;\n }\n\n return result;\n`,Tk=le({opSnippet:rot,packedOpSnippet:not,checkOutOfBounds:!0}),R3={kernelName:ts,backendName:\"webgl\",kernelFunc:Tk};var F3=\"return a - b;\",kk=le({opSnippet:F3,packedOpSnippet:F3,supportsComplex:!0,cpuKernelImpl:JL}),O3={kernelName:Ls,backendName:\"webgl\",kernelFunc:kk};function Ek(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Nk({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=it({inputs:{x:a},backend:e,attrs:{shape:u}}),c=kk({inputs:{a:o,b:l},backend:e}),p=Ik({inputs:{x:c},backend:e}),m=Uc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=it({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Tk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var P3={kernelName:Os,backendName:\"webgl\",kernelFunc:Ek};function oot(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Ek({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new WC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],\"int32\",m);return a||e.disposeIntermediateTensorInfo(u),f}var L3={kernelName:Ap,backendName:\"webgl\",kernelFunc:oot};var sot=hr+`\n return -x;\n`,iot=`\n vec4 result = -x;\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`;function aot(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=FL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return M().getBool(\"WEBGL_PACK_UNARY_OPERATIONS\")?o=new An(n.shape,iot):o=new Mr(n.shape,sot),e.runWebGLProgram(o,[n],n.dtype)}var M3={kernelName:di,backendName:\"webgl\",kernelFunc:aot};var lot=qr.nonMaxSuppressionV3Impl;function uot(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=lot(l,c,i,a,u);return e.makeTensorInfo([p.length],\"int32\",new Int32Array(p))}var z3={kernelName:La,backendName:\"webgl\",kernelFunc:uot};var cot=qr.nonMaxSuppressionV4Impl;function pot(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=cot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],\"int32\",new Int32Array(m)),e.makeTensorInfo([],\"int32\",new Int32Array([f]))]}var B3={kernelName:Ma,backendName:\"webgl\",kernelFunc:pot};var mot=qr.nonMaxSuppressionV5Impl;function fot(r){S.warn(\"tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead\");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=mot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],\"int32\",new Int32Array(g)),e.makeTensorInfo([x.length],\"float32\",new Float32Array(x))]}var V3={kernelName:za,backendName:\"webgl\",kernelFunc:fot};var UC=class{constructor(t,e,n,o){this.variableNames=[\"indices\"],this.outputShape=[t,e],this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int index = round(getIndices(coords.x));\n setOutput(mix(float(${o}), float(${n}),\n float(index == coords.y)));\n }\n `}};var dot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new UC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},G3={kernelName:ys,backendName:\"webgl\",kernelFunc:dot};function ig(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"complex64\"){let o=vl({inputs:{input:n},backend:e}),s=ig({inputs:{x:o},backend:e}),i=qc({inputs:{input:n},backend:e}),a=ig({inputs:{x:i},backend:e}),u=$n({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Sl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype===\"string\"?\"\":0},backend:e})}var W3={kernelName:vi,backendName:\"webgl\",kernelFunc:ig};function U3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype===\"string\")throw new Error(\"onesLike is not supported under string dtype\");if(n.dtype===\"complex64\"){let o=vl({inputs:{input:n},backend:e}),s=U3({inputs:{x:o},backend:e}),i=qc({inputs:{input:n},backend:e}),a=ig({inputs:{x:i},backend:e}),u=$n({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Sl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var H3={kernelName:hi,backendName:\"webgl\",kernelFunc:U3};function hot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return EC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=EC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Ck({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var q3={kernelName:gi,backendName:\"webgl\",kernelFunc:hot};var HC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=Bt(o),i=e.map(l=>l[0]).join(\",\"),a=e.map((l,c)=>l[0]+t[c]).join(\",\"),u=[\"coords[0]\",\"coords[1]\",\"coords[2]\",\"coords[3]\"].slice(0,o);if(o===1){this.userCode=`\n int start = ${i};\n int end = ${a};\n\n void main() {\n int outC = getOutputCoords();\n if (outC < start || outC >= end) {\n setOutput(value);\n } else {\n setOutput(getX(outC - start));\n }\n }\n `;return}this.userCode=`\n ${s} start = ${s}(${i});\n ${s} end = ${s}(${a});\n\n void main() {\n ${s} outC = getOutputCoords();\n if (any(lessThan(outC, start)) || any(greaterThanEqual(outC, end))) {\n setOutput(value);\n } else {\n ${s} coords = outC - start;\n setOutput(getX(${u}));\n }\n }\n `}};var qC=class{constructor(t,e,n){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:\"value\",type:\"float\"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=Bt(o),i=e.map(h=>h[0]).join(\",\"),a=e.map((h,g)=>h[0]+t[g]).join(\",\"),u=er(\"rc\",o),l=er(\"source\",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?\"source\":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1;\n if(${c}) {\n `,o===1?\"\":`}\n rc = outputLoc;\n ${u[o-2]} += 1;\n if(${u[o-2]} < ${this.outputShape[o-2]}) {`,o===1?\"\":` ${u[o-1]} += 1;\n if(${c}) {`],f=o===1?\"rc < start || rc >= end\":\"any(lessThan(rc, start)) || any(greaterThanEqual(rc, end))\",d=\"\";for(let h=0,g=o===1?2:4;h{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Sl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new qC(o.shape,s,i):new HC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},K3={kernelName:bs,backendName:\"webgl\",kernelFunc:_k};var got=`\n if(a < 0.0 && floor(b) < b){\n return NAN;\n }\n if (b == 0.0) {\n return 1.0;\n }\n return (round(mod(b, 2.0)) != 1) ?\n pow(abs(a), b) : sign(a) * pow(abs(a), b);\n`,xot=`\n // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise.\n vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1)));\n vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1);\n vec4 result = multiplier * pow(abs(a), b);\n\n // Ensure that a^0 = 1, including 0^0 = 1 as this correspond to TF and JS\n bvec4 isExpZero = equal(b, vec4(0.0));\n result.r = isExpZero.r ? 1.0 : result.r;\n result.g = isExpZero.g ? 1.0 : result.g;\n result.b = isExpZero.b ? 1.0 : result.b;\n result.a = isExpZero.a ? 1.0 : result.a;\n\n bvec4 isNaN1 = lessThan(a, vec4(0.0));\n bvec4 isNaN2 = lessThan(floor(b), b);\n bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w);\n `+ea+`\n return result;\n`,yot=le({opSnippet:got,packedOpSnippet:xot}),j3={kernelName:ws,backendName:\"webgl\",kernelFunc:yot};function bot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims(\"prod\",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=PL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Hu(o.dtype),w=qn(x,b,\"prod\",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var X3={kernelName:Is,backendName:\"webgl\",kernelFunc:bot};function wot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=LL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],\"int32\",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var Y3={kernelName:$p,backendName:\"webgl\",kernelFunc:wot};function Cot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=ML(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],\"int32\",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var Z3={kernelName:Dp,backendName:\"webgl\",kernelFunc:Cot};function Iot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=zL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var J3={kernelName:Rp,backendName:\"webgl\",kernelFunc:Iot};var Ak=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=BL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Q3={kernelName:Ml,backendName:\"webgl\",kernelFunc:Ak};var vot=\"return 1.0 / x;\",Sot=Ct({opSnippet:vot}),tB={kernelName:vs,backendName:\"webgl\",kernelFunc:Sot};var Not=hr+`\n return (x < 0.0) ? 0.0 : x;\n`,Tot=`\n vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,kot=Ct({opSnippet:Not,packedOpSnippet:Tot}),eB={kernelName:Ss,backendName:\"webgl\",kernelFunc:kot};var Eot=hr+`\n return (x < 0.0) ? 0.0 : min(6.0, x);\n`,_ot=`\n vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0)));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Aot=Ct({opSnippet:Eot,packedOpSnippet:_ot}),rB={kernelName:ks,backendName:\"webgl\",kernelFunc:Aot};var KC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)\":m=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec2 sourceFloorRC = ivec2(max(sourceFracIndexRC, vec2(0.0)));\n ivec2 sourceCeilRC = ivec2(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n float topLeft = getA(b, sourceFloorRC.x, sourceFloorRC.y, d);\n float bottomLeft = getA(b, sourceCeilRC.x, sourceFloorRC.y, d);\n float topRight = getA(b, sourceFloorRC.x, sourceCeilRC.y, d);\n float bottomRight = getA(b, sourceCeilRC.x, sourceCeilRC.y, d);\n\n vec2 fracRC = sourceFracIndexRC - vec2(sourceFloorRC);\n\n float top = topLeft + (topRight - topLeft) * fracRC.y;\n float bottom = bottomLeft + (bottomRight - bottomLeft) * fracRC.y;\n float newValue = top + (bottom - top) * fracRC.x;\n\n setOutput(newValue);\n }\n `}};var jC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m=\"(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)\":m=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${m};\n\n // Compute the four integer indices.\n ivec3 sourceFloorRC = ivec3(max(sourceFracIndexRC, vec3(0.0)));\n ivec3 sourceCeilRC = ivec3(\n min(inputShapeRC - 1.0, ceil(sourceFracIndexRC)));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n // In parallel, construct four corners for all four components in\n // packed 2x2 cell.\n vec4 topLeft = vec4(\n getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 bottomLeft = vec4(\n getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceFloorRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceFloorRC.z, d + 1) : 0.0);\n\n vec4 topRight = vec4(\n getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceFloorRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceFloorRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec4 bottomRight = vec4(\n getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d),\n hasNextCol ? getAValue(b, sourceCeilRC.x, sourceCeilRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceCeilRC.x, sourceCeilRC.z, d + 1) : 0.0);\n\n vec3 fracRC = sourceFracIndexRC - vec3(sourceFloorRC);\n\n vec4 top = mix(topLeft, topRight, fracRC.yyzz);\n vec4 bottom = mix(bottomLeft, bottomRight, fracRC.yyzz);\n vec4 newValue = mix(top, bottom, fracRC.x);\n\n setOutput(newValue);\n }\n `}};function $ot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new jC(o.shape,u,l,s,i):new KC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],\"float32\")}var nB={kernelName:Ts,backendName:\"webgl\",kernelFunc:$ot};var XC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(startRLerp - float(winHeight / 2));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(startCLerp - float(winWidth / 2));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float dxR = float(dyR) * heightScale;\n int topDxRIndex = int(floor(dxR));\n int bottomDxRIndex = int(min(ceil(dxR), ${o-1}.0));\n float dxRLerp = dxR - float(topDxRIndex);\n float inverseDxRLerp = 1.0 - dxRLerp;\n\n float dxC = float(dyC) * widthScale;\n int leftDxCIndex = int(floor(dxC));\n int rightDxCIndex = int(min(ceil(dxC), ${s-1}.0));\n float dxCLerp = dxC - float(leftDxCIndex);\n float inverseDxCLerp = 1.0 - dxCLerp;\n\n if (r == topDxRIndex && c == leftDxCIndex) {\n // topLeft\n accumulator +=\n getDy(b, dyR, dyC, d) * inverseDxRLerp * inverseDxCLerp;\n }\n\n if (r == topDxRIndex && c == rightDxCIndex) {\n // topRight\n accumulator += getDy(b, dyR, dyC, d) * inverseDxRLerp * dxCLerp;\n }\n\n if (r == bottomDxRIndex && c == leftDxCIndex) {\n // bottomLeft\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * inverseDxCLerp;\n }\n\n if (r == bottomDxRIndex && c == rightDxCIndex) {\n // bottomRight\n accumulator += getDy(b, dyR, dyC, d) * dxRLerp * dxCLerp;\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new XC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var oB={kernelName:Pp,backendName:\"webgl\",kernelFunc:Dot};var YC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))\":f=\"vec2(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec2 effectiveInputOverOutputRatioRC = vec2(\n ${c[0]/p[0]},\n ${c[1]/p[1]});\n const vec2 inputShapeRC = vec2(${a}.0, ${u}.0);\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n ivec2 yRC = coords.yz;\n\n // Fractional source index.\n vec2 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec2 sourceNearestRC = ivec2(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n float newValue = getA(b, sourceNearestRC.x, sourceNearestRC.y, d);\n\n setOutput(newValue);\n }\n `}};var ZC=class{constructor(t,e,n,o,s){this.variableNames=[\"A\"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?\"0.5\":\"0.0\",f;s?f=\"max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))\":f=\"vec3(yRC) * effectiveInputOverOutputRatioRC\",this.userCode=`\n const vec3 effectiveInputOverOutputRatioRC = vec3(\n ${c[0]/p[0]},\n ${c[1]/p[1]},\n ${c[1]/p[1]});\n const vec3 inputShapeRC = vec3(${a}.0, ${u}.0,\n ${u}.0);\n\n float getAValue(int b, int r, int c, int d) {\n return getChannel(getA(b, r, c, d), vec2(c, d));\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n // Calculate values for next column in yRC.z.\n ivec3 yRC = coords.yzz + ivec3(0, 0, 1);\n\n // Fractional source index.\n vec3 sourceFracIndexRC = ${f};\n\n // Compute the coordinators of nearest neighbor point.\n ivec3 sourceNearestRC = ivec3(\n min(inputShapeRC - 1.0, floor(sourceFracIndexRC + ${m})));\n\n // Should we calculate next column and row elements in 2x2 packed cell.\n bool hasNextCol = d < ${l-1};\n bool hasNextRow = coords.z < ${n-1};\n\n vec4 newValue = vec4(\n getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d),\n hasNextCol ? getAValue(b, sourceNearestRC.x, sourceNearestRC.y, d + 1)\n : 0.0,\n hasNextRow ? getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d)\n : 0.0,\n (hasNextRow && hasNextCol) ?\n getAValue(b, sourceNearestRC.x, sourceNearestRC.z, d + 1) : 0.0);\n\n setOutput(newValue);\n }\n `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool(\"WEBGL_PACK_IMAGE_OPERATIONS\")?new ZC(o.shape,u,l,s,i):new YC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var sB={kernelName:Ns,backendName:\"webgl\",kernelFunc:Rot};var JC=class{constructor(t,e,n){this.variableNames=[\"dy\"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int b = coords[0];\n int d = coords[3];\n int r = coords[1];\n int c = coords[2];\n\n float accumulator = 0.0;\n\n const float heightScale = float(${c});\n const float widthScale = float(${p});\n\n const float invHeightScale = float(${m});\n const float invWidthScale = float(${f});\n\n const int winHeight = int(${d});\n const int winWidth = int(${h});\n\n // Compute bounds for where in dy we will look\n float startRLerp = floor(float(r) * invHeightScale);\n int startDyR = int(floor(startRLerp - float(winHeight / 2)));\n\n float startCLerp = floor(float(c) * invWidthScale);\n int startDyC = int(floor(startCLerp - float(winWidth / 2)));\n\n // Loop over dy\n for (int dyROffset = 0; dyROffset < winHeight; dyROffset++) {\n int dyR = dyROffset + startDyR;\n\n // Guard against the window exceeding the bounds of dy\n if (dyR < 0 || dyR >= ${i}) {\n continue;\n }\n\n for (int dyCOffset = 0; dyCOffset < winWidth; dyCOffset++) {\n int dyC = dyCOffset + startDyC;\n\n // Guard against the window exceeding the bounds of dy\n if (dyC < 0 || dyC >= ${a}) {\n continue;\n }\n\n float sourceFracRow =\n float(${u[0]}) *\n (float(dyR) / float(${l[0]}));\n\n float sourceFracCol =\n float(${u[1]}) *\n (float(dyC) / float(${l[1]}));\n\n int sourceNearestRow = int(min(\n float(int(${o}) - 1),\n ${n} ? float(round(sourceFracRow)) :\n float(floor(sourceFracRow))));\n\n int sourceNearestCol = int(min(\n float(int(${s}) - 1),\n ${n} ? float(round(sourceFracCol)) :\n float(floor(sourceFracCol))));\n\n if (r == sourceNearestRow && c == sourceNearestCol) {\n accumulator += getDy(b, dyR, dyC, d);\n }\n }\n }\n // End loop over dy\n\n setOutput(accumulator);\n }\n `}};function Fot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new JC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var iB={kernelName:Op,backendName:\"webgl\",kernelFunc:Fot};var QC=class{constructor(t,e){this.variableNames=[\"x\"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=`\n void main() {\n int coord = getOutputCoords();\n setOutput(getX(${t[0]} - coord - 1));\n }\n `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(\",\"),i=Bt(n);this.userCode=`\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${s}));\n }\n `}};var tI=class{constructor(t,e){this.variableNames=[\"x\"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=er(\"rc\",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=Bt(n);n===1?this.userCode=`\n void main(){\n int rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = getChannel(getX(${t[0]} - rc - 1),\n ${t[0]} - rc - 1);\n if(${s}){\n result.g = getChannel(getX(${t[0]} - (rc + 1) - 1),\n ${t[0]} - (rc + 1) - 1);\n }\n setOutput(result);\n }\n `:this.userCode=`\n void main() {\n ${a} rc = getOutputCoords();\n vec4 result = vec4(0.);\n result.r = ${u(o.slice())};\n if(${s}){\n result.g = ${l(o.slice())};\n }\n if(${i}) {\n result.b = ${c(o.slice())};\n if(${s}) {\n result.a = ${p(o.slice())};\n }\n }\n setOutput(result);\n }\n `;function u(d){return m(d)}function l(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",m(d)}function c(d){return d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function p(d){return d[n-1]=\"(\"+d[n-1]+\" + 1)\",d[n-2]=\"(\"+d[n-2]+\" + 1)\",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(\",\"),x=h.slice(-2).join(\",\");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function Oot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return rr({inputs:{x:o},backend:e});let u=M().getBool(\"WEBGL_PACK_ARRAY_OPERATIONS\")?new tI(o.shape,a):new QC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var aB={kernelName:Es,backendName:\"webgl\",kernelFunc:Oot};var eI=class{constructor(t,e){this.variableNames=[\"Image\"],this.outputShape=[],this.customUniforms=[{name:\"params\",type:\"vec4\"}];let n=t[1],o=t[2];this.outputShape=t;let s=\"\";typeof e==\"number\"?s=`float outputValue = ${e.toFixed(2)};`:s=`\n vec3 fill = vec3(${e.join(\",\")});\n float outputValue = fill[coords[3]];`,this.userCode=`\n void main() {\n ivec4 coords = getOutputCoords();\n int x = coords[2];\n int y = coords[1];\n float coordXFloat = (float(x) - params[0]) * params[3] -\n (float(y) - params[1]) * params[2];\n float coordYFloat = (float(x) - params[0]) * params[2] +\n (float(y) - params[1]) * params[3];\n int coordX = int(round(coordXFloat + params[0]));\n int coordY = int(round(coordYFloat + params[1]));\n ${s}\n if(coordX >= 0 && coordX < ${o} && coordY >= 0 && coordY < ${n}) {\n outputValue = getImage(coords[0], coordY, coordX, coords[3]);\n }\n setOutput(outputValue);\n }\n `}};var lB={kernelName:Xa,backendName:\"webgl\",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new eI(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Pot=`\n // OpenGL ES does not support round function.\n // The algorithm is based on banker's rounding.\n float base = floor(x);\n if ((x - base) < 0.5) {\n return floor(x);\n } else if ((x - base) > 0.5) {\n return ceil(x);\n } else {\n if (mod(base, 2.0) == 0.0) {\n return base;\n } else {\n return base + 1.0;\n }\n }\n`,Lot=Ct({opSnippet:Pot}),uB={kernelName:_s,backendName:\"webgl\",kernelFunc:Lot};var Mot=\"return inversesqrt(x);\",zot=Ct({opSnippet:Mot,cpuKernelImpl:VL}),cB={kernelName:As,backendName:\"webgl\",kernelFunc:zot};var Rd=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=[\"updates\",\"indices\",\"defaultValue\"],this.outputShape=i;let u=Bt(s.length),l=Bt(i.length),c=\"\";n===1?c=\"i\":n===2&&(c=\"i, j\");let p=`getIndices(${c})`,m=\"\";o===1?m=\"i\":o===2&&(m=\"i, coords[1]\");let f=`getUpdates(${m})`,d=e>1?\"strides[j]\":\"strides\";this.userCode=`\n ${u} strides = ${u}(${s});\n\n void main() {\n ${l} coords = getOutputCoords();\n float sum = 0.0;\n bool found = false;\n for (int i = 0; i < ${t}; i++) {\n int flattenedIndex = 0;\n for (int j = 0; j < ${e}; j++) {\n int index = round(${p});\n flattenedIndex += index * ${d};\n }\n if (flattenedIndex == coords[0]) {\n sum += ${f};\n found = true;\n }\n }\n setOutput(mix(getDefaultValue(), sum, float(found)));\n }\n `}};function Bot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],\"float32\",new Float32Array([0])),g=new Rd(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var pB={kernelName:Ba,backendName:\"webgl\",kernelFunc:Bot};var rI=class{constructor(t,e,n,o){this.variableNames=[\"sortedSequence\",\"values\"],this.customUniforms=[{name:\"numInputs\",type:\"int\"}],this.outputShape=[t,n];let s=\"while (left < right) {\",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=M().getNumber(\"WEBGL_VERSION\")===2?s:i,u=o===\"left\"?\"<\":\"<=\";this.userCode=`\n int findBound(int batch, float value) {\n int left = 0;\n int right = numInputs;\n int mid;\n ${a}\n mid = (left + right) / 2;\n if (getSortedSequence(batch, mid) ${u} value) {\n left = mid + 1;\n } else {\n right = mid;\n }\n }\n return right;\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int valueIndex = coords[1];\n\n float value = getValues(batch, valueIndex);\n\n setOutput(float(findBound(batch, value)));\n }\n `}};function Vot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new rI(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],\"int32\",u)}var mB={kernelName:Lp,backendName:\"webgl\",kernelFunc:Vot};var nI=class{constructor(t,e,n){this.variableNames=[\"c\",\"a\",\"b\"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s=\"resRC\",o=\"resRC\";else{let a=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\"],u=[],l=[];for(let c=0;c= 1.0) {\n setOutput(getA(${s}));\n } else {\n setOutput(getB(${s}));\n }\n }\n `}};function Got(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=new nI(n.shape.length,o.shape,o.shape.length);return e.runWebGLProgram(i,[n,o,s],ar(o.dtype,s.dtype))}var fB={kernelName:yi,backendName:\"webgl\",kernelFunc:Got};var Wot=`\n // Stable and Attracting Fixed Point (0, 1) for Normalized Weights.\n // see: https://arxiv.org/abs/1706.02515\n float scaleAlpha = ${S.SELU_SCALEALPHA};\n float scale = ${S.SELU_SCALE};\n return (x >= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0);\n`,Uot=Ct({opSnippet:Wot}),dB={kernelName:Va,backendName:\"webgl\",kernelFunc:Uot};var Hot=Lo+`\n return 1.0 / (1.0 + exp(-1.0 * x));\n`,qot=`\n vec4 result = 1.0 / (1.0 + exp(-1.0 * x));\n bvec4 isNaN = isnan(x);\n\n result.r = isNaN.r ? x.r : result.r;\n result.g = isNaN.g ? x.g : result.g;\n result.b = isNaN.b ? x.b : result.b;\n result.a = isNaN.a ? x.a : result.a;\n\n return result;\n`,Kot=Ct({opSnippet:Hot,packedOpSnippet:qot,cpuKernelImpl:WL}),hB={kernelName:Ds,backendName:\"webgl\",kernelFunc:Kot};var jot=`\n if (isnan(x)) { return 0.0; }\n return sign(x);\n`,Xot=Ct({opSnippet:jot}),gB={kernelName:Wa,backendName:\"webgl\",kernelFunc:Xot};var Yot=Lo+`\n return sin(x);\n`,Zot=Ct({opSnippet:Yot}),xB={kernelName:$s,backendName:\"webgl\",kernelFunc:Zot};var Jot=`\n float e2x = exp(x);\n return (e2x - 1.0 / e2x) / 2.0;\n`,Qot=Ct({opSnippet:Jot}),yB={kernelName:Ga,backendName:\"webgl\",kernelFunc:Qot};var tst=`\n float epsilon = 1.1920928955078125e-7;\n float threshold = log(epsilon) + 2.0;\n\n bool too_large = x > -threshold;\n bool too_small = x < threshold;\n\n float result;\n float exp_x = exp(x);\n\n if (too_large){\n result = x;\n }\n else if (too_small){\n result = exp_x;\n }\n else{\n result = log(exp_x + 1.0);\n }\n return result;\n`,est=Ct({opSnippet:tst}),bB={kernelName:Ua,backendName:\"webgl\",kernelFunc:est};var rst=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>\"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet\");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},wB={kernelName:wi,backendName:\"webgl\",kernelFunc:rst};function nst(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw:\n ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw:\n ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw:\n ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw:\n ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=HL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],\"bool\",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var CB={kernelName:zl,backendName:\"webgl\",kernelFunc:nst};function ost(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=qL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var IB={kernelName:Ha,backendName:\"webgl\",kernelFunc:ost};function sst(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Bw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var vB={kernelName:Bl,backendName:\"webgl\",kernelFunc:sst};function ist(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error(\"Data should be at least 1 dimensional but received scalar\");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape\n ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape\n ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Bw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var SB={kernelName:Vl,backendName:\"webgl\",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype===\"string\"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=GL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new Rd(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var NB={kernelName:Mp,backendName:\"webgl\",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=si({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var TB={kernelName:Ci,backendName:\"webgl\",kernelFunc:lst};var kB=\"return sqrt(x);\",ust=Ct({opSnippet:kB,packedOpSnippet:kB,cpuKernelImpl:KL}),EB={kernelName:Rs,backendName:\"webgl\",kernelFunc:ust};var cst=\"return x * x;\",pst=Ct({opSnippet:cst}),_B={kernelName:Gl,backendName:\"webgl\",kernelFunc:pst};var AB=\"return (a - b) * (a - b);\",mst=le({opSnippet:AB,packedOpSnippet:AB}),$B={kernelName:Ps,backendName:\"webgl\",kernelFunc:mst};function fst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=hr+`\n return x > 0.0 ? 1.0 : float(${t.alpha});\n `,s=new Mr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var DB={kernelName:fo,backendName:\"webgl\",kernelFunc:fst};var oI=class{constructor(t,e,n){this.variableNames=[\"x\"],this.outputShape=n;let o=n.length,s=Bt(n.length),i=Bt(n.length),a=\"\";if(o===1)a=\"coords * strides + begin\";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(\",\")}this.userCode=`\n ${s} begin = ${s}(${t});\n ${s} strides = ${s}(${e});\n\n void main() {\n ${i} coords = getOutputCoords();\n setOutput(getX(${a}));\n }\n `}};function dst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Me.computeOutShape(b,w,C),$=si({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=jL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new oI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let E=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var RB={kernelName:qa,backendName:\"webgl\",kernelFunc:dst};function hst(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=XL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],\"string\",d),e.makeTensorInfo(p.shape,\"int32\",h)]}var FB={kernelName:Wl,backendName:\"webgl\",kernelFunc:hst};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=YL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],\"int32\",l),e.makeTensorInfo([m],\"string\",c),e.makeTensorInfo([2],\"int32\",new Int32Array(p))]}var OB={kernelName:Ul,backendName:\"webgl\",kernelFunc:gst};function xst(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!==\"string\")throw new Error(\"Input must be of datatype string\");if(o<=0)throw new Error(\"Number of buckets must be at least 1\");let i=e.readSync(s.dataId),a=ZL(i,o);return e.makeTensorInfo(s.shape,\"int32\",a)}var PB={kernelName:Hl,backendName:\"webgl\",kernelFunc:xst};var yst=\"return tan(x);\",bst=Ct({opSnippet:yst}),LB={kernelName:Ms,backendName:\"webgl\",kernelFunc:bst};var wst=`\n float e2x = exp(-2.0 * abs(x));\n return sign(x) * (1.0 - e2x) / (1.0 + e2x);\n`,Cst=Ct({opSnippet:wst}),MB={kernelName:zs,backendName:\"webgl\",kernelFunc:Cst};var sI=class{constructor(t,e){this.variableNames=[\"A\"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=[\"resRC.x\",\"resRC.y\",\"resRC.z\",\"resRC.w\",\"resRC.u\"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype===\"string\"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=QL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new sI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var zB={kernelName:to,backendName:\"webgl\",kernelFunc:$k};var iI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"negativeInf\",type:\"float\"},{name:\"dir\",type:\"int\"},{name:\"inc\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // We compare elements pair-wise within a group of size 2 * inc.\n // The comparing rule for each group alternates between ascending\n // and descending. Within each group, we compare each pair at\n // positions i and i+inc. To decide whether an element at position i\n // is x0 or x1, we mod it by 2 * inc, if the result is smaller than\n // inc, it is in the first half of the group, we denote it as x0,\n // otherwise we denote it as x1.\n // For example, as shown in the Bitonic top K paper referenced above,\n // Figure5(a) shows that element[1] is in the\n // second half of the group when group size is 2, but it is in the\n // first half of the group when group size is 4.\n\n bool isFirstInPair = imod(elemIdx, 2 * inc) < inc;\n int i = isFirstInPair ? elemIdx : elemIdx - inc;\n\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + inc : int(getIndices(batch, i + inc));\n float x0 = i0 < n ? getX(batch, i0) : negativeInf;\n float x1 = i1 < n ? getX(batch, i1) : negativeInf;\n\n // Denotes which direction indices are in (ascending or descending).\n bool reverse = imod(elemIdx, 2 * dir) >= dir;\n bool isGreater = x0 > x1 || (x0 == x1 && i1 > i0);\n if (reverse == isGreater) { // Elements in opposite order of direction\n int iTemp = i0;\n i0 = i1;\n i1 = iTemp;\n }\n if (isFirstInPair) {\n setOutput(float(i0));\n } else {\n setOutput(float(i1));\n }\n }\n `}},aI=class{constructor(t){this.variableNames=[\"x\",\"indices\"],this.customUniforms=[{name:\"n\",type:\"int\"},{name:\"firstPass\",type:\"int\"},{name:\"k\",type:\"int\"}],this.outputShape=t,this.userCode=`\n void main() {\n // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ...\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int elemIdx = coords[1];\n\n // The output size is half of the previous size.\n // If the previous sequence is | | | | _ _ _ _ | | | | _ _ _ _ (k=4),\n // we only need to output the indices at positions |, the indices at\n // positions _ can be thrown away, see Figure5(b) After Phase 2\n // (Merge phase) in the Bitonic Top K paper referenced above.\n // For example, the paper shows we only need to output the orange bars.\n // The output sequence should look like this | | | | | | | |.\n // Because the sequence is halved, to map the output index back\n // to the previous sequence to find the corresponding value,\n // we need to double the index. When we double the index,\n // we basically interpolate a position, so 2i looks like\n // | _ | _ | _ | _ | _ | _ | _. We move the | to the first k position\n // of each 2k positions by - elemIdx % k. E.g. for output at\n // index 4,5,6,7, we want to get the corresponding element at\n // original index 8,9,10,11, for output at index 8,9,10,11,\n // we want to get the corresponding element at original index\n // 16,17,18,19, so on and so forth.\n\n int i = elemIdx < k ? elemIdx : (elemIdx * 2 - imod(elemIdx, k));\n int i0 = firstPass == 1 ? i : int(getIndices(batch, i));\n int i1 = firstPass == 1 ? i + k : int(getIndices(batch, i + k));\n\n float x0 = getX(batch, i0);\n float x1 = i1 < n ? getX(batch, i1) : x0;\n\n setOutput(x0 >= x1 ? float(i0) : float(i1));\n }\n `}};function jc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function BB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=tM(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,\"int32\",[])];if(c===1)return[o,Sl({attrs:{shape:l,dtype:\"int32\",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&jc(e,f);let x=BB(s),b=BB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new iI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,\"int32\",j),jc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new aI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,\"int32\",q),jc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=si({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),jc(e,E);let A=Sk({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});jc(e,g);let $=l.slice(0,-1);$.push(s),E=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),jc(e,E);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),jc(e,F),[A,w]}var VB={kernelName:Ka,backendName:\"webgl\",kernelFunc:vst};var lI=class{constructor(t,e,n,o,s,i){this.variableNames=[\"Image\",\"Transforms\"],this.outputShape=i;let a=n===\"nearest\"?1:2,u;switch(o){case\"constant\":u=1;break;case\"reflect\":u=2;break;case\"wrap\":u=3;break;case\"nearest\":u=4;break;default:u=1;break}this.userCode=`\n float mapCoord(float outCoord, float len) {\n float inCoord = outCoord;\n if(${u} == 2) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n if (inCoord < sz2) {\n inCoord = sz2 * float(int(float(-inCoord / sz2))) +\n inCoord;\n }\n inCoord = inCoord < -len ? inCoord + sz2 : -inCoord - 1.0;\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz2 = 2.0 * len;\n inCoord -= sz2 * float(int(float(inCoord / sz2)));\n if (inCoord >= len) {\n inCoord = sz2 - inCoord - 1.0;\n }\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 3) {\n if (inCoord < 0.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord += len * (float(int(float(-inCoord / sz))) + 1.0);\n }\n } else if (inCoord > len - 1.0) {\n if (len <= 1.0) {\n inCoord = 0.0;\n } else {\n float sz = len - 1.0;\n inCoord -= len * float(int(float(inCoord / sz)));\n }\n }\n return clamp(inCoord, 0.0, len - 1.0);\n } else if (${u} == 4) {\n return clamp(outCoord, 0.0, len - 1.0);\n } else {\n return outCoord;\n }\n }\n\n float readWithFillValue(int batch, int coordY, int coordX,\n int channel) {\n float outputValue;\n if (0 <= coordY && coordY < ${t} && 0 <= coordX && coordX < ${e}) {\n outputValue = getImage(batch, coordY, coordX, channel);\n } else {\n outputValue = float(${s});\n }\n return outputValue;\n }\n\n void main() {\n ivec4 coords = getOutputCoords();\n float outputValue;\n int batch = coords[0];\n int x = coords[2];\n int y = coords[1];\n int channel = coords[3];\n float xf = float(x);\n float yf = float(y);\n float a1 = getTransforms(batch, 0);\n float a2 = getTransforms(batch, 1);\n float a3 = getTransforms(batch, 2);\n float b1 = getTransforms(batch, 3);\n float b2 = getTransforms(batch, 4);\n float b3 = getTransforms(batch, 5);\n float c1 = getTransforms(batch, 6);\n float c2 = getTransforms(batch, 7);\n float projection = c1 * xf + c2 * yf + 1.0;\n if (projection == 0.0) {\n outputValue = float(${s});\n } else {\n float inX = (a1 * xf + a2 * yf + a3) / projection;\n float inY = (b1 * xf + b2 * yf + b3) / projection;\n float mapX = mapCoord(inX, float(${e}));\n float mapY = mapCoord(inY, float(${t}));\n\n if (${a} == 1) {\n int coordY = int(round(mapY));\n int coordX = int(round(mapX));\n outputValue = readWithFillValue(batch, coordY, coordX,\n channel);\n } else {\n float yFloor = floor(mapY);\n float xFloor = floor(mapX);\n float yCeil = yFloor + 1.0;\n float xCeil = xFloor + 1.0;\n float valueYFloor = (xCeil - mapX) *\n readWithFillValue(batch, int(yFloor), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yFloor), int(xCeil), channel);\n float valueYCeil = (xCeil - mapX) *\n readWithFillValue(batch, int(yCeil), int(xFloor), channel) +\n (mapX - xFloor) *\n readWithFillValue(batch, int(yCeil), int(xCeil), channel);\n outputValue = (yCeil - mapY) * valueYFloor +\n (mapY - yFloor) * valueYCeil;\n }\n }\n setOutput(outputValue);\n }\n `}};function Sst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new lI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],\"float32\")}var GB={kernelName:ja,backendName:\"webgl\",kernelFunc:Sst};function Nst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;ri(s,\"unique\"),console.warn(\"WARNING: \",\"UI might be locked temporarily as data is being downloaded\");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=eM(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],\"int32\",l)]}var WB={kernelName:zp,backendName:\"webgl\",kernelFunc:Nst};function Tst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var UB={kernelName:Ii,backendName:\"webgl\",kernelFunc:Tst};var uI=class{constructor(t,e){this.variableNames=[\"x\",\"segmentIds\"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u=\"0.0\",l=\"sumValue\",c=Math.floor(n/4)*4,p=n%4,m=`\n sumValue += dot(values, segFilter);\n `,f=\"\";s%n>0&&(f=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return initializationValue;\n }\n `);let d=\"\";s%n>0&&(d=`\n if (inIdx < 0 || inIdx >= ${s}) {\n return -1.0;\n }\n `),this.userCode=`\n const float initializationValue = ${u};\n\n float getValue(int batch, int inIdx) {\n ${f}\n return getX(batch, inIdx);\n }\n\n float getSegmentIdAtIndex(int inIdx) {\n ${d}\n return getSegmentIds(inIdx);\n }\n\n void main() {\n ivec2 coords = getOutputCoords();\n int batch = coords[0];\n int outIdx = coords[1];\n int inOffset = int(floor(float(outIdx) / float(\n ${i})) * float(${n}));\n int currentSeg = int(mod(float(outIdx), float(${i})));\n\n float sumValue = 0.0;\n\n for (int i = 0; i < ${c}; i += 4) {\n int inIdx = inOffset + i;\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n getValue(batch, inIdx + 3)\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 3)) == currentSeg ? 1 : 0\n );\n\n ${m}\n }\n\n int inIdx = inOffset + ${c};\n if (${p===1}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n initializationValue,\n initializationValue,\n initializationValue\n );\n\n int inIdxSeg = int(getSegmentIdAtIndex(inIdx));\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===2}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n initializationValue,\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n 0,\n 0\n );\n\n ${m}\n } else if (${p===3}) {\n vec4 values = vec4(\n getValue(batch, inIdx),\n getValue(batch, inIdx + 1),\n getValue(batch, inIdx + 2),\n initializationValue\n );\n\n vec4 segFilter = vec4(\n int(getSegmentIdAtIndex(inIdx)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 1)) == currentSeg ? 1 : 0,\n int(getSegmentIdAtIndex(inIdx + 2)) == currentSeg ? 1 : 0,\n 0\n );\n\n ${m}\n }\n setOutput(${l});\n }\n `}};function kst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=S.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=S.getInnerMostAxes(1,a)[0]);let m=S.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=it({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Hu(o.dtype),g=(C,N,E,A,$)=>{let F=C.shape[0],P=C.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new uI(G,N),q=e.compileAndRun(W,[C,E],A);if(u.push(q),q.shape[1]===$)return q;let H=Ak({backend:e,attrs:{start:0,stop:$,step:1,dtype:\"float32\"}}),j=$k({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,\"unsortedSegmentSum\",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=S.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var HB={kernelName:ql,backendName:\"webgl\",kernelFunc:kst};var Est=[AM,DM,RM,FM,PM,LM,MM,zM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,JM,QM,tz,rz,nz,oz,lz,cz,pz,wM,fz,hz,gz,xz,yz,bz,wz,Cz,Iz,vz,Sz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Uz,Hz,qz,Kz,Xz,Yz,Zz,Jz,Qz,t3,e3,r3,n3,bM,o3,dz,s3,i3,a3,CM,l3,u3,c3,p3,m3,f3,d3,h3,g3,x3,b3,w3,C3,I3,v3,S3,T3,E3,_3,A3,$3,D3,L3,SM,M3,z3,B3,V3,sz,G3,H3,q3,K3,j3,IM,X3,Y3,Z3,J3,Q3,iz,R3,tB,eB,rB,TM,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,ez,P3,bB,wB,CB,IB,vB,SB,NB,TB,EB,_B,$B,DB,RB,FB,OB,PB,O3,EM,LB,MB,zB,VB,GB,_M,WB,UB,HB,W3];for(let r of Est)zu(r);var qt;(function(r){r[r.float32=0]=\"float32\",r[r.int32=1]=\"int32\",r[r.bool=2]=\"bool\",r[r.string=3]=\"string\",r[r.complex64=4]=\"complex64\"})(qt||(qt={}));var Fu;(function(r){r[r.linear=0]=\"linear\",r[r.relu=1]=\"relu\",r[r.relu6=2]=\"relu6\",r[r.prelu=3]=\"prelu\",r[r.leakyrelu=4]=\"leakyrelu\",r[r.sigmoid=5]=\"sigmoid\",r[r.elu=6]=\"elu\"})(Fu||(Fu={}));var qB;function _st(r){qB=r.wasm.cwrap(Si,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Ast(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"_FusedMatMul for non non-float32 tensors not yet supported.\");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Fu[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return qB(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var KB={kernelName:Si,backendName:\"wasm\",setupFunc:_st,kernelFunc:Ast};function te(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,[\"number\",\"number\",\"number\"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:\"wasm\",setupFunc:n,kernelFunc:o}}var jB=te(ui);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:\"wasm\",setupFunc:o,kernelFunc:s}}var $st=!0,XB=ue(Qn,$st);var YB;function Dst(r){YB=r.wasm.cwrap(Wo,null,[\"array\",\"number\",\"number\",\"number\"])}function Rst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return YB(s,o.length,qt[n.dtype],i),n}var ZB={kernelName:Wo,backendName:\"wasm\",setupFunc:Dst,kernelFunc:Rst};function Xc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype===\"string\")return nr(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var JB={kernelName:mo,backendName:\"wasm\",kernelFunc:Xc};var QB;function Fst(r){QB=r.wasm.cwrap(eo,null,[\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function uo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Pst(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var tV={kernelName:eo,backendName:\"wasm\",kernelFunc:uo,setupFunc:Fst};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var uV={kernelName:xi,backendName:\"wasm\",kernelFunc:ur};var cV;function Hst(r){cV=r.wasm.cwrap(qo,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\"])}function qst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!==\"float32\"||s.dtype!==\"float32\")throw new Error(\"BatchMatMul for non non-float32 tensors not yet supported.\");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=ur({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ur({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return cV($,H,E.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var pV={kernelName:qo,backendName:\"wasm\",setupFunc:Hst,kernelFunc:qst};function Mo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Me.parseSliceParams(t,e,n),a=Me.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Me.computeFlatOffset(s,c);return t.dtype===\"string\"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype===\"string\"){let d=Rc(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Kst(u,c[0],m,s,i);else if(f===3)jst(u,c[0],c[1],m,s,i);else if(f===4)Xst(u,c[0],c[1],c[2],m,s,i);else{let d=Rc(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Kst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=ur({inputs:{x:o},backend:e,attrs:{shape:u}}),d=uo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ur({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var fV={kernelName:ci,backendName:\"wasm\",kernelFunc:Yst};function ii(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var dV={kernelName:co,backendName:\"wasm\",kernelFunc:ii};var hV=te(Ko);var gV;function Zst(r){gV=r.wasm.cwrap(po,null,[\"number\",\"number\",\"number\",\"number\"])}function Jst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return gV(a,s,i,l),u}var xV={kernelName:po,backendName:\"wasm\",setupFunc:Zst,kernelFunc:Jst};function Dk(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return Xc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype===\"string\"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ur({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ac(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=uo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumprod\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;kV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=uo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var EV={kernelName:ya,backendName:\"wasm\",setupFunc:sit,kernelFunc:iit};var _V;function ait(r){_V=r.wasm.cwrap(Jo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function lit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype===\"float32\"||o.dtype===\"int32\",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=uo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims(\"cumsum\",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;_V(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=uo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var AV={kernelName:Jo,backendName:\"wasm\",setupFunc:ait,kernelFunc:lit};var $V;function uit(r){$V=r.wasm.cwrap(wa,null,[\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i===\"NHWC\"?o.shape[1]:o.shape[2],l=i===\"NHWC\"?o.shape[2]:o.shape[3],c=i===\"NHWC\"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i===\"NHWC\"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,\"float32\"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return $V(x,s,i===\"NHWC\"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var DV={kernelName:wa,backendName:\"wasm\",setupFunc:uit,kernelFunc:cit};var RV;function pit(r){RV=r.wasm.cwrap(Qo,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type===\"SAME\"?1:0;if(f.dataFormat!==\"channelsLast\")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,\"float32\"),G=n.dataIdMap.get(V.dataId).id;return RV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,E,A,$,F,G),V}var FV={kernelName:Qo,backendName:\"wasm\",setupFunc:pit,kernelFunc:mit};var OV=te(es);var fit=!1,PV=ue(Ia,fit,\"bool\");var LV=te(rs,\"float32\");function cI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ur({inputs:{x:o},backend:n,attrs:{shape:a}})}var MV={kernelName:mi,backendName:\"wasm\",kernelFunc:cI};function Fk(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var zV={kernelName:Ol,backendName:\"wasm\",kernelFunc:Fk};var BV;function dit(r){BV=r.wasm.cwrap(Sa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function hit(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return BV(s,a,u,l,c,i),o}var VV={kernelName:Sa,backendName:\"wasm\",kernelFunc:hit,setupFunc:dit};var GV=te(ns);var git=!1,WV=ue(os,git);var UV;function xit(r){UV=r.wasm.cwrap(ss,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return UV(c,p,m,f,d,o,g),h}var HV={kernelName:ss,backendName:\"wasm\",setupFunc:xit,kernelFunc:yit};var qV;function bit(r){qV=r.wasm.cwrap(Ni,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 wit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Fu[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return qV(x,Y,Z,et,b,N,E,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var KV={kernelName:Ni,backendName:\"wasm\",setupFunc:bit,kernelFunc:wit};var jV;function Cit(r){jV=r.wasm.cwrap(Ti,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 Iit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Fu[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type===\"SAME\"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!==\"NHWC\")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,\"float32\"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return jV(x,Y,Z,et,b,N,E,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var XV={kernelName:Ti,backendName:\"wasm\",setupFunc:Cit,kernelFunc:Iit};var YV;function vit(r){YV=r.wasm.cwrap(Na,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Sit(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=sx.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return YV(f,qt[n.dtype],h,i,p,a,g,x),l}var ZV={kernelName:Na,backendName:\"wasm\",setupFunc:vit,kernelFunc:Sit};var JV;function Nit(r){JV=r.wasm.cwrap(\"Gather\",null,[\"number\",\"number\",\"array\",\"number\",\"number\",\"number\",\"array\",\"number\"])}function Tit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ur({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ur({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return JV(w,qt[o.dtype],A,x,N,p.batchSize,$,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var QV={kernelName:fi,backendName:\"wasm\",setupFunc:Nit,kernelFunc:Tit};var kit=!1,tG=ue(Ta,kit,\"bool\");var Eit=!1,eG=ue(is,Eit,\"bool\");var rG=te(as,\"bool\");var nG;function _it(r){nG=r.wasm.cwrap(ls,null,[\"number\",\"number\",\"number\",\"number\"])}function Ait(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,\"float32\");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;nG(o,qt[t.dtype],e,i)}return s}var oG={kernelName:ls,backendName:\"wasm\",setupFunc:_it,kernelFunc:Ait};var $it=!1,sG=ue(_a,$it,\"bool\");var Dit=!1,iG=ue(Aa,Dit,\"bool\");var aG=te(us);var Rit=!1,lG=ue(Da,Rit,\"bool\");var uG=te(Ra);var Fit=!1,cG=ue(Fa,Fit,\"bool\");var Oit=!1,pG=ue(h1,Oit,\"bool\");var mG;function Pit(r){mG=r.wasm.cwrap(cs,null,[\"number\",\"number\",\"number\",\"number\"])}function Lit(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"max\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;mG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var fG={kernelName:cs,backendName:\"wasm\",setupFunc:Pit,kernelFunc:Lit};var Mit=!1,dG=ue(ps,Mit);var hG;function zit(r){hG=r.wasm.cwrap(ms,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function Bit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype===\"float32\",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!==\"channelsLast\")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,\"float32\"),$=n.dataIdMap.get(A.dataId).id;return hG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,E,$),A}var gG={kernelName:ms,backendName:\"wasm\",setupFunc:zit,kernelFunc:Bit};var xG;function Vit(r){xG=r.wasm.cwrap(fs,null,[\"number, number, number\"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"mean\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!==\"float32\"&&(b=ii({backend:t,inputs:{x:l},attrs:{dtype:\"float32\"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,\"float32\");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;xG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!==\"float32\"&&t.disposeData(b.dataId),w}var yG={kernelName:fs,backendName:\"wasm\",setupFunc:Vit,kernelFunc:Git};var bG;function Wit(r){bG=r.wasm.cwrap(ds,null,[\"number\",\"number\",\"number\",\"number\"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims(\"min\",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;bG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var wG={kernelName:ds,backendName:\"wasm\",setupFunc:Wit,kernelFunc:Uit};var Hit=!1,CG=ue(hs,Hit);var Ok;(function(r){r[r.reflect=0]=\"reflect\",r[r.symmetric=1]=\"symmetric\"})(Ok||(Ok={}));var IG;function qit(r){IG=r.wasm.cwrap(gs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function Kit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return IG(i,l,t.shape.length,qt[t.dtype],m,f,Ok[o],u),a}var vG={kernelName:gs,backendName:\"wasm\",kernelFunc:Kit,setupFunc:qit};var jit=!0,SG=ue(xs,jit);var NG=te(di);function Fd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var TG;function Xit(r){TG=r.wasm.cwrap(La,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Yit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=TG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Fd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],\"int32\",m)}var kG={kernelName:La,backendName:\"wasm\",setupFunc:Xit,kernelFunc:Yit};var EG;function Zit(r){EG=r.wasm.cwrap(Ma,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"bool\"])}function Jit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=EG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Fd(t,m);t.wasm._free(h);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([],\"int32\",g);return[x,b]}var _G={kernelName:Ma,backendName:\"wasm\",setupFunc:Zit,kernelFunc:Jit};var AG;function Qit(r){AG=r.wasm.cwrap(za,\"number\",[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function tat(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=AG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Fd(t,m);t.wasm._free(g);let x=t.makeOutput([d],\"int32\",f),b=t.makeOutput([d],\"float32\",h);return[x,b]}var $G={kernelName:za,backendName:\"wasm\",setupFunc:Qit,kernelFunc:tat};var eat=!1,DG=ue(Pa,eat,\"bool\");var RG;function rat(r){RG=r.wasm.cwrap(ys,null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function nat(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return RG(m,i,a,u,c),l}var FG={kernelName:ys,backendName:\"wasm\",setupFunc:rat,kernelFunc:nat};function oat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var OG={kernelName:hi,backendName:\"wasm\",kernelFunc:oat};function sat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return cI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,\"All tensors passed to stack must have matching shapes\"),y.assert(i===c.dtype,()=>\"All tensors passed to stack must have matching dtypes\")});let a=[],u=t.map(c=>{let p=cI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Dk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var PG={kernelName:gi,backendName:\"wasm\",kernelFunc:sat};var LG;function iat(r){LG=r.wasm.cwrap(bs,null,[\"number\",\"array\",\"number\",\"number\",\"array\",\"array\",\"number\",\"number\"])}function aat(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return Fk({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return LG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var pI={kernelName:bs,backendName:\"wasm\",kernelFunc:aat,setupFunc:iat};var lat=!1,MG=ue(ws,lat);var zG;function uat(r){zG=r.wasm.cwrap(Cs,null,[\"number\",\"number\",\"number\"])}function cat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!==\"float32\"&&(l=ii({backend:e,inputs:{x:n},attrs:{dtype:\"float32\"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,\"float32\"),p=e.dataIdMap.get(c.dataId).id;return zG(a,i,p),u.dtype!==\"float32\"&&e.disposeData(l.dataId),c}var BG={kernelName:Cs,backendName:\"wasm\",setupFunc:uat,kernelFunc:cat};var VG;function pat(r){VG=r.wasm.cwrap(Is,null,[\"number\",\"number\",\"number\",\"number\"])}function mat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"prod\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;VG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var GG={kernelName:Is,backendName:\"wasm\",setupFunc:pat,kernelFunc:mat};var fat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Dc(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},WG={kernelName:Ml,backendName:\"wasm\",kernelFunc:fat};var dat=!0,UG=ue(ts,dat);var HG=te(vs);var qG=te(Ss);var KG=te(ks);var jG;function hat(r){jG=r.wasm.cwrap(Ts,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!==\"float32\"&&(g=ii({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return jG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var XG={kernelName:Ts,backendName:\"wasm\",setupFunc:hat,kernelFunc:gat};var YG;function xat(r){YG=r.wasm.cwrap(Ns,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function yat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,\"float32\");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!==\"float32\"&&(x=ii({backend:t,inputs:{x:o},attrs:{dtype:\"float32\"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return YG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var ZG={kernelName:Ns,backendName:\"wasm\",setupFunc:xat,kernelFunc:yat};var JG;function bat(r){JG=r.wasm.cwrap(Es,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return Xc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);JG(u,c,i.length,p,o.shape.length,l);let m=ur({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var QG={kernelName:Es,backendName:\"wasm\",kernelFunc:wat,setupFunc:bat};var tW;function Cat(r){tW=r.wasm.cwrap(Xa,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Iat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i==\"number\"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return tW(l,p,m,f,d,s,h,g,C,w.length,c),u}var eW={kernelName:Xa,backendName:\"wasm\",kernelFunc:Iat,setupFunc:Cat};var rW=te(_s);var nW=te(As);var oW;function vat(r){oW=r.wasm.cwrap(Ba,null,[\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"number\"])}function Sat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=uh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return oW(d,g,qt[s.dtype],u,l,c,x,m,b),a}var sW={kernelName:Ba,backendName:\"wasm\",setupFunc:vat,kernelFunc:Sat};var iW;function Nat(r){iW=r.wasm.cwrap(\"SelectV2\",null,[\"number\",\"number\",\"number\",\"number\",\"number\"])}function Tat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return iW(i,a,u,f,c),l}var aW={kernelName:yi,backendName:\"wasm\",kernelFunc:Tat,setupFunc:Nat};var lW;function kat(r){lW=r.wasm.cwrap(Ds,null,[\"number\",\"number\"])}function Eat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||lW(n,s),o}var uW={kernelName:\"Sigmoid\",backendName:\"wasm\",setupFunc:kat,kernelFunc:Eat};var cW=te($s);var pW;function _at(r){pW=r.wasm.cwrap(Os,null,[\"number\",\"number\",\"number\",\"number\"])}function Aat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||pW(o,i,a,u),s}var mW={kernelName:Os,backendName:\"wasm\",setupFunc:_at,kernelFunc:Aat};function $at(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],\"int32\"),b=e.dataIdMap.get(x.dataId).id;yW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=\"\"}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Pat(r){return fI(r,!0)}var bW={kernelName:Bl,backendName:\"wasm\",setupFunc:mI,kernelFunc:Pat};function Lat(r){return fI(r,!1)}var wW={kernelName:Vl,backendName:\"wasm\",setupFunc:mI,kernelFunc:Lat};function Mat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var CW={kernelName:Ci,backendName:\"wasm\",kernelFunc:Mat};var IW=te(Rs);var vW=te(Gl);var zat=!0,SW=ue(Ps,zat);var NW;function Bat(r){NW=r.wasm.cwrap(fo,null,[\"number\",\"number\",\"number\",\"number\"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return NW(i,o,qt[s.dtype],u),a}var TW={kernelName:fo,backendName:\"wasm\",setupFunc:Bat,kernelFunc:Vat};var kW;function Gat(r){kW=r.wasm.cwrap(qa,null,[\"number\",\"array\",\"number\",\"array\",\"array\",\"array\",\"array\",\"array\",\"number\",\"number\"])}function Wat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ur({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Me.computeOutShape(b,w,C),A=Mo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=ur({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,\"float32\"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;kW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ur({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var EW={kernelName:qa,backendName:\"wasm\",setupFunc:Gat,kernelFunc:Wat};function Uat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Fc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],\"string\"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,\"int32\");return t.typedArrayFromHeap(b).set(h),[g,b]}var _W={kernelName:Wl,backendName:\"wasm\",kernelFunc:Uat};function Hat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Oc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],\"int32\");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],\"string\"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],\"int32\");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var AW={kernelName:Ul,backendName:\"wasm\",kernelFunc:Hat};function qat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Pc(i,s),u=t.makeOutput(o.shape,\"int32\");return t.typedArrayFromHeap(u).set(a),u}var $W={kernelName:Hl,backendName:\"wasm\",kernelFunc:qat};var Kat=!0,DW=ue(Ls,Kat);var RW;function jat(r){RW=r.wasm.cwrap(Fs,null,[\"number\",\"number\",\"number\",\"number\"])}function Xat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims(\"sum\",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;RW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var FW={kernelName:Fs,backendName:\"wasm\",setupFunc:jat,kernelFunc:Xat};var OW=te(Ms);var PW=te(zs);var LW;function Yat(r){LW=r.wasm.cwrap(to,null,[\"number\",\"array\",\"number\",\"array\",\"number\",\"number\"])}function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,\"int32\"),m=t.dataIdMap.get(p.dataId).id;return zW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},BW={kernelName:Ka,backendName:\"wasm\",setupFunc:Jat,kernelFunc:Qat};var VW;function tlt(r){VW=r.wasm.cwrap(ja,null,[\"number\",\"number\",\"bool\",\"number\",\"number\",\"number\",\"number\",\"number\",\"number\",\"array\",\"number\",\"array\",\"number\",\"number\",\"number\",\"number\",\"number\"])}function elt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i===\"nearest\"?1:2,P;switch(a){case\"constant\":P=1;break;case\"reflect\":P=2;break;case\"wrap\":P=3;break;case\"nearest\":P=4;break;default:P=1;break}return VW(E,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var GW={kernelName:ja,backendName:\"wasm\",setupFunc:tlt,kernelFunc:elt};function rlt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var WW={kernelName:Ii,backendName:\"wasm\",kernelFunc:rlt};function nlt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var UW={kernelName:vi,backendName:\"wasm\",kernelFunc:nlt};var olt=[KB,jB,XB,ZB,rV,oV,iV,lV,pV,fV,dV,hV,xV,yV,wV,IV,vV,SV,TV,EV,AV,DV,FV,OV,PV,LV,MV,zV,VV,GV,WV,HV,KV,XV,ZV,QV,tG,eG,JB,rG,oG,sG,iG,aG,lG,uG,cG,pG,fG,dG,gG,yG,wG,CG,vG,SG,NG,kG,_G,$G,DG,FG,OG,PG,pI,MG,BG,GG,WG,UG,HG,qG,KG,uV,XG,ZG,QG,eW,rW,nW,sW,aW,uW,cW,mV,mW,fW,hW,xW,bW,wW,CW,IW,vW,SW,TW,EW,_W,AW,$W,DW,FW,OW,PW,MW,BW,GW,tV,WW,UW];for(let r of olt)zu(r);var Pk=M();Pk.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(r){return!1}});Pk.registerFlag(\"WASM_HAS_MULTITHREAD_SUPPORT\",async()=>{if(Pk.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(r){return!1}});var Gk=_l(jW()),tU=_l(YW()),Wk=_l(ZW());var JW=Gk.default||Gk,slt=Wk.default||Wk,pg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(rU),Vk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new aa(this,Mn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o===\"string\"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s===\"string\")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return alt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),\"PThread\"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case\"float32\":return new Float32Array(o,s,i);case\"int32\":return new Int32Array(o,s,i);case\"bool\":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function ilt(r){return(t,e)=>(y.fetch(r,{credentials:\"same-origin\"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function QW(r,t,e){if(gI!=null)return gI;let n=\"tfjs-backend-wasm.wasm\";return r&&t?n=\"tfjs-backend-wasm-threaded-simd.wasm\":r&&(n=\"tfjs-backend-wasm-simd.wasm\"),ug!=null&&ug[n]!=null?ug[n]:e+n}async function eU(){let[r,t]=await Promise.all([M().getAsync(\"WASM_HAS_SIMD_SUPPORT\"),M().getAsync(\"WASM_HAS_MULTITHREAD_SUPPORT\")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(\".worker.js\")){let l=tU.wasmWorkerContents.replace(/\\n/g,\"\\\\n\"),c=new Blob([l],{type:\"application/javascript\"});return URL.createObjectURL(c)}return a.endsWith(\".wasm\")?QW(r,t,lg!=null?lg:u):u+a},Uk&&(o.instantiateWasm=ilt(QW(r,t,lg!=null?lg:\"\")));let s=!1;o.onAbort=()=>{if(s||cg)return;cg=!0,n({message:\"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers\"})};let i;t&&r&&gI==null?(o.mainScriptUrlOrBlob=new Blob([\"var WasmBackendModuleThreadedSimd = \"+JW.toString()],{type:\"text/javascript\"}),i=JW(o)):i=slt(o),i.then(a=>{s=!0,cg=!1;let u=null;a.tfjs={init:a.cwrap(\"init\",null,[]),initWithThreadsCount:a.cwrap(\"init_with_threads_count\",null,[\"number\"]),getThreadsCount:a.cwrap(\"get_threads_count\",\"number\",[]),registerTensor:a.cwrap(\"register_tensor\",null,[\"number\",\"number\",\"number\"]),disposeData:a.cwrap(\"dispose_data\",u,[\"number\"]),dispose:a.cwrap(\"dispose\",u,[])},e({wasm:a})}).catch(n)})}function alt(r,t){switch(t){case\"float32\":return new Float32Array(r);case\"int32\":return new Int32Array(r);case\"bool\":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var llt=[\"tfjs-backend-wasm.wasm\",\"tfjs-backend-wasm-simd.wasm\",\"tfjs-backend-wasm-threaded-simd.wasm\"],gI=null,lg=null,ug={},cg=!1,Uk=!1;function ult(r,t=!1){if(qS(\"setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release.\"),cg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`\");gI=r,Uk=t}function clt(r,t=!1){if(cg)throw new Error(\"The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`\");if(typeof r==\"string\")lg=r;else{ug=r;let e=llt.filter(n=>ug[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(\",\")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Uk=t}var rU=-1,Vk=-1;function plt(r){rU=r}function mlt(){if(Vk===-1)throw new Error(\"WASM backend not initialized.\");return Vk}var flt=\"4.1.0\";var dlt=2;Yp(\"wasm\",async()=>{let{wasm:r}=await eU();return new pg(r)},dlt);var nU=\"4.1.0\",hlt=\"4.1.0\",glt=\"4.1.0\",xlt=\"4.1.0\",ylt=\"4.1.0\",blt={tfjs:nU,\"tfjs-core\":nU,\"tfjs-converter\":hlt,\"tfjs-backend-cpu\":glt,\"tfjs-backend-webgl\":xlt,\"tfjs-backend-wasm\":ylt};export{ui as Abs,ua as Acos,ca as Acosh,mu as AdadeltaOptimizer,fu as AdagradOptimizer,du as AdamOptimizer,hu as AdamaxOptimizer,Qn as Add,Wo as AddN,pa as All,ma as Any,Uo as ArgMax,Al as ArgMin,fa as Asin,da as Asinh,ha as Atan,xa as Atan2,ga as Atanh,Ho as AvgPool,$l as AvgPool3D,up as AvgPool3DGrad,lp as AvgPoolGrad,pg as BackendWasm,qo as BatchMatMul,ci as BatchToSpaceND,cp as Bincount,pp as BroadcastArgs,d1 as BroadcastTo,Sb as Callback,Ly as CallbackList,co as Cast,Ko as Ceil,po as ClipByValue,mp as Complex,Dl as ComplexAbs,pi as Concat,jo as Conv2D,fp as Conv2DBackpropFilter,Xo as Conv2DBackpropInput,Rl as Conv3D,dp as Conv3DBackpropFilterV2,hp as Conv3DBackpropInputV2,Yo as Cos,Zo as Cosh,ba as CropAndResize,ya as Cumprod,Jo as Cumsum,zy as CustomCallback,aa as DataStorage,gp as DenseBincount,wa as DepthToSpace,Qo as DepthwiseConv2dNative,xp as DepthwiseConv2dNativeBackpropFilter,yp as DepthwiseConv2dNativeBackpropInput,bp as Diag,Fl as Dilation2D,Yd as Dilation2DBackpropFilter,Xd as Dilation2DBackpropInput,uS as ENV,Nb as EarlyStopping,wp as Einsum,es as Elu,Cp as EluGrad,Kd as Environment,Ia as Equal,Ca as Erf,rs as Exp,mi as ExpandDims,va as Expm1,Ip as FFT,Ol as Fill,Sa as FlipLeftRight,ns as Floor,os as FloorDiv,Zd as FromPixels,ss as FusedBatchNorm,Ni as FusedConv2D,Ti as FusedDepthwiseConv2D,Gc as GPGPUContext,Na as GatherNd,fi as GatherV2,Lh as GraphModel,Ta as Greater,is as GreaterEqual,My as History,vp as IFFT,mo as Identity,Sp as Imag,ye as InputSpec,ka as IsFinite,Ea as IsInf,as as IsNan,Bo as KernelBackend,Pl as LRN,Tp as LRNGrad,Ih as LayerVariable,Gn as LayersModel,ls as LeakyRelu,_a as Less,Aa as LessEqual,Np as LinSpace,us as Log,$a as Log1p,g1 as LogSoftmax,Da as LogicalAnd,Ra as LogicalNot,Fa as LogicalOr,h1 as LogicalXor,Nlt as LowerBound,$u as MathBackendWebGL,cs as Max,ms as MaxPool,Ll as MaxPool3D,Ep as MaxPool3DGrad,kp as MaxPoolGrad,_p as MaxPoolWithArgmax,ps as Maximum,fs as Mean,ds as Min,hs as Minimum,gs as MirrorPad,Oa as Mod,gu as MomentumOptimizer,Ap as Multinomial,xs as Multiply,di as Neg,La as NonMaxSuppressionV3,Ma as NonMaxSuppressionV4,za as NonMaxSuppressionV5,Pa as NotEqual,AS as OP_SCOPE_SUFFIX,ys as OneHot,hi as OnesLike,Hr as Optimizer,Hs as OptimizerConstructors,gi as Pack,bs as PadV2,Tlt as Pool,ws as Pow,Cs as Prelu,Is as Prod,xu as RMSPropOptimizer,En as RNN,$p as RaggedGather,Dp as RaggedRange,Rp as RaggedTensorToTensor,Ml as Range,wS as Rank,Fp as Real,ts as RealDiv,vs as Reciprocal,Ze as Reduction,Ss as Relu,ks as Relu6,xi as Reshape,Ts as ResizeBilinear,Pp as ResizeBilinearGrad,Ns as ResizeNearestNeighbor,Op as ResizeNearestNeighborGrad,Es as Reverse,Xa as RotateWithOffset,_s as Round,As as Rsqrt,Ui as SGDOptimizer,Ba as ScatterNd,Lp as SearchSorted,yi as Select,Va as Selu,Yi as Sequential,Ds as Sigmoid,Wa as Sign,$s as Sin,Ga as Sinh,bi as Slice,Os as Softmax,Ua as Softplus,wi as SpaceToBatchND,zl as SparseFillEmptyRows,Ha as SparseReshape,Bl as SparseSegmentMean,Vl as SparseSegmentSum,Mp as SparseToDense,Ci as SplitV,Rs as Sqrt,Gl as Square,Ps as SquaredDifference,fo as Step,qa as StridedSlice,Wl as StringNGrams,Ul as StringSplit,Hl as StringToHashBucketFast,Ls as Sub,Fs as Sum,tn as SymbolicTensor,Ms as Tan,zs as Tanh,Ft as Tensor,pe as TensorBuffer,to as Tile,Ka as TopK,ja as Transform,eo as Transpose,zp as Unique,Ii as Unpack,ql as UnsortedSegmentSum,klt as UpperBound,Ya as Variable,vi as ZerosLike,Si as _FusedMatMul,Ee as abs,lx as acos,ux as acosh,X as add,BE as addN,Jp as all,ju as any,Ri as argMax,cx as argMin,px as asin,mx as asinh,fx as atan,dx as atan2,hx as atanh,Ql as avgPool,xx as avgPool3d,bE as backend,S as backend_util,WE as basicLSTMCell,Oi as batchNorm,yx as batchNorm2d,bx as batchNorm3d,wx as batchNorm4d,tu as batchToSpaceND,Cx as bincount,l6 as booleanMaskAsync,HE as broadcastArgs,Pi as broadcastTo,Wr as broadcast_util,ox as browser,wt as buffer,jZ as callbacks,J as cast,Ix as ceil,vr as clipByValue,an as clone,In as complex,oe as concat,vx as concat1d,Sx as concat2d,Nx as concat3d,Tx as concat4d,Y$ as constraints,tm as conv1d,Sn as conv2d,rm as conv2dTranspose,kx as conv3d,_x as conv3dTranspose,Flt as copyRegisteredKernels,eu as cos,nm as cosh,gh as cosineWindow,Zu as cumprod,om as cumsum,cn as customGrad,RR as data,ph as denseBincount,qS as deprecationWarn,Ax as depthToSpace,Li as depthwiseConv2d,JZ as deregisterOp,Yl as device_util,qE as diag,$x as dilation2d,Spt as disableDeprecationWarnings,Nt as dispose,Npt as disposeVariables,pt as div,Dx as divNoNan,Rx as dot,p0 as dropout,KE as einsum,Mi as elu,vpt as enableDebugMode,Ipt as enableProdMode,m0 as enclosingPowerOfTwo,Mn as engine,M as env,Rr as equal,Fx as erf,Ox as euclideanNorm,or as exp,sr as expandDims,Px as expm1,Ju as eye,uu as fft,bo as fill,$pt as findBackend,Dpt as findBackendFactory,zi as floor,Zp as floorDiv,yM as forceHalfFloat,pu as fused,Bi as gather,x6 as gatherND,sx as gather_util,_pt as getBackend,mS as getGradient,Qd as getKernel,Bg as getKernelsForBackend,mlt as getThreadsCount,uk as gpgpu_util,SK as grad,NK as grads,Re as greater,un as greaterEqual,nl as ifft,Jl as imag,so as image,w6 as inTopKAsync,Z$ as initializers,z0 as input,$r as io,ym as irfft,Lx as isFinite,Mx as isInf,zx as isNaN,Ae as keep,qr as kernel_impls,AD as layers,ru as leakyRelu,sm as less,zn as lessEqual,d0 as linalg,YE as linspace,q7 as loadGraphModel,K7 as loadGraphModelSync,xD as loadLayersModel,Bx as localResponseNormalization,Nr as log,nu as log1p,Wx as logSigmoid,im as logSoftmax,am as logSumExp,Or as logicalAnd,ou as logicalNot,lm as logicalOr,Ux as logicalXor,wX as losses,ZE as lowerBound,Lt as matMul,CE as math,Sr as max,su as maxPool,qx as maxPool3d,JE as maxPoolWithArgmax,Nn as maximum,Se as mean,lh as memory,QE as meshgrid,$D as metrics,el as min,Vi as minimum,Kx as mirrorPad,jx as mod,Y8 as model,DD as models,Qu as moments,c6 as movingAverage,D as mul,t_ as multiRNNCell,e_ as multinomial,Ht as neg,xh as nextFrame,rl as norm,Ws as notEqual,$i as oneHot,pr as ones,wr as onesLike,T as op,r_ as outerProduct,pn as pad,n_ as pad1d,o_ as pad2d,s_ as pad3d,i_ as pad4d,Xx as pool,ln as pow,au as prelu,Qg as print,Yx as prod,Tpt as profile,a_ as raggedGather,l_ as raggedRange,u_ as raggedTensorToTensor,c_ as rand,k_ as randomGamma,rc as randomNormal,E_ as randomStandardNormal,Gi as randomUniform,Wi as range,Ept as ready,tl as real,ey as reciprocal,Yp as registerBackend,J8 as registerCallbackConstructor,y1 as registerGradient,zu as registerKernel,ZZ as registerOp,RD as regularizers,Pr as relu,um as relu6,Apt as removeBackend,R as reshape,mr as reverse,__ as reverse1d,A_ as reverse2d,$_ as reverse3d,D_ as reverse4d,cu as rfft,cm as round,pm as rsqrt,mt as scalar,m6 as scatterND,uh as scatter_util,fh as searchSorted,mm as selu,fm as separableConv2d,Z8 as sequential,Q as serialization,sH as setBackend,Rpt as setPlatform,plt as setThreadsCount,ult as setWasmPath,clt as setWasmPaths,vT as setWebGLContext,R_ as setdiff1dAsync,Jr as sigmoid,ry as sign,bX as signal,dm as sin,hm as sinh,Rt as slice,gm as slice1d,hh as slice2d,xm as slice3d,nc as slice4d,Me as slice_util,lu as softmax,Gs as softplus,iu as spaceToBatchND,CX as sparse,h6 as sparseToDense,yX as spectral,fr as split,ve as sqrt,Mt as square,bm as squaredDifference,Bn as squeeze,qe as stack,Co as step,ny as stridedSlice,IX as string,ct as sub,ft as sum,Hu as sumOutType,oy as tan,Fi as tanh,nr as tensor,Ke as tensor1d,Us as tensor2d,nx as tensor3d,F_ as tensor4d,O_ as tensor5d,P_ as tensor6d,yo as tensor_util,ME as test_util,B as tidy,Fr as tile,kpt as time,sy as topk,lc as train,Ot as transpose,wm as truncatedNormal,iy as unique,Rlt as unregisterGradient,Dlt as unregisterKernel,Cm as unsortedSegmentSum,dr as unstack,ar as upcastType,L_ as upperBound,y as util,TK as valueAndGrad,kK as valueAndGrads,ay as variable,Vx as variableGrads,blt as version,fR as version_converter,zE as version_core,Hm as version_layers,flt as version_wasm,xM as version_webgl,b1e as webgl,gd as webgl_util,_e as where,uy as whereAsync,Ne as zeros,It as zerosLike};\n", "export * from './drawContour';\nexport * from './drawDetections';\nexport * from './drawFaceExpressions';\nexport * from './DrawBox';\nexport * from './DrawFaceLandmarks';\nexport * from './DrawTextField';\n", "import { Point } from '../classes/index';\n\nexport function drawContour(\n ctx: CanvasRenderingContext2D,\n points: Point[],\n isClosed = false,\n) {\n ctx.beginPath();\n\n points.slice(1).forEach(({ x, y }, prevIdx) => {\n const from = points[prevIdx];\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(x, y);\n });\n\n if (isClosed) {\n const from = points[points.length - 1];\n const to = points[0];\n if (!from || !to) {\n return;\n }\n\n ctx.moveTo(from.x, from.y);\n ctx.lineTo(to.x, to.y);\n }\n\n ctx.stroke();\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Point } from '../classes/index';\nimport { Dimensions, IDimensions } from '../classes/Dimensions';\n\nexport function isTensor(tensor: any, dim: number) {\n return tensor instanceof tf.Tensor && tensor.shape.length === dim;\n}\n\nexport function isTensor1D(tensor: any): tensor is tf.Tensor1D {\n return isTensor(tensor, 1);\n}\n\nexport function isTensor2D(tensor: any): tensor is tf.Tensor2D {\n return isTensor(tensor, 2);\n}\n\nexport function isTensor3D(tensor: any): tensor is tf.Tensor3D {\n return isTensor(tensor, 3);\n}\n\nexport function isTensor4D(tensor: any): tensor is tf.Tensor4D {\n return isTensor(tensor, 4);\n}\n\nexport function isFloat(num: number) {\n return num % 1 !== 0;\n}\n\nexport function isEven(num: number) {\n return num % 2 === 0;\n}\n\nexport function round(num: number, prec = 2) {\n const f = 10 ** prec;\n return Math.floor(num * f) / f;\n}\n\nexport function isDimensions(obj: any): boolean {\n return obj && obj.width && obj.height;\n}\n\nexport function computeReshapedDimensions({ width, height }: IDimensions, inputSize: number) {\n const scale = inputSize / Math.max(height, width);\n return new Dimensions(Math.round(width * scale), Math.round(height * scale));\n}\n\nexport function getCenterPoint(pts: Point[]): Point {\n return pts.reduce((sum, pt) => sum.add(pt), new Point(0, 0))\n .div(new Point(pts.length, pts.length));\n}\n\nexport function range(num: number, start: number, step: number): number[] {\n return Array(num).fill(0).map((_, i) => start + (i * step));\n}\n\nexport function isValidNumber(num: any) {\n return !!num && (num !== Infinity) && (num !== -Infinity) && !Number.isNaN(num) || num === 0;\n}\n\nexport function isValidProbablitiy(num: any) {\n return isValidNumber(num) && num >= 0 && num <= 1.0;\n}\n", "import { isValidNumber } from '../utils/index';\n\nexport interface IDimensions {\n width: number\n height: number\n}\n\nexport class Dimensions implements IDimensions {\n private _width: number;\n\n private _height: number;\n\n constructor(width: number, height: number) {\n if (!isValidNumber(width) || !isValidNumber(height)) {\n throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({ width, height })}`);\n }\n\n this._width = width;\n this._height = height;\n }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public reverse(): Dimensions {\n return new Dimensions(1 / this.width, 1 / this.height);\n }\n}\n", "export interface IPoint {\n x: number\n y: number\n}\n\nexport class Point implements IPoint {\n private _x: number;\n\n private _y: number;\n\n constructor(x: number, y: number) {\n this._x = x;\n this._y = y;\n }\n\n get x(): number { return this._x; }\n\n get y(): number { return this._y; }\n\n public add(pt: IPoint): Point {\n return new Point(this.x + pt.x, this.y + pt.y);\n }\n\n public sub(pt: IPoint): Point {\n return new Point(this.x - pt.x, this.y - pt.y);\n }\n\n public mul(pt: IPoint): Point {\n return new Point(this.x * pt.x, this.y * pt.y);\n }\n\n public div(pt: IPoint): Point {\n return new Point(this.x / pt.x, this.y / pt.y);\n }\n\n public abs(): Point {\n return new Point(Math.abs(this.x), Math.abs(this.y));\n }\n\n public magnitude(): number {\n return Math.sqrt((this.x ** 2) + (this.y ** 2));\n }\n\n public floor(): Point {\n return new Point(Math.floor(this.x), Math.floor(this.y));\n }\n}\n", "import { isDimensions, isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { IDimensions } from './Dimensions';\nimport { Point } from './Point';\nimport { IRect } from './Rect';\n\nexport class Box implements IBoundingBox, IRect {\n public static isRect(rect: any): boolean {\n return !!rect && [rect.x, rect.y, rect.width, rect.height].every(isValidNumber);\n }\n\n public static assertIsValidBox(box: any, callee: string, allowNegativeDimensions = false) {\n if (!Box.isRect(box)) {\n throw new Error(`${callee} - invalid box: ${JSON.stringify(box)}, expected object with properties x, y, width, height`);\n }\n\n if (!allowNegativeDimensions && (box.width < 0 || box.height < 0)) {\n throw new Error(`${callee} - width (${box.width}) and height (${box.height}) must be positive numbers`);\n }\n }\n\n private _x: number;\n\n private _y: number;\n\n private _width: number;\n\n private _height: number;\n\n constructor(_box: IBoundingBox | IRect, allowNegativeDimensions = true) {\n const box = (_box || {}) as any;\n\n const isBbox = [box.left, box.top, box.right, box.bottom].every(isValidNumber);\n const isRect = [box.x, box.y, box.width, box.height].every(isValidNumber);\n\n if (!isRect && !isBbox) {\n throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(box)}`);\n }\n\n const [x, y, width, height] = isRect\n ? [box.x, box.y, box.width, box.height]\n : [box.left, box.top, box.right - box.left, box.bottom - box.top];\n\n Box.assertIsValidBox({\n x, y, width, height,\n }, 'Box.constructor', allowNegativeDimensions);\n\n this._x = x;\n this._y = y;\n this._width = width;\n this._height = height;\n }\n\n public get x(): number { return this._x; }\n\n public get y(): number { return this._y; }\n\n public get width(): number { return this._width; }\n\n public get height(): number { return this._height; }\n\n public get left(): number { return this.x; }\n\n public get top(): number { return this.y; }\n\n public get right(): number { return this.x + this.width; }\n\n public get bottom(): number { return this.y + this.height; }\n\n public get area(): number { return this.width * this.height; }\n\n public get topLeft(): Point { return new Point(this.left, this.top); }\n\n public get topRight(): Point { return new Point(this.right, this.top); }\n\n public get bottomLeft(): Point { return new Point(this.left, this.bottom); }\n\n public get bottomRight(): Point { return new Point(this.right, this.bottom); }\n\n public round(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.round(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public floor(): Box {\n const [x, y, width, height] = [this.x, this.y, this.width, this.height]\n .map((val) => Math.floor(val));\n return new Box({\n x, y, width, height,\n });\n }\n\n public toSquare(): Box {\n let {\n x, y, width, height,\n } = this;\n const diff = Math.abs(width - height);\n if (width < height) {\n x -= (diff / 2);\n width += diff;\n }\n if (height < width) {\n y -= (diff / 2);\n height += diff;\n }\n\n return new Box({ x, y, width, height });\n }\n\n public rescale(s: IDimensions | number): Box {\n const scaleX = isDimensions(s) ? (s as IDimensions).width : s as number;\n const scaleY = isDimensions(s) ? (s as IDimensions).height : s as number;\n return new Box({\n x: this.x * scaleX,\n y: this.y * scaleY,\n width: this.width * scaleX,\n height: this.height * scaleY,\n });\n }\n\n public pad(padX: number, padY: number): Box {\n const [x, y, width, height] = [\n this.x - (padX / 2),\n this.y - (padY / 2),\n this.width + padX,\n this.height + padY,\n ];\n return new Box({ x, y, width, height });\n }\n\n public clipAtImageBorders(imgWidth: number, imgHeight: number): Box {\n const { x, y, right, bottom } = this;\n const clippedX = Math.max(x, 0);\n const clippedY = Math.max(y, 0);\n\n const newWidth = right - clippedX;\n const newHeight = bottom - clippedY;\n const clippedWidth = Math.min(newWidth, imgWidth - clippedX);\n const clippedHeight = Math.min(newHeight, imgHeight - clippedY);\n\n return (new Box({ x: clippedX, y: clippedY, width: clippedWidth, height: clippedHeight })).floor();\n }\n\n public shift(sx: number, sy: number): Box {\n const { width, height } = this;\n const x = this.x + sx;\n const y = this.y + sy;\n\n return new Box({ x, y, width, height });\n }\n\n public padAtBorders(imageHeight: number, imageWidth: number) {\n const w = this.width + 1;\n const h = this.height + 1;\n\n const dx = 1;\n const dy = 1;\n let edx = w;\n let edy = h;\n\n let x = this.left;\n let y = this.top;\n let ex = this.right;\n let ey = this.bottom;\n\n if (ex > imageWidth) {\n edx = -ex + imageWidth + w;\n ex = imageWidth;\n }\n if (ey > imageHeight) {\n edy = -ey + imageHeight + h;\n ey = imageHeight;\n }\n if (x < 1) {\n edy = 2 - x;\n x = 1;\n }\n if (y < 1) {\n edy = 2 - y;\n y = 1;\n }\n\n return { dy, edy, dx, edx, y, ey, x, ex, w, h };\n }\n\n public calibrate(region: Box) {\n return new Box({\n left: this.left + (region.left * this.width),\n top: this.top + (region.top * this.height),\n right: this.right + (region.right * this.width),\n bottom: this.bottom + (region.bottom * this.height),\n }).toSquare().round();\n }\n}\n", "import { Box } from './Box';\n\nexport interface IBoundingBox {\n left: number\n top: number\n right: number\n bottom: number\n}\n\nexport class BoundingBox extends Box implements IBoundingBox {\n constructor(left: number, top: number, right: number, bottom: number, allowNegativeDimensions = false) {\n super({ left, top, right, bottom }, allowNegativeDimensions);\n }\n}\n", "import { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { IRect, Rect } from './Rect';\n\nexport class ObjectDetection {\n private _score: number;\n\n private _classScore: number;\n\n private _className: string;\n\n private _box: Rect;\n\n private _imageDims: Dimensions;\n\n constructor(\n score: number,\n classScore: number,\n className: string,\n relativeBox: IRect,\n imageDims: IDimensions,\n ) {\n this._imageDims = new Dimensions(imageDims.width, imageDims.height);\n this._score = score;\n this._classScore = classScore;\n this._className = className;\n this._box = new Box(relativeBox).rescale(this._imageDims);\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n\n public get className(): string { return this._className; }\n\n public get box(): Box { return this._box; }\n\n public get imageDims(): Dimensions { return this._imageDims; }\n\n public get imageWidth(): number { return this.imageDims.width; }\n\n public get imageHeight(): number { return this.imageDims.height; }\n\n public get relativeBox(): Box { return new Box(this._box).rescale(this.imageDims.reverse()); }\n\n public forSize(width: number, height: number): ObjectDetection {\n return new ObjectDetection(\n this.score,\n this.classScore,\n this.className,\n this.relativeBox,\n { width, height },\n );\n }\n}\n", "import { Box } from './Box';\nimport { IDimensions } from './Dimensions';\nimport { ObjectDetection } from './ObjectDetection';\nimport { Rect } from './Rect';\n\nexport interface IFaceDetecion {\n score: number\n box: Box\n}\n\nexport class FaceDetection extends ObjectDetection implements IFaceDetecion {\n constructor(\n score: number,\n relativeBox: Rect,\n imageDims: IDimensions,\n ) {\n super(score, score, '', relativeBox, imageDims);\n }\n\n public override forSize(width: number, height: number): FaceDetection {\n const { score, relativeBox, imageDims } = super.forSize(width, height);\n return new FaceDetection(score, relativeBox, imageDims);\n }\n}\n", "import { Box } from '../classes/Box';\n\nexport function iou(box1: Box, box2: Box, isIOU = true) {\n const width = Math.max(0.0, Math.min(box1.right, box2.right) - Math.max(box1.left, box2.left));\n const height = Math.max(0.0, Math.min(box1.bottom, box2.bottom) - Math.max(box1.top, box2.top));\n const interSection = width * height;\n\n return isIOU\n ? interSection / (box1.area + box2.area - interSection)\n : interSection / Math.min(box1.area, box2.area);\n}\n", "import { BoundingBox, IPoint } from '../classes/index';\n\nexport function minBbox(pts: IPoint[]): BoundingBox {\n const xs = pts.map((pt) => pt.x);\n const ys = pts.map((pt) => pt.y);\n const minX = xs.reduce((min, x) => (x < min ? x : min), Infinity);\n const minY = ys.reduce((min, y) => (y < min ? y : min), Infinity);\n const maxX = xs.reduce((max, x) => (max < x ? x : max), 0);\n const maxY = ys.reduce((max, y) => (max < y ? y : max), 0);\n\n return new BoundingBox(minX, minY, maxX, maxY);\n}\n", "import { Box } from '../classes/Box';\nimport { iou } from './iou';\n\nexport function nonMaxSuppression(\n boxes: Box[],\n scores: number[],\n iouThreshold: number,\n isIOU = true,\n): number[] {\n let indicesSortedByScore = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .sort((c1, c2) => c1.score - c2.score)\n .map((c) => c.boxIndex);\n\n const pick: number[] = [];\n\n while (indicesSortedByScore.length > 0) {\n const curr = indicesSortedByScore.pop() as number;\n pick.push(curr);\n\n const indices = indicesSortedByScore;\n\n const outputs: number[] = [];\n for (let i = 0; i < indices.length; i++) {\n const idx = indices[i];\n\n const currBox = boxes[curr];\n const idxBox = boxes[idx];\n\n outputs.push(iou(currBox, idxBox, isIOU));\n }\n\n indicesSortedByScore = indicesSortedByScore.filter(\n (_, j) => outputs[j] <= iouThreshold,\n );\n }\n\n return pick;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function normalize(x: tf.Tensor4D, meanRgb: number[]): tf.Tensor4D {\n return tf.tidy(() => {\n const [r, g, b] = meanRgb;\n const avg_r = tf.fill([...x.shape.slice(0, 3), 1], r, 'float32');\n const avg_g = tf.fill([...x.shape.slice(0, 3), 1], g, 'float32');\n const avg_b = tf.fill([...x.shape.slice(0, 3), 1], b, 'float32');\n const avg_rgb = tf.concat([avg_r, avg_g, avg_b], 3);\n\n return tf.sub(x, avg_rgb);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n/**\n * Pads the smaller dimension of an image tensor with zeros, such that width === height.\n *\n * @param imgTensor The image tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The padded tensor with width === height.\n */\nexport function padToSquare(imgTensor: tf.Tensor4D, isCenterImage = false): tf.Tensor4D {\n return tf.tidy(() => {\n const [height, width] = imgTensor.shape.slice(1);\n if (height === width) return imgTensor;\n const dimDiff = Math.abs(height - width);\n const paddingAmount = Math.round(dimDiff * (isCenterImage ? 0.5 : 1));\n const paddingAxis = height > width ? 2 : 1;\n const createPaddingTensor = (paddingAmountLocal: number): tf.Tensor => {\n const paddingTensorShape = imgTensor.shape.slice();\n paddingTensorShape[paddingAxis] = paddingAmountLocal;\n return tf.fill(paddingTensorShape, 0, 'float32');\n };\n const paddingTensorAppend = createPaddingTensor(paddingAmount);\n const remainingPaddingAmount = dimDiff - (paddingTensorAppend.shape[paddingAxis] as number);\n const paddingTensorPrepend = isCenterImage && remainingPaddingAmount ? createPaddingTensor(remainingPaddingAmount) : null;\n const tensorsToStack = [paddingTensorPrepend, imgTensor, paddingTensorAppend]\n .filter((t) => !!t)\n .map((t) => tf.cast(t as tf.Tensor4D, 'float32')) as tf.Tensor4D[];\n return tf.concat(tensorsToStack, paddingAxis);\n });\n}\n", "export function shuffleArray(inputArray: any[]) {\n const array = inputArray.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const x = array[i];\n array[i] = array[j];\n array[j] = x;\n }\n return array;\n}\n", "export * from './iou';\nexport * from './minBbox';\nexport * from './nonMaxSuppression';\nexport * from './normalize';\nexport * from './padToSquare';\nexport * from './shuffleArray';\n\nexport function sigmoid(x: number) {\n return 1 / (1 + Math.exp(-x));\n}\n\nexport function inverseSigmoid(x: number) {\n return Math.log(x / (1 - x));\n}\n", "import { Box } from './Box';\n\nexport interface IRect {\n x: number\n y: number\n width: number\n height: number\n}\n\nexport class Rect extends Box implements IRect {\n constructor(x: number, y: number, width: number, height: number, allowNegativeDimensions = false) {\n super({ x, y, width, height }, allowNegativeDimensions);\n }\n}\n", "import { minBbox } from '../ops/index';\nimport { getCenterPoint } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { Dimensions, IDimensions } from './Dimensions';\nimport { FaceDetection } from './FaceDetection';\nimport { Point } from './Point';\nimport { IRect, Rect } from './Rect';\n\n// face alignment constants\nconst relX = 0.5;\nconst relY = 0.43;\nconst relScale = 0.45;\n\nexport interface IFaceLandmarks {\n positions: Point[]\n shift: Point\n}\n\nexport class FaceLandmarks implements IFaceLandmarks {\n protected _shift: Point;\n\n protected _positions: Point[];\n\n protected _imgDims: Dimensions;\n\n constructor(\n relativeFaceLandmarkPositions: Point[],\n imgDims: IDimensions,\n shift: Point = new Point(0, 0),\n ) {\n const { width, height } = imgDims;\n this._imgDims = new Dimensions(width, height);\n this._shift = shift;\n this._positions = relativeFaceLandmarkPositions.map(\n (pt) => pt.mul(new Point(width, height)).add(shift),\n );\n }\n\n public get shift(): Point { return new Point(this._shift.x, this._shift.y); }\n\n public get imageWidth(): number { return this._imgDims.width; }\n\n public get imageHeight(): number { return this._imgDims.height; }\n\n public get positions(): Point[] { return this._positions; }\n\n public get relativePositions(): Point[] {\n return this._positions.map(\n (pt) => pt.sub(this._shift).div(new Point(this.imageWidth, this.imageHeight)),\n );\n }\n\n public forSize(width: number, height: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n { width, height },\n );\n }\n\n public shiftBy(x: number, y: number): T {\n return new (this.constructor as any)(\n this.relativePositions,\n this._imgDims,\n new Point(x, y),\n );\n }\n\n public shiftByPoint(pt: Point): T {\n return this.shiftBy(pt.x, pt.y);\n }\n\n /**\n * Aligns the face landmarks after face detection from the relative positions of the faces\n * bounding box, or it's current shift. This function should be used to align the face images\n * after face detection has been performed, before they are passed to the face recognition net.\n * This will make the computed face descriptor more accurate.\n *\n * @param detection (optional) The bounding box of the face or the face detection result. If\n * no argument was passed the position of the face landmarks are assumed to be relative to\n * it's current shift.\n * @returns The bounding box of the aligned face.\n */\n public align(\n detection?: FaceDetection | IRect | IBoundingBox | null,\n options: { useDlibAlignment?: boolean, minBoxPadding?: number } = { },\n ): Box {\n if (detection) {\n const box = detection instanceof FaceDetection\n ? detection.box.floor()\n : new Box(detection);\n\n return this.shiftBy(box.x, box.y).align(null, options);\n }\n\n const { useDlibAlignment, minBoxPadding } = { useDlibAlignment: false, minBoxPadding: 0.2, ...options };\n\n if (useDlibAlignment) {\n return this.alignDlib();\n }\n\n return this.alignMinBbox(minBoxPadding);\n }\n\n private alignDlib(): Box {\n const centers = this.getRefPointsForAlignment();\n\n const [leftEyeCenter, rightEyeCenter, mouthCenter] = centers;\n const distToMouth = (pt: Point) => mouthCenter.sub(pt).magnitude();\n const eyeToMouthDist = (distToMouth(leftEyeCenter) + distToMouth(rightEyeCenter)) / 2;\n\n const size = Math.floor(eyeToMouthDist / relScale);\n\n const refPoint = getCenterPoint(centers);\n // TODO: pad in case rectangle is out of image bounds\n const x = Math.floor(Math.max(0, refPoint.x - (relX * size)));\n const y = Math.floor(Math.max(0, refPoint.y - (relY * size)));\n\n return new Rect(x, y, Math.min(size, this.imageWidth + x), Math.min(size, this.imageHeight + y));\n }\n\n private alignMinBbox(padding: number): Box {\n const box = minBbox(this.positions);\n return box.pad(box.width * padding, box.height * padding);\n }\n\n protected getRefPointsForAlignment(): Point[] {\n throw new Error('getRefPointsForAlignment not implemented by base class');\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks5 extends FaceLandmarks {\n protected override getRefPointsForAlignment(): Point[] {\n const pts = this.positions;\n return [\n pts[0],\n pts[1],\n getCenterPoint([pts[3], pts[4]]),\n ];\n }\n}\n", "import { getCenterPoint } from '../utils/index';\nimport { FaceLandmarks } from './FaceLandmarks';\nimport { Point } from './Point';\n\nexport class FaceLandmarks68 extends FaceLandmarks {\n public getJawOutline(): Point[] {\n return this.positions.slice(0, 17);\n }\n\n public getLeftEyeBrow(): Point[] {\n return this.positions.slice(17, 22);\n }\n\n public getRightEyeBrow(): Point[] {\n return this.positions.slice(22, 27);\n }\n\n public getNose(): Point[] {\n return this.positions.slice(27, 36);\n }\n\n public getLeftEye(): Point[] {\n return this.positions.slice(36, 42);\n }\n\n public getRightEye(): Point[] {\n return this.positions.slice(42, 48);\n }\n\n public getMouth(): Point[] {\n return this.positions.slice(48, 68);\n }\n\n protected override getRefPointsForAlignment(): Point[] {\n return [\n this.getLeftEye(),\n this.getRightEye(),\n this.getMouth(),\n ].map(getCenterPoint);\n }\n}\n", "import { round } from '../utils/index';\n\nexport interface IFaceMatch {\n label: string\n distance: number\n}\n\nexport class FaceMatch implements IFaceMatch {\n private _label: string;\n private _distance: number;\n\n constructor(label: string, distance: number) {\n this._label = label;\n this._distance = distance;\n }\n\n public get label(): string { return this._label; }\n\n public get distance(): number { return this._distance; }\n\n public toString(withDistance = true): string {\n return `${this.label}${withDistance ? ` (${round(this.distance)})` : ''}`;\n }\n}\n", "import { isValidNumber } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { Box } from './Box';\nimport { IRect } from './Rect';\n\nexport class LabeledBox extends Box {\n public static assertIsValidLabeledBox(box: any, callee: string) {\n Box.assertIsValidBox(box, callee);\n if (!isValidNumber(box.label)) {\n throw new Error(`${callee} - expected property label (${box.label}) to be a number`);\n }\n }\n\n private _label: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number) {\n super(box);\n this._label = label;\n }\n\n public get label(): number { return this._label; }\n}\n", "export class LabeledFaceDescriptors {\n private _label: string;\n\n private _descriptors: Float32Array[];\n\n constructor(label: string, descriptors: Float32Array[]) {\n if (!(typeof label === 'string')) {\n throw new Error('LabeledFaceDescriptors - constructor expected label to be a string');\n }\n\n if (!Array.isArray(descriptors) || descriptors.some((desc) => !(desc instanceof Float32Array))) {\n throw new Error('LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array');\n }\n\n this._label = label;\n this._descriptors = descriptors;\n }\n\n public get label(): string { return this._label; }\n\n public get descriptors(): Float32Array[] { return this._descriptors; }\n\n public toJSON(): any {\n return {\n label: this.label,\n descriptors: this.descriptors.map((d) => Array.from(d)),\n };\n }\n\n public static fromJSON(json: any): LabeledFaceDescriptors {\n const descriptors = json.descriptors.map((d: any) => new Float32Array(d));\n return new LabeledFaceDescriptors(json.label, descriptors);\n }\n}\n", "import { isValidProbablitiy } from '../utils/index';\nimport { IBoundingBox } from './BoundingBox';\nimport { LabeledBox } from './LabeledBox';\nimport { IRect } from './Rect';\n\nexport class PredictedBox extends LabeledBox {\n public static assertIsValidPredictedBox(box: any, callee: string) {\n LabeledBox.assertIsValidLabeledBox(box, callee);\n\n if (\n !isValidProbablitiy(box.score)\n || !isValidProbablitiy(box.classScore)\n ) {\n throw new Error(`${callee} - expected properties score (${box.score}) and (${box.classScore}) to be a number between [0, 1]`);\n }\n }\n\n private _score: number;\n\n private _classScore: number;\n\n constructor(box: IBoundingBox | IRect | any, label: number, score: number, classScore: number) {\n super(box, label);\n this._score = score;\n this._classScore = classScore;\n }\n\n public get score(): number { return this._score; }\n\n public get classScore(): number { return this._classScore; }\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\n\nexport type WithFaceDetection = TSource & {\n detection: FaceDetection\n}\n\nexport function isWithFaceDetection(obj: any): obj is WithFaceDetection<{}> {\n return obj.detection instanceof FaceDetection;\n}\n\nexport function extendWithFaceDetection(sourceObj: TSource, detection: FaceDetection): WithFaceDetection {\n const extension = { detection };\n return { ...sourceObj, ...extension };\n}\n", "import { Environment } from './types';\n\nexport function createBrowserEnv(): Environment {\n const fetch = window.fetch;\n if (!fetch) throw new Error('fetch - missing fetch implementation for browser environment');\n\n const readFile = () => {\n throw new Error('readFile - filesystem not available for browser environment');\n };\n\n return {\n Canvas: HTMLCanvasElement,\n CanvasRenderingContext2D,\n Image: HTMLImageElement,\n ImageData,\n Video: HTMLVideoElement,\n createCanvasElement: () => document.createElement('canvas'),\n createImageElement: () => document.createElement('img'),\n createVideoElement: () => document.createElement('video'),\n fetch,\n readFile,\n };\n}\n", "export function isNodejs(): boolean {\n return typeof global === 'object'\n && typeof process !== 'undefined'\n && process.versions != null\n && process.versions.node != null;\n}\n", "import { FileSystem } from './types';\nimport { isNodejs } from './isNodejs';\n\nexport function createFileSystem(fs?: any): FileSystem {\n let requireFsError = '';\n if (!fs && isNodejs()) {\n try {\n // eslint-disable-next-line global-require\n fs = require('fs');\n } catch (err) {\n requireFsError = (err as any).toString();\n }\n }\n\n const readFile = fs\n ? (filePath: string) => new Promise((resolve, reject) => { fs.readFile(filePath, (err: any, buffer) => (err ? reject(err) : resolve(buffer))); })\n : () => { throw new Error(`readFile - failed to require fs in nodejs environment with error: ${requireFsError}`); };\n return { readFile };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { createFileSystem } from './createFileSystem';\nimport { Environment } from './types';\n\nexport function createNodejsEnv(): Environment {\n // eslint-disable-next-line dot-notation\n const Canvas = global['Canvas'] || global.HTMLCanvasElement;\n const Image = global.Image || global.HTMLImageElement;\n // eslint-disable-next-line dot-notation\n const Video = global['Video'] || global.HTMLVideoElement;\n\n const createCanvasElement = () => {\n if (Canvas) return new Canvas();\n throw new Error('createCanvasElement - missing Canvas implementation for nodejs environment');\n };\n\n const createImageElement = () => {\n if (Image) return new Image();\n throw new Error('createImageElement - missing Image implementation for nodejs environment');\n };\n\n const createVideoElement = () => {\n if (Video) return new Video();\n throw new Error('createVideoElement - missing Video implementation for nodejs environment');\n };\n\n const fetch = global.fetch;\n // if (!fetch) throw new Error('fetch - missing fetch implementation for nodejs environment');\n\n const fileSystem = createFileSystem();\n\n return {\n Canvas: Canvas || class {},\n CanvasRenderingContext2D: global.CanvasRenderingContext2D || class {},\n Image: Image || class {},\n ImageData: global.ImageData || class {},\n Video: global.HTMLVideoElement || class {},\n createCanvasElement,\n createImageElement,\n createVideoElement,\n fetch,\n ...fileSystem,\n };\n}\n", "export function isBrowser(): boolean {\n return typeof window === 'object'\n && typeof document !== 'undefined'\n && typeof HTMLImageElement !== 'undefined'\n && typeof HTMLCanvasElement !== 'undefined'\n && typeof HTMLVideoElement !== 'undefined'\n && typeof ImageData !== 'undefined'\n && typeof CanvasRenderingContext2D !== 'undefined';\n}\n", "import { createBrowserEnv } from './createBrowserEnv';\nimport { createFileSystem } from './createFileSystem';\nimport { createNodejsEnv } from './createNodejsEnv';\nimport { isBrowser } from './isBrowser';\nimport { isNodejs } from './isNodejs';\nimport { Environment } from './types';\n\nlet environment: Environment | null;\n\nfunction getEnv(): Environment {\n if (!environment) {\n throw new Error('getEnv - environment is not defined, check isNodejs() and isBrowser()');\n }\n return environment;\n}\n\nfunction setEnv(env: Environment) {\n environment = env;\n}\n\nfunction initialize() {\n // check for isBrowser() first to prevent electron renderer process\n // to be initialized with wrong environment due to isNodejs() returning true\n if (isBrowser()) return setEnv(createBrowserEnv());\n if (isNodejs()) return setEnv(createNodejsEnv());\n return null;\n}\n\nfunction monkeyPatch(env: Partial) {\n if (!environment) {\n initialize();\n }\n\n if (!environment) {\n throw new Error('monkeyPatch - environment is not defined, check isNodejs() and isBrowser()');\n }\n\n const { Canvas = environment.Canvas, Image = environment.Image } = env;\n environment.Canvas = Canvas;\n environment.Image = Image;\n environment.createCanvasElement = env.createCanvasElement || (() => new Canvas());\n environment.createImageElement = env.createImageElement || (() => new Image());\n\n environment.ImageData = env.ImageData || environment.ImageData;\n environment.Video = env.Video || environment.Video;\n environment.fetch = env.fetch || environment.fetch;\n environment.readFile = env.readFile || environment.readFile;\n}\n\nexport const env = {\n getEnv,\n setEnv,\n initialize,\n createBrowserEnv,\n createFileSystem,\n createNodejsEnv,\n monkeyPatch,\n isBrowser,\n isNodejs,\n};\n\ninitialize();\n\nexport * from './types';\n", "import { env } from '../env/index';\n\nexport function resolveInput(arg: string | any) {\n if (!env.isNodejs() && typeof arg === 'string') {\n return document.getElementById(arg);\n }\n return arg;\n}\n", "import { env } from '../env/index';\nimport { resolveInput } from './resolveInput';\n\nexport function getContext2dOrThrow(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D): CanvasRenderingContext2D {\n const { Canvas, CanvasRenderingContext2D } = env.getEnv();\n\n if (canvasArg instanceof CanvasRenderingContext2D) {\n return canvasArg;\n }\n\n const canvas = resolveInput(canvasArg);\n\n if (!(canvas instanceof Canvas)) {\n throw new Error('resolveContext2d - expected canvas to be of instance of Canvas');\n }\n\n const ctx = canvas.getContext('2d');\n if (!ctx) {\n throw new Error('resolveContext2d - canvas 2d context is null');\n }\n\n return ctx;\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IDimensions, IPoint } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { resolveInput } from '../dom/resolveInput';\n\n// eslint-disable-next-line no-shadow\nexport enum AnchorPosition {\n // eslint-disable-next-line no-unused-vars\n TOP_LEFT = 'TOP_LEFT',\n // eslint-disable-next-line no-unused-vars\n TOP_RIGHT = 'TOP_RIGHT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n // eslint-disable-next-line no-unused-vars\n BOTTOM_RIGHT = 'BOTTOM_RIGHT'\n}\n\nexport interface IDrawTextFieldOptions {\n anchorPosition?: AnchorPosition\n backgroundColor?: string\n fontColor?: string\n fontSize?: number\n fontStyle?: string\n padding?: number\n}\n\nexport class DrawTextFieldOptions implements IDrawTextFieldOptions {\n public anchorPosition: AnchorPosition;\n\n public backgroundColor: string;\n\n public fontColor: string;\n\n public fontSize: number;\n\n public fontStyle: string;\n\n public padding: number;\n\n constructor(options: IDrawTextFieldOptions = {}) {\n const {\n anchorPosition, backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = options;\n this.anchorPosition = anchorPosition || AnchorPosition.TOP_LEFT;\n this.backgroundColor = backgroundColor || 'rgba(0, 0, 0, 0.5)';\n this.fontColor = fontColor || 'rgba(255, 255, 255, 1)';\n this.fontSize = fontSize || 14;\n this.fontStyle = fontStyle || 'Georgia';\n this.padding = padding || 4;\n }\n}\n\nexport class DrawTextField {\n public text: string[];\n\n public anchor : IPoint;\n\n public options: DrawTextFieldOptions;\n\n constructor(\n text: string | string[] | DrawTextField,\n anchor: IPoint,\n options: IDrawTextFieldOptions = {},\n ) {\n // eslint-disable-next-line no-nested-ternary\n this.text = typeof text === 'string'\n ? [text]\n : (text instanceof DrawTextField ? text.text : text);\n this.anchor = anchor;\n this.options = new DrawTextFieldOptions(options);\n }\n\n measureWidth(ctx: CanvasRenderingContext2D): number {\n const { padding } = this.options;\n return this.text.map((l) => ctx.measureText(l).width).reduce((w0, w1) => (w0 < w1 ? w1 : w0), 0) + (2 * padding);\n }\n\n measureHeight(): number {\n const { fontSize, padding } = this.options;\n return this.text.length * fontSize + (2 * padding);\n }\n\n getUpperLeft(ctx: CanvasRenderingContext2D, canvasDims?: IDimensions): IPoint {\n const { anchorPosition } = this.options;\n const isShiftLeft = anchorPosition === AnchorPosition.BOTTOM_RIGHT || anchorPosition === AnchorPosition.TOP_RIGHT;\n const isShiftTop = anchorPosition === AnchorPosition.BOTTOM_LEFT || anchorPosition === AnchorPosition.BOTTOM_RIGHT;\n\n const textFieldWidth = this.measureWidth(ctx);\n const textFieldHeight = this.measureHeight();\n const x = (isShiftLeft ? this.anchor.x - textFieldWidth : this.anchor.x);\n const y = isShiftTop ? this.anchor.y - textFieldHeight : this.anchor.y;\n\n // adjust anchor if text box exceeds canvas borders\n if (canvasDims) {\n const { width, height } = canvasDims;\n const newX = Math.max(Math.min(x, width - textFieldWidth), 0);\n const newY = Math.max(Math.min(y, height - textFieldHeight), 0);\n return { x: newX, y: newY };\n }\n return { x, y };\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const canvas = resolveInput(canvasArg);\n const ctx = getContext2dOrThrow(canvas);\n\n const {\n backgroundColor, fontColor, fontSize, fontStyle, padding,\n } = this.options;\n\n ctx.font = `${fontSize}px ${fontStyle}`;\n const maxTextWidth = this.measureWidth(ctx);\n const textHeight = this.measureHeight();\n\n ctx.fillStyle = backgroundColor;\n const upperLeft = this.getUpperLeft(ctx, canvas);\n ctx.fillRect(upperLeft.x, upperLeft.y, maxTextWidth, textHeight);\n\n ctx.fillStyle = fontColor;\n this.text.forEach((textLine, i) => {\n const x = padding + upperLeft.x;\n const y = padding + upperLeft.y + ((i + 1) * fontSize);\n ctx.fillText(textLine, x, y);\n });\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { Box, IBoundingBox, IRect } from '../classes/index';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { AnchorPosition, DrawTextField, DrawTextFieldOptions, IDrawTextFieldOptions } from './DrawTextField';\n\nexport interface IDrawBoxOptions {\n boxColor?: string\n lineWidth?: number\n drawLabelOptions?: IDrawTextFieldOptions\n label?: string\n}\n\nexport class DrawBoxOptions {\n public boxColor: string;\n\n public lineWidth: number;\n\n public drawLabelOptions: DrawTextFieldOptions;\n\n public label?: string;\n\n constructor(options: IDrawBoxOptions = {}) {\n const {\n boxColor, lineWidth, label, drawLabelOptions,\n } = options;\n this.boxColor = boxColor || 'rgba(0, 0, 255, 1)';\n this.lineWidth = lineWidth || 2;\n this.label = label;\n\n const defaultDrawLabelOptions = {\n anchorPosition: AnchorPosition.BOTTOM_LEFT,\n backgroundColor: this.boxColor,\n };\n this.drawLabelOptions = new DrawTextFieldOptions({ ...defaultDrawLabelOptions, ...drawLabelOptions });\n }\n}\n\nexport class DrawBox {\n public box: Box;\n\n public options: DrawBoxOptions;\n\n constructor(\n box: IBoundingBox | IRect,\n options: IDrawBoxOptions = {},\n ) {\n this.box = new Box(box);\n this.options = new DrawBoxOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const { boxColor, lineWidth } = this.options;\n\n const {\n x, y, width, height,\n } = this.box;\n ctx.strokeStyle = boxColor;\n ctx.lineWidth = lineWidth;\n ctx.strokeRect(x, y, width, height);\n\n const { label } = this.options;\n if (label) {\n new DrawTextField([label], { x: x - (lineWidth / 2), y }, this.options.drawLabelOptions).draw(canvasArg);\n }\n }\n}\n", "import { Box, IBoundingBox, IRect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { round } from '../utils/index';\nimport { DrawBox } from './DrawBox';\n\nexport type TDrawDetectionsInput = IRect | IBoundingBox | FaceDetection | WithFaceDetection<{}>\n\nexport function drawDetections(\n canvasArg: string | HTMLCanvasElement,\n detections: TDrawDetectionsInput | Array,\n) {\n const detectionsArray = Array.isArray(detections) ? detections : [detections];\n\n detectionsArray.forEach((det) => {\n // eslint-disable-next-line no-nested-ternary\n const score = det instanceof FaceDetection\n ? det.score\n : (isWithFaceDetection(det) ? det.detection.score : undefined);\n\n // eslint-disable-next-line no-nested-ternary\n const box = det instanceof FaceDetection\n ? det.box\n : (isWithFaceDetection(det) ? det.detection.box : new Box(det));\n\n const label = score ? `${round(score)}` : undefined;\n new DrawBox(box, { label }).draw(canvasArg);\n });\n}\n", "import { env } from '../env/index';\n\nexport function isMediaLoaded(media: HTMLImageElement | HTMLVideoElement) : boolean {\n const { Image, Video } = env.getEnv();\n\n return (media instanceof Image && media.complete)\n || (media instanceof Video && media.readyState >= 3);\n}\n", "import { env } from '../env/index';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function awaitMediaLoaded(media: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement) {\n // eslint-disable-next-line consistent-return\n return new Promise((resolve, reject) => {\n if (media instanceof env.getEnv().Canvas || isMediaLoaded(media)) resolve(null);\n\n function onError(e: Event) {\n if (!e.currentTarget) return;\n // eslint-disable-next-line no-use-before-define\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n reject(e);\n }\n\n function onLoad(e: Event) {\n if (!e.currentTarget) return;\n e.currentTarget.removeEventListener('load', onLoad);\n e.currentTarget.removeEventListener('error', onError);\n resolve(e);\n }\n\n media.addEventListener('load', onLoad);\n media.addEventListener('error', onError);\n });\n}\n", "import { env } from '../env/index';\n\nexport function bufferToImage(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToImage - expected buf to be of type: Blob'));\n const reader = new FileReader();\n reader.onload = () => {\n if (typeof reader.result !== 'string') reject(new Error('bufferToImage - expected reader.result to be a string, in onload'));\n const img = env.getEnv().createImageElement();\n img.onload = () => resolve(img);\n img.onerror = reject;\n img.src = reader.result as string;\n };\n reader.onerror = reject;\n reader.readAsDataURL(buf);\n });\n}\n", "import { Dimensions, IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\n\nexport function getMediaDimensions(input: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement | IDimensions): Dimensions {\n const { Image, Video } = env.getEnv();\n\n if (input instanceof Image) {\n return new Dimensions(input.naturalWidth, input.naturalHeight);\n }\n if (input instanceof Video) {\n return new Dimensions(input.videoWidth, input.videoHeight);\n }\n return new Dimensions(input.width, input.height);\n}\n", "import { IDimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\nimport { isMediaLoaded } from './isMediaLoaded';\n\nexport function createCanvas({ width, height }: IDimensions): HTMLCanvasElement {\n const { createCanvasElement } = env.getEnv();\n const canvas = createCanvasElement();\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nexport function createCanvasFromMedia(media: HTMLImageElement | HTMLVideoElement | ImageData, dims?: IDimensions): HTMLCanvasElement {\n const { ImageData } = env.getEnv();\n\n if (!(media instanceof ImageData) && !isMediaLoaded(media)) {\n throw new Error('createCanvasFromMedia - media has not finished loading yet');\n }\n\n const { width, height } = dims || getMediaDimensions(media);\n const canvas = createCanvas({ width, height });\n\n if (media instanceof ImageData) {\n getContext2dOrThrow(canvas).putImageData(media, 0, 0);\n } else {\n getContext2dOrThrow(canvas).drawImage(media, 0, 0, width, height);\n }\n return canvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { env } from '../env/index';\nimport { isTensor4D } from '../utils/index';\n\nexport async function imageTensorToCanvas(\n imgTensor: tf.Tensor,\n canvas?: HTMLCanvasElement,\n): Promise {\n const targetCanvas = canvas || env.getEnv().createCanvasElement();\n\n const [height, width, numChannels] = imgTensor.shape.slice(isTensor4D(imgTensor) ? 1 : 0);\n const imgTensor3D = tf.tidy(() => imgTensor.as3D(height, width, numChannels).toInt());\n await tf['browser'].toPixels(imgTensor3D, targetCanvas);\n\n imgTensor3D.dispose();\n\n return targetCanvas;\n}\n", "import { env } from '../env/index';\n\nexport function isMediaElement(input: any) {\n const { Image, Canvas, Video } = env.getEnv();\n\n return input instanceof Image\n || input instanceof Canvas\n || input instanceof Video;\n}\n", "import { env } from '../env/index';\nimport { createCanvas, createCanvasFromMedia } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function imageToSquare(input: HTMLImageElement | HTMLCanvasElement, inputSize: number, centerImage = false) {\n const { Image, Canvas } = env.getEnv();\n\n if (!(input instanceof Image || input instanceof Canvas)) {\n throw new Error('imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement');\n }\n\n if (inputSize <= 0) return createCanvas({ width: 1, height: 1 });\n const dims = getMediaDimensions(input);\n const scale = inputSize / Math.max(dims.height, dims.width);\n const width = scale * dims.width;\n const height = scale * dims.height;\n\n const targetCanvas = createCanvas({ width: inputSize, height: inputSize });\n const inputCanvas = input instanceof Canvas ? input : createCanvasFromMedia(input);\n\n const offset = Math.abs(width - height) / 2;\n const dx = centerImage && width < height ? offset : 0;\n const dy = centerImage && height < width ? offset : 0;\n if (inputCanvas.width > 0 && inputCanvas.height > 0) getContext2dOrThrow(targetCanvas).drawImage(inputCanvas, dx, dy, width, height);\n\n return targetCanvas;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Dimensions } from '../classes/Dimensions';\nimport { env } from '../env/index';\nimport { padToSquare } from '../ops/padToSquare';\nimport { computeReshapedDimensions, isTensor3D, isTensor4D, range } from '../utils/index';\nimport { createCanvasFromMedia } from './createCanvas';\nimport { imageToSquare } from './imageToSquare';\nimport { TResolvedNetInput } from './types';\n\nexport class NetInput {\n private _imageTensors: Array = [];\n\n private _canvases: HTMLCanvasElement[] = [];\n\n private _batchSize: number;\n\n private _treatAsBatchInput = false;\n\n private _inputDimensions: number[][] = [];\n\n private _inputSize = 0;\n\n constructor(inputs: Array, treatAsBatchInput = false) {\n if (!Array.isArray(inputs)) {\n throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${inputs}`);\n }\n\n this._treatAsBatchInput = treatAsBatchInput;\n this._batchSize = inputs.length;\n\n inputs.forEach((input, idx) => {\n if (isTensor3D(input)) {\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = input.shape;\n return;\n }\n\n if (isTensor4D(input)) {\n const batchSize = (input as any).shape[0];\n if (batchSize !== 1) {\n throw new Error(`NetInput - tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n\n this._imageTensors[idx] = input;\n this._inputDimensions[idx] = (input as any).shape.slice(1);\n return;\n }\n\n // @ts-ignore\n const canvas = (input as any) instanceof env.getEnv().Canvas ? input : createCanvasFromMedia(input);\n this._canvases[idx] = canvas as HTMLCanvasElement;\n this._inputDimensions[idx] = [canvas.height, canvas.width, 3];\n });\n }\n\n public get imageTensors(): Array {\n return this._imageTensors;\n }\n\n public get canvases(): HTMLCanvasElement[] {\n return this._canvases;\n }\n\n public get isBatchInput(): boolean {\n return this.batchSize > 1 || this._treatAsBatchInput;\n }\n\n public get batchSize(): number {\n return this._batchSize;\n }\n\n public get inputDimensions(): number[][] {\n return this._inputDimensions;\n }\n\n public get inputSize(): number | undefined {\n return this._inputSize;\n }\n\n public get reshapedInputDimensions(): Dimensions[] {\n return range(this.batchSize, 0, 1).map(\n (_, batchIdx) => this.getReshapedInputDimensions(batchIdx),\n );\n }\n\n public getInput(batchIdx: number): tf.Tensor3D | tf.Tensor4D | HTMLCanvasElement {\n return this.canvases[batchIdx] || this.imageTensors[batchIdx];\n }\n\n public getInputDimensions(batchIdx: number): number[] {\n return this._inputDimensions[batchIdx];\n }\n\n public getInputHeight(batchIdx: number): number {\n return this._inputDimensions[batchIdx][0];\n }\n\n public getInputWidth(batchIdx: number): number {\n return this._inputDimensions[batchIdx][1];\n }\n\n public getReshapedInputDimensions(batchIdx: number): Dimensions {\n if (typeof this.inputSize !== 'number') {\n throw new Error('getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet');\n }\n\n const width = this.getInputWidth(batchIdx);\n const height = this.getInputHeight(batchIdx);\n return computeReshapedDimensions({ width, height }, this.inputSize);\n }\n\n /**\n * Create a batch tensor from all input canvases and tensors\n * with size [batchSize, inputSize, inputSize, 3].\n *\n * @param inputSize Height and width of the tensor.\n * @param isCenterImage (optional, default: false) If true, add an equal amount of padding on\n * both sides of the minor dimension oof the image.\n * @returns The batch tensor.\n */\n public toBatchTensor(inputSize: number, isCenterInputs = true): tf.Tensor4D {\n this._inputSize = inputSize;\n\n return tf.tidy(() => {\n const inputTensors = range(this.batchSize, 0, 1).map((batchIdx) => {\n const input = this.getInput(batchIdx);\n\n if (input instanceof tf.Tensor) {\n let imgTensor = isTensor4D(input) ? input : tf.expandDims(input);\n imgTensor = padToSquare(imgTensor as tf.Tensor4D, isCenterInputs);\n\n if (imgTensor.shape[1] !== inputSize || imgTensor.shape[2] !== inputSize) {\n imgTensor = tf['image'].resizeBilinear(imgTensor as tf.Tensor4D, [inputSize, inputSize], false, false);\n }\n\n return imgTensor.as3D(inputSize, inputSize, 3);\n }\n\n if (input instanceof env.getEnv().Canvas) {\n return tf['browser'].fromPixels(imageToSquare(input, inputSize, isCenterInputs));\n }\n\n throw new Error(`toBatchTensor - at batchIdx ${batchIdx}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${input}`);\n });\n\n const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))).as4D(this.batchSize, inputSize, inputSize, 3);\n // const batchTensor = tf.stack(inputTensors.map((t) => tf.cast(t, 'float32'))) as tf.Tensor4D;\n\n return batchTensor;\n });\n }\n}\n", "import { isTensor3D, isTensor4D } from '../utils/index';\nimport { awaitMediaLoaded } from './awaitMediaLoaded';\nimport { isMediaElement } from './isMediaElement';\nimport { NetInput } from './NetInput';\nimport { resolveInput } from './resolveInput';\nimport { TNetInput } from './types';\n\n/**\n * Validates the input to make sure, they are valid net inputs and awaits all media elements\n * to be finished loading.\n *\n * @param input The input, which can be a media element or an array of different media elements.\n * @returns A NetInput instance, which can be passed into one of the neural networks.\n */\nexport async function toNetInput(inputs: TNetInput): Promise {\n if (inputs instanceof NetInput) return inputs;\n const inputArgArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArgArray.length) throw new Error('toNetInput - empty array passed as input');\n const getIdxHint = (idx: number) => (Array.isArray(inputs) ? ` at input index ${idx}:` : '');\n const inputArray = inputArgArray.map(resolveInput);\n inputArray.forEach((input, i) => {\n if (!isMediaElement(input) && !isTensor3D(input) && !isTensor4D(input)) {\n if (typeof inputArgArray[i] === 'string') throw new Error(`toNetInput -${getIdxHint(i)} string passed, but could not resolve HTMLElement for element id ${inputArgArray[i]}`);\n throw new Error(`toNetInput -${getIdxHint(i)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);\n }\n if (isTensor4D(input)) {\n // if tf.Tensor4D is passed in the input array, the batch size has to be 1\n const batchSize = input.shape[0];\n if (batchSize !== 1) throw new Error(`toNetInput -${getIdxHint(i)} tf.Tensor4D with batchSize ${batchSize} passed, but not supported in input array`);\n }\n });\n // wait for all media elements being loaded\n await Promise.all(inputArray.map((input) => isMediaElement(input) && awaitMediaLoaded(input)));\n return new NetInput(inputArray, Array.isArray(inputs));\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { Rect } from '../classes/Rect';\nimport { env } from '../env/index';\nimport { createCanvas } from './createCanvas';\nimport { getContext2dOrThrow } from './getContext2dOrThrow';\nimport { imageTensorToCanvas } from './imageTensorToCanvas';\nimport { toNetInput } from './toNetInput';\nimport { TNetInput } from './types';\n\n/**\n * Extracts the image regions containing the detected faces.\n *\n * @param input The image that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns The Canvases of the corresponding image region for each detected face.\n */\nexport async function extractFaces(input: TNetInput, detections: Array): Promise {\n const { Canvas } = env.getEnv();\n let canvas = input as HTMLCanvasElement;\n if (!(input instanceof Canvas)) {\n const netInput = await toNetInput(input);\n if (netInput.batchSize > 1) throw new Error('extractFaces - batchSize > 1 not supported');\n const tensorOrCanvas = netInput.getInput(0);\n canvas = tensorOrCanvas instanceof Canvas ? tensorOrCanvas : await imageTensorToCanvas(tensorOrCanvas);\n }\n const ctx = getContext2dOrThrow(canvas);\n const boxes = detections\n .map((det) => (det instanceof FaceDetection ? det.forSize(canvas.width, canvas.height).box.floor() : det))\n .map((box) => box.clipAtImageBorders(canvas.width, canvas.height));\n return boxes.map(({ x, y, width, height }) => {\n const faceImg = createCanvas({ width, height });\n if (width > 0 && height > 0) getContext2dOrThrow(faceImg).putImageData(ctx.getImageData(x, y, width, height), 0, 0);\n return faceImg;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { isTensor3D, isTensor4D } from '../utils/index';\n\n/**\n * Extracts the tensors of the image regions containing the detected faces.\n * Useful if you want to compute the face descriptors for the face images.\n * Using this method is faster then extracting a canvas for each face and\n * converting them to tensors individually.\n *\n * @param imageTensor The image tensor that face detection has been performed on.\n * @param detections The face detection results or face bounding boxes for that image.\n * @returns Tensors of the corresponding image region for each detected face.\n */\nexport async function extractFaceTensors(imageTensor: tf.Tensor3D | tf.Tensor4D, detections: Array): Promise {\n if (!isTensor3D(imageTensor) && !isTensor4D(imageTensor)) {\n throw new Error('extractFaceTensors - expected image tensor to be 3D or 4D');\n }\n\n if (isTensor4D(imageTensor) && imageTensor.shape[0] > 1) {\n throw new Error('extractFaceTensors - batchSize > 1 not supported');\n }\n\n return tf.tidy(() => {\n const [imgHeight, imgWidth, numChannels] = imageTensor.shape.slice(isTensor4D(imageTensor) ? 1 : 0);\n const boxes = detections.map((det) => (det instanceof FaceDetection ? det.forSize(imgWidth, imgHeight).box : det))\n .map((box) => box.clipAtImageBorders(imgWidth, imgHeight));\n const faceTensors = boxes\n .filter((box) => box.width > 0 && box.height > 0)\n .map(({ x, y, width, height }) => tf.slice3d(imageTensor.as3D(imgHeight, imgWidth, numChannels), [y, x, 0], [height, width, numChannels]));\n return faceTensors;\n });\n}\n", "import { env } from '../env/index';\n\nexport async function fetchOrThrow(\n url: string,\n // eslint-disable-next-line no-undef\n init?: RequestInit,\n): Promise {\n const { fetch } = env.getEnv();\n const res = await fetch(url, init);\n if (!(res.status < 400)) {\n throw new Error(`failed to fetch: (${res.status}) ${res.statusText}, from url: ${res.url}`);\n }\n return res;\n}\n", "import { bufferToImage } from './bufferToImage';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchImage(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('image/')) {\n throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToImage(blob);\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchJson(uri: string): Promise {\n return (await fetchOrThrow(uri)).json();\n}\n", "import { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchNetWeights(uri: string): Promise {\n return new Float32Array(await (await fetchOrThrow(uri)).arrayBuffer());\n}\n", "import { env } from '../env/index';\n\nexport function bufferToVideo(buf: Blob): Promise {\n return new Promise((resolve, reject) => {\n if (!(buf instanceof Blob)) reject(new Error('bufferToVideo - expected buf to be of type: Blob'));\n\n const video = env.getEnv().createVideoElement();\n video.oncanplay = () => resolve(video);\n video.onerror = reject;\n video.playsInline = true;\n video.muted = true;\n video.src = URL.createObjectURL(buf);\n video.play();\n });\n}\n", "import { bufferToVideo } from './bufferToVideo';\nimport { fetchOrThrow } from './fetchOrThrow';\n\nexport async function fetchVideo(uri: string): Promise {\n const res = await fetchOrThrow(uri);\n const blob = await (res).blob();\n\n if (!blob.type.startsWith('video/')) {\n throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${blob.type}, for url: ${res.url}`);\n }\n return bufferToVideo(blob);\n}\n", "export function getModelUris(uri: string | undefined, defaultModelName: string) {\n const defaultManifestFilename = `${defaultModelName}-weights_manifest.json`;\n\n if (!uri) {\n return {\n modelBaseUri: '',\n manifestUri: defaultManifestFilename,\n };\n }\n\n if (uri === '/') {\n return {\n modelBaseUri: '/',\n manifestUri: `/${defaultManifestFilename}`,\n };\n }\n // eslint-disable-next-line no-nested-ternary\n const protocol = uri.startsWith('http://') ? 'http://' : uri.startsWith('https://') ? 'https://' : '';\n uri = uri.replace(protocol, '');\n\n const parts = uri.split('/').filter((s) => s);\n\n const manifestFile = uri.endsWith('.json')\n ? parts[parts.length - 1]\n : defaultManifestFilename;\n\n let modelBaseUri = protocol + (uri.endsWith('.json') ? parts.slice(0, parts.length - 1) : parts).join('/');\n modelBaseUri = uri.startsWith('/') ? `/${modelBaseUri}` : modelBaseUri;\n\n return {\n modelBaseUri,\n manifestUri: modelBaseUri === '/' ? `/${manifestFile}` : `${modelBaseUri}/${manifestFile}`,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { getModelUris } from '../common/getModelUris';\nimport { fetchJson } from './fetchJson';\n\nexport async function loadWeightMap(\n uri: string | undefined,\n defaultModelName: string,\n): Promise {\n const { manifestUri, modelBaseUri } = getModelUris(uri, defaultModelName);\n // @ts-ignore\n const manifest = await fetchJson(manifestUri);\n // if (manifest['weightsManifest']) manifest = manifest['weightsManifest'];\n return tf['io'].loadWeights(manifest, modelBaseUri);\n}\n", "import { IDimensions } from '../classes/index';\nimport { getMediaDimensions } from './getMediaDimensions';\n\nexport function matchDimensions(input: IDimensions, reference: IDimensions, useMediaDimensions = false) {\n const { width, height } = useMediaDimensions\n ? getMediaDimensions(reference)\n : reference;\n input.width = width;\n input.height = height;\n return { width, height };\n}\n", "import * as tf from '../dist/tfjs.esm';\n\nimport { ParamMapping } from './common/index';\nimport { getModelUris } from './common/getModelUris';\nimport { loadWeightMap } from './dom/index';\nimport { env } from './env/index';\n\nexport abstract class NeuralNetwork {\n constructor(name: string) {\n this._name = name;\n }\n\n protected _params: TNetParams | undefined = undefined;\n\n protected _paramMappings: ParamMapping[] = [];\n\n public _name: any;\n\n public get params(): TNetParams | undefined { return this._params; }\n\n public get paramMappings(): ParamMapping[] { return this._paramMappings; }\n\n public get isLoaded(): boolean { return !!this.params; }\n\n public getParamFromPath(paramPath: string): tf.Tensor {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n return obj[objProp];\n }\n\n public reassignParamFromPath(paramPath: string, tensor: tf.Tensor) {\n const { obj, objProp } = this.traversePropertyPath(paramPath);\n obj[objProp].dispose();\n obj[objProp] = tensor;\n }\n\n public getParamList() {\n return this._paramMappings.map(({ paramPath }) => ({\n path: paramPath,\n tensor: this.getParamFromPath(paramPath),\n }));\n }\n\n public getTrainableParams() {\n return this.getParamList().filter((param) => param.tensor instanceof tf.Variable);\n }\n\n public getFrozenParams() {\n return this.getParamList().filter((param) => !(param.tensor instanceof tf.Variable));\n }\n\n public variable() {\n this.getFrozenParams().forEach(({ path, tensor }) => {\n this.reassignParamFromPath(path, tensor.variable());\n });\n }\n\n public freeze() {\n this.getTrainableParams().forEach(({ path, tensor: variable }) => {\n const tensor = tf.tensor(variable.dataSync());\n variable.dispose();\n this.reassignParamFromPath(path, tensor);\n });\n }\n\n public dispose(throwOnRedispose = true) {\n this.getParamList().forEach((param) => {\n if (throwOnRedispose && param.tensor.isDisposed) {\n throw new Error(`param tensor has already been disposed for path ${param.path}`);\n }\n param.tensor.dispose();\n });\n this._params = undefined;\n }\n\n public serializeParams(): Float32Array {\n return new Float32Array(\n this.getParamList()\n .map(({ tensor }) => Array.from(tensor.dataSync()) as number[])\n .reduce((flat, arr) => flat.concat(arr)),\n );\n }\n\n public async load(weightsOrUrl: Float32Array | string | undefined): Promise {\n if (weightsOrUrl instanceof Float32Array) {\n this.extractWeights(weightsOrUrl);\n return;\n }\n await this.loadFromUri(weightsOrUrl);\n }\n\n public async loadFromUri(uri: string | undefined) {\n if (uri && typeof uri !== 'string') {\n throw new Error(`${this._name}.loadFromUri - expected model uri`);\n }\n const weightMap = await loadWeightMap(uri, this.getDefaultModelName());\n this.loadFromWeightMap(weightMap);\n }\n\n public async loadFromDisk(filePath: string | undefined) {\n if (filePath && typeof filePath !== 'string') {\n throw new Error(`${this._name}.loadFromDisk - expected model file path`);\n }\n const { readFile } = env.getEnv();\n const { manifestUri, modelBaseUri } = getModelUris(filePath, this.getDefaultModelName());\n const fetchWeightsFromDisk = (filePaths: string[]) => Promise.all(filePaths.map((fp) => readFile(fp).then((buf) => buf.buffer)));\n const loadWeights = tf['io'].weightsLoaderFactory(fetchWeightsFromDisk);\n const manifest = JSON.parse((await readFile(manifestUri)).toString());\n const weightMap = await loadWeights(manifest, modelBaseUri);\n this.loadFromWeightMap(weightMap);\n }\n\n public loadFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { paramMappings, params } = this.extractParamsFromWeightMap(weightMap);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n public extractWeights(weights: Float32Array) {\n const { paramMappings, params } = this.extractParams(weights);\n this._paramMappings = paramMappings;\n this._params = params;\n }\n\n private traversePropertyPath(paramPath: string) {\n if (!this.params) {\n throw new Error('traversePropertyPath - model has no loaded params');\n }\n\n const result = paramPath.split('/').reduce((res: { nextObj: any, obj?: any, objProp?: string }, objProp) => {\n // eslint-disable-next-line no-prototype-builtins\n if (!res.nextObj.hasOwnProperty(objProp)) {\n throw new Error(`traversePropertyPath - object does not have property ${objProp}, for path ${paramPath}`);\n }\n return { obj: res.nextObj, objProp, nextObj: res.nextObj[objProp] };\n }, { nextObj: this.params });\n\n const { obj, objProp } = result;\n if (!obj || !objProp || !(obj[objProp] instanceof tf.Tensor)) {\n throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${paramPath}`);\n }\n\n return { obj, objProp };\n }\n\n protected abstract getDefaultModelName(): string\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TNetParams, paramMappings: ParamMapping[] }\n\n // eslint-disable-next-line no-unused-vars\n protected abstract extractParams(weights: Float32Array): { params: TNetParams, paramMappings: ParamMapping[] }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from './types';\n\nexport function depthwiseSeparableConv(\n x: tf.Tensor4D,\n params: SeparableConvParams,\n stride: [number, number],\n): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.separableConv2d(x, params.depthwise_filter, params.pointwise_filter, stride, 'same');\n out = tf.add(out, params.bias);\n return out;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, SeparableConvParams } from '../common/index';\nimport { depthwiseSeparableConv } from '../common/depthwiseSeparableConv';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function denseBlock3(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock3Params,\n isFirstLayer = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, [2, 2], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, [2, 2]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n });\n}\n\nexport function denseBlock4(\n x: tf.Tensor4D,\n denseBlockParams: DenseBlock4Params,\n isFirstLayer = false,\n isScaleDown = true,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out1 = tf.relu(\n isFirstLayer\n ? tf.add(\n tf.conv2d(x, (denseBlockParams.conv0 as ConvParams).filters, isScaleDown ? [2, 2] : [1, 1], 'same'),\n denseBlockParams.conv0.bias,\n )\n : depthwiseSeparableConv(x, denseBlockParams.conv0 as SeparableConvParams, isScaleDown ? [2, 2] : [1, 1]),\n ) as tf.Tensor4D;\n const out2 = depthwiseSeparableConv(out1, denseBlockParams.conv1, [1, 1]);\n\n const in3 = tf.relu(tf.add(out1, out2)) as tf.Tensor4D;\n const out3 = depthwiseSeparableConv(in3, denseBlockParams.conv2, [1, 1]);\n\n const in4 = tf.relu(tf.add(out1, tf.add(out2, out3))) as tf.Tensor4D;\n const out4 = depthwiseSeparableConv(in4, denseBlockParams.conv3, [1, 1]);\n\n return tf.relu(tf.add(out1, tf.add(out2, tf.add(out3, out4)))) as tf.Tensor4D;\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\nexport function convLayer(\n x: tf.Tensor4D,\n params: ConvParams,\n padding: 'valid' | 'same' = 'same',\n withRelu = false,\n): tf.Tensor4D {\n return tf.tidy(() => {\n const out = tf.add(\n tf.conv2d(x, params.filters, [1, 1], padding),\n params.bias,\n ) as tf.Tensor4D;\n\n return withRelu ? tf.relu(out) : out;\n });\n}\n", "import { ParamMapping } from './types';\n\nexport function disposeUnusedWeightTensors(weightMap: any, paramMappings: ParamMapping[]) {\n Object.keys(weightMap).forEach((path) => {\n if (!paramMappings.some((pm) => pm.originalPath === path)) {\n weightMap[path].dispose();\n }\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, ExtractWeightsFunction, ParamMapping } from './types';\n\nexport function extractConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams => {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, FCParams, ParamMapping } from './types';\n\nexport function extractFCParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): FCParams => {\n const fc_weights = tf.tensor2d(extractWeights(channelsIn * channelsOut), [channelsIn, channelsOut]);\n const fc_bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return {\n weights: fc_weights,\n bias: fc_bias,\n };\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\n// eslint-disable-next-line no-unused-vars\nexport type ExtractWeightsFunction = (numWeights: number) => Float32Array\n\nexport type ParamMapping = {\n originalPath?: string\n paramPath: string\n}\n\nexport type ConvParams = {\n filters: tf.Tensor4D\n bias: tf.Tensor1D\n}\n\nexport type FCParams = {\n weights: tf.Tensor2D\n bias: tf.Tensor1D\n}\n\nexport class SeparableConvParams {\n // eslint-disable-next-line no-useless-constructor\n constructor(\n // eslint-disable-next-line no-unused-vars\n public depthwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public pointwise_filter: tf.Tensor4D,\n // eslint-disable-next-line no-unused-vars\n public bias: tf.Tensor1D,\n // eslint-disable-next-line no-empty-function\n ) {}\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, SeparableConvParams } from './types';\n\nexport function extractSeparableConvParamsFactory(\n extractWeights: ExtractWeightsFunction,\n paramMappings: ParamMapping[],\n) {\n return (channelsIn: number, channelsOut: number, mappedPrefix: string): SeparableConvParams => {\n const depthwise_filter = tf.tensor4d(extractWeights(3 * 3 * channelsIn), [3, 3, channelsIn, 1]);\n const pointwise_filter = tf.tensor4d(extractWeights(channelsIn * channelsOut), [1, 1, channelsIn, channelsOut]);\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/depthwise_filter` },\n { paramPath: `${mappedPrefix}/pointwise_filter` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n\nexport function loadSeparableConvParamsFactory(\n // eslint-disable-next-line no-unused-vars\n extractWeightEntry: (originalPath: string, paramRank: number) => T,\n) {\n return (prefix: string): SeparableConvParams => {\n const depthwise_filter = extractWeightEntry(`${prefix}/depthwise_filter`, 4);\n const pointwise_filter = extractWeightEntry(`${prefix}/pointwise_filter`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return new SeparableConvParams(\n depthwise_filter,\n pointwise_filter,\n bias,\n );\n };\n}\n", "import { isTensor } from '../utils/index';\nimport { ParamMapping } from './types';\n\nexport function extractWeightEntryFactory(weightMap: any, paramMappings: ParamMapping[]) {\n return (originalPath: string, paramRank: number, mappedPath?: string) => {\n const tensor = weightMap[originalPath];\n\n if (!isTensor(tensor, paramRank)) {\n throw new Error(`expected weightMap[${originalPath}] to be a Tensor${paramRank}D, instead have ${tensor}`);\n }\n\n paramMappings.push(\n { originalPath, paramPath: mappedPath || originalPath },\n );\n\n return tensor;\n };\n}\n", "export function extractWeightsFactory(weights: Float32Array) {\n let remainingWeights = weights;\n\n function extractWeights(numWeights: number): Float32Array {\n const ret = remainingWeights.slice(0, numWeights);\n remainingWeights = remainingWeights.slice(numWeights);\n return ret;\n }\n\n function getRemainingWeights(): Float32Array {\n return remainingWeights;\n }\n\n return {\n extractWeights,\n getRemainingWeights,\n };\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractDenseBlock3Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv0`)\n : extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/conv0`);\n const conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv1`);\n const conv2 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(channelsIn: number, channelsOut: number, mappedPrefix: string, isFirstLayer = false): DenseBlock4Params {\n const { conv0, conv1, conv2 } = extractDenseBlock3Params(channelsIn, channelsOut, mappedPrefix, isFirstLayer);\n const conv3 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock4Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock4Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock4Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock4Params(64, 128, 'dense2');\n const dense3 = extractDenseBlock4Params(128, 256, 'dense3');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: {\n dense0, dense1, dense2, dense3,\n },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from './types';\n\n// eslint-disable-next-line no-unused-vars\nexport function loadConvParamsFactory(extractWeightEntry: (originalPath: string, paramRank: number) => T) {\n return (prefix: string): ConvParams => {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n\n return { filters, bias };\n };\n}\n", "import { extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { DenseBlock3Params, DenseBlock4Params } from './types';\n\nexport function loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractDenseBlock3Params(prefix: string, isFirstLayer = false): DenseBlock3Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n\n return { conv0, conv1, conv2 };\n }\n\n function extractDenseBlock4Params(prefix: string, isFirstLayer = false): DenseBlock4Params {\n const conv0 = isFirstLayer\n ? extractConvParams(`${prefix}/conv0`)\n : extractSeparableConvParams(`${prefix}/conv0`);\n const conv1 = extractSeparableConvParams(`${prefix}/conv1`);\n const conv2 = extractSeparableConvParams(`${prefix}/conv2`);\n const conv3 = extractSeparableConvParams(`${prefix}/conv3`);\n\n return {\n conv0, conv1, conv2, conv3,\n };\n }\n\n return {\n extractDenseBlock3Params,\n extractDenseBlock4Params,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { FaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: FaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock4Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock4Params('dense0', true),\n dense1: extractDenseBlock4Params('dense1'),\n dense2: extractDenseBlock4Params('dense2'),\n dense3: extractDenseBlock4Params('dense3'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock4 } from './denseBlock';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor } from './types';\n\nexport class FaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('FaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock4(normalized, params.dense0, true);\n out = denseBlock4(out, params.dense1);\n out = denseBlock4(out, params.dense2);\n out = denseBlock4(out, params.dense3);\n out = tf.avgPool(out, [7, 7], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from './types';\n\nexport function fullyConnectedLayer(\n x: tf.Tensor2D,\n params: FCParams,\n): tf.Tensor2D {\n return tf.tidy(() => tf.add(\n tf.matMul(x, params.weights),\n params.bias,\n ));\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array, channelsIn: number, channelsOut: number): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const fc = extractFCParams(channelsIn, channelsOut, 'fc');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: extractFcParams('fc'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function seperateWeightMaps(weightMap: tf.NamedTensorMap) {\n const featureExtractorMap: tf.NamedTensorMap = {};\n const classifierMap: tf.NamedTensorMap = {};\n\n Object.keys(weightMap).forEach((key) => {\n const map = key.startsWith('fc') ? classifierMap : featureExtractorMap;\n map[key] = weightMap[key];\n });\n\n return { featureExtractorMap, classifierMap };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { NetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { NetParams } from './types';\nimport { seperateWeightMaps } from './util';\n\nexport abstract class FaceProcessor<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends NeuralNetwork {\n protected _faceFeatureExtractor: IFaceFeatureExtractor;\n\n constructor(_name: string, faceFeatureExtractor: IFaceFeatureExtractor) {\n super(_name);\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): IFaceFeatureExtractor {\n return this._faceFeatureExtractor;\n }\n\n protected abstract override getDefaultModelName(): string\n\n protected abstract getClassifierChannelsIn(): number\n\n protected abstract getClassifierChannelsOut(): number\n\n public runNet(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n return fullyConnectedLayer(bottleneckFeatures.as2D(bottleneckFeatures.shape[0], -1), params.fc);\n });\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights, this.getClassifierChannelsIn(), this.getClassifierChannelsOut());\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const cIn = this.getClassifierChannelsIn();\n const cOut = this.getClassifierChannelsOut();\n const classifierWeightSize = (cOut * cIn) + cOut;\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "export const FACE_EXPRESSION_LABELS = ['neutral', 'happy', 'sad', 'angry', 'fearful', 'disgusted', 'surprised'];\n\nexport class FaceExpressions {\n public neutral = 0;\n public happy = 0;\n public sad = 0;\n public angry = 0;\n public fearful = 0;\n public disgusted = 0;\n public surprised = 0;\n\n constructor(probabilities: number[] | Float32Array) {\n if (probabilities.length !== 7) {\n throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${probabilities.length}`);\n }\n\n FACE_EXPRESSION_LABELS.forEach((expression, idx) => {\n this[expression] = probabilities[idx];\n });\n }\n\n asSortedArray() {\n return FACE_EXPRESSION_LABELS\n .map((expression) => ({ expression, probability: this[expression] as number }))\n .sort((e0, e1) => e1.probability - e0.probability);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { FaceExpressions } from './FaceExpressions';\n\nexport class FaceExpressionNet extends FaceProcessor {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceExpressionNet', faceFeatureExtractor);\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): tf.Tensor2D {\n return tf.tidy(() => tf.softmax(this.runNet(input)));\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictExpressions(input: TNetInput) {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n const probabilitesByBatch = await Promise.all(tf.unstack(out).map(async (t) => {\n const data = t.dataSync();\n t.dispose();\n return data;\n }));\n out.dispose();\n\n const predictionsByBatch = probabilitesByBatch\n .map((probabilites) => new FaceExpressions(probabilites as Float32Array));\n\n return netInput.isBatchInput\n ? predictionsByBatch\n : predictionsByBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_expression_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n\n protected getClassifierChannelsOut(): number {\n return 7;\n }\n}\n", "import { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\n\nexport type WithFaceExpressions = TSource & { expressions: FaceExpressions }\n\nexport function isWithFaceExpressions(obj: any): obj is WithFaceExpressions<{}> {\n return obj.expressions instanceof FaceExpressions;\n}\n\nexport function extendWithFaceExpressions(sourceObj: TSource, expressions: FaceExpressions): WithFaceExpressions {\n const extension = { expressions };\n return { ...sourceObj, ...extension };\n}\n", "import { IPoint, Point } from '../classes/index';\nimport { FaceExpressions } from '../faceExpressionNet/index';\nimport { isWithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { round } from '../utils/index';\nimport { DrawTextField } from './DrawTextField';\n\nexport type DrawFaceExpressionsInput = FaceExpressions | WithFaceExpressions<{}>\n\nexport function drawFaceExpressions(canvasArg: string | HTMLCanvasElement, faceExpressions: DrawFaceExpressionsInput | Array, minConfidence = 0.1, textFieldAnchor?: IPoint) {\n const faceExpressionsArray = Array.isArray(faceExpressions) ? faceExpressions : [faceExpressions];\n\n faceExpressionsArray.forEach((e) => {\n // eslint-disable-next-line no-nested-ternary\n const expr = e instanceof FaceExpressions\n ? e\n : (isWithFaceExpressions(e) ? e.expressions : undefined);\n if (!expr) {\n throw new Error('drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof');\n }\n\n const sorted = expr.asSortedArray();\n const resultsToDisplay = sorted.filter((exprLocal) => exprLocal.probability > minConfidence);\n\n const anchor = isWithFaceDetection(e)\n ? e.detection.box.bottomLeft\n : (textFieldAnchor || new Point(0, 0));\n\n const drawTextField = new DrawTextField(\n resultsToDisplay.map((exprLocal) => `${exprLocal.expression} (${round(exprLocal.probability)})`),\n anchor,\n );\n drawTextField.draw(canvasArg);\n });\n}\n", "import { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { isWithFaceDetection, WithFaceDetection } from './WithFaceDetection';\n\nexport type WithFaceLandmarks<\n TSource extends WithFaceDetection<{}>,\n TFaceLandmarks extends FaceLandmarks = FaceLandmarks68\n> = TSource & {\n landmarks: TFaceLandmarks;\n unshiftedLandmarks: TFaceLandmarks;\n alignedRect: FaceDetection;\n angle: {\n roll: number | undefined;\n pitch: number | undefined;\n yaw: number | undefined;\n };\n};\n\nexport function isWithFaceLandmarks(\n obj: any,\n): obj is WithFaceLandmarks, FaceLandmarks> {\n return (\n isWithFaceDetection(obj)\n // eslint-disable-next-line dot-notation\n && obj['landmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['unshiftedLandmarks'] instanceof FaceLandmarks\n // eslint-disable-next-line dot-notation\n && obj['alignedRect'] instanceof FaceDetection\n );\n}\n\nfunction calculateFaceAngle(mesh) {\n // Helper to convert radians to degrees\n // eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars\n const degrees = (radians) => (radians * 180) / Math.PI;\n const calcLengthBetweenTwoPoints = (a, b) => Math.sqrt((a._x - b._x) ** 2 + (a._y - b._y) ** 2);\n\n const angle = {\n roll: undefined,\n pitch: undefined,\n yaw: undefined,\n };\n\n const calcYaw = (leftPoint, midPoint, rightPoint) => {\n // Calc x-distance from left side of the face (\"ear\") to facial midpoint (\"nose\")\n const leftToMidpoint = Math.floor(leftPoint._x - midPoint._x);\n // Calc x-distance from facial midpoint (\"nose\") to the right side of the face (\"ear\")\n const rightToMidpoint = Math.floor(midPoint._x - rightPoint._x);\n // Difference in distances coincidentally approximates to angles\n return leftToMidpoint - rightToMidpoint;\n };\n\n const calcRoll = (lever, pivot) => {\n // When rolling, the head seems to pivot from the nose/lips/chin area.\n // So, we'll choose any two points from the facial midline, where the first point should be the pivot, and the other \"lever\"\n // Plan/Execution: get the hypotenuse & opposite sides of a 90deg triangle ==> Calculate angle in radians\n const hypotenuse = Math.hypot(pivot._x - lever._x, pivot._y - lever._y);\n const opposite = pivot._y - lever._y;\n const angleInRadians = Math.asin(opposite / hypotenuse);\n const angleInDegrees = degrees(angleInRadians);\n const normalizeAngle = Math.floor(90 - angleInDegrees);\n // If lever more to the left of the pivot, then we're tilting left\n // \"-\" is negative direction. \"+\", or absence of a sign is positive direction\n const tiltDirection = pivot._x - lever._x < 0 ? -1 : 1;\n const result = normalizeAngle * tiltDirection;\n return result;\n };\n\n const calcPitch = (leftPoint, midPoint, rightPoint) => {\n // Theory: While pitching, the nose is the most salient point --> That's what we'll use to make a trianle.\n // The \"base\" is between point that don't move when we pitch our head (i.e. an imaginary line running ear to ear through the nose).\n // Executuin: Get the opposite & adjacent lengths of the triangle from the ear's perspective. Use it to get angle.\n\n const base = calcLengthBetweenTwoPoints(leftPoint, rightPoint);\n // adjecent is base/2 technically.\n const baseCoords = {\n _x: (leftPoint._x + rightPoint._x) / 2,\n _y: (leftPoint._y + rightPoint._y) / 2,\n };\n const midToBaseLength = calcLengthBetweenTwoPoints(midPoint, baseCoords);\n const angleInRadians = Math.atan(midToBaseLength / base);\n const angleInDegrees = Math.floor(degrees(angleInRadians));\n // Account for directionality.\n // pitch forwards (_i.e. tilting your head forwards) is positive (or no sign); backward is negative.\n const direction = baseCoords._y - midPoint._y < 0 ? -1 : 1;\n const result = angleInDegrees * direction;\n return result;\n };\n\n if (!mesh || !mesh._positions || mesh._positions.length !== 68) return angle;\n const pt = mesh._positions;\n angle.roll = calcRoll(pt[27], pt[66]);\n angle.pitch = calcPitch(pt[14], pt[30], pt[2]);\n angle.yaw = calcYaw(pt[14], pt[33], pt[2]);\n return angle;\n}\n\nexport function extendWithFaceLandmarks, TFaceLandmarks extends FaceLandmarks = FaceLandmarks68>(\n sourceObj: TSource,\n unshiftedLandmarks: TFaceLandmarks,\n): WithFaceLandmarks {\n const { box: shift } = sourceObj.detection;\n const landmarks = unshiftedLandmarks.shiftBy(shift.x, shift.y);\n const rect = landmarks.align();\n const { imageDims } = sourceObj.detection;\n const alignedRect = new FaceDetection(\n sourceObj.detection.score,\n rect.rescale(imageDims.reverse()),\n imageDims,\n );\n const angle = calculateFaceAngle(unshiftedLandmarks);\n const extension = { landmarks, unshiftedLandmarks, alignedRect, angle };\n return { ...sourceObj, ...extension };\n}\n", "/* eslint-disable max-classes-per-file */\nimport { IPoint } from '../classes/index';\nimport { FaceLandmarks } from '../classes/FaceLandmarks';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { getContext2dOrThrow } from '../dom/getContext2dOrThrow';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { drawContour } from './drawContour';\n\nexport interface IDrawFaceLandmarksOptions {\n drawLines?: boolean\n drawPoints?: boolean\n lineWidth?: number\n pointSize?: number\n lineColor?: string\n pointColor?: string\n}\n\nexport class DrawFaceLandmarksOptions {\n public drawLines: boolean;\n\n public drawPoints: boolean;\n\n public lineWidth: number;\n\n public pointSize: number;\n\n public lineColor: string;\n\n public pointColor: string;\n\n constructor(options: IDrawFaceLandmarksOptions = {}) {\n const {\n drawLines = true, drawPoints = true, lineWidth, lineColor, pointSize, pointColor,\n } = options;\n this.drawLines = drawLines;\n this.drawPoints = drawPoints;\n this.lineWidth = lineWidth || 1;\n this.pointSize = pointSize || 2;\n this.lineColor = lineColor || 'rgba(0, 255, 255, 1)';\n this.pointColor = pointColor || 'rgba(255, 0, 255, 1)';\n }\n}\n\nexport class DrawFaceLandmarks {\n public faceLandmarks: FaceLandmarks;\n\n public options: DrawFaceLandmarksOptions;\n\n constructor(\n faceLandmarks: FaceLandmarks,\n options: IDrawFaceLandmarksOptions = {},\n ) {\n this.faceLandmarks = faceLandmarks;\n this.options = new DrawFaceLandmarksOptions(options);\n }\n\n draw(canvasArg: string | HTMLCanvasElement | CanvasRenderingContext2D) {\n const ctx = getContext2dOrThrow(canvasArg);\n\n const {\n drawLines, drawPoints, lineWidth, lineColor, pointSize, pointColor,\n } = this.options;\n\n if (drawLines && this.faceLandmarks instanceof FaceLandmarks68) {\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n drawContour(ctx, this.faceLandmarks.getJawOutline());\n drawContour(ctx, this.faceLandmarks.getLeftEyeBrow());\n drawContour(ctx, this.faceLandmarks.getRightEyeBrow());\n drawContour(ctx, this.faceLandmarks.getNose());\n drawContour(ctx, this.faceLandmarks.getLeftEye(), true);\n drawContour(ctx, this.faceLandmarks.getRightEye(), true);\n drawContour(ctx, this.faceLandmarks.getMouth(), true);\n }\n\n if (drawPoints) {\n ctx.strokeStyle = pointColor;\n ctx.fillStyle = pointColor;\n\n const drawPoint = (pt: IPoint) => {\n ctx.beginPath();\n ctx.arc(pt.x, pt.y, pointSize, 0, 2 * Math.PI);\n ctx.fill();\n };\n this.faceLandmarks.positions.forEach(drawPoint);\n }\n }\n}\n\nexport type DrawFaceLandmarksInput = FaceLandmarks | WithFaceLandmarks>\n\nexport function drawFaceLandmarks(\n canvasArg: string | HTMLCanvasElement,\n faceLandmarks: DrawFaceLandmarksInput | Array,\n) {\n const faceLandmarksArray = Array.isArray(faceLandmarks) ? faceLandmarks : [faceLandmarks];\n faceLandmarksArray.forEach((f) => {\n // eslint-disable-next-line no-nested-ternary\n const landmarks = f instanceof FaceLandmarks\n ? f\n : (isWithFaceLandmarks(f) ? f.landmarks : undefined);\n if (!landmarks) {\n throw new Error('drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof');\n }\n\n new DrawFaceLandmarks(landmarks).draw(canvasArg);\n });\n}\n", "import { extractConvParamsFactory, extractSeparableConvParamsFactory, extractWeightsFactory } from '../common/index';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n function extractReductionBlockParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(channelsIn, channelsOut, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channelsOut, channelsOut, `${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(channels: number, mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(channels, channels, `${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParams(weights: Float32Array, numMainBlocks: number): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const entry_flow_conv_in = extractConvParams(3, 32, 3, 'entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams(32, 64, 'entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams(64, 128, 'entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(128, `middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams(128, 256, 'exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams(256, 512, 'exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { entry_flow, middle_flow, exit_flow },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, loadSeparableConvParamsFactory, ParamMapping } from '../common/index';\nimport { loadConvParamsFactory } from '../common/loadConvParamsFactory';\nimport { range } from '../utils/index';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction loadParamsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n const extractConvParams = loadConvParamsFactory(extractWeightEntry);\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n\n function extractReductionBlockParams(mappedPrefix: string): ReductionBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const expansion_conv = extractConvParams(`${mappedPrefix}/expansion_conv`);\n\n return { separable_conv0, separable_conv1, expansion_conv };\n }\n\n function extractMainBlockParams(mappedPrefix: string): MainBlockParams {\n const separable_conv0 = extractSeparableConvParams(`${mappedPrefix}/separable_conv0`);\n const separable_conv1 = extractSeparableConvParams(`${mappedPrefix}/separable_conv1`);\n const separable_conv2 = extractSeparableConvParams(`${mappedPrefix}/separable_conv2`);\n\n return { separable_conv0, separable_conv1, separable_conv2 };\n }\n\n return {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n numMainBlocks: number,\n): { params: TinyXceptionParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractSeparableConvParams,\n extractReductionBlockParams,\n extractMainBlockParams,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const entry_flow_conv_in = extractConvParams('entry_flow/conv_in');\n const entry_flow_reduction_block_0 = extractReductionBlockParams('entry_flow/reduction_block_0');\n const entry_flow_reduction_block_1 = extractReductionBlockParams('entry_flow/reduction_block_1');\n\n const entry_flow = {\n conv_in: entry_flow_conv_in,\n reduction_block_0: entry_flow_reduction_block_0,\n reduction_block_1: entry_flow_reduction_block_1,\n };\n\n const middle_flow = {};\n range(numMainBlocks, 0, 1).forEach((idx) => {\n middle_flow[`main_block_${idx}`] = extractMainBlockParams(`middle_flow/main_block_${idx}`);\n });\n\n const exit_flow_reduction_block = extractReductionBlockParams('exit_flow/reduction_block');\n const exit_flow_separable_conv = extractSeparableConvParams('exit_flow/separable_conv');\n\n const exit_flow = {\n reduction_block: exit_flow_reduction_block,\n separable_conv: exit_flow_separable_conv,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params: { entry_flow, middle_flow, exit_flow }, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, depthwiseSeparableConv } from '../common/index';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { range } from '../utils/index';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { MainBlockParams, ReductionBlockParams, TinyXceptionParams } from './types';\n\nfunction conv(x: tf.Tensor4D, params: ConvParams, stride: [number, number]): tf.Tensor4D {\n return tf.add(tf.conv2d(x, params.filters, stride, 'same'), params.bias);\n}\n\nfunction reductionBlock(x: tf.Tensor4D, params: ReductionBlockParams, isActivateInput = true): tf.Tensor4D {\n let out = isActivateInput ? tf.relu(x) : x;\n out = depthwiseSeparableConv(out, params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = tf.maxPool(out, [3, 3], [2, 2], 'same');\n out = tf.add(out, conv(x, params.expansion_conv, [2, 2]));\n return out;\n}\n\nfunction mainBlock(x: tf.Tensor4D, params: MainBlockParams): tf.Tensor4D {\n let out = depthwiseSeparableConv(tf.relu(x), params.separable_conv0, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv1, [1, 1]);\n out = depthwiseSeparableConv(tf.relu(out), params.separable_conv2, [1, 1]);\n out = tf.add(out, x);\n return out;\n}\n\nexport class TinyXception extends NeuralNetwork {\n private _numMainBlocks: number;\n\n constructor(numMainBlocks: number) {\n super('TinyXception');\n this._numMainBlocks = numMainBlocks;\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n if (!params) {\n throw new Error('TinyXception - load model before inference');\n }\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n let out = tf.relu(conv(normalized, params.entry_flow.conv_in, [2, 2]));\n out = reductionBlock(out, params.entry_flow.reduction_block_0, false);\n out = reductionBlock(out, params.entry_flow.reduction_block_1);\n range(this._numMainBlocks, 0, 1).forEach((idx) => {\n out = mainBlock(out, params.middle_flow[`main_block_${idx}`]);\n });\n out = reductionBlock(out, params.exit_flow.reduction_block);\n out = tf.relu(depthwiseSeparableConv(out, params.exit_flow.separable_conv, [1, 1]));\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'tiny_xception_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this._numMainBlocks);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights, this._numMainBlocks);\n }\n}\n", "import { extractFCParamsFactory, extractWeightsFactory, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const extractFCParams = extractFCParamsFactory(extractWeights, paramMappings);\n\n const age = extractFCParams(512, 1, 'fc/age');\n const gender = extractFCParams(512, 2, 'fc/gender');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { fc: { age, gender } },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, FCParams, ParamMapping } from '../common/index';\nimport { NetParams } from './types';\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractFcParams(prefix: string): FCParams {\n const weights = extractWeightEntry(`${prefix}/weights`, 2);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { weights, bias };\n }\n\n const params = {\n fc: {\n age: extractFcParams('fc/age'),\n gender: extractFcParams('fc/gender'),\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FCParams } from '../common/index';\n\n// eslint-disable-next-line no-shadow\nexport enum Gender {\n // eslint-disable-next-line no-unused-vars\n FEMALE = 'female',\n // eslint-disable-next-line no-unused-vars\n MALE = 'male'\n}\n\nexport type AgeAndGenderPrediction = {\n age: number\n gender: Gender\n genderProbability: number\n}\n\nexport type NetOutput = { age: tf.Tensor1D, gender: tf.Tensor2D }\n\nexport type NetParams = {\n fc: {\n age: FCParams\n gender: FCParams\n }\n}\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport { fullyConnectedLayer } from '../common/fullyConnectedLayer';\nimport { seperateWeightMaps } from '../faceProcessor/util';\nimport { TinyXception } from '../xception/TinyXception';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { AgeAndGenderPrediction, Gender, NetOutput, NetParams } from './types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\n\nexport class AgeGenderNet extends NeuralNetwork {\n private _faceFeatureExtractor: TinyXception;\n\n constructor(faceFeatureExtractor: TinyXception = new TinyXception(2)) {\n super('AgeGenderNet');\n this._faceFeatureExtractor = faceFeatureExtractor;\n }\n\n public get faceFeatureExtractor(): TinyXception {\n return this._faceFeatureExtractor;\n }\n\n public runNet(input: NetInput | tf.Tensor4D): NetOutput {\n const { params } = this;\n\n if (!params) {\n throw new Error(`${this._name} - load model before inference`);\n }\n\n return tf.tidy(() => {\n const bottleneckFeatures = input instanceof NetInput\n ? this.faceFeatureExtractor.forwardInput(input)\n : input;\n\n const pooled = tf.avgPool(bottleneckFeatures, [7, 7], [2, 2], 'valid').as2D(bottleneckFeatures.shape[0], -1);\n const age = fullyConnectedLayer(pooled, params.fc.age).as1D();\n const gender = fullyConnectedLayer(pooled, params.fc.gender);\n return { age, gender };\n });\n }\n\n public forwardInput(input: NetInput | tf.Tensor4D): NetOutput {\n return tf.tidy(() => {\n const { age, gender } = this.runNet(input);\n return { age, gender: tf.softmax(gender) };\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async predictAgeAndGender(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput);\n\n const ages = tf.unstack(out.age);\n const genders = tf.unstack(out.gender);\n const ageAndGenderTensors = ages.map((ageTensor, i) => ({\n ageTensor,\n genderTensor: genders[i],\n }));\n\n const predictionsByBatch = await Promise.all(\n ageAndGenderTensors.map(async ({ ageTensor, genderTensor }) => {\n const age = (ageTensor.dataSync())[0];\n const probMale = (genderTensor.dataSync())[0];\n const isMale = probMale > 0.5;\n const gender = isMale ? Gender.MALE : Gender.FEMALE;\n const genderProbability = isMale ? probMale : (1 - probMale);\n\n ageTensor.dispose();\n genderTensor.dispose();\n return { age, gender, genderProbability };\n }),\n );\n out.age.dispose();\n out.gender.dispose();\n\n return netInput.isBatchInput ? predictionsByBatch as AgeAndGenderPrediction[] : predictionsByBatch[0] as AgeAndGenderPrediction;\n }\n\n protected getDefaultModelName(): string {\n return 'age_gender_model';\n }\n\n public override dispose(throwOnRedispose = true) {\n this.faceFeatureExtractor.dispose(throwOnRedispose);\n super.dispose(throwOnRedispose);\n }\n\n public loadClassifierParams(weights: Float32Array) {\n const { params, paramMappings } = this.extractClassifierParams(weights);\n this._params = params;\n this._paramMappings = paramMappings;\n }\n\n public extractClassifierParams(weights: Float32Array) {\n return extractParams(weights);\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n const { featureExtractorMap, classifierMap } = seperateWeightMaps(weightMap);\n\n this.faceFeatureExtractor.loadFromWeightMap(featureExtractorMap);\n\n return extractParamsFromWeightMap(classifierMap);\n }\n\n protected extractParams(weights: Float32Array) {\n const classifierWeightSize = (512 * 1 + 1) + (512 * 2 + 2);\n\n const featureExtractorWeights = weights.slice(0, weights.length - classifierWeightSize);\n const classifierWeights = weights.slice(weights.length - classifierWeightSize);\n\n this.faceFeatureExtractor.extractWeights(featureExtractorWeights);\n return this.extractClassifierParams(classifierWeights);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { IDimensions, Point } from '../classes/index';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { FaceFeatureExtractorParams, TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceProcessor } from '../faceProcessor/FaceProcessor';\nimport { isEven } from '../utils/index';\n\nexport abstract class FaceLandmark68NetBase<\n TExtractorParams extends FaceFeatureExtractorParams | TinyFaceFeatureExtractorParams\n>\n extends FaceProcessor {\n public postProcess(output: tf.Tensor2D, inputSize: number, originalDimensions: IDimensions[]): tf.Tensor2D {\n const inputDimensions = originalDimensions.map(({ width, height }) => {\n const scale = inputSize / Math.max(height, width);\n return {\n width: width * scale,\n height: height * scale,\n };\n });\n\n const batchSize = inputDimensions.length;\n\n return tf.tidy(() => {\n const createInterleavedTensor = (fillX: number, fillY: number) => tf.stack([tf.fill([68], fillX, 'float32'), tf.fill([68], fillY, 'float32')], 1).as2D(1, 136).as1D();\n\n // eslint-disable-next-line no-unused-vars\n const getPadding = (batchIdx: number, cond: (w: number, h: number) => boolean): number => {\n const { width, height } = inputDimensions[batchIdx];\n return cond(width, height) ? Math.abs(width - height) / 2 : 0;\n };\n\n const getPaddingX = (batchIdx: number) => getPadding(batchIdx, (w, h) => w < h);\n const getPaddingY = (batchIdx: number) => getPadding(batchIdx, (w, h) => h < w);\n\n const landmarkTensors = output\n .mul(tf.fill([batchSize, 136], inputSize, 'float32'))\n .sub(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n getPaddingX(batchIdx),\n getPaddingY(batchIdx),\n ))))\n .div(tf.stack(Array.from(Array(batchSize), (_, batchIdx) => createInterleavedTensor(\n inputDimensions[batchIdx].width,\n inputDimensions[batchIdx].height,\n ))));\n\n return landmarkTensors as tf.Tensor2D;\n });\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n return tf.tidy(() => {\n const out = this.runNet(input);\n return this.postProcess(\n out,\n input.inputSize as number,\n input.inputDimensions.map(([height, width]) => ({ height, width })),\n );\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async detectLandmarks(input: TNetInput): Promise {\n const netInput = await toNetInput(input);\n const landmarkTensors = tf.tidy(\n () => tf.unstack(this.forwardInput(netInput)),\n );\n\n const landmarksForBatch = await Promise.all(landmarkTensors.map(\n async (landmarkTensor, batchIdx) => {\n const landmarksArray = Array.from(landmarkTensor.dataSync());\n const xCoords = landmarksArray.filter((_, i) => isEven(i));\n const yCoords = landmarksArray.filter((_, i) => !isEven(i));\n\n return new FaceLandmarks68(\n Array(68).fill(0).map((_, i) => new Point(xCoords[i] as number, yCoords[i] as number)),\n {\n height: netInput.getInputHeight(batchIdx),\n width: netInput.getInputWidth(batchIdx),\n },\n );\n },\n ));\n\n landmarkTensors.forEach((t) => t.dispose());\n\n return netInput.isBatchInput ? landmarksForBatch as FaceLandmarks68[] : landmarksForBatch[0] as FaceLandmarks68;\n }\n\n protected getClassifierChannelsOut(): number {\n return 136;\n }\n}\n", "import { FaceFeatureExtractor } from '../faceFeatureExtractor/FaceFeatureExtractor';\nimport { FaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68Net extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: FaceFeatureExtractor = new FaceFeatureExtractor()) {\n super('FaceLandmark68Net', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 256;\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, ParamMapping } from '../common/index';\nimport { loadParamsFactory } from './loadParamsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsFromWeightMapTiny(\n weightMap: tf.NamedTensorMap,\n): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractDenseBlock3Params,\n } = loadParamsFactory(weightMap, paramMappings);\n\n const params = {\n dense0: extractDenseBlock3Params('dense0', true),\n dense1: extractDenseBlock3Params('dense1'),\n dense2: extractDenseBlock3Params('dense2'),\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import { extractWeightsFactory, ParamMapping } from '../common/index';\nimport { extractorsFactory } from './extractorsFactory';\nimport { TinyFaceFeatureExtractorParams } from './types';\n\nexport function extractParamsTiny(weights: Float32Array): { params: TinyFaceFeatureExtractorParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const {\n extractDenseBlock3Params,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const dense0 = extractDenseBlock3Params(3, 32, 'dense0', true);\n const dense1 = extractDenseBlock3Params(32, 64, 'dense1');\n const dense2 = extractDenseBlock3Params(64, 128, 'dense2');\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n paramMappings,\n params: { dense0, dense1, dense2 },\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { denseBlock3 } from './denseBlock';\nimport { extractParamsFromWeightMapTiny } from './extractParamsFromWeightMapTiny';\nimport { extractParamsTiny } from './extractParamsTiny';\nimport { IFaceFeatureExtractor, TinyFaceFeatureExtractorParams } from './types';\n\nexport class TinyFaceFeatureExtractor extends NeuralNetwork implements IFaceFeatureExtractor {\n constructor() {\n super('TinyFaceFeatureExtractor');\n }\n\n public forwardInput(input: NetInput): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyFaceFeatureExtractor - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(112, true), 'float32');\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = denseBlock3(normalized, params.dense0, true);\n out = denseBlock3(out, params.dense1);\n out = denseBlock3(out, params.dense2);\n out = tf.avgPool(out, [14, 14], [2, 2], 'valid');\n\n return out;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n protected getDefaultModelName(): string {\n return 'face_feature_extractor_tiny_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMapTiny(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParamsTiny(weights);\n }\n}\n", "import { TinyFaceFeatureExtractor } from '../faceFeatureExtractor/TinyFaceFeatureExtractor';\nimport { TinyFaceFeatureExtractorParams } from '../faceFeatureExtractor/types';\nimport { FaceLandmark68NetBase } from './FaceLandmark68NetBase';\n\nexport class FaceLandmark68TinyNet extends FaceLandmark68NetBase {\n constructor(faceFeatureExtractor: TinyFaceFeatureExtractor = new TinyFaceFeatureExtractor()) {\n super('FaceLandmark68TinyNet', faceFeatureExtractor);\n }\n\n protected getDefaultModelName(): string {\n return 'face_landmark_68_tiny_model';\n }\n\n protected getClassifierChannelsIn(): number {\n return 128;\n }\n}\n", "import { FaceLandmark68Net } from './FaceLandmark68Net';\n\nexport * from './FaceLandmark68Net';\nexport * from './FaceLandmark68TinyNet';\nexport class FaceLandmarkNet extends FaceLandmark68Net {}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ScaleLayerParams } from './types';\n\nexport function scale(x: tf.Tensor4D, params: ScaleLayerParams): tf.Tensor4D {\n return tf.add(tf.mul(x, params.weights), params.biases);\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { scale } from './scaleLayer';\nimport { ConvLayerParams } from './types';\n\nfunction convLayer(\n x: tf.Tensor4D,\n params: ConvLayerParams,\n strides: [number, number],\n withRelu: boolean,\n padding: 'valid' | 'same' = 'same',\n): tf.Tensor4D {\n const { filters, bias } = params.conv;\n\n let out = tf.conv2d(x, filters, strides, padding);\n out = tf.add(out, bias);\n out = scale(out, params.scale);\n return withRelu ? tf.relu(out) : out;\n}\n\nexport function conv(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], true);\n}\n\nexport function convNoRelu(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [1, 1], false);\n}\n\nexport function convDown(x: tf.Tensor4D, params: ConvLayerParams) {\n return convLayer(x, params, [2, 2], true, 'valid');\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, extractWeightsFactory, ExtractWeightsFunction, ParamMapping } from '../common/index';\nimport { isFloat } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractFilterValues(numFilterValues: number, numFilters: number, filterSize: number): tf.Tensor4D {\n const weights = extractWeights(numFilterValues);\n const depth = weights.length / (numFilters * filterSize * filterSize);\n\n if (isFloat(depth)) {\n throw new Error(`depth has to be an integer: ${depth}, weights.length: ${weights.length}, numFilters: ${numFilters}, filterSize: ${filterSize}`);\n }\n\n return tf.tidy(\n () => tf.transpose(\n tf.tensor4d(weights, [numFilters, depth, filterSize, filterSize]),\n [2, 3, 1, 0],\n ),\n );\n }\n\n function extractConvParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvParams {\n const filters = extractFilterValues(numFilterValues, numFilters, filterSize);\n const bias = tf.tensor1d(extractWeights(numFilters));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/bias` },\n );\n\n return { filters, bias };\n }\n\n function extractScaleLayerParams(numWeights: number, mappedPrefix: string): ScaleLayerParams {\n const weights = tf.tensor1d(extractWeights(numWeights));\n const biases = tf.tensor1d(extractWeights(numWeights));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/weights` },\n { paramPath: `${mappedPrefix}/biases` },\n );\n\n return {\n weights,\n biases,\n };\n }\n\n function extractConvLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n ): ConvLayerParams {\n const conv = extractConvParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv`);\n const scale = extractScaleLayerParams(numFilters, `${mappedPrefix}/scale`);\n\n return { conv, scale };\n }\n\n function extractResidualLayerParams(\n numFilterValues: number,\n numFilters: number,\n filterSize: number,\n mappedPrefix: string,\n isDown = false,\n ): ResidualLayerParams {\n const conv1 = extractConvLayerParams((isDown ? 0.5 : 1) * numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv1`);\n const conv2 = extractConvLayerParams(numFilterValues, numFilters, filterSize, `${mappedPrefix}/conv2`);\n\n return { conv1, conv2 };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n\n const conv32_down = extractConvLayerParams(4704, 32, 7, 'conv32_down');\n const conv32_1 = extractResidualLayerParams(9216, 32, 3, 'conv32_1');\n const conv32_2 = extractResidualLayerParams(9216, 32, 3, 'conv32_2');\n const conv32_3 = extractResidualLayerParams(9216, 32, 3, 'conv32_3');\n\n const conv64_down = extractResidualLayerParams(36864, 64, 3, 'conv64_down', true);\n const conv64_1 = extractResidualLayerParams(36864, 64, 3, 'conv64_1');\n const conv64_2 = extractResidualLayerParams(36864, 64, 3, 'conv64_2');\n const conv64_3 = extractResidualLayerParams(36864, 64, 3, 'conv64_3');\n\n const conv128_down = extractResidualLayerParams(147456, 128, 3, 'conv128_down', true);\n const conv128_1 = extractResidualLayerParams(147456, 128, 3, 'conv128_1');\n const conv128_2 = extractResidualLayerParams(147456, 128, 3, 'conv128_2');\n\n const conv256_down = extractResidualLayerParams(589824, 256, 3, 'conv256_down', true);\n const conv256_1 = extractResidualLayerParams(589824, 256, 3, 'conv256_1');\n const conv256_2 = extractResidualLayerParams(589824, 256, 3, 'conv256_2');\n const conv256_down_out = extractResidualLayerParams(589824, 256, 3, 'conv256_down_out');\n\n const fc = tf.tidy(\n () => tf.transpose(tf.tensor2d(extractWeights(256 * 128), [128, 256]), [1, 0]),\n );\n paramMappings.push({ paramPath: 'fc' });\n\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor2D } from '../utils/index';\nimport { ConvLayerParams, NetParams, ResidualLayerParams, ScaleLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractScaleLayerParams(prefix: string): ScaleLayerParams {\n const weights = extractWeightEntry(`${prefix}/scale/weights`, 1);\n const biases = extractWeightEntry(`${prefix}/scale/biases`, 1);\n\n return { weights, biases };\n }\n\n function extractConvLayerParams(prefix: string): ConvLayerParams {\n const filters = extractWeightEntry(`${prefix}/conv/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/conv/bias`, 1);\n const scale = extractScaleLayerParams(prefix);\n\n return { conv: { filters, bias }, scale };\n }\n\n function extractResidualLayerParams(prefix: string): ResidualLayerParams {\n return {\n conv1: extractConvLayerParams(`${prefix}/conv1`),\n conv2: extractConvLayerParams(`${prefix}/conv2`),\n };\n }\n\n return {\n extractConvLayerParams,\n extractResidualLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvLayerParams,\n extractResidualLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n const conv32_down = extractConvLayerParams('conv32_down');\n const conv32_1 = extractResidualLayerParams('conv32_1');\n const conv32_2 = extractResidualLayerParams('conv32_2');\n const conv32_3 = extractResidualLayerParams('conv32_3');\n\n const conv64_down = extractResidualLayerParams('conv64_down');\n const conv64_1 = extractResidualLayerParams('conv64_1');\n const conv64_2 = extractResidualLayerParams('conv64_2');\n const conv64_3 = extractResidualLayerParams('conv64_3');\n\n const conv128_down = extractResidualLayerParams('conv128_down');\n const conv128_1 = extractResidualLayerParams('conv128_1');\n const conv128_2 = extractResidualLayerParams('conv128_2');\n\n const conv256_down = extractResidualLayerParams('conv256_down');\n const conv256_1 = extractResidualLayerParams('conv256_1');\n const conv256_2 = extractResidualLayerParams('conv256_2');\n const conv256_down_out = extractResidualLayerParams('conv256_down_out');\n\n const { fc } = weightMap;\n paramMappings.push({ originalPath: 'fc', paramPath: 'fc' });\n\n if (!isTensor2D(fc)) {\n throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${fc}`);\n }\n\n const params = {\n conv32_down,\n conv32_1,\n conv32_2,\n conv32_3,\n conv64_down,\n conv64_1,\n conv64_2,\n conv64_3,\n conv128_down,\n conv128_1,\n conv128_2,\n conv256_down,\n conv256_1,\n conv256_2,\n conv256_down_out,\n fc,\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { conv, convDown, convNoRelu } from './convLayer';\nimport { ResidualLayerParams } from './types';\n\nexport function residual(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = conv(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n out = tf.add(out, x);\n out = tf.relu(out);\n return out;\n}\n\nexport function residualDown(x: tf.Tensor4D, params: ResidualLayerParams): tf.Tensor4D {\n let out = convDown(x, params.conv1);\n out = convNoRelu(out, params.conv2);\n\n let pooled = tf.avgPool(x, 2, 2, 'valid') as tf.Tensor4D;\n const zeros = tf.zeros(pooled.shape);\n const isPad = pooled.shape[3] !== out.shape[3];\n const isAdjustShape = pooled.shape[1] !== out.shape[1] || pooled.shape[2] !== out.shape[2];\n\n if (isAdjustShape) {\n const padShapeX = [...out.shape] as [number, number, number, number];\n padShapeX[1] = 1;\n const zerosW = tf.zeros(padShapeX);\n out = tf.concat([out, zerosW], 1);\n\n const padShapeY = [...out.shape] as [number, number, number, number];\n padShapeY[2] = 1;\n const zerosH = tf.zeros(padShapeY);\n out = tf.concat([out, zerosH], 2);\n }\n\n pooled = isPad ? tf.concat([pooled, zeros], 3) : pooled;\n out = tf.add(pooled, out) as tf.Tensor4D;\n\n out = tf.relu(out);\n return out;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { normalize } from '../ops/index';\nimport { convDown } from './convLayer';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { residual, residualDown } from './residualLayer';\nimport { NetParams } from './types';\n\nexport class FaceRecognitionNet extends NeuralNetwork {\n constructor() {\n super('FaceRecognitionNet');\n }\n\n public forwardInput(input: NetInput): tf.Tensor2D {\n const { params } = this;\n\n if (!params) {\n throw new Error('FaceRecognitionNet - load model before inference');\n }\n\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(150, true), 'float32');\n\n const meanRgb = [122.782, 117.001, 104.298];\n const normalized = normalize(batchTensor, meanRgb).div(255) as tf.Tensor4D;\n\n let out = convDown(normalized, params.conv32_down);\n out = tf.maxPool(out, 3, 2, 'valid');\n\n out = residual(out, params.conv32_1);\n out = residual(out, params.conv32_2);\n out = residual(out, params.conv32_3);\n\n out = residualDown(out, params.conv64_down);\n out = residual(out, params.conv64_1);\n out = residual(out, params.conv64_2);\n out = residual(out, params.conv64_3);\n\n out = residualDown(out, params.conv128_down);\n out = residual(out, params.conv128_1);\n out = residual(out, params.conv128_2);\n\n out = residualDown(out, params.conv256_down);\n out = residual(out, params.conv256_1);\n out = residual(out, params.conv256_2);\n out = residualDown(out, params.conv256_down_out);\n\n const globalAvg = out.mean([1, 2]) as tf.Tensor2D;\n const fullyConnected = tf.matMul(globalAvg, params.fc);\n\n return fullyConnected as tf.Tensor2D;\n });\n }\n\n public async forward(input: TNetInput): Promise {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async computeFaceDescriptor(input: TNetInput): Promise {\n // @ts-ignore\n if (input?.shape?.some((dim) => dim <= 0)) return new Float32Array(128);\n const netInput = await toNetInput(input);\n const faceDescriptorTensors = tf.tidy(() => tf.unstack(this.forwardInput(netInput)));\n const faceDescriptorsForBatch = await Promise.all(faceDescriptorTensors.map((t) => t.data())) as Float32Array[];\n faceDescriptorTensors.forEach((t) => t.dispose());\n return netInput.isBatchInput ? faceDescriptorsForBatch : faceDescriptorsForBatch[0];\n }\n\n protected getDefaultModelName(): string {\n return 'face_recognition_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { FaceRecognitionNet } from './FaceRecognitionNet';\n\nexport * from './FaceRecognitionNet';\n\nexport function createFaceRecognitionNet(weights: Float32Array) {\n const net = new FaceRecognitionNet();\n net.extractWeights(weights);\n return net;\n}\n", "export type WithFaceDescriptor = TSource & {\n descriptor: Float32Array\n}\n\nexport function extendWithFaceDescriptor<\n TSource\n>(\n sourceObj: TSource,\n descriptor: Float32Array,\n): WithFaceDescriptor {\n const extension = { descriptor };\n return { ...sourceObj, ...extension };\n}\n", "export type WithAge = TSource & {\n age: number\n}\n\nexport function isWithAge(obj: any): obj is WithAge<{}> {\n return typeof obj.age === 'number';\n}\n\nexport function extendWithAge<\n TSource\n>(\n sourceObj: TSource,\n age: number,\n): WithAge {\n const extension = { age };\n return { ...sourceObj, ...extension };\n}\n", "import { Gender } from '../ageGenderNet/types';\nimport { isValidProbablitiy } from '../utils/index';\n\nexport type WithGender = TSource & {\n gender: Gender\n genderProbability: number\n}\n\nexport function isWithGender(obj: any): obj is WithGender<{}> {\n return (obj.gender === Gender.MALE || obj.gender === Gender.FEMALE)\n && isValidProbablitiy(obj.genderProbability);\n}\n\nexport function extendWithGender<\n TSource\n>(\n sourceObj: TSource,\n gender: Gender,\n genderProbability: number,\n): WithGender {\n const extension = { gender, genderProbability };\n return { ...sourceObj, ...extension };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ExtractWeightsFunction, ParamMapping, ConvParams, extractWeightsFactory } from '../common/index';\nimport { MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n function extractDepthwiseConvParams(numChannels: number, mappedPrefix: string): MobileNetV1.DepthwiseConvParams {\n const filters = tf.tensor4d(extractWeights(3 * 3 * numChannels), [3, 3, numChannels, 1]);\n const batch_norm_scale = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_offset = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_mean = tf.tensor1d(extractWeights(numChannels));\n const batch_norm_variance = tf.tensor1d(extractWeights(numChannels));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/batch_norm_scale` },\n { paramPath: `${mappedPrefix}/batch_norm_offset` },\n { paramPath: `${mappedPrefix}/batch_norm_mean` },\n { paramPath: `${mappedPrefix}/batch_norm_variance` },\n );\n\n return {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n };\n }\n\n function extractConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n isPointwiseConv?: boolean,\n ): ConvParams {\n const filters = tf.tensor4d(\n extractWeights(channelsIn * channelsOut * filterSize * filterSize),\n [filterSize, filterSize, channelsIn, channelsOut],\n );\n const bias = tf.tensor1d(extractWeights(channelsOut));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/filters` },\n { paramPath: `${mappedPrefix}/${isPointwiseConv ? 'batch_norm_offset' : 'bias'}` },\n );\n\n return { filters, bias };\n }\n\n function extractPointwiseConvParams(\n channelsIn: number,\n channelsOut: number,\n filterSize: number,\n mappedPrefix: string,\n ): PointwiseConvParams {\n const {\n filters,\n bias,\n } = extractConvParams(channelsIn, channelsOut, filterSize, mappedPrefix, true);\n\n return {\n filters,\n batch_norm_offset: bias,\n };\n }\n\n function extractConvPairParams(\n channelsIn: number,\n channelsOut: number,\n mappedPrefix: string,\n ): MobileNetV1.ConvPairParams {\n const depthwise_conv = extractDepthwiseConvParams(channelsIn, `${mappedPrefix}/depthwise_conv`);\n const pointwise_conv = extractPointwiseConvParams(channelsIn, channelsOut, 1, `${mappedPrefix}/pointwise_conv`);\n\n return { depthwise_conv, pointwise_conv };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n const conv_0 = extractPointwiseConvParams(3, 32, 3, 'mobilenetv1/conv_0');\n const conv_1 = extractConvPairParams(32, 64, 'mobilenetv1/conv_1');\n const conv_2 = extractConvPairParams(64, 128, 'mobilenetv1/conv_2');\n const conv_3 = extractConvPairParams(128, 128, 'mobilenetv1/conv_3');\n const conv_4 = extractConvPairParams(128, 256, 'mobilenetv1/conv_4');\n const conv_5 = extractConvPairParams(256, 256, 'mobilenetv1/conv_5');\n const conv_6 = extractConvPairParams(256, 512, 'mobilenetv1/conv_6');\n const conv_7 = extractConvPairParams(512, 512, 'mobilenetv1/conv_7');\n const conv_8 = extractConvPairParams(512, 512, 'mobilenetv1/conv_8');\n const conv_9 = extractConvPairParams(512, 512, 'mobilenetv1/conv_9');\n const conv_10 = extractConvPairParams(512, 512, 'mobilenetv1/conv_10');\n const conv_11 = extractConvPairParams(512, 512, 'mobilenetv1/conv_11');\n const conv_12 = extractConvPairParams(512, 1024, 'mobilenetv1/conv_12');\n const conv_13 = extractConvPairParams(1024, 1024, 'mobilenetv1/conv_13');\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n conv_8,\n conv_9,\n conv_10,\n conv_11,\n conv_12,\n conv_13,\n };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n const conv_0 = extractPointwiseConvParams(1024, 256, 1, 'prediction_layer/conv_0');\n const conv_1 = extractPointwiseConvParams(256, 512, 3, 'prediction_layer/conv_1');\n const conv_2 = extractPointwiseConvParams(512, 128, 1, 'prediction_layer/conv_2');\n const conv_3 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_3');\n const conv_4 = extractPointwiseConvParams(256, 128, 1, 'prediction_layer/conv_4');\n const conv_5 = extractPointwiseConvParams(128, 256, 3, 'prediction_layer/conv_5');\n const conv_6 = extractPointwiseConvParams(256, 64, 1, 'prediction_layer/conv_6');\n const conv_7 = extractPointwiseConvParams(64, 128, 3, 'prediction_layer/conv_7');\n const box_encoding_0_predictor = extractConvParams(512, 12, 1, 'prediction_layer/box_predictor_0/box_encoding_predictor');\n const class_predictor_0 = extractConvParams(512, 9, 1, 'prediction_layer/box_predictor_0/class_predictor');\n const box_encoding_1_predictor = extractConvParams(1024, 24, 1, 'prediction_layer/box_predictor_1/box_encoding_predictor');\n const class_predictor_1 = extractConvParams(1024, 18, 1, 'prediction_layer/box_predictor_1/class_predictor');\n const box_encoding_2_predictor = extractConvParams(512, 24, 1, 'prediction_layer/box_predictor_2/box_encoding_predictor');\n const class_predictor_2 = extractConvParams(512, 18, 1, 'prediction_layer/box_predictor_2/class_predictor');\n const box_encoding_3_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_3/box_encoding_predictor');\n const class_predictor_3 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_3/class_predictor');\n const box_encoding_4_predictor = extractConvParams(256, 24, 1, 'prediction_layer/box_predictor_4/box_encoding_predictor');\n const class_predictor_4 = extractConvParams(256, 18, 1, 'prediction_layer/box_predictor_4/class_predictor');\n const box_encoding_5_predictor = extractConvParams(128, 24, 1, 'prediction_layer/box_predictor_5/box_encoding_predictor');\n const class_predictor_5 = extractConvParams(128, 18, 1, 'prediction_layer/box_predictor_5/class_predictor');\n\n const box_predictor_0 = {\n box_encoding_predictor: box_encoding_0_predictor,\n class_predictor: class_predictor_0,\n };\n const box_predictor_1 = {\n box_encoding_predictor: box_encoding_1_predictor,\n class_predictor: class_predictor_1,\n };\n const box_predictor_2 = {\n box_encoding_predictor: box_encoding_2_predictor,\n class_predictor: class_predictor_2,\n };\n const box_predictor_3 = {\n box_encoding_predictor: box_encoding_3_predictor,\n class_predictor: class_predictor_3,\n };\n const box_predictor_4 = {\n box_encoding_predictor: box_encoding_4_predictor,\n class_predictor: class_predictor_4,\n };\n const box_predictor_5 = {\n box_encoding_predictor: box_encoding_5_predictor,\n class_predictor: class_predictor_5,\n };\n return {\n conv_0,\n conv_1,\n conv_2,\n conv_3,\n conv_4,\n conv_5,\n conv_6,\n conv_7,\n box_predictor_0,\n box_predictor_1,\n box_predictor_2,\n box_predictor_3,\n box_predictor_4,\n box_predictor_5,\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParams(weights: Float32Array): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(extractWeights, paramMappings);\n const mobilenetv1 = extractMobilenetV1Params();\n const prediction_layer = extractPredictionLayerParams();\n const extra_dim = tf.tensor3d(\n extractWeights(5118 * 4),\n [1, 5118, 4],\n );\n const output_layer = {\n extra_dim,\n };\n paramMappings.push({ paramPath: 'output_layer/extra_dim' });\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n\n return {\n params: {\n mobilenetv1,\n prediction_layer,\n output_layer,\n },\n paramMappings,\n };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams, disposeUnusedWeightTensors, extractWeightEntryFactory, ParamMapping } from '../common/index';\nimport { isTensor3D } from '../utils/index';\nimport { BoxPredictionParams, MobileNetV1, NetParams, PointwiseConvParams, PredictionLayerParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractPointwiseConvParams(prefix: string, idx: number, mappedPrefix: string): PointwiseConvParams {\n const filters = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/weights`, 4, `${mappedPrefix}/filters`);\n const batch_norm_offset = extractWeightEntry(`${prefix}/Conv2d_${idx}_pointwise/convolution_bn_offset`, 1, `${mappedPrefix}/batch_norm_offset`);\n return { filters, batch_norm_offset };\n }\n\n function extractConvPairParams(idx: number): MobileNetV1.ConvPairParams {\n const mappedPrefix = `mobilenetv1/conv_${idx}`;\n const prefixDepthwiseConv = `MobilenetV1/Conv2d_${idx}_depthwise`;\n const mappedPrefixDepthwiseConv = `${mappedPrefix}/depthwise_conv`;\n const mappedPrefixPointwiseConv = `${mappedPrefix}/pointwise_conv`;\n\n const filters = extractWeightEntry(`${prefixDepthwiseConv}/depthwise_weights`, 4, `${mappedPrefixDepthwiseConv}/filters`);\n const batch_norm_scale = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/gamma`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_scale`);\n const batch_norm_offset = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/beta`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_offset`);\n const batch_norm_mean = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_mean`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_mean`);\n const batch_norm_variance = extractWeightEntry(`${prefixDepthwiseConv}/BatchNorm/moving_variance`, 1, `${mappedPrefixDepthwiseConv}/batch_norm_variance`);\n\n return {\n depthwise_conv: {\n filters,\n batch_norm_scale,\n batch_norm_offset,\n batch_norm_mean,\n batch_norm_variance,\n },\n pointwise_conv: extractPointwiseConvParams('MobilenetV1', idx, mappedPrefixPointwiseConv),\n };\n }\n\n function extractMobilenetV1Params(): MobileNetV1.Params {\n return {\n conv_0: extractPointwiseConvParams('MobilenetV1', 0, 'mobilenetv1/conv_0'),\n conv_1: extractConvPairParams(1),\n conv_2: extractConvPairParams(2),\n conv_3: extractConvPairParams(3),\n conv_4: extractConvPairParams(4),\n conv_5: extractConvPairParams(5),\n conv_6: extractConvPairParams(6),\n conv_7: extractConvPairParams(7),\n conv_8: extractConvPairParams(8),\n conv_9: extractConvPairParams(9),\n conv_10: extractConvPairParams(10),\n conv_11: extractConvPairParams(11),\n conv_12: extractConvPairParams(12),\n conv_13: extractConvPairParams(13),\n };\n }\n\n function extractConvParams(prefix: string, mappedPrefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/weights`, 4, `${mappedPrefix}/filters`);\n const bias = extractWeightEntry(`${prefix}/biases`, 1, `${mappedPrefix}/bias`);\n return { filters, bias };\n }\n\n function extractBoxPredictorParams(idx: number): BoxPredictionParams {\n const box_encoding_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/BoxEncodingPredictor`,\n `prediction_layer/box_predictor_${idx}/box_encoding_predictor`,\n );\n const class_predictor = extractConvParams(\n `Prediction/BoxPredictor_${idx}/ClassPredictor`,\n `prediction_layer/box_predictor_${idx}/class_predictor`,\n );\n return { box_encoding_predictor, class_predictor };\n }\n\n function extractPredictionLayerParams(): PredictionLayerParams {\n return {\n conv_0: extractPointwiseConvParams('Prediction', 0, 'prediction_layer/conv_0'),\n conv_1: extractPointwiseConvParams('Prediction', 1, 'prediction_layer/conv_1'),\n conv_2: extractPointwiseConvParams('Prediction', 2, 'prediction_layer/conv_2'),\n conv_3: extractPointwiseConvParams('Prediction', 3, 'prediction_layer/conv_3'),\n conv_4: extractPointwiseConvParams('Prediction', 4, 'prediction_layer/conv_4'),\n conv_5: extractPointwiseConvParams('Prediction', 5, 'prediction_layer/conv_5'),\n conv_6: extractPointwiseConvParams('Prediction', 6, 'prediction_layer/conv_6'),\n conv_7: extractPointwiseConvParams('Prediction', 7, 'prediction_layer/conv_7'),\n box_predictor_0: extractBoxPredictorParams(0),\n box_predictor_1: extractBoxPredictorParams(1),\n box_predictor_2: extractBoxPredictorParams(2),\n box_predictor_3: extractBoxPredictorParams(3),\n box_predictor_4: extractBoxPredictorParams(4),\n box_predictor_5: extractBoxPredictorParams(5),\n };\n }\n\n return {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n): { params: NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n const {\n extractMobilenetV1Params,\n extractPredictionLayerParams,\n } = extractorsFactory(weightMap, paramMappings);\n const extra_dim = weightMap['Output/extra_dim'];\n paramMappings.push({ originalPath: 'Output/extra_dim', paramPath: 'output_layer/extra_dim' });\n if (!isTensor3D(extra_dim)) {\n throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${extra_dim}`);\n }\n\n const params = {\n mobilenetv1: extractMobilenetV1Params(),\n prediction_layer: extractPredictionLayerParams(),\n output_layer: {\n extra_dim,\n },\n };\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { PointwiseConvParams } from './types';\n\nexport function pointwiseConvLayer(x: tf.Tensor4D, params: PointwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.conv2d(x, params.filters, strides, 'same');\n out = tf.add(out, params.batch_norm_offset);\n return tf.clipByValue(out, 0, 6);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { MobileNetV1 } from './types';\n\nconst epsilon = 0.0010000000474974513;\n\nfunction depthwiseConvLayer(x: tf.Tensor4D, params: MobileNetV1.DepthwiseConvParams, strides: [number, number]) {\n return tf.tidy(() => {\n let out = tf.depthwiseConv2d(x, params.filters, strides, 'same');\n out = tf.batchNorm(\n out,\n params.batch_norm_mean,\n params.batch_norm_variance,\n params.batch_norm_offset,\n params.batch_norm_scale,\n epsilon,\n );\n return tf.clipByValue(out, 0, 6);\n });\n}\n\nfunction getStridesForLayerIdx(layerIdx: number): [number, number] {\n return [2, 4, 6, 12].some((idx) => idx === layerIdx) ? [2, 2] : [1, 1];\n}\n\nexport function mobileNetV1(x: tf.Tensor4D, params: MobileNetV1.Params) {\n return tf.tidy(() => {\n let conv11;\n let out = pointwiseConvLayer(x, params.conv_0, [2, 2]);\n\n const convPairParams = [\n params.conv_1,\n params.conv_2,\n params.conv_3,\n params.conv_4,\n params.conv_5,\n params.conv_6,\n params.conv_7,\n params.conv_8,\n params.conv_9,\n params.conv_10,\n params.conv_11,\n params.conv_12,\n params.conv_13,\n ];\n\n convPairParams.forEach((param, i) => {\n const layerIdx = i + 1;\n const depthwiseConvStrides = getStridesForLayerIdx(layerIdx);\n out = depthwiseConvLayer(out, param.depthwise_conv, depthwiseConvStrides);\n out = pointwiseConvLayer(out, param.pointwise_conv, [1, 1]);\n if (layerIdx === 11) conv11 = out;\n });\n\n if (conv11 === null) {\n throw new Error('mobileNetV1 - output of conv layer 11 is null');\n }\n\n return {\n out,\n conv11: conv11 as any,\n };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nfunction IOU(boxes: tf.Tensor2D, i: number, j: number) {\n const boxesData = boxes.arraySync();\n const yminI = Math.min(boxesData[i][0], boxesData[i][2]);\n const xminI = Math.min(boxesData[i][1], boxesData[i][3]);\n const ymaxI = Math.max(boxesData[i][0], boxesData[i][2]);\n const xmaxI = Math.max(boxesData[i][1], boxesData[i][3]);\n const yminJ = Math.min(boxesData[j][0], boxesData[j][2]);\n const xminJ = Math.min(boxesData[j][1], boxesData[j][3]);\n const ymaxJ = Math.max(boxesData[j][0], boxesData[j][2]);\n const xmaxJ = Math.max(boxesData[j][1], boxesData[j][3]);\n const areaI = (ymaxI - yminI) * (xmaxI - xminI);\n const areaJ = (ymaxJ - yminJ) * (xmaxJ - xminJ);\n if (areaI <= 0 || areaJ <= 0) return 0.0;\n const intersectionYmin = Math.max(yminI, yminJ);\n const intersectionXmin = Math.max(xminI, xminJ);\n const intersectionYmax = Math.min(ymaxI, ymaxJ);\n const intersectionXmax = Math.min(xmaxI, xmaxJ);\n const intersectionArea = Math.max(intersectionYmax - intersectionYmin, 0.0) * Math.max(intersectionXmax - intersectionXmin, 0.0);\n return intersectionArea / (areaI + areaJ - intersectionArea);\n}\n\nexport function nonMaxSuppression(\n boxes: tf.Tensor2D,\n scores: number[],\n maxOutputSize: number,\n iouThreshold: number,\n scoreThreshold: number,\n): number[] {\n const numBoxes = boxes.shape[0];\n const outputSize = Math.min(maxOutputSize, numBoxes);\n\n const candidates = scores\n .map((score, boxIndex) => ({ score, boxIndex }))\n .filter((c) => c.score > scoreThreshold)\n .sort((c1, c2) => c2.score - c1.score);\n\n const suppressFunc = (x: number) => (x <= iouThreshold ? 1 : 0);\n const selected: number[] = [];\n\n candidates.forEach((c) => {\n if (selected.length >= outputSize) return;\n const originalScore = c.score;\n for (let j = selected.length - 1; j >= 0; --j) {\n const iou = IOU(boxes, c.boxIndex, selected[j]);\n if (iou === 0.0) continue;\n c.score *= suppressFunc(iou);\n if (c.score <= scoreThreshold) break;\n }\n if (originalScore === c.score) {\n selected.push(c.boxIndex);\n }\n });\n return selected;\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { OutputLayerParams } from './types';\n\nfunction getCenterCoordinatesAndSizesLayer(x: tf.Tensor2D) {\n const vec = tf.unstack(tf.transpose(x, [1, 0]));\n\n const sizes = [\n tf.sub(vec[2], vec[0]),\n tf.sub(vec[3], vec[1]),\n ];\n const centers = [\n tf.add(vec[0], tf.div(sizes[0], 2)),\n tf.add(vec[1], tf.div(sizes[1], 2)),\n ];\n return { sizes, centers };\n}\n\nfunction decodeBoxesLayer(x0: tf.Tensor2D, x1: tf.Tensor2D) {\n const { sizes, centers } = getCenterCoordinatesAndSizesLayer(x0);\n\n const vec = tf.unstack(tf.transpose(x1, [1, 0]));\n const div0_out = tf.div(tf.mul(tf.exp(tf.div(vec[2], 5)), sizes[0]), 2);\n const add0_out = tf.add(tf.mul(tf.div(vec[0], 10), sizes[0]), centers[0]);\n const div1_out = tf.div(tf.mul(tf.exp(tf.div(vec[3], 5)), sizes[1]), 2);\n const add1_out = tf.add(tf.mul(tf.div(vec[1], 10), sizes[1]), centers[1]);\n\n return tf.transpose(\n tf.stack([\n tf.sub(add0_out, div0_out),\n tf.sub(add1_out, div1_out),\n tf.add(add0_out, div0_out),\n tf.add(add1_out, div1_out),\n ]),\n [1, 0],\n );\n}\n\nexport function outputLayer(boxPredictions: tf.Tensor4D, classPredictions: tf.Tensor4D, params: OutputLayerParams) {\n return tf.tidy(() => {\n const batchSize = boxPredictions.shape[0];\n\n let boxes = decodeBoxesLayer(\n tf.reshape(tf.tile(params.extra_dim, [batchSize, 1, 1]), [-1, 4]) as tf.Tensor2D,\n tf.reshape(boxPredictions, [-1, 4]) as tf.Tensor2D,\n );\n boxes = tf.reshape(boxes, [batchSize, (boxes.shape[0] / batchSize), 4]);\n\n const scoresAndClasses = tf.sigmoid(tf.slice(classPredictions, [0, 0, 1], [-1, -1, -1]));\n let scores = tf.slice(scoresAndClasses, [0, 0, 0], [-1, -1, 1]) as tf.Tensor;\n\n scores = tf.reshape(scores, [batchSize, scores.shape[1] as number]);\n\n const boxesByBatch = tf.unstack(boxes) as tf.Tensor2D[];\n const scoresByBatch = tf.unstack(scores) as tf.Tensor1D[];\n\n return { boxes: boxesByBatch, scores: scoresByBatch };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { convLayer } from '../common/index';\nimport { BoxPredictionParams } from './types';\n\nexport function boxPredictionLayer(\n x: tf.Tensor4D,\n params: BoxPredictionParams,\n) {\n return tf.tidy(() => {\n const batchSize = x.shape[0];\n const boxPredictionEncoding = tf.reshape(\n convLayer(x, params.box_encoding_predictor),\n [batchSize, -1, 1, 4],\n );\n const classPrediction = tf.reshape(\n convLayer(x, params.class_predictor),\n [batchSize, -1, 3],\n );\n return { boxPredictionEncoding, classPrediction };\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { boxPredictionLayer } from './boxPredictionLayer';\nimport { pointwiseConvLayer } from './pointwiseConvLayer';\nimport { PredictionLayerParams } from './types';\n\nexport function predictionLayer(\n x: tf.Tensor4D,\n conv11: tf.Tensor4D,\n params: PredictionLayerParams,\n) {\n return tf.tidy(() => {\n const conv0 = pointwiseConvLayer(x, params.conv_0, [1, 1]);\n const conv1 = pointwiseConvLayer(conv0, params.conv_1, [2, 2]);\n const conv2 = pointwiseConvLayer(conv1, params.conv_2, [1, 1]);\n const conv3 = pointwiseConvLayer(conv2, params.conv_3, [2, 2]);\n const conv4 = pointwiseConvLayer(conv3, params.conv_4, [1, 1]);\n const conv5 = pointwiseConvLayer(conv4, params.conv_5, [2, 2]);\n const conv6 = pointwiseConvLayer(conv5, params.conv_6, [1, 1]);\n const conv7 = pointwiseConvLayer(conv6, params.conv_7, [2, 2]);\n\n const boxPrediction0 = boxPredictionLayer(conv11, params.box_predictor_0);\n const boxPrediction1 = boxPredictionLayer(x, params.box_predictor_1);\n const boxPrediction2 = boxPredictionLayer(conv1, params.box_predictor_2);\n const boxPrediction3 = boxPredictionLayer(conv3, params.box_predictor_3);\n const boxPrediction4 = boxPredictionLayer(conv5, params.box_predictor_4);\n const boxPrediction5 = boxPredictionLayer(conv7, params.box_predictor_5);\n\n const boxPredictions = tf.concat([\n boxPrediction0.boxPredictionEncoding,\n boxPrediction1.boxPredictionEncoding,\n boxPrediction2.boxPredictionEncoding,\n boxPrediction3.boxPredictionEncoding,\n boxPrediction4.boxPredictionEncoding,\n boxPrediction5.boxPredictionEncoding,\n ], 1) as tf.Tensor4D;\n\n const classPredictions = tf.concat([\n boxPrediction0.classPrediction,\n boxPrediction1.classPrediction,\n boxPrediction2.classPrediction,\n boxPrediction3.classPrediction,\n boxPrediction4.classPrediction,\n boxPrediction5.classPrediction,\n ], 1) as tf.Tensor4D;\n\n return {\n boxPredictions,\n classPredictions,\n };\n });\n}\n", "export interface ISsdMobilenetv1Options {\n minConfidence?: number\n maxResults?: number\n}\n\nexport class SsdMobilenetv1Options {\n protected _name = 'SsdMobilenetv1Options';\n\n private _minConfidence: number;\n\n private _maxResults: number;\n\n constructor({ minConfidence, maxResults }: ISsdMobilenetv1Options = {}) {\n this._minConfidence = minConfidence || 0.5;\n this._maxResults = maxResults || 100;\n\n if (typeof this._minConfidence !== 'number' || this._minConfidence <= 0 || this._minConfidence >= 1) {\n throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);\n }\n\n if (typeof this._maxResults !== 'number') {\n throw new Error(`${this._name} - expected maxResults to be a number`);\n }\n }\n\n get minConfidence(): number { return this._minConfidence; }\n\n get maxResults(): number { return this._maxResults; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { Rect } from '../classes/index';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { NetInput, TNetInput, toNetInput } from '../dom/index';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { mobileNetV1 } from './mobileNetV1';\nimport { nonMaxSuppression } from './nonMaxSuppression';\nimport { outputLayer } from './outputLayer';\nimport { predictionLayer } from './predictionLayer';\nimport { ISsdMobilenetv1Options, SsdMobilenetv1Options } from './SsdMobilenetv1Options';\nimport { NetParams } from './types';\n\nexport class SsdMobilenetv1 extends NeuralNetwork {\n constructor() {\n super('SsdMobilenetv1');\n }\n\n public forwardInput(input: NetInput) {\n const { params } = this;\n if (!params) throw new Error('SsdMobilenetv1 - load model before inference');\n return tf.tidy(() => {\n const batchTensor = tf.cast(input.toBatchTensor(512, false), 'float32');\n const x = tf.sub(tf.div(batchTensor, 127.5), 1) as tf.Tensor4D; // input is normalized -1..1\n const features = mobileNetV1(x, params.mobilenetv1);\n const { boxPredictions, classPredictions } = predictionLayer(features.out, features.conv11, params.prediction_layer);\n return outputLayer(boxPredictions, classPredictions, params.output_layer);\n });\n }\n\n public async forward(input: TNetInput) {\n return this.forwardInput(await toNetInput(input));\n }\n\n public async locateFaces(input: TNetInput, options: ISsdMobilenetv1Options = {}): Promise {\n const { maxResults, minConfidence } = new SsdMobilenetv1Options(options);\n const netInput = await toNetInput(input);\n const { boxes: _boxes, scores: _scores } = this.forwardInput(netInput);\n const boxes = _boxes[0];\n const scores = _scores[0];\n for (let i = 1; i < _boxes.length; i++) {\n _boxes[i].dispose();\n _scores[i].dispose();\n }\n const scoresData = Array.from(scores.dataSync());\n const iouThreshold = 0.5;\n const indices = nonMaxSuppression(boxes, scoresData as number[], maxResults, iouThreshold, minConfidence);\n const reshapedDims = netInput.getReshapedInputDimensions(0);\n const inputSize = netInput.inputSize as number;\n const padX = inputSize / reshapedDims.width;\n const padY = inputSize / reshapedDims.height;\n const boxesData = boxes.arraySync();\n const results = indices\n .map((idx) => {\n const [top, bottom] = [\n Math.max(0, boxesData[idx][0]),\n Math.min(1.0, boxesData[idx][2]),\n ].map((val) => val * padY);\n const [left, right] = [\n Math.max(0, boxesData[idx][1]),\n Math.min(1.0, boxesData[idx][3]),\n ].map((val) => val * padX);\n return new FaceDetection(\n scoresData[idx] as number,\n new Rect(left, top, right - left, bottom - top),\n { height: netInput.getInputHeight(0), width: netInput.getInputWidth(0) },\n );\n });\n boxes.dispose();\n scores.dispose();\n return results;\n }\n\n protected getDefaultModelName(): string {\n return 'ssd_mobilenetv1_model';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap);\n }\n\n protected extractParams(weights: Float32Array) {\n return extractParams(weights);\n }\n}\n", "import { SsdMobilenetv1 } from './SsdMobilenetv1';\n\nexport * from './SsdMobilenetv1';\nexport * from './SsdMobilenetv1Options';\n\nexport function createSsdMobilenetv1(weights: Float32Array) {\n const net = new SsdMobilenetv1();\n net.extractWeights(weights);\n return net;\n}\n\nexport function createFaceDetectionNet(weights: Float32Array) {\n return createSsdMobilenetv1(weights);\n}\n\n// alias for backward compatibily\nexport class FaceDetectionNet extends SsdMobilenetv1 {}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(0.738768, 0.874946),\n new Point(2.42204, 2.65704),\n new Point(4.30971, 7.04493),\n new Point(10.246, 4.59428),\n new Point(12.6868, 11.8741),\n];\n\nexport const BOX_ANCHORS_SEPARABLE = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB_SEPARABLE: [number, number, number] = [117.001, 114.697, 97.404];\n\nexport const DEFAULT_MODEL_NAME = 'tiny_yolov2_model';\nexport const DEFAULT_MODEL_NAME_SEPARABLE_CONV = 'tiny_yolov2_separable_conv_model';\n", "import { Point } from '../classes/Point';\n\nexport type TinyYolov2Config = {\n withSeparableConvs: boolean\n iouThreshold: number\n anchors: Point[]\n classes: string[]\n meanRgb?: [number, number, number]\n withClassScores?: boolean,\n filterSizes?: number[]\n isFirstLayerConv2d?: boolean\n}\n\nconst isNumber = (arg: any) => typeof arg === 'number';\n\nexport function validateConfig(config: any) {\n if (!config) {\n throw new Error(`invalid config: ${config}`);\n }\n\n if (typeof config.withSeparableConvs !== 'boolean') {\n throw new Error(`config.withSeparableConvs has to be a boolean, have: ${config.withSeparableConvs}`);\n }\n\n if (!isNumber(config.iouThreshold) || config.iouThreshold < 0 || config.iouThreshold > 1.0) {\n throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${config.iouThreshold}`);\n }\n\n if (\n !Array.isArray(config.classes)\n || !config.classes.length\n || !config.classes.every((c: any) => typeof c === 'string')\n ) {\n throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(config.classes)}`);\n }\n\n if (\n !Array.isArray(config.anchors)\n || !config.anchors.length\n || !config.anchors.map((a: any) => a || {}).every((a: any) => isNumber(a.x) && isNumber(a.y))\n ) {\n throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(config.anchors)}`);\n }\n\n if (config.meanRgb && (\n !Array.isArray(config.meanRgb)\n || config.meanRgb.length !== 3\n || !config.meanRgb.every(isNumber)\n )) {\n throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(config.meanRgb)}`);\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nexport function leaky(x: tf.Tensor4D): tf.Tensor4D {\n return tf.tidy(() => {\n const min = tf.mul(x, tf.scalar(0.10000000149011612));\n return tf.add(tf.relu(tf.sub(x, min)), min);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { leaky } from './leaky';\nimport { ConvWithBatchNorm } from './types';\n\nexport function convWithBatchNorm(x: tf.Tensor4D, params: ConvWithBatchNorm): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.conv2d(out, params.conv.filters, [1, 1], 'valid');\n out = tf.sub(out, params.bn.sub);\n out = tf.mul(out, params.bn.truediv);\n out = tf.add(out, params.conv.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { SeparableConvParams } from '../common/types';\nimport { leaky } from './leaky';\n\nexport function depthwiseSeparableConv(x: tf.Tensor4D, params: SeparableConvParams): tf.Tensor4D {\n return tf.tidy(() => {\n let out = tf.pad(x, [[0, 0], [1, 1], [1, 1], [0, 0]]) as tf.Tensor4D;\n out = tf.separableConv2d(out, params.depthwise_filter, params.pointwise_filter, [1, 1], 'valid');\n out = tf.add(out, params.bias);\n return leaky(out);\n });\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { extractConvParamsFactory } from '../common/index';\nimport { extractSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightsFactory } from '../common/extractWeightsFactory';\nimport { ExtractWeightsFunction, ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(extractWeights: ExtractWeightsFunction, paramMappings: ParamMapping[]) {\n const extractConvParams = extractConvParamsFactory(extractWeights, paramMappings);\n\n function extractBatchNormParams(size: number, mappedPrefix: string): BatchNorm {\n const sub = tf.tensor1d(extractWeights(size));\n const truediv = tf.tensor1d(extractWeights(size));\n\n paramMappings.push(\n { paramPath: `${mappedPrefix}/sub` },\n { paramPath: `${mappedPrefix}/truediv` },\n );\n return { sub, truediv };\n }\n\n function extractConvWithBatchNormParams(channelsIn: number, channelsOut: number, mappedPrefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(channelsIn, channelsOut, 3, `${mappedPrefix}/conv`);\n const bn = extractBatchNormParams(channelsOut, `${mappedPrefix}/bn`);\n return { conv, bn };\n }\n const extractSeparableConvParams = extractSeparableConvParamsFactory(extractWeights, paramMappings);\n\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParams(\n weights: Float32Array,\n config: TinyYolov2Config,\n boxEncodingSize: number,\n filterSizes: number[],\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const {\n extractWeights,\n getRemainingWeights,\n } = extractWeightsFactory(weights);\n\n const paramMappings: ParamMapping[] = [];\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(extractWeights, paramMappings);\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = config.isFirstLayerConv2d\n ? extractConvParams(s0, s1, 3, 'conv0')\n : extractSeparableConvParams(s0, s1, 'conv0');\n const conv1 = extractSeparableConvParams(s1, s2, 'conv1');\n const conv2 = extractSeparableConvParams(s2, s3, 'conv2');\n const conv3 = extractSeparableConvParams(s3, s4, 'conv3');\n const conv4 = extractSeparableConvParams(s4, s5, 'conv4');\n const conv5 = extractSeparableConvParams(s5, s6, 'conv5');\n const conv6 = s7 ? extractSeparableConvParams(s6, s7, 'conv6') : undefined;\n const conv7 = s8 ? extractSeparableConvParams(s7, s8, 'conv7') : undefined;\n const conv8 = extractConvParams(s8 || s7 || s6, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n } else {\n const [s0, s1, s2, s3, s4, s5, s6, s7, s8] = filterSizes;\n const conv0 = extractConvWithBatchNormParams(s0, s1, 'conv0');\n const conv1 = extractConvWithBatchNormParams(s1, s2, 'conv1');\n const conv2 = extractConvWithBatchNormParams(s2, s3, 'conv2');\n const conv3 = extractConvWithBatchNormParams(s3, s4, 'conv3');\n const conv4 = extractConvWithBatchNormParams(s4, s5, 'conv4');\n const conv5 = extractConvWithBatchNormParams(s5, s6, 'conv5');\n const conv6 = extractConvWithBatchNormParams(s6, s7, 'conv6');\n const conv7 = extractConvWithBatchNormParams(s7, s8, 'conv7');\n const conv8 = extractConvParams(s8, 5 * boxEncodingSize, 1, 'conv8');\n params = {\n conv0, conv1, conv2, conv3, conv4, conv5, conv6, conv7, conv8,\n };\n }\n if (getRemainingWeights().length !== 0) {\n throw new Error(`weights remaing after extract: ${getRemainingWeights().length}`);\n }\n return { params, paramMappings };\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { ConvParams } from '../common/index';\nimport { disposeUnusedWeightTensors } from '../common/disposeUnusedWeightTensors';\nimport { loadSeparableConvParamsFactory } from '../common/extractSeparableConvParamsFactory';\nimport { extractWeightEntryFactory } from '../common/extractWeightEntryFactory';\nimport { ParamMapping } from '../common/types';\nimport { TinyYolov2Config } from './config';\nimport { BatchNorm, ConvWithBatchNorm, TinyYolov2NetParams } from './types';\n\nfunction extractorsFactory(weightMap: any, paramMappings: ParamMapping[]) {\n const extractWeightEntry = extractWeightEntryFactory(weightMap, paramMappings);\n\n function extractBatchNormParams(prefix: string): BatchNorm {\n const sub = extractWeightEntry(`${prefix}/sub`, 1);\n const truediv = extractWeightEntry(`${prefix}/truediv`, 1);\n return { sub, truediv };\n }\n\n function extractConvParams(prefix: string): ConvParams {\n const filters = extractWeightEntry(`${prefix}/filters`, 4);\n const bias = extractWeightEntry(`${prefix}/bias`, 1);\n return { filters, bias };\n }\n\n function extractConvWithBatchNormParams(prefix: string): ConvWithBatchNorm {\n const conv = extractConvParams(`${prefix}/conv`);\n const bn = extractBatchNormParams(`${prefix}/bn`);\n return { conv, bn };\n }\n\n const extractSeparableConvParams = loadSeparableConvParamsFactory(extractWeightEntry);\n return {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n };\n}\n\nexport function extractParamsFromWeightMap(\n weightMap: tf.NamedTensorMap,\n config: TinyYolov2Config,\n): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n const paramMappings: ParamMapping[] = [];\n\n const {\n extractConvParams,\n extractConvWithBatchNormParams,\n extractSeparableConvParams,\n } = extractorsFactory(weightMap, paramMappings);\n\n let params: TinyYolov2NetParams;\n\n if (config.withSeparableConvs) {\n // eslint-disable-next-line no-mixed-operators\n const numFilters = (config.filterSizes && config.filterSizes.length || 9);\n params = {\n conv0: config.isFirstLayerConv2d ? extractConvParams('conv0') : extractSeparableConvParams('conv0'),\n conv1: extractSeparableConvParams('conv1'),\n conv2: extractSeparableConvParams('conv2'),\n conv3: extractSeparableConvParams('conv3'),\n conv4: extractSeparableConvParams('conv4'),\n conv5: extractSeparableConvParams('conv5'),\n conv6: numFilters > 7 ? extractSeparableConvParams('conv6') : undefined,\n conv7: numFilters > 8 ? extractSeparableConvParams('conv7') : undefined,\n conv8: extractConvParams('conv8'),\n };\n } else {\n params = {\n conv0: extractConvWithBatchNormParams('conv0'),\n conv1: extractConvWithBatchNormParams('conv1'),\n conv2: extractConvWithBatchNormParams('conv2'),\n conv3: extractConvWithBatchNormParams('conv3'),\n conv4: extractConvWithBatchNormParams('conv4'),\n conv5: extractConvWithBatchNormParams('conv5'),\n conv6: extractConvWithBatchNormParams('conv6'),\n conv7: extractConvWithBatchNormParams('conv7'),\n conv8: extractConvParams('conv8'),\n };\n }\n\n disposeUnusedWeightTensors(weightMap, paramMappings);\n return { params, paramMappings };\n}\n", "export interface ITinyYolov2Options {\n inputSize?: number\n scoreThreshold?: number\n}\n\nexport class TinyYolov2Options {\n protected _name = 'TinyYolov2Options';\n\n private _inputSize: number;\n\n private _scoreThreshold: number;\n\n constructor({ inputSize, scoreThreshold }: ITinyYolov2Options = {}) {\n this._inputSize = inputSize || 416;\n this._scoreThreshold = scoreThreshold || 0.5;\n\n if (typeof this._inputSize !== 'number' || this._inputSize % 32 !== 0) {\n throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);\n }\n\n if (typeof this._scoreThreshold !== 'number' || this._scoreThreshold <= 0 || this._scoreThreshold >= 1) {\n throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`);\n }\n }\n\n get inputSize(): number { return this._inputSize; }\n\n get scoreThreshold(): number { return this._scoreThreshold; }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { BoundingBox } from '../classes/BoundingBox';\nimport { Dimensions } from '../classes/Dimensions';\nimport { ObjectDetection } from '../classes/ObjectDetection';\nimport { convLayer } from '../common/index';\nimport { ConvParams, SeparableConvParams } from '../common/types';\nimport { toNetInput } from '../dom/index';\nimport { NetInput } from '../dom/NetInput';\nimport { TNetInput } from '../dom/types';\nimport { NeuralNetwork } from '../NeuralNetwork';\nimport { sigmoid } from '../ops/index';\nimport { nonMaxSuppression } from '../ops/nonMaxSuppression';\nimport { normalize } from '../ops/normalize';\nimport { TinyYolov2Config, validateConfig } from './config';\nimport { convWithBatchNorm } from './convWithBatchNorm';\nimport { depthwiseSeparableConv } from './depthwiseSeparableConv';\nimport { extractParams } from './extractParams';\nimport { extractParamsFromWeightMap } from './extractParamsFromWeightMap';\nimport { leaky } from './leaky';\nimport { ITinyYolov2Options, TinyYolov2Options } from './TinyYolov2Options';\nimport { DefaultTinyYolov2NetParams, MobilenetParams, TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2Base extends NeuralNetwork {\n public static DEFAULT_FILTER_SIZES = [3, 16, 32, 64, 128, 256, 512, 1024, 1024];\n\n private _config: TinyYolov2Config;\n\n constructor(config: TinyYolov2Config) {\n super('TinyYolov2');\n validateConfig(config);\n this._config = config;\n }\n\n public get config(): TinyYolov2Config {\n return this._config;\n }\n\n public get withClassScores(): boolean {\n return this.config.withClassScores || this.config.classes.length > 1;\n }\n\n public get boxEncodingSize(): number {\n return 5 + (this.withClassScores ? this.config.classes.length : 0);\n }\n\n public runTinyYolov2(x: tf.Tensor4D, params: DefaultTinyYolov2NetParams): tf.Tensor4D {\n let out = convWithBatchNorm(x, params.conv0);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = convWithBatchNorm(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = convWithBatchNorm(out, params.conv6);\n out = convWithBatchNorm(out, params.conv7);\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public runMobilenet(x: tf.Tensor4D, params: MobilenetParams): tf.Tensor4D {\n let out = this.config.isFirstLayerConv2d\n ? leaky(convLayer(x, params.conv0 as ConvParams, 'valid', false))\n : depthwiseSeparableConv(x, params.conv0 as SeparableConvParams);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv1);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv2);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv3);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv4);\n out = tf.maxPool(out, [2, 2], [2, 2], 'same');\n out = depthwiseSeparableConv(out, params.conv5);\n out = tf.maxPool(out, [2, 2], [1, 1], 'same');\n out = params.conv6 ? depthwiseSeparableConv(out, params.conv6) : out;\n out = params.conv7 ? depthwiseSeparableConv(out, params.conv7) : out;\n return convLayer(out, params.conv8, 'valid', false);\n }\n\n public forwardInput(input: NetInput, inputSize: number): tf.Tensor4D {\n const { params } = this;\n\n if (!params) {\n throw new Error('TinyYolov2 - load model before inference');\n }\n\n return tf.tidy(() => {\n let batchTensor = tf.cast(input.toBatchTensor(inputSize, false), 'float32');\n batchTensor = this.config.meanRgb\n ? normalize(batchTensor, this.config.meanRgb)\n : batchTensor;\n batchTensor = batchTensor.div(255) as tf.Tensor4D;\n return this.config.withSeparableConvs\n ? this.runMobilenet(batchTensor, params as MobilenetParams)\n : this.runTinyYolov2(batchTensor, params as DefaultTinyYolov2NetParams);\n });\n }\n\n public async forward(input: TNetInput, inputSize: number): Promise {\n return this.forwardInput(await toNetInput(input), inputSize);\n }\n\n public async detect(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise {\n const { inputSize, scoreThreshold } = new TinyYolov2Options(forwardParams);\n const netInput = await toNetInput(input);\n const out = await this.forwardInput(netInput, inputSize);\n const out0 = tf.tidy(() => tf.unstack(out)[0].expandDims()) as tf.Tensor4D;\n const inputDimensions = {\n width: netInput.getInputWidth(0),\n height: netInput.getInputHeight(0),\n };\n\n const results = await this.extractBoxes(out0, netInput.getReshapedInputDimensions(0), scoreThreshold);\n out.dispose();\n out0.dispose();\n\n const boxes = results.map((res) => res.box);\n const scores = results.map((res) => res.score);\n const classScores = results.map((res) => res.classScore);\n const classNames = results.map((res) => this.config.classes[res.label]);\n\n const indices = nonMaxSuppression(\n boxes.map((box) => box.rescale(inputSize)),\n scores,\n this.config.iouThreshold,\n true,\n );\n\n const detections = indices.map((idx) => new ObjectDetection(\n scores[idx],\n classScores[idx],\n classNames[idx],\n boxes[idx],\n inputDimensions,\n ));\n return detections;\n }\n\n protected getDefaultModelName(): string {\n return '';\n }\n\n protected extractParamsFromWeightMap(weightMap: tf.NamedTensorMap) {\n return extractParamsFromWeightMap(weightMap, this.config);\n }\n\n protected extractParams(weights: Float32Array) {\n const filterSizes = this.config.filterSizes || TinyYolov2Base.DEFAULT_FILTER_SIZES;\n\n const numFilters = filterSizes ? filterSizes.length : undefined;\n if (numFilters !== 7 && numFilters !== 8 && numFilters !== 9) {\n throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${numFilters} filterSizes in config`);\n }\n return extractParams(weights, this.config, this.boxEncodingSize, filterSizes);\n }\n\n protected async extractBoxes(\n outputTensor: tf.Tensor4D,\n inputBlobDimensions: Dimensions,\n scoreThreshold?: number,\n ) {\n const { width, height } = inputBlobDimensions;\n const inputSize = Math.max(width, height);\n const correctionFactorX = inputSize / width;\n const correctionFactorY = inputSize / height;\n\n const numCells = outputTensor.shape[1];\n const numBoxes = this.config.anchors.length;\n\n const [boxesTensor, scoresTensor, classScoresTensor] = tf.tidy(() => {\n const reshaped = outputTensor.reshape([numCells, numCells, numBoxes, this.boxEncodingSize]);\n\n const boxes = reshaped.slice([0, 0, 0, 0], [numCells, numCells, numBoxes, 4]);\n const scores = reshaped.slice([0, 0, 0, 4], [numCells, numCells, numBoxes, 1]);\n const classScores = this.withClassScores\n ? tf.softmax(reshaped.slice([0, 0, 0, 5], [numCells, numCells, numBoxes, this.config.classes.length]), 3)\n : tf.scalar(0);\n return [boxes, scores, classScores];\n });\n\n const results = [] as any;\n const scoresData = await scoresTensor.array();\n const boxesData = await boxesTensor.array();\n for (let row = 0; row < numCells; row++) {\n for (let col = 0; col < numCells; col++) {\n for (let anchor = 0; anchor < numBoxes; anchor++) {\n const score = sigmoid(scoresData[row][col][anchor][0]);\n if (!scoreThreshold || score > scoreThreshold) {\n const ctX = ((col + sigmoid(boxesData[row][col][anchor][0])) / numCells) * correctionFactorX;\n const ctY = ((row + sigmoid(boxesData[row][col][anchor][1])) / numCells) * correctionFactorY;\n const widthLocal = ((Math.exp(boxesData[row][col][anchor][2]) * this.config.anchors[anchor].x) / numCells) * correctionFactorX;\n const heightLocal = ((Math.exp(boxesData[row][col][anchor][3]) * this.config.anchors[anchor].y) / numCells) * correctionFactorY;\n const x = (ctX - (widthLocal / 2));\n const y = (ctY - (heightLocal / 2));\n const pos = { row, col, anchor };\n const { classScore, label } = this.withClassScores\n ? await this.extractPredictedClass(classScoresTensor as tf.Tensor4D, pos)\n : { classScore: 1, label: 0 };\n results.push({\n box: new BoundingBox(x, y, x + widthLocal, y + heightLocal),\n score,\n classScore: score * classScore,\n label,\n ...pos,\n });\n }\n }\n }\n }\n\n boxesTensor.dispose();\n scoresTensor.dispose();\n classScoresTensor.dispose();\n return results;\n }\n\n private async extractPredictedClass(classesTensor: tf.Tensor4D, pos: { row: number, col: number, anchor: number }) {\n const { row, col, anchor } = pos;\n const classesData = await classesTensor.array();\n return Array(this.config.classes.length).fill(0)\n .map((_, i) => classesData[row][col][anchor][i])\n .map((classScore, label) => ({\n classScore,\n label,\n }))\n .reduce((max, curr) => (max.classScore > curr.classScore ? max : curr));\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/types';\nimport { TNetInput } from '../dom/types';\nimport {\n BOX_ANCHORS,\n BOX_ANCHORS_SEPARABLE,\n DEFAULT_MODEL_NAME,\n DEFAULT_MODEL_NAME_SEPARABLE_CONV,\n IOU_THRESHOLD,\n MEAN_RGB_SEPARABLE,\n} from './const';\nimport { TinyYolov2Base } from './TinyYolov2Base';\nimport { ITinyYolov2Options } from './TinyYolov2Options';\nimport { TinyYolov2NetParams } from './types';\n\nexport class TinyYolov2 extends TinyYolov2Base {\n constructor(withSeparableConvs = true) {\n const config = {\n withSeparableConvs,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n ...(withSeparableConvs\n ? {\n anchors: BOX_ANCHORS_SEPARABLE,\n meanRgb: MEAN_RGB_SEPARABLE,\n }\n : {\n anchors: BOX_ANCHORS,\n withClassScores: true,\n }),\n };\n\n super(config);\n }\n\n public get withSeparableConvs(): boolean {\n return this.config.withSeparableConvs;\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return this.withSeparableConvs ? DEFAULT_MODEL_NAME_SEPARABLE_CONV : DEFAULT_MODEL_NAME;\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { TinyYolov2 } from './TinyYolov2';\n\nexport * from './TinyYolov2Options';\nexport * from './config';\nexport * from './types';\nexport { TinyYolov2 };\n\nexport function createTinyYolov2(weights: Float32Array, withSeparableConvs = true) {\n const net = new TinyYolov2(withSeparableConvs);\n net.extractWeights(weights);\n return net;\n}\n", "import { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\n\nexport type ITinyFaceDetectorOptions = ITinyYolov2Options\n\nexport class TinyFaceDetectorOptions extends TinyYolov2Options {\n protected override _name = 'TinyFaceDetectorOptions';\n}\n", "export class ComposableTask {\n // eslint-disable-next-line no-unused-vars\n public async then(onfulfilled: (value: T) => T | PromiseLike): Promise {\n return onfulfilled(await this.run());\n }\n\n public async run(): Promise {\n throw new Error('ComposableTask - run is not implemented');\n }\n}\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { isWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\n\nexport async function extractAllFacesAndComputeResults, TResult>(\n parentResults: TSource[],\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResults: (faces: Array) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment: (parentResult: WithFaceLandmarks) => FaceDetection = ({ alignedRect }) => alignedRect,\n) {\n const faceBoxes = parentResults.map((parentResult) => (isWithFaceLandmarks(parentResult)\n ? getRectForAlignment(parentResult)\n : parentResult.detection));\n const faces: Array = extractedFaces || (\n input instanceof tf.Tensor\n ? await extractFaceTensors(input, faceBoxes)\n : await extractFaces(input, faceBoxes)\n );\n const results = await computeResults(faces);\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return results;\n}\n\nexport async function extractSingleFaceAndComputeResult, TResult>(\n parentResult: TSource,\n input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n computeResult: (face: HTMLCanvasElement | tf.Tensor3D) => Promise,\n extractedFaces?: Array | null,\n // eslint-disable-next-line no-unused-vars\n getRectForAlignment?: (parentResultLocal: WithFaceLandmarks) => FaceDetection,\n) {\n return extractAllFacesAndComputeResults(\n [parentResult],\n input,\n async (faces) => computeResult(faces[0]),\n extractedFaces,\n getRectForAlignment,\n );\n}\n", "import { Point } from '../classes/index';\n\nexport const IOU_THRESHOLD = 0.4;\n\nexport const BOX_ANCHORS = [\n new Point(1.603231, 2.094468),\n new Point(6.041143, 7.080126),\n new Point(2.882459, 3.518061),\n new Point(4.266906, 5.178857),\n new Point(9.041765, 10.66308),\n];\n\nexport const MEAN_RGB: [number, number, number] = [117.001, 114.697, 97.404];\n", "import * as tf from '../../dist/tfjs.esm';\n\nimport { FaceDetection, Point } from '../classes/index';\nimport { ParamMapping } from '../common/index';\nimport { TNetInput } from '../dom/index';\nimport { ITinyYolov2Options } from '../tinyYolov2/index';\nimport { TinyYolov2Base } from '../tinyYolov2/TinyYolov2Base';\nimport { TinyYolov2NetParams } from '../tinyYolov2/types';\nimport { BOX_ANCHORS, IOU_THRESHOLD, MEAN_RGB } from './const';\n\nexport class TinyFaceDetector extends TinyYolov2Base {\n constructor() {\n const config = {\n withSeparableConvs: true,\n iouThreshold: IOU_THRESHOLD,\n classes: ['face'],\n anchors: BOX_ANCHORS,\n meanRgb: MEAN_RGB,\n isFirstLayerConv2d: true,\n filterSizes: [3, 16, 32, 64, 128, 256, 512],\n };\n\n super(config);\n }\n\n public get anchors(): Point[] {\n return this.config.anchors;\n }\n\n public async locateFaces(input: TNetInput, forwardParams: ITinyYolov2Options): Promise {\n const objectDetections = await this.detect(input, forwardParams);\n return objectDetections.map((det) => new FaceDetection(det.score, det.relativeBox, { width: det.imageWidth, height: det.imageHeight }));\n }\n\n protected override getDefaultModelName(): string {\n return 'tiny_face_detector_model';\n }\n\n protected override extractParamsFromWeightMap(weightMap: tf.NamedTensorMap): { params: TinyYolov2NetParams, paramMappings: ParamMapping[] } {\n return super.extractParamsFromWeightMap(weightMap);\n }\n}\n", "import { AgeGenderNet } from '../ageGenderNet/AgeGenderNet';\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressionNet } from '../faceExpressionNet/FaceExpressionNet';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { FaceRecognitionNet } from '../faceRecognitionNet/FaceRecognitionNet';\nimport { SsdMobilenetv1 } from '../ssdMobilenetv1/SsdMobilenetv1';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetector } from '../tinyFaceDetector/TinyFaceDetector';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { ITinyYolov2Options, TinyYolov2 } from '../tinyYolov2/index';\n\nexport const nets = {\n ssdMobilenetv1: new SsdMobilenetv1(),\n tinyFaceDetector: new TinyFaceDetector(),\n tinyYolov2: new TinyYolov2(),\n faceLandmark68Net: new FaceLandmark68Net(),\n faceLandmark68TinyNet: new FaceLandmark68TinyNet(),\n faceRecognitionNet: new FaceRecognitionNet(),\n faceExpressionNet: new FaceExpressionNet(),\n ageGenderNet: new AgeGenderNet(),\n};\n\n/**\n * Attempts to detect all faces in an image using SSD Mobilenetv1 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see SsdMobilenetv1Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const ssdMobilenetv1 = (input: TNetInput, options: SsdMobilenetv1Options): Promise => nets.ssdMobilenetv1.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Face Detector.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyFaceDetectorOptions constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyFaceDetector = (input: TNetInput, options: TinyFaceDetectorOptions): Promise => nets.tinyFaceDetector.locateFaces(input, options);\n\n/**\n * Attempts to detect all faces in an image using the Tiny Yolov2 Network.\n *\n * @param input The input image.\n * @param options (optional, default: see TinyYolov2Options constructor for default parameters).\n * @returns Bounding box of each face with score.\n */\nexport const tinyYolov2 = (input: TNetInput, options: ITinyYolov2Options): Promise => nets.tinyYolov2.locateFaces(input, options);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarks = (input: TNetInput): Promise => nets.faceLandmark68Net.detectLandmarks(input);\n\n/**\n * Detects the 68 point face landmark positions of the face shown in an image\n * using a tinier version of the 68 point face landmark model, which is slightly\n * faster at inference, but also slightly less accurate.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns 68 point face landmarks or array thereof in case of batch input.\n */\nexport const detectFaceLandmarksTiny = (input: TNetInput): Promise => nets.faceLandmark68TinyNet.detectLandmarks(input);\n\n/**\n * Computes a 128 entry vector (face descriptor / face embeddings) from the face shown in an image,\n * which uniquely represents the features of that persons face. The computed face descriptor can\n * be used to measure the similarity between faces, by computing the euclidean distance of two\n * face descriptors.\n *\n * @param inputs The face image extracted from the aligned bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Face descriptor with 128 entries or array thereof in case of batch input.\n */\nexport const computeFaceDescriptor = (input: TNetInput): Promise => nets.faceRecognitionNet.computeFaceDescriptor(input);\n\n/**\n * Recognizes the facial expressions from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Facial expressions with corresponding probabilities or array thereof in case of batch input.\n */\nexport const recognizeFaceExpressions = (input: TNetInput): Promise => nets.faceExpressionNet.predictExpressions(input);\n\n/**\n * Predicts age and gender from a face image.\n *\n * @param inputs The face image extracted from the bounding box of a face. Can\n * also be an array of input images, which will be batch processed.\n * @returns Predictions with age, gender and gender probability or array thereof in case of batch input.\n */\nexport const predictAgeAndGender = (input: TNetInput): Promise => nets.ageGenderNet.predictAgeAndGender(input);\n\nexport const loadSsdMobilenetv1Model = (url: string) => nets.ssdMobilenetv1.load(url);\nexport const loadTinyFaceDetectorModel = (url: string) => nets.tinyFaceDetector.load(url);\nexport const loadTinyYolov2Model = (url: string) => nets.tinyYolov2.load(url);\nexport const loadFaceLandmarkModel = (url: string) => nets.faceLandmark68Net.load(url);\nexport const loadFaceLandmarkTinyModel = (url: string) => nets.faceLandmark68TinyNet.load(url);\nexport const loadFaceRecognitionModel = (url: string) => nets.faceRecognitionNet.load(url);\nexport const loadFaceExpressionModel = (url: string) => nets.faceExpressionNet.load(url);\nexport const loadAgeGenderModel = (url: string) => nets.ageGenderNet.load(url);\n\n// backward compatibility\nexport const loadFaceDetectionModel = loadSsdMobilenetv1Model;\nexport const locateFaces = ssdMobilenetv1;\nexport const detectLandmarks = detectFaceLandmarks;\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { TNetInput } from '../dom/index';\nimport { FaceExpressions } from '../faceExpressionNet/FaceExpressions';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceExpressions, WithFaceExpressions } from '../factories/WithFaceExpressions';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\n\nexport class PredictFaceExpressionsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllFaceExpressionsTask> extends PredictFaceExpressionsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n\n const faceExpressionsByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(\n faces.map((face) => nets.faceExpressionNet.predictExpressions(face) as Promise),\n ),\n this.extractedFaces,\n );\n\n return parentResults.map(\n (parentResult, i) => extendWithFaceExpressions(parentResult, faceExpressionsByFace[i]),\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsTask> extends PredictFaceExpressionsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n\n const faceExpressions = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceExpressionNet.predictExpressions(face) as Promise,\n this.extractedFaces,\n );\n\n return extendWithFaceExpressions(parentResult, faceExpressions);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(this, this.input);\n }\n}\n\nexport class PredictAllFaceExpressionsWithFaceAlignmentTask>> extends PredictAllFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleFaceExpressionsWithFaceAlignmentTask>> extends PredictSingleFaceExpressionsTask {\n override withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { AgeAndGenderPrediction } from '../ageGenderNet/types';\nimport { TNetInput } from '../dom/index';\nimport { extendWithAge, WithAge } from '../factories/WithAge';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { extendWithGender, WithGender } from '../factories/WithGender';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllFaceExpressionsTask, PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class PredictAgeAndGenderTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected extractedFaces?: Array,\n ) {\n super();\n }\n}\n\nexport class PredictAllAgeAndGenderTask> extends PredictAgeAndGenderTaskBase>[], TSource[]> {\n public override async run(): Promise>[]> {\n const parentResults = await this.parentTask;\n const ageAndGenderByFace = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n async (faces) => Promise.all(faces.map((face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise)),\n this.extractedFaces,\n );\n return parentResults.map((parentResult, i) => {\n const { age, gender, genderProbability } = ageAndGenderByFace[i];\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n });\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderTask> extends PredictAgeAndGenderTaskBase> | undefined, TSource | undefined> {\n public override async run(): Promise> | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const { age, gender, genderProbability } = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.ageGenderNet.predictAgeAndGender(face) as Promise,\n this.extractedFaces,\n );\n return extendWithAge(extendWithGender(parentResult, gender, genderProbability), age);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(this, this.input);\n }\n}\n\nexport class PredictAllAgeAndGenderWithFaceAlignmentTask>> extends PredictAllAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class PredictSingleAgeAndGenderWithFaceAlignmentTask>> extends PredictSingleAgeAndGenderTask {\n override withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDescriptor, WithFaceDescriptor } from '../factories/WithFaceDescriptor';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { extractAllFacesAndComputeResults, extractSingleFaceAndComputeResult } from './extractFacesAndComputeResults';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class ComputeFaceDescriptorsTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n ) {\n super();\n }\n}\n\nexport class ComputeAllFaceDescriptorsTask>> extends ComputeFaceDescriptorsTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const descriptors = await extractAllFacesAndComputeResults(\n parentResults,\n this.input,\n (faces) => Promise.all(faces.map((face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise)),\n null,\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return descriptors.map((descriptor, i) => extendWithFaceDescriptor(parentResults[i], descriptor));\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n\nexport class ComputeSingleFaceDescriptorTask>> extends ComputeFaceDescriptorsTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) return undefined;\n const descriptor = await extractSingleFaceAndComputeResult(\n parentResult,\n this.input,\n (face) => nets.faceRecognitionNet.computeFaceDescriptor(face) as Promise,\n null,\n // eslint-disable-next-line no-shadow, @typescript-eslint/no-shadow\n (parentResult) => parentResult.landmarks.align(null, { useDlibAlignment: true }),\n );\n return extendWithFaceDescriptor(parentResult, descriptor);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport * as tf from '../../dist/tfjs.esm';\n\nimport { FaceLandmarks68 } from '../classes/FaceLandmarks68';\nimport { extractFaces, extractFaceTensors, TNetInput } from '../dom/index';\nimport { FaceLandmark68Net } from '../faceLandmarkNet/FaceLandmark68Net';\nimport { FaceLandmark68TinyNet } from '../faceLandmarkNet/FaceLandmark68TinyNet';\nimport { WithFaceDetection } from '../factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, WithFaceLandmarks } from '../factories/WithFaceLandmarks';\nimport { ComposableTask } from './ComposableTask';\nimport { ComputeAllFaceDescriptorsTask, ComputeSingleFaceDescriptorTask } from './ComputeFaceDescriptorsTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderWithFaceAlignmentTask, PredictSingleAgeAndGenderWithFaceAlignmentTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsWithFaceAlignmentTask, PredictSingleFaceExpressionsWithFaceAlignmentTask } from './PredictFaceExpressionsTask';\n\nexport class DetectFaceLandmarksTaskBase extends ComposableTask {\n constructor(\n // eslint-disable-next-line no-unused-vars\n protected parentTask: ComposableTask | Promise,\n // eslint-disable-next-line no-unused-vars\n protected input: TNetInput,\n // eslint-disable-next-line no-unused-vars\n protected useTinyLandmarkNet: boolean,\n ) {\n super();\n }\n\n protected get landmarkNet(): FaceLandmark68Net | FaceLandmark68TinyNet {\n return this.useTinyLandmarkNet\n ? nets.faceLandmark68TinyNet\n : nets.faceLandmark68Net;\n }\n}\n\nexport class DetectAllFaceLandmarksTask> extends DetectFaceLandmarksTaskBase[], TSource[]> {\n public override async run(): Promise[]> {\n const parentResults = await this.parentTask;\n const detections = parentResults.map((res) => res.detection);\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, detections)\n : await extractFaces(this.input, detections);\n const faceLandmarksByFace = await Promise.all(faces.map((face) => this.landmarkNet.detectLandmarks(face))) as FaceLandmarks68[];\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n const result = parentResults\n .filter((_parentResult, i) => faceLandmarksByFace[i])\n .map((parentResult, i) => extendWithFaceLandmarks(parentResult, faceLandmarksByFace[i]));\n return result;\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptors() {\n return new ComputeAllFaceDescriptorsTask(this, this.input);\n }\n}\n\nexport class DetectSingleFaceLandmarksTask> extends DetectFaceLandmarksTaskBase | undefined, TSource | undefined> {\n public override async run(): Promise | undefined> {\n const parentResult = await this.parentTask;\n if (!parentResult) {\n return undefined;\n }\n const { detection } = parentResult;\n const faces: Array = this.input instanceof tf.Tensor\n ? await extractFaceTensors(this.input, [detection])\n : await extractFaces(this.input, [detection]);\n const landmarks = await this.landmarkNet.detectLandmarks(faces[0]) as FaceLandmarks68;\n faces.forEach((f) => f instanceof tf.Tensor && f.dispose());\n return extendWithFaceLandmarks(parentResult, landmarks);\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsWithFaceAlignmentTask(this, this.input);\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderWithFaceAlignmentTask(this, this.input);\n }\n\n withFaceDescriptor() {\n return new ComputeSingleFaceDescriptorTask(this, this.input);\n }\n}\n", "/* eslint-disable max-classes-per-file */\nimport { FaceDetection } from '../classes/FaceDetection';\nimport { TNetInput } from '../dom/index';\nimport { extendWithFaceDetection, WithFaceDetection } from '../factories/WithFaceDetection';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { TinyFaceDetectorOptions } from '../tinyFaceDetector/TinyFaceDetectorOptions';\nimport { TinyYolov2Options } from '../tinyYolov2/index';\nimport { ComposableTask } from './ComposableTask';\nimport { DetectAllFaceLandmarksTask, DetectSingleFaceLandmarksTask } from './DetectFaceLandmarksTasks';\nimport { nets } from './nets';\nimport { PredictAllAgeAndGenderTask, PredictSingleAgeAndGenderTask } from './PredictAgeAndGenderTask';\nimport { PredictAllFaceExpressionsTask, PredictSingleFaceExpressionsTask } from './PredictFaceExpressionsTask';\nimport { FaceDetectionOptions } from './types';\n\nexport class DetectFacesTaskBase extends ComposableTask {\n // eslint-disable-next-line no-unused-vars\n constructor(protected input: TNetInput, protected options: FaceDetectionOptions = new SsdMobilenetv1Options()) {\n super();\n }\n}\n\nexport class DetectAllFacesTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const { input, options } = this;\n let result;\n if (options instanceof TinyFaceDetectorOptions) result = nets.tinyFaceDetector.locateFaces(input, options);\n else if (options instanceof SsdMobilenetv1Options) result = nets.ssdMobilenetv1.locateFaces(input, options);\n else if (options instanceof TinyYolov2Options) result = nets.tinyYolov2.locateFaces(input, options);\n else throw new Error('detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options');\n return result;\n }\n\n private runAndExtendWithFaceDetections(): Promise[]> {\n return new Promise[]>((resolve, reject) => {\n this.run()\n .then((detections) => resolve(detections.map((detection) => extendWithFaceDetection({}, detection))))\n .catch((err) => reject(err));\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectAllFaceLandmarksTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictAllFaceExpressionsTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictAllAgeAndGenderTask(\n this.runAndExtendWithFaceDetections(),\n this.input,\n );\n }\n}\n\nexport class DetectSingleFaceTask extends DetectFacesTaskBase {\n public override async run(): Promise {\n const faceDetections = await new DetectAllFacesTask(this.input, this.options);\n let faceDetectionWithHighestScore = faceDetections[0];\n faceDetections.forEach((faceDetection) => {\n if (faceDetection.score > faceDetectionWithHighestScore.score) faceDetectionWithHighestScore = faceDetection;\n });\n return faceDetectionWithHighestScore;\n }\n\n private runAndExtendWithFaceDetection(): Promise | undefined> {\n // eslint-disable-next-line no-async-promise-executor\n return new Promise | undefined>(async (resolve) => {\n const detection = await this.run();\n resolve(detection ? extendWithFaceDetection<{}>({}, detection) : undefined);\n });\n }\n\n withFaceLandmarks(useTinyLandmarkNet = false) {\n return new DetectSingleFaceLandmarksTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n useTinyLandmarkNet,\n );\n }\n\n withFaceExpressions() {\n return new PredictSingleFaceExpressionsTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n\n withAgeAndGender() {\n return new PredictSingleAgeAndGenderTask(\n this.runAndExtendWithFaceDetection(),\n this.input,\n );\n }\n}\n", "import { TNetInput } from '../dom/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/SsdMobilenetv1Options';\nimport { DetectAllFacesTask, DetectSingleFaceTask } from './DetectFacesTasks';\nimport { FaceDetectionOptions } from './types';\n\nexport function detectSingleFace(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectSingleFaceTask {\n return new DetectSingleFaceTask(input, options);\n}\n\nexport function detectAllFaces(input: TNetInput, options: FaceDetectionOptions = new SsdMobilenetv1Options()): DetectAllFacesTask {\n return new DetectAllFacesTask(input, options);\n}\n", "import { TNetInput } from '../dom/index';\nimport { WithFaceDescriptor, WithFaceDetection, WithFaceLandmarks } from '../factories/index';\nimport { SsdMobilenetv1Options } from '../ssdMobilenetv1/index';\nimport { ITinyYolov2Options, TinyYolov2Options } from '../tinyYolov2/index';\nimport { detectAllFaces } from './detectFaces';\n\nexport async function allFacesSsdMobilenetv1(input: TNetInput, minConfidence?: number): Promise>>[]> {\n return detectAllFaces(input, new SsdMobilenetv1Options(minConfidence ? { minConfidence } : {}))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport async function allFacesTinyYolov2(input: TNetInput, forwardParams: ITinyYolov2Options = {}): Promise>>[]> {\n return detectAllFaces(input, new TinyYolov2Options(forwardParams))\n .withFaceLandmarks()\n .withFaceDescriptors();\n}\n\nexport const allFaces = allFacesSsdMobilenetv1;\n", "export function euclideanDistance(arr1: number[] | Float32Array, arr2: number[] | Float32Array) {\n if (arr1.length !== arr2.length) throw new Error('euclideanDistance: arr1.length !== arr2.length');\n const desc1 = Array.from(arr1);\n const desc2 = Array.from(arr2);\n return Math.sqrt(\n desc1\n .map((val, i) => val - desc2[i])\n .reduce((res, diff) => res + (diff * diff), 0),\n );\n}\n", "import { FaceMatch } from '../classes/FaceMatch';\nimport { LabeledFaceDescriptors } from '../classes/LabeledFaceDescriptors';\nimport { euclideanDistance } from '../euclideanDistance';\nimport { WithFaceDescriptor } from '../factories/index';\n\nexport class FaceMatcher {\n private _labeledDescriptors: LabeledFaceDescriptors[];\n private _distanceThreshold: number;\n\n constructor(inputs: LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>, distanceThreshold = 0.6) {\n this._distanceThreshold = distanceThreshold;\n const inputArray = Array.isArray(inputs) ? inputs : [inputs];\n if (!inputArray.length) throw new Error('FaceRecognizer.constructor - expected atleast one input');\n let count = 1;\n const createUniqueLabel = () => `person ${count++}`;\n this._labeledDescriptors = inputArray.map((desc) => {\n if (desc instanceof LabeledFaceDescriptors) return desc;\n if (desc instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc]);\n if (desc.descriptor && desc.descriptor instanceof Float32Array) return new LabeledFaceDescriptors(createUniqueLabel(), [desc.descriptor]);\n throw new Error('FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>');\n });\n }\n\n public get labeledDescriptors(): LabeledFaceDescriptors[] { return this._labeledDescriptors; }\n\n public get distanceThreshold(): number { return this._distanceThreshold; }\n\n public computeMeanDistance(queryDescriptor: Float32Array, descriptors: Float32Array[]): number {\n return descriptors\n .map((d) => euclideanDistance(d, queryDescriptor))\n .reduce((d1, d2) => d1 + d2, 0) / (descriptors.length || 1);\n }\n\n public matchDescriptor(queryDescriptor: Float32Array): FaceMatch {\n return this.labeledDescriptors\n .map(({ descriptors, label }) => new FaceMatch(label, this.computeMeanDistance(queryDescriptor, descriptors)))\n .reduce((best, curr) => (best.distance < curr.distance ? best : curr));\n }\n\n public findBestMatch(queryDescriptor: Float32Array): FaceMatch {\n const bestMatch = this.matchDescriptor(queryDescriptor);\n return (bestMatch.distance < this._distanceThreshold) ? bestMatch : new FaceMatch('unknown', bestMatch.distance);\n }\n\n public toJSON(): any {\n return {\n distanceThreshold: this._distanceThreshold,\n labeledDescriptors: this._labeledDescriptors.map((ld) => ld.toJSON()),\n };\n }\n\n public static fromJSON(json: any): FaceMatcher {\n const labeledDescriptors = json.labeledDescriptors.map((ld: any) => LabeledFaceDescriptors.fromJSON(ld));\n return new FaceMatcher(labeledDescriptors, json.distanceThreshold);\n }\n}\n", "import { TinyFaceDetector } from './TinyFaceDetector';\n\nexport * from './TinyFaceDetector';\nexport * from './TinyFaceDetectorOptions';\n\nexport function createTinyFaceDetector(weights: Float32Array) {\n const net = new TinyFaceDetector();\n net.extractWeights(weights);\n return net;\n}\n", "import { Dimensions, IDimensions } from './classes/index';\nimport { FaceDetection } from './classes/FaceDetection';\nimport { FaceLandmarks } from './classes/FaceLandmarks';\nimport { extendWithFaceDetection, isWithFaceDetection } from './factories/WithFaceDetection';\nimport { extendWithFaceLandmarks, isWithFaceLandmarks } from './factories/WithFaceLandmarks';\n\nexport function resizeResults(results: T, dimensions: IDimensions): T {\n const { width, height } = new Dimensions(dimensions.width, dimensions.height);\n\n if (width <= 0 || height <= 0) {\n throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({ width, height })}`);\n }\n\n if (Array.isArray(results)) {\n // return results.map(obj => resizeResults(obj, { width, height })) as any as T\n return (results as Array).map((obj) => resizeResults(obj, { width, height } as IDimensions)) as any as T;\n }\n\n if (isWithFaceLandmarks(results)) {\n const resizedDetection = results.detection.forSize(width, height);\n const resizedLandmarks = results.unshiftedLandmarks.forSize(resizedDetection.box.width, resizedDetection.box.height);\n return extendWithFaceLandmarks(extendWithFaceDetection(results, resizedDetection), resizedLandmarks);\n }\n\n if (isWithFaceDetection(results)) {\n return extendWithFaceDetection(results, results.detection.forSize(width, height));\n }\n\n if (results instanceof FaceLandmarks || results instanceof FaceDetection) {\n return (results as any).forSize(width, height);\n }\n\n return results;\n}\n", "import * as tf from '../dist/tfjs.esm';\nimport * as draw from './draw/index';\nimport * as utils from './utils/index';\nimport * as pkg from '../package.json';\n\nexport { tf, draw, utils };\n\nexport * from './ageGenderNet/index';\nexport * from './classes/index';\nexport * from './dom/index';\nexport * from './env/index';\nexport * from './faceExpressionNet/index';\nexport * from './faceLandmarkNet/index';\nexport * from './faceRecognitionNet/index';\nexport * from './factories/index';\nexport * from './globalApi/index';\nexport * from './ops/index';\nexport * from './ssdMobilenetv1/index';\nexport * from './tinyFaceDetector/index';\nexport * from './tinyYolov2/index';\nexport * from './euclideanDistance';\nexport * from './NeuralNetwork';\nexport * from './resizeResults';\n\nexport const version = pkg.version as string;\n\n// set webgl defaults\n// if (browser) tf.ENV.set('WEBGL_USE_SHAPES_UNIFORMS', true);\n"], + "mappings": "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AAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,GAAG,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,IAAI,GAAG,EAAE,IAAI,GAAG,GAAG,IAAI,IAAI,IAAI,GAAG,EAAE,GAAG,GAAG,IAAI,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,OAAOb,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,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,aAAa,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,EAAE,CAAC,MAAM,EAAE,KAAK,QAAQ,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,UAAU,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,QAAQ,SAAS,aAAa,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,IAAI,KAAK,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,OAAO,IAAI,KAAK,QAAQ,KAAK,QAAQ,aAAa,EAAE,CAAC,CAAC,EAAE,CAAC,SAAS,aAAa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", + "names": ["tfjs_esm_exports", "__export", "ui", "ua", "ca", "mu", "fu", "du", "hu", "Qn", "Wo", "pa", "ma", "Uo", "Al", "fa", "da", "ha", "xa", "ga", "Ho", "$l", "up", "lp", "pg", "qo", "ci", "cp", "pp", "d1", "Sb", "Ly", "co", "Ko", "po", "mp", "Dl", "pi", "jo", "fp", "Xo", "Rl", "dp", "hp", "Yo", "Zo", "ba", "ya", "Jo", "zy", "aa", "gp", "wa", "Qo", "xp", "yp", "bp", "Fl", "Yd", "Xd", "uS", "Nb", "wp", "es", "Cp", "Kd", "Ia", "Ca", "rs", "mi", "va", "Ip", "Ol", "Sa", "ns", "os", "Zd", "ss", "Ni", "Ti", "Gc", "Na", "fi", "Lh", "Ta", "is", "My", "vp", "mo", "Sp", "ye", "ka", "Ea", "as", "Bo", "Pl", "Tp", "Ih", "Gn", "ls", "_a", "Aa", "Np", "us", "$a", "g1", "Da", "Ra", "Fa", "h1", "Nlt", "$u", "cs", "ms", "Ll", "Ep", "kp", "_p", "ps", "fs", "ds", "hs", "gs", "Oa", "gu", "Ap", "xs", "di", "La", "Ma", "za", "Pa", "AS", "ys", "hi", "Hr", "Hs", "gi", "bs", "Tlt", "ws", "Cs", "Is", "xu", "En", "$p", "Dp", "Rp", "Ml", "wS", "Fp", "ts", "vs", "Ze", "Ss", "ks", "xi", "Ts", "Pp", "Ns", "Op", "Es", "Xa", "_s", "As", "Ui", "Ba", "Lp", "yi", "Va", "Yi", "Ds", "Wa", "$s", "Ga", "bi", "Os", "Ua", "wi", "zl", "Ha", "Bl", "Vl", "Mp", "Ci", "Rs", "Gl", "Ps", "fo", "qa", "Wl", "Ul", "Hl", "Ls", "Fs", "tn", "Ms", "zs", "Ft", "pe", "to", "Ka", "ja", "eo", "zp", "Ii", "ql", "klt", "Ya", "vi", "Si", "Ee", "lx", "ux", "X", "BE", "Jp", "ju", "Ri", "cx", "px", "mx", "fx", "dx", "hx", "Ql", "xx", "bE", "S", "WE", "Oi", "yx", "bx", "wx", "tu", "Cx", "l6", "HE", "Pi", "Wr", "ox", "wt", "jZ", "J", "Ix", "vr", "an", "In", "oe", "vx", "Sx", "Nx", "Tx", "Y$", "tm", "Sn", "rm", "kx", "_x", "Flt", "eu", "nm", "gh", "Zu", "om", "cn", "RR", "ph", "qS", "Ax", "Li", "JZ", "Yl", "qE", "$x", "Spt", "Nt", "Npt", "pt", "Dx", "Rx", "p0", "KE", "Mi", "vpt", "Ipt", "m0", "Mn", "M", "Rr", "Fx", "Ox", "or", "sr", "Px", "Ju", "uu", "bo", "$pt", "Dpt", "zi", "Zp", "yM", "pu", "Bi", "x6", "sx", "_pt", "mS", "Qd", "Bg", "mlt", "uk", "SK", "NK", "Re", "un", "nl", "Jl", "so", "w6", "Z$", "z0", "$r", "ym", "Lx", "Mx", "zx", "Ae", "qr", "AD", "ru", "sm", "zn", "d0", "YE", "q7", "K7", "xD", "Bx", "Nr", "nu", "Wx", "im", "am", "Or", "ou", "lm", "Ux", "wX", "ZE", "Lt", "CE", "Sr", "su", "qx", "JE", "Nn", "Se", "lh", "QE", "$D", "el", "Vi", "Kx", "jx", "Y8", "DD", "Qu", "c6", "D", "t_", "e_", "Ht", "xh", "rl", "Ws", "$i", "pr", "wr", "T", "r_", "pn", "n_", "o_", "s_", "i_", "Xx", "ln", "au", "Qg", "Yx", "Tpt", "a_", "l_", "u_", "c_", "k_", "rc", "E_", "Gi", "Wi", "Ept", "tl", "ey", "Yp", "J8", "y1", "zu", "ZZ", "RD", "Pr", "um", "Apt", "R", "mr", "__", "A_", "$_", "D_", "cu", "cm", "pm", "mt", "m6", "uh", "fh", "mm", "fm", "Z8", "Q", "sH", "Rpt", "plt", "ult", "clt", "vT", "R_", "Jr", "ry", "bX", "dm", "hm", "Rt", "gm", "hh", "xm", "nc", "Me", "lu", "Gs", "iu", "CX", "h6", "yX", "fr", "ve", "Mt", "bm", "Bn", "qe", "Co", "ny", "IX", "ct", "ft", "Hu", "oy", "Fi", "nr", "Us", "nx", "F_", "O_", "P_", "yo", "ME", "B", "Fr", "kpt", "sy", "lc", "Ot", "wm", "iy", "Rlt", "Dlt", "Cm", "dr", "ar", "L_", "y", "TK", "kK", "ay", "Vx", "blt", "fR", "zE", "Hm", "flt", "xM", "b1e", "gd", "_e", "uy", "Ne", "It", "LU", "rS", "MU", "zU", "BU", "VU", "Lg", "r", "__require", "e", "yr", "Wt", "GU", "n", "o", "_l", "_1", "Plt", "E1", "Ue", "ho", "t", "Ln", "b1", "w1", "Vu", "He", "go", "Bu", "xo", "S1", "k1", "I1", "Pn", "T1", "Gp", "Vg", "hS", "s", "i", "a", "u", "l", "Bs", "C1", "c4", "v1", "Vp", "N1", "dS", "xt", "c", "p", "m", "f", "d", "uE", "cE", "m_", "p_", "s0", "d_", "f_", "i0", "g_", "h_", "a0", "y_", "x_", "l0", "w_", "b_", "u0", "h", "g", "I_", "C_", "c0", "v_", "N_", "S_", "Zx", "w", "C", "N", "E", "A", "b", "$", "P", "V", "G", "W", "q", "H", "dh", "NNt", "T_", "fj", "dj", "hj", "gj", "xj", "yj", "tc", "bN", "Jb", "ag", "HW", "qW", "KW", "jW", "dI", "Mk", "Lk", "st", "jt", "je", "ke", "fe", "$e", "Dn", "ir", "Kn", "zr", "L", "U", "x", "F", "Ou", "Y", "ut", "yt", "Dt", "ae", "zo", "j", "Z", "et", "rt", "ot", "at", "nt", "Zc", "dt", "gt", "bt", "kt", "At", "Vt", "Gt", "Xt", "xr", "Zn", "Zt", "ce", "he", "We", "Br", "Vr", "jn", "Xn", "Zr", "ra", "Nl", "Od", "Bd", "Er", "na", "Hk", "Pd", "Tl", "Yc", "oa", "qk", "Kk", "xI", "mg", "Ld", "rn", "fg", "yI", "bI", "Ng", "_I", "Kt", "ia", "wI", "jk", "CI", "II", "Qv", "vI", "Md", "dg", "hg", "zd", "kl", "Xk", "xg", "gg", "SI", "$g", "Vd", "NI", "tS", "Dg", "Yk", "Zk", "TI", "o1", "Jc", "kI", "EI", "n1", "Jk", "AI", "$I", "t1", "DI", "yg", "bg", "RI", "FI", "OI", "r1", "PI", "LI", "MI", "Pu", "zI", "BI", "wg", "VI", "Qc", "GI", "WI", "Rg", "e1", "Gd", "UI", "JI", "HI", "qI", "KI", "Cg", "Ig", "jI", "XI", "vg", "Sg", "YI", "Rn", "np", "a1", "i1", "eS", "PU", "ZI", "Qk", "QI", "tv", "ev", "rv", "nv", "ov", "sv", "iv", "av", "lv", "uv", "cv", "pv", "mv", "fv", "dv", "hv", "gv", "xv", "yv", "bv", "wv", "Cv", "Iv", "vv", "Sv", "Nv", "Tv", "kv", "Ev", "_v", "Av", "$v", "Dv", "Rv", "Fv", "Ov", "Pv", "Lv", "Mv", "zv", "Bv", "Vv", "Gv", "Wv", "Uv", "Hv", "qv", "Kv", "jv", "Tg", "kg", "Wd", "Xv", "Yv", "tp", "Eg", "ep", "rp", "Zv", "K", "lt", "$t", "ne", "Xe", "Ye", "re", "ee", "gr", "Yn", "sa", "_g", "Ud", "Jv", "nn", "El", "Ag", "oU", "sU", "iU", "aU", "lU", "uU", "cU", "pU", "mU", "fU", "dU", "hU", "gU", "xU", "yU", "bU", "wU", "CU", "IU", "vU", "SU", "NU", "TU", "kU", "EU", "_U", "AU", "$U", "DU", "RU", "FU", "Fg", "s1", "Og", "Pg", "OU", "YW", "w8e", "XW", "ZW", "hI", "Bk", "zk", "aa", "Bo", "Fn", "l1", "Mg", "WU", "op", "UU", "HU", "qU", "KU", "_", "De", "On", "Jn", "Vo", "br", "Jt", "jU", "la", "XU", "YU", "ZU", "Mu", "JU", "QU", "cr", "nS", "oS", "sS", "iS", "aS", "t4", "zg", "lS", "Go", "u1", "c1", "sp", "ai", "ip", "li", "p1", "Lu", "Hd", "ap", "e4", "Pe", "r4", "n4", "qd", "m1", "Kd", "s4", "M", "a4", "i4", "uS", "f1", "cS", "pS", "l4", "jd", "ui", "ua", "ca", "Qn", "Wo", "pa", "ma", "Uo", "Al", "fa", "da", "ha", "ga", "xa", "Ho", "lp", "$l", "up", "qo", "ci", "cp", "d1", "pp", "co", "Ko", "po", "mp", "Dl", "pi", "jo", "fp", "Xo", "Rl", "dp", "hp", "Yo", "Zo", "ya", "Jo", "ba", "gp", "wa", "Qo", "xp", "yp", "bp", "Fl", "Xd", "Yd", "ts", "wp", "es", "Cp", "Ca", "Ia", "rs", "mi", "va", "Ip", "Ol", "Sa", "ns", "os", "ss", "fi", "Na", "Ta", "is", "mo", "vp", "Sp", "ka", "Ea", "as", "ls", "_a", "Aa", "Np", "us", "$a", "Da", "Ra", "Fa", "h1", "g1", "Nlt", "Pl", "Tp", "cs", "ps", "ms", "kp", "Ll", "Ep", "_p", "fs", "ds", "hs", "gs", "Oa", "Ap", "xs", "di", "Pa", "La", "Ma", "za", "hi", "ys", "gi", "bs", "Tlt", "ws", "Cs", "Is", "$p", "Dp", "Rp", "Ml", "Fp", "vs", "Ss", "xi", "Ns", "Op", "Ts", "Pp", "ks", "Es", "_s", "As", "Ba", "Lp", "yi", "Va", "bi", "$s", "Ga", "Wa", "Ds", "Ua", "Rs", "Fs", "wi", "Ci", "Os", "zl", "Ha", "Bl", "Vl", "Mp", "Ps", "Gl", "qa", "Wl", "Ul", "Hl", "Ls", "Ms", "zs", "to", "Ka", "ja", "eo", "zp", "Ii", "ql", "klt", "vi", "fo", "Zd", "Xa", "Si", "Ni", "Ti", "ki", "u4", "Bp", "Jd", "Qd", "fS", "mS", "Bg", "zu", "y1", "Dlt", "Rlt", "Flt", "y", "g4", "Up", "jl", "y4", "h4", "th", "Uu", "Wp", "xS", "Wu", "$1", "Gu", "on", "gS", "D1", "Le", "A1", "_r", "Kl", "p4", "Gg", "m4", "f4", "d4", "x4", "Wg", "yS", "b4", "R1", "F1", "O1", "eh", "bS", "P1", "w4", "Ug", "nh", "rh", "L1", "pe", "Vs", "Hp", "C4", "M1", "z1", "B1", "Ft", "O", "Ya", "yo", "NS", "oh", "v4", "Ut", "wS", "CS", "IS", "vS", "SS", "I4", "ar", "Hu", "V1", "S4", "TS", "Hg", "Xl", "k", "N4", "T4", "kS", "Yl", "_S", "_4", "E4", "k4", "ES", "ro", "Gr", "W1", "G1", "v", "Za", "AS", "T", "A4", "In", "sn", "nr", "sh", "qg", "H1", "$4", "Kg", "O4", "$S", "U1", "q1", "K1", "qp", "DS", "jg", "RS", "Kp", "Ei", "Xg", "D4", "R4", "F4", "Ce", "j1", "X1", "Y1", "Z1", "FS", "OS", "qu", "Zl", "J1", "PS", "_i", "Q1", "P4", "L4", "Yg", "Ja", "jp", "tE", "M4", "z4", "B4", "V4", "eE", "rE", "G4", "W4", "Ai", "nE", "U4", "Zg", "Xp", "Ar", "Jg", "oE", "sE", "iE", "aE", "lE", "LS", "H4", "MS", "zS", "wt", "q4", "J", "K4", "an", "Qg", "j4", "$r", "mE", "hE", "gE", "HS", "ex", "tx", "fE", "WS", "xE", "yE", "X4", "Y4", "Z4", "pE", "Qa", "BS", "J4", "Q4", "VS", "GS", "tH", "eH", "ih", "rH", "dE", "ah", "rx", "US", "CE", "wE", "nH", "Lt", "oH", "$i", "Ipt", "vpt", "Spt", "qS", "Npt", "Mn", "lh", "Tpt", "B", "Nt", "Ae", "kpt", "sH", "Ept", "_pt", "Apt", "$pt", "Dpt", "Yp", "bE", "Rpt", "iH", "Jl", "aH", "Ht", "lH", "tl", "uH", "Ot", "cH", "Wr", "Pt", "IE", "ge", "ox", "xH", "hH", "gH", "nx", "Ku", "vE", "pH", "mH", "fH", "dH", "sx", "SE", "uh", "NE", "ix", "KS", "Me", "bH", "SH", "CH", "IH", "vH", "wH", "XS", "NH", "RE", "AE", "FE", "$E", "DE", "kE", "jS", "yH", "EE", "_E", "TH", "TE", "Q", "ch", "Di", "vn", "ME", "OE", "RH", "LE", "DH", "EH", "AH", "PE", "_H", "$H", "FH", "ax", "kH", "YS", "ZS", "zE", "OH", "X", "PH", "Zp", "LH", "pt", "MH", "D", "zH", "Ee", "BH", "lx", "VH", "ux", "GH", "BE", "WH", "Jp", "UH", "ju", "HH", "Ri", "qH", "cx", "KH", "px", "jH", "mx", "XH", "fx", "YH", "dx", "ZH", "hx", "JH", "GE", "Yu", "QS", "gx", "QH", "JS", "VE", "Qp", "rq", "nq", "tq", "t0", "Xu", "eq", "no", "Dr", "Ie", "oq", "R", "sq", "Ql", "iq", "xx", "aq", "oe", "lq", "Jr", "uq", "Rt", "cq", "Fi", "pq", "WE", "mq", "tu", "UE", "fq", "Oi", "dq", "yx", "hq", "bx", "gq", "wx", "xq", "Cx", "yq", "HE", "bq", "Pi", "wq", "Ix", "bo", "Cq", "vr", "Iq", "vx", "vq", "Sx", "Sq", "Nx", "Nq", "Tx", "Tq", "Sn", "kq", "tm", "Eq", "em", "_q", "rm", "Aq", "kx", "$q", "Ex", "Dq", "_x", "Rq", "eu", "Fq", "nm", "Oq", "Zu", "Pq", "om", "Lq", "ph", "Mq", "Ax", "zq", "Li", "Bq", "qE", "Vq", "$x", "Gq", "Rr", "Wq", "_e", "Uq", "It", "Hq", "Dx", "qq", "Rx", "Kq", "KE", "jq", "Mi", "Xq", "Fx", "e0", "jE", "r0", "wo", "Yq", "n0", "mh", "Zq", "Jq", "Sr", "Qq", "el", "tK", "ln", "mt", "eK", "ve", "rK", "Mt", "nK", "ft", "oK", "XE", "rl", "sK", "Ox", "iK", "or", "aK", "sr", "lK", "Px", "uK", "Fr", "cK", "Ju", "pK", "zi", "mK", "Bi", "fK", "Re", "dK", "un", "hK", "Lx", "gK", "Mx", "xK", "zx", "yK", "ru", "bK", "sm", "wK", "zn", "YE", "CK", "Bx", "IK", "Nr", "vK", "nu", "SK", "Gx", "NK", "TK", "kK", "Vx", "cn", "EK", "Gs", "_K", "Wx", "AK", "ct", "$K", "im", "DK", "am", "RK", "Or", "FK", "ou", "OK", "lm", "PK", "Ux", "Hx", "LK", "fh", "ZE", "MK", "su", "zK", "qx", "BK", "JE", "VK", "Nn", "GK", "Se", "Ne", "pr", "QE", "WK", "Vi", "UK", "Kx", "HK", "jx", "qK", "Qu", "KK", "t_", "jK", "e_", "XK", "Ws", "YK", "wr", "ZK", "r_", "JK", "pn", "QK", "n_", "tj", "o_", "ej", "s_", "rj", "i_", "nj", "iu", "oj", "ij", "sj", "Xx", "aj", "au", "lj", "Yx", "uj", "a_", "cj", "l_", "pj", "u_", "mj", "c_", "ty", "ec", "Jx", "Qx", "bj", "k_", "wj", "rc", "Cj", "E_", "Ij", "Gi", "Wi", "vj", "ey", "Sj", "Pr", "Nj", "um", "Tj", "mr", "kj", "__", "Ej", "A_", "_j", "$_", "Aj", "D_", "$j", "cm", "Dj", "pm", "Rj", "mm", "Fj", "fm", "Oj", "R_", "Pj", "ry", "Lj", "dm", "Mj", "hm", "zj", "gm", "Bj", "hh", "Vj", "xm", "Gj", "nc", "Wj", "lu", "Uj", "uu", "Hj", "nl", "qj", "ym", "Kj", "fr", "jj", "cu", "Xj", "bm", "Yj", "Bn", "Zj", "qe", "Jj", "Co", "Qj", "ny", "t6", "oy", "Us", "F_", "O_", "P_", "e6", "sy", "r6", "wm", "n6", "iy", "o6", "Cm", "s6", "dr", "L_", "ay", "ly", "i6", "uy", "a6", "l6", "u6", "c6", "p6", "m6", "M_", "d6", "h6", "g6", "x6", "z_", "y6", "p0", "m0", "gh", "b6", "w6", "pu", "B_", "V_", "G_", "C6", "Im", "oc", "sc", "ic", "ac", "I6", "v6", "cy", "S6", "py", "N6", "T6", "k6", "W_", "E6", "my", "_6", "fy", "A6", "U_", "$6", "H_", "D6", "q_", "R6", "K_", "F6", "j_", "Io", "O6", "X_", "Y_", "P6", "M6", "L6", "dy", "f0", "hy", "gy", "Z_", "z6", "B6", "V6", "J_", "G6", "Q_", "W6", "tA", "U6", "eA", "H6", "rA", "q6", "xy", "K6", "yy", "j6", "X6", "nA", "Y6", "oA", "Z6", "sA", "J6", "iA", "Q6", "aA", "lA", "Ze", "tX", "Ur", "eX", "uA", "rX", "cA", "nX", "pA", "oX", "mA", "sX", "fA", "iX", "dA", "aX", "lX", "hA", "uX", "cX", "gA", "pX", "xA", "mX", "yA", "fX", "bA", "dX", "wA", "hX", "CA", "gX", "IA", "xX", "vA", "yX", "bX", "so", "d0", "wX", "CX", "IX", "Hr", "mu", "fu", "du", "hu", "Ui", "gu", "xu", "Hs", "lc", "vX", "xh", "S", "MX", "zX", "BX", "VX", "GX", "LX", "by", "Hi", "g0", "h0", "SX", "jX", "t5", "TX", "HX", "qX", "AX", "NX", "JX", "YX", "XX", "C5", "w5", "KX", "e5", "QX", "$X", "RX", "EX", "DX", "FX", "kX", "OX", "PX", "s5", "i5", "a5", "c5", "m5", "p5", "l5", "u5", "g5", "f5", "d5", "h5", "r5", "WX", "o5", "y0", "UX", "_X", "x0", "ZX", "SA", "NA", "n5", "b5", "y5", "x5", "qr", "wy", "TA", "kA", "EA", "_A", "AA", "$A", "DA", "RA", "FA", "OA", "PA", "I5", "LA", "MA", "v5", "zA", "BA", "VA", "GA", "WA", "UA", "HA", "qA", "KA", "jA", "XA", "YA", "S5", "ZA", "JA", "QA", "t2", "e2", "r2", "n2", "o2", "s2", "i2", "a2", "l2", "u2", "c2", "p2", "d2", "m2", "f2", "h2", "g2", "x2", "y2", "b2", "w2", "C2", "I2", "v2", "N5", "S2", "N2", "Cy", "b0", "T2", "T5", "k2", "E2", "k5", "_2", "A2", "$2", "D2", "R2", "F2", "O2", "P2", "L2", "M2", "z2", "B2", "w0", "V2", "G2", "E5", "_5", "W2", "U2", "H2", "q2", "K2", "j2", "X2", "Y2", "Z2", "J2", "Q2", "t$", "e$", "r$", "n$", "o$", "s$", "i$", "a$", "l$", "C0", "I0", "u$", "c$", "p$", "m$", "f$", "d$", "h$", "g$", "x$", "y$", "b$", "w$", "A5", "C$", "$5", "Tn", "Kr", "z", "vt", "vm", "yh", "So", "io", "S0", "Tr", "xe", "No", "ol", "vo", "Sm", "v0", "qi", "D5", "bh", "To", "I$", "Ki", "Iy", "Qe", "v$", "S$", "vy", "R5", "Ny", "Sy", "yu", "N$", "T$", "k$", "E$", "_$", "Nm", "Fe", "$$", "mn", "N0", "wh", "A$", "Ks", "F5", "Ty", "D$", "ky", "O5", "R$", "ko", "uc", "js", "fn", "T0", "lr", "dn", "Qr", "il", "F$", "_y", "O$", "P$", "sl", "k0", "Ch", "Tm", "_0", "km", "Eo", "E0", "Ay", "cc", "hn", "L$", "M$", "$y", "z$", "bu", "B$", "V$", "P5", "L5", "gn", "Em", "wu", "_m", "Am", "$m", "Dm", "Rm", "M5", "jr", "pc", "mc", "fc", "dc", "hc", "gc", "Fm", "G$", "W$", "Te", "de", "Dy", "Om", "St", "zt", "Pm", "H$", "Ih", "B5", "vh", "Lm", "ye", "tn", "V5", "al", "G5", "Et", "W5", "U5", "A0", "Xs", "Ry", "H5", "_o", "Fy", "Oy", "K$", "xc", "q5", "j5", "q$", "K5", "X5", "Y$", "Y5", "Q5", "J5", "Z5", "$0", "yc", "Mm", "zm", "Bm", "Vm", "j$", "ze", "X$", "Be", "Z$", "r8", "u8", "l8", "c8", "p8", "i8", "m8", "f8", "e8", "d8", "o8", "n8", "s8", "a8", "t8", "AD", "En", "pl", "$Y", "BY", "vZ", "VY", "H0", "q0", "K0", "YY", "JY", "tZ", "ZY", "QY", "eZ", "KY", "hZ", "EZ", "TZ", "GY", "IY", "vY", "SY", "NY", "TY", "pZ", "mZ", "EY", "DY", "AY", "qY", "RY", "gY", "zY", "OY", "IZ", "CZ", "rZ", "nZ", "xZ", "yZ", "TD", "kD", "sZ", "iZ", "z0", "hY", "jY", "yY", "aZ", "lZ", "SZ", "bZ", "wZ", "ED", "_D", "oZ", "WY", "UY", "HY", "MY", "bY", "xY", "PY", "NZ", "LY", "kZ", "fZ", "kY", "uZ", "cZ", "wY", "FY", "dZ", "CY", "gZ", "_Y", "XY", "ji", "Py", "J$", "h8", "ll", "Ly", "D0", "My", "zy", "By", "xn", "Vy", "yn", "Sh", "Xi", "Gm", "Cu", "g8", "x8", "y8", "b8", "w8", "bc", "Wm", "C8", "Um", "I8", "v8", "Th", "Nh", "Gy", "kh", "Eh", "tD", "S8", "N8", "R0", "eD", "Uy", "Hy", "T8", "k8", "E8", "_8", "A8", "$8", "_h", "D8", "F0", "Wy", "rD", "Ah", "oD", "P0", "O0", "sD", "O8", "qy", "P8", "L8", "F8", "iD", "wc", "Ky", "Hm", "Vn", "M8", "jy", "Xy", "aD", "z8", "cD", "lD", "B8", "pD", "uD", "V8", "G8", "mD", "Yy", "qm", "Zy", "Jy", "L0", "Ao", "W8", "M0", "fD", "dD", "U8", "H8", "hD", "q8", "K8", "Gn", "Qy", "gD", "xD", "j8", "X8", "Yi", "Y8", "Z8", "J8", "en", "tb", "eb", "rb", "nb", "ob", "sb", "ib", "ab", "lb", "ub", "Km", "cb", "pb", "mb", "Ys", "B0", "Zs", "V0", "fb", "Iu", "wD", "CD", "yD", "me", "bD", "be", "jm", "Xm", "Ym", "Zm", "Jm", "Qm", "vu", "kn", "Js", "$h", "G0", "tY", "ID", "eY", "Cc", "Su", "ul", "cl", "tf", "ef", "db", "rf", "Nu", "nf", "of", "rY", "sf", "W0", "U0", "Sc", "Ic", "fl", "af", "vc", "lf", "ml", "uf", "nY", "hb", "Nc", "cf", "Tc", "pf", "mf", "ff", "df", "hf", "gf", "xf", "yf", "bf", "dl", "wf", "Cf", "If", "vf", "Sf", "Nf", "Dh", "oY", "Tf", "kf", "Ef", "_f", "Rh", "sY", "iY", "aY", "Af", "$f", "lY", "Df", "Cb", "vD", "gb", "Rf", "Ff", "xb", "Of", "Pf", "yb", "Lf", "Mf", "bb", "zf", "Bf", "wb", "Vf", "Gf", "Ib", "Wf", "uY", "cY", "Uf", "Hf", "pY", "mY", "qf", "SD", "Kf", "dY", "ND", "jf", "$D", "zZ", "GZ", "_Z", "AZ", "DZ", "RZ", "PZ", "BZ", "LZ", "MZ", "VZ", "WZ", "FZ", "OZ", "$Z", "DD", "RD", "HZ", "UZ", "qZ", "Sb", "vb", "FD", "Nb", "KZ", "jZ", "XZ", "ao", "OD", "j0", "ZZ", "Tb", "JZ", "I", "Cr", "bn", "kb", "PD", "Qs", "Fh", "ti", "X0", "QZ", "Y0", "t7", "Z0", "e7", "J0", "r7", "Q0", "n7", "tN", "o7", "eN", "s7", "rN", "i7", "nN", "a7", "oN", "l7", "sN", "u7", "iN", "c7", "aN", "p7", "lN", "m7", "uN", "f7", "cN", "d7", "pN", "h7", "mN", "g7", "fN", "x7", "Oh", "Eb", "Ob", "Ab", "Fb", "_b", "Lb", "Rb", "Pb", "$b", "Db", "LD", "dN", "y7", "MD", "zD", "Mb", "se", "BD", "VD", "Wn", "GD", "Xf", "zb", "Bb", "hl", "WD", "UD", "HD", "qD", "KD", "jD", "XD", "YD", "hN", "ZD", "JD", "QD", "Vb", "tR", "eR", "rR", "nR", "oR", "sR", "iR", "aR", "lR", "uR", "cR", "pR", "gN", "Ph", "xN", "yN", "G7", "W7", "mR", "z7", "B7", "V7", "kc", "Gb", "U7", "H7", "Lh", "q7", "j7", "K7", "fR", "RR", "Jf", "ei", "nd", "Zf", "od", "vR", "ER", "_R", "AR", "DR", "zN", "$R", "SR", "IR", "bR", "dR", "Wb", "Tu", "hR", "wN", "gR", "Ub", "xR", "X7", "yR", "Y7", "Yf", "Ec", "RN", "CN", "Mh", "IN", "wR", "qb", "CR", "gl", "$N", "tr", "_N", "kN", "EN", "Hb", "AN", "TN", "NN", "SN", "Kb", "DN", "vN", "_c", "_n", "Z7", "J7", "jb", "zh", "NR", "Xb", "FN", "TR", "Qf", "td", "ed", "Bh", "ON", "PN", "Yb", "LN", "MN", "rd", "kR", "Q7", "Zb", "tt", "tJ", "ku", "fw", "GN", "ad", "Qb", "VN", "WN", "Ac", "UN", "qN", "jN", "XN", "tw", "ew", "ZN", "YN", "QN", "JN", "rw", "tT", "nw", "eT", "rT", "Vh", "nT", "oT", "sT", "ow", "sw", "iw", "Dc", "iT", "xl", "lF", "BN", "Rc", "aw", "lw", "cd", "pF", "lT", "uw", "Fc", "Oc", "Pc", "cT", "cw", "pw", "ld", "mw", "eJ", "FR", "Qt", "Ir", "OR", "sd", "Xr", "PR", "$o", "LR", "Do", "MR", "ie", "id", "rJ", "Zi", "zR", "wn", "_t", "Ro", "nJ", "BR", "HN", "VR", "KN", "GR", "oJ", "WR", "sJ", "UR", "iJ", "HR", "aJ", "qR", "lJ", "KR", "uJ", "jR", "cJ", "XR", "pJ", "YR", "mJ", "ZR", "fJ", "$c", "JR", "dJ", "QR", "hJ", "tF", "Ve", "eF", "gJ", "rF", "xJ", "yJ", "bJ", "wJ", "nF", "CJ", "IJ", "oF", "Fo", "ud", "iF", "sF", "vJ", "aF", "aT", "uF", "Oo", "cF", "SJ", "mF", "NJ", "fF", "uT", "TJ", "kJ", "Gh", "dF", "Wh", "hF", "pT", "gF", "mT", "xF", "_J", "fT", "yF", "dT", "bF", "hT", "wF", "Lc", "Yt", "CF", "gT", "IF", "AJ", "vF", "$J", "SF", "DJ", "NF", "RJ", "TF", "FJ", "kF", "OJ", "EF", "PJ", "_F", "LJ", "AF", "MJ", "$F", "zJ", "DF", "BJ", "RF", "VJ", "GJ", "FF", "WJ", "OF", "pd", "dw", "hw", "PF", "UJ", "LF", "HJ", "MF", "qJ", "zF", "KJ", "BF", "jJ", "VF", "XJ", "GF", "YJ", "WF", "ZJ", "UF", "JJ", "HF", "QJ", "qF", "Ji", "KF", "Eu", "jF", "xT", "XF", "tQ", "YF", "eQ", "ZF", "rQ", "JF", "nQ", "QF", "oQ", "tO", "sQ", "eO", "iQ", "rO", "aQ", "nO", "lQ", "oO", "uQ", "sO", "cQ", "iO", "pQ", "aO", "yT", "lO", "mQ", "uO", "fQ", "cO", "dQ", "pO", "mO", "fO", "dO", "yl", "hO", "hQ", "gO", "gQ", "xO", "xQ", "yQ", "bQ", "wQ", "CQ", "IQ", "vQ", "yO", "md", "bO", "SQ", "Uh", "Hh", "gw", "NQ", "TQ", "bT", "kQ", "EQ", "wO", "qh", "_Q", "CO", "IO", "AQ", "$Q", "vO", "DQ", "SO", "RQ", "NO", "FQ", "TO", "OQ", "kO", "PQ", "EO", "LQ", "_O", "MQ", "AO", "zQ", "$O", "BQ", "DO", "VQ", "RO", "GQ", "WQ", "FO", "UQ", "OO", "HQ", "qQ", "PO", "KQ", "LO", "jQ", "MO", "wT", "zO", "XQ", "BO", "YQ", "VO", "ZQ", "GO", "JQ", "WO", "UO", "HO", "QQ", "qO", "t9", "KO", "e9", "jO", "r9", "n9", "XO", "ZO", "CT", "YO", "o9", "JO", "s9", "i9", "QO", "a9", "l9", "tP", "u9", "c9", "eP", "p9", "rP", "Kh", "nP", "oP", "sP", "IT", "iP", "m9", "xw", "f9", "d9", "aP", "h9", "lP", "g9", "uP", "x9", "cP", "y9", "pP", "b9", "mP", "w9", "fP", "C9", "dP", "I9", "hP", "v9", "gP", "S9", "xP", "yP", "N9", "bP", "T9", "wP", "k9", "E9", "CP", "_9", "IP", "A9", "vP", "$9", "D9", "R9", "SP", "F9", "NP", "O9", "TP", "P9", "kP", "L9", "EP", "M9", "_P", "z9", "AP", "B9", "$P", "V9", "DP", "G9", "RP", "W9", "FP", "U9", "OP", "H9", "PP", "LP", "q9", "MP", "K9", "zP", "j9", "BP", "X9", "VP", "Y9", "GP", "Z9", "WP", "J9", "UP", "Q9", "HP", "ttt", "qP", "ett", "KP", "itt", "att", "jP", "rtt", "ntt", "stt", "ott", "jh", "ltt", "XP", "utt", "YP", "ctt", "ZP", "ptt", "gd", "ri", "wtt", "Jh", "MT", "eL", "vw", "ht", "TT", "ET", "OT", "_T", "DT", "$T", "RT", "kT", "wl", "fd", "rL", "VT", "ytt", "LT", "PT", "Cl", "hd", "zT", "GT", "tL", "BT", "Hn", "WT", "UT", "Au", "HT", "Nw", "AT", "Iw", "Ctt", "Itt", "Sw", "btt", "dd", "Zh", "FT", "Mc", "yw", "vT", "Un", "ftt", "mtt", "_u", "Yr", "Lr", "zc", "JP", "Xh", "Qi", "QP", "Yh", "dtt", "htt", "gtt", "bl", "xtt", "nL", "bw", "ww", "Cw", "NT", "vtt", "Tt", "Ge", "ni", "Bc", "Stt", "oL", "xd", "yd", "Tw", "sL", "iL", "kw", "Ntt", "Ett", "$tt", "Ttt", "Att", "ktt", "_tt", "Ott", "wd", "Ktt", "Xtt", "Ztt", "Qtt", "eet", "ret", "net", "aL", "qtt", "jtt", "Ytt", "Jtt", "tet", "oet", "set", "lL", "Ptt", "Utt", "Mtt", "Btt", "Ltt", "Htt", "ztt", "Vtt", "Gtt", "Wtt", "Dtt", "Rtt", "Ftt", "Vc", "Cd", "Id", "vd", "Bt", "cL", "qT", "uL", "pL", "mL", "we", "Ew", "_w", "Aw", "$w", "uet", "Qh", "Dw", "uk", "ek", "ok", "ZT", "tk", "YT", "XT", "QT", "JT", "jT", "KT", "ik", "sk", "lk", "ak", "Fw", "Lw", "Rw", "Pw", "Ow", "rk", "nk", "tg", "Gc", "cet", "fL", "Mw", "dL", "hL", "gL", "xL", "yL", "bL", "wL", "CL", "IL", "vL", "SL", "NL", "TL", "kL", "EL", "_L", "AL", "$L", "DL", "RL", "FL", "OL", "PL", "LL", "ML", "zL", "BL", "VL", "GL", "WL", "zw", "UL", "HL", "qL", "Bw", "KL", "jL", "XL", "YL", "ZL", "JL", "QL", "tM", "Wc", "eM", "ck", "er", "rM", "Vw", "Sd", "pet", "Gw", "oM", "sM", "nM", "met", "fet", "det", "Mr", "hr", "iM", "pk", "aM", "lM", "uM", "ta", "cM", "mM", "fM", "dM", "hM", "gM", "An", "Ww", "get", "xet", "yet", "Uw", "bet", "wet", "Cet", "Iet", "$u", "vet", "xM", "yM", "b1e", "Nd", "lo", "ea", "Po", "rr", "bM", "$n", "wM", "mk", "fk", "Net", "CM", "dk", "hk", "Tet", "IM", "Lo", "Ct", "le", "Il", "Td", "gk", "eg", "vM", "rg", "SM", "NM", "it", "TM", "ng", "Hw", "Eet", "qn", "qw", "_et", "Kw", "Du", "kM", "Uc", "EM", "Oe", "_M", "xk", "Hc", "Aet", "AM", "$M", "$et", "DM", "Det", "Ret", "RM", "Fet", "Oet", "FM", "OM", "Pet", "PM", "jw", "Xw", "Yw", "LM", "Let", "MM", "Met", "zM", "Zw", "Jw", "BM", "VM", "Qw", "zet", "GM", "Bet", "WM", "Vet", "Get", "UM", "Wet", "Uet", "HM", "Het", "qet", "qM", "Ket", "jet", "Xet", "KM", "Yet", "Zet", "jM", "oi", "Ru", "Jet", "XM", "Qet", "YM", "tC", "eC", "trt", "ZM", "ert", "JM", "rrt", "QM", "rC", "nC", "nrt", "tz", "oC", "ort", "yk", "sC", "srt", "si", "ez", "irt", "rz", "art", "nz", "lrt", "oz", "urt", "bk", "sz", "vl", "iz", "crt", "az", "wk", "lz", "uz", "prt", "cz", "iC", "aC", "mrt", "pz", "lC", "mz", "frt", "fz", "uC", "pC", "cC", "qc", "dz", "kd", "drt", "Ck", "hz", "Ed", "mC", "_d", "fC", "dC", "hC", "gC", "hrt", "gz", "xC", "yC", "bC", "wC", "grt", "xz", "xrt", "yz", "yrt", "bz", "brt", "wz", "wrt", "Cz", "Crt", "Irt", "Iz", "vrt", "Srt", "vz", "CC", "Nrt", "Sz", "Kc", "og", "Nz", "Tz", "IC", "Trt", "kz", "krt", "Ez", "Ert", "_z", "vC", "_rt", "Az", "Ad", "$d", "Art", "$z", "SC", "NC", "$rt", "Dz", "Drt", "Rz", "TC", "Rrt", "Fz", "kC", "Frt", "Oz", "Ort", "Pz", "Prt", "Lrt", "Mrt", "Lz", "zrt", "Brt", "Vrt", "Mz", "Grt", "Wrt", "Urt", "zz", "Hrt", "qrt", "Bz", "Krt", "jrt", "Ik", "Vz", "EC", "Gz", "Wz", "Xrt", "Uz", "sg", "_C", "Yrt", "Hz", "AC", "Sl", "qz", "$C", "Kz", "jz", "Zrt", "Xz", "Jrt", "Qrt", "tnt", "Yz", "DC", "RC", "Zz", "ent", "Dd", "vk", "rnt", "Jz", "nnt", "Qz", "FC", "ont", "t3", "OC", "snt", "Sk", "e3", "int", "ant", "lnt", "r3", "unt", "cnt", "pnt", "n3", "mnt", "o3", "fnt", "dnt", "s3", "hnt", "gnt", "i3", "xnt", "ynt", "a3", "bnt", "wnt", "Cnt", "l3", "Int", "vnt", "Snt", "u3", "Nnt", "c3", "Tnt", "knt", "Ent", "p3", "_nt", "Ant", "m3", "$nt", "Dnt", "Rnt", "f3", "Fnt", "Ont", "d3", "Pnt", "Lnt", "Mnt", "h3", "PC", "LC", "znt", "g3", "MC", "Bnt", "x3", "y3", "Nk", "b3", "Vnt", "Gnt", "Wnt", "w3", "Unt", "C3", "Hnt", "I3", "zC", "BC", "qnt", "v3", "Knt", "S3", "N3", "T3", "k3", "E3", "jnt", "_3", "Xnt", "Ynt", "Znt", "A3", "VC", "GC", "Jnt", "$3", "Qnt", "tot", "eot", "D3", "WC", "rot", "not", "Tk", "R3", "F3", "kk", "O3", "Ek", "P3", "oot", "L3", "sot", "iot", "aot", "M3", "lot", "uot", "z3", "cot", "pot", "B3", "mot", "fot", "V3", "UC", "dot", "G3", "ig", "W3", "U3", "H3", "hot", "q3", "HC", "qC", "_k", "K3", "got", "xot", "yot", "j3", "bot", "X3", "wot", "Y3", "Cot", "Z3", "Iot", "J3", "Ak", "Q3", "vot", "Sot", "tB", "Not", "Tot", "kot", "eB", "Eot", "_ot", "Aot", "rB", "KC", "jC", "$ot", "nB", "XC", "Dot", "oB", "YC", "ZC", "Rot", "sB", "JC", "Fot", "iB", "QC", "tI", "Oot", "aB", "eI", "lB", "Pot", "Lot", "uB", "Mot", "zot", "cB", "Rd", "Bot", "pB", "rI", "Vot", "mB", "nI", "Got", "fB", "Wot", "Uot", "dB", "Hot", "qot", "Kot", "hB", "jot", "Xot", "gB", "Yot", "Zot", "xB", "Jot", "Qot", "yB", "tst", "est", "bB", "rst", "wB", "nst", "CB", "ost", "IB", "sst", "vB", "ist", "SB", "ast", "NB", "lst", "TB", "kB", "ust", "EB", "cst", "pst", "_B", "AB", "mst", "$B", "fst", "DB", "oI", "dst", "RB", "hst", "FB", "gst", "OB", "xst", "PB", "yst", "bst", "LB", "wst", "Cst", "MB", "sI", "Ist", "$k", "zB", "iI", "aI", "jc", "BB", "vst", "VB", "lI", "Sst", "GB", "Nst", "WB", "Tst", "UB", "uI", "kst", "HB", "Est", "qt", "Fu", "qB", "_st", "Ast", "KB", "te", "jB", "ue", "$st", "XB", "YB", "Dst", "Rst", "ZB", "Xc", "JB", "QB", "Fst", "uo", "Pst", "Ost", "tV", "Cn", "eV", "Lst", "Mst", "rV", "nV", "zst", "Bst", "oV", "sV", "Vst", "Gst", "iV", "aV", "Wst", "Ust", "lV", "ur", "uV", "cV", "Hst", "qst", "pV", "Mo", "Kst", "jst", "Xst", "mV", "Yst", "fV", "ii", "dV", "hV", "gV", "Zst", "Jst", "xV", "Dk", "yV", "bV", "Qst", "tit", "wV", "CV", "eit", "rit", "IV", "vV", "SV", "Rk", "NV", "nit", "oit", "TV", "kV", "sit", "iit", "EV", "_V", "ait", "lit", "AV", "$V", "uit", "cit", "DV", "RV", "pit", "mit", "FV", "OV", "fit", "PV", "LV", "cI", "MV", "Fk", "zV", "BV", "dit", "hit", "VV", "GV", "git", "WV", "UV", "xit", "yit", "HV", "qV", "bit", "wit", "KV", "jV", "Cit", "Iit", "XV", "YV", "vit", "Sit", "ZV", "JV", "Nit", "Tit", "QV", "kit", "tG", "Eit", "eG", "rG", "nG", "_it", "Ait", "oG", "$it", "sG", "Dit", "iG", "aG", "Rit", "lG", "uG", "Fit", "cG", "Oit", "pG", "mG", "Pit", "Lit", "fG", "Mit", "dG", "hG", "zit", "Bit", "gG", "xG", "Vit", "Git", "yG", "bG", "Wit", "Uit", "wG", "Hit", "CG", "Ok", "IG", "qit", "Kit", "vG", "jit", "SG", "NG", "Fd", "TG", "Xit", "Yit", "kG", "EG", "Zit", "Jit", "_G", "AG", "Qit", "tat", "$G", "eat", "DG", "RG", "rat", "nat", "FG", "oat", "OG", "sat", "PG", "LG", "iat", "aat", "pI", "lat", "MG", "zG", "uat", "cat", "BG", "VG", "pat", "mat", "GG", "fat", "WG", "dat", "UG", "HG", "qG", "KG", "jG", "hat", "gat", "XG", "YG", "xat", "yat", "ZG", "JG", "bat", "wat", "QG", "tW", "Cat", "Iat", "eW", "rW", "nW", "oW", "vat", "Sat", "sW", "iW", "Nat", "Tat", "aW", "lW", "kat", "Eat", "uW", "cW", "pW", "_at", "Aat", "mW", "$at", "fW", "dW", "Dat", "Rat", "hW", "gW", "Fat", "Oat", "xW", "yW", "mI", "fI", "Pat", "bW", "Lat", "wW", "Mat", "CW", "IW", "vW", "zat", "SW", "NW", "Bat", "Vat", "TW", "kW", "Gat", "Wat", "EW", "Uat", "_W", "Hat", "AW", "qat", "$W", "Kat", "DW", "RW", "jat", "Xat", "FW", "OW", "PW", "LW", "Yat", "Zat", "MW", "zW", "Jat", "Qat", "BW", "VW", "tlt", "elt", "GW", "rlt", "WW", "nlt", "UW", "olt", "Pk", "Gk", "tU", "Wk", "JW", "slt", "pg", "rU", "Vk", "alt", "ilt", "QW", "gI", "ug", "eU", "lg", "Uk", "cg", "llt", "ult", "clt", "plt", "mlt", "flt", "dlt", "nU", "hlt", "glt", "xlt", "ylt", "blt", "draw_exports", "__export", "AnchorPosition", "DrawBox", "DrawBoxOptions", "DrawFaceLandmarks", "DrawFaceLandmarksOptions", "DrawTextField", "DrawTextFieldOptions", "drawContour", "drawDetections", "drawFaceExpressions", "drawFaceLandmarks", "drawContour", "ctx", "points", "isClosed", "x", "y", "prevIdx", "from", "to", "utils_exports", "__export", "computeReshapedDimensions", "getCenterPoint", "isDimensions", "isEven", "isFloat", "isTensor", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isValidNumber", "isValidProbablitiy", "range", "round", "Dimensions", "width", "height", "isValidNumber", "isTensor", "tensor", "dim", "Ft", "isTensor1D", "isTensor2D", "isTensor3D", "isTensor4D", "isFloat", "num", "isEven", "round", "prec", "f", "isDimensions", "obj", "computeReshapedDimensions", "width", "height", "inputSize", "scale", "Dimensions", "getCenterPoint", "pts", "sum", "pt", "Point", "range", "start", "step", "_", "i", "isValidNumber", "isValidProbablitiy", "Point", "x", "y", "pt", "Box", "rect", "isValidNumber", "box", "callee", "allowNegativeDimensions", "_box", "isBbox", "isRect", "x", "y", "width", "height", "Point", "val", "diff", "s", "scaleX", "isDimensions", "scaleY", "padX", "padY", "imgWidth", "imgHeight", "right", "bottom", "clippedX", "clippedY", "newWidth", "newHeight", "clippedWidth", "clippedHeight", "sx", "sy", "imageHeight", "imageWidth", "w", "h", "dx", "dy", "edx", "edy", "ex", "ey", "region", "BoundingBox", "Box", "left", "top", "right", "bottom", "allowNegativeDimensions", "ObjectDetection", "score", "classScore", "className", "relativeBox", "imageDims", "Dimensions", "Box", "width", "height", "FaceDetection", "ObjectDetection", "score", "relativeBox", "imageDims", "width", "height", "iou", "box1", "box2", "isIOU", "width", "height", "interSection", "minBbox", "pts", "xs", "pt", "ys", "minX", "min", "x", "minY", "y", "maxX", "max", "maxY", "BoundingBox", "nonMaxSuppression", "boxes", "scores", "iouThreshold", "isIOU", "indicesSortedByScore", "score", "boxIndex", "c1", "c2", "c", "pick", "curr", "indices", "outputs", "i", "idx", "currBox", "idxBox", "iou", "_", "j", "normalize", "x", "meanRgb", "B", "r", "g", "b", "avg_r", "bo", "avg_g", "avg_b", "avg_rgb", "oe", "ct", "padToSquare", "imgTensor", "isCenterImage", "B", "height", "width", "dimDiff", "paddingAmount", "paddingAxis", "createPaddingTensor", "paddingAmountLocal", "paddingTensorShape", "bo", "paddingTensorAppend", "remainingPaddingAmount", "tensorsToStack", "t", "J", "oe", "shuffleArray", "inputArray", "array", "i", "j", "x", "sigmoid", "x", "inverseSigmoid", "Rect", "Box", "x", "y", "width", "height", "allowNegativeDimensions", "relX", "relY", "relScale", "FaceLandmarks", "relativeFaceLandmarkPositions", "imgDims", "shift", "Point", "width", "height", "Dimensions", "pt", "x", "y", "detection", "options", "box", "FaceDetection", "Box", "useDlibAlignment", "minBoxPadding", "centers", "leftEyeCenter", "rightEyeCenter", "mouthCenter", "distToMouth", "eyeToMouthDist", "size", "refPoint", "getCenterPoint", "Rect", "padding", "minBbox", "FaceLandmarks5", "FaceLandmarks", "pts", "getCenterPoint", "FaceLandmarks68", "FaceLandmarks", "getCenterPoint", "FaceMatch", "label", "distance", "withDistance", "round", "LabeledBox", "Box", "box", "label", "callee", "isValidNumber", "LabeledFaceDescriptors", "label", "descriptors", "desc", "d", "json", "PredictedBox", "LabeledBox", "box", "label", "score", "classScore", "callee", "isValidProbablitiy", "isWithFaceDetection", "obj", "FaceDetection", "extendWithFaceDetection", "sourceObj", "detection", "createBrowserEnv", "fetch", "isNodejs", "createFileSystem", "fs", "requireFsError", "isNodejs", "err", "filePath", "resolve", "reject", "buffer", "createNodejsEnv", "Canvas", "Image", "Video", "createCanvasElement", "createImageElement", "createVideoElement", "fetch", "fileSystem", "createFileSystem", "isBrowser", "environment", "getEnv", "setEnv", "env", "initialize", "isBrowser", "createBrowserEnv", "isNodejs", "createNodejsEnv", "monkeyPatch", "Canvas", "Image", "createFileSystem", "resolveInput", "arg", "env", "getContext2dOrThrow", "canvasArg", "Canvas", "CanvasRenderingContext2D", "env", "canvas", "resolveInput", "ctx", "AnchorPosition", "DrawTextFieldOptions", "options", "anchorPosition", "backgroundColor", "fontColor", "fontSize", "fontStyle", "padding", "DrawTextField", "text", "anchor", "ctx", "l", "w0", "w1", "canvasDims", "isShiftLeft", "isShiftTop", "textFieldWidth", "textFieldHeight", "x", "y", "width", "height", "newX", "newY", "canvasArg", "canvas", "resolveInput", "getContext2dOrThrow", "maxTextWidth", "textHeight", "upperLeft", "textLine", "i", "DrawBoxOptions", "options", "boxColor", "lineWidth", "label", "drawLabelOptions", "defaultDrawLabelOptions", "DrawTextFieldOptions", "DrawBox", "box", "Box", "canvasArg", "ctx", "getContext2dOrThrow", "x", "y", "width", "height", "DrawTextField", "drawDetections", "canvasArg", "detections", "det", "score", "FaceDetection", "isWithFaceDetection", "box", "Box", "label", "round", "DrawBox", "isMediaLoaded", "media", "Image", "Video", "env", "awaitMediaLoaded", "media", "resolve", "reject", "env", "isMediaLoaded", "onError", "e", "onLoad", "bufferToImage", "buf", "resolve", "reject", "reader", "img", "env", "getMediaDimensions", "input", "Image", "Video", "env", "Dimensions", "createCanvas", "width", "height", "createCanvasElement", "env", "canvas", "createCanvasFromMedia", "media", "dims", "ImageData", "isMediaLoaded", "getMediaDimensions", "getContext2dOrThrow", "imageTensorToCanvas", "imgTensor", "canvas", "targetCanvas", "env", "height", "width", "numChannels", "isTensor4D", "imgTensor3D", "B", "ox", "isMediaElement", "input", "Image", "Canvas", "Video", "env", "imageToSquare", "input", "inputSize", "centerImage", "Image", "Canvas", "env", "createCanvas", "dims", "getMediaDimensions", "scale", "width", "height", "targetCanvas", "inputCanvas", "createCanvasFromMedia", "offset", "dx", "dy", "getContext2dOrThrow", "NetInput", "inputs", "treatAsBatchInput", "input", "idx", "isTensor3D", "isTensor4D", "batchSize", "canvas", "env", "createCanvasFromMedia", "range", "_", "batchIdx", "width", "height", "computeReshapedDimensions", "inputSize", "isCenterInputs", "B", "inputTensors", "Ft", "imgTensor", "sr", "padToSquare", "so", "ox", "imageToSquare", "qe", "t", "J", "toNetInput", "inputs", "NetInput", "inputArgArray", "getIdxHint", "idx", "inputArray", "resolveInput", "input", "i", "isMediaElement", "isTensor3D", "isTensor4D", "batchSize", "awaitMediaLoaded", "extractFaces", "input", "detections", "Canvas", "env", "canvas", "netInput", "toNetInput", "tensorOrCanvas", "imageTensorToCanvas", "ctx", "getContext2dOrThrow", "det", "FaceDetection", "box", "x", "y", "width", "height", "faceImg", "createCanvas", "extractFaceTensors", "imageTensor", "detections", "isTensor3D", "isTensor4D", "B", "imgHeight", "imgWidth", "numChannels", "det", "FaceDetection", "box", "x", "y", "width", "height", "xm", "fetchOrThrow", "url", "init", "fetch", "env", "res", "fetchImage", "uri", "res", "fetchOrThrow", "blob", "bufferToImage", "fetchJson", "uri", "fetchOrThrow", "fetchNetWeights", "uri", "fetchOrThrow", "bufferToVideo", "buf", "resolve", "reject", "video", "env", "fetchVideo", "uri", "res", "fetchOrThrow", "blob", "bufferToVideo", "getModelUris", "uri", "defaultModelName", "defaultManifestFilename", "protocol", "parts", "s", "manifestFile", "modelBaseUri", "loadWeightMap", "uri", "defaultModelName", "manifestUri", "modelBaseUri", "getModelUris", "manifest", "fetchJson", "$r", "matchDimensions", "input", "reference", "useMediaDimensions", "width", "height", "getMediaDimensions", "NeuralNetwork", "name", "paramPath", "obj", "objProp", "tensor", "param", "Ya", "path", "variable", "nr", "throwOnRedispose", "flat", "arr", "weightsOrUrl", "uri", "weightMap", "loadWeightMap", "filePath", "readFile", "env", "manifestUri", "modelBaseUri", "getModelUris", "fetchWeightsFromDisk", "filePaths", "fp", "buf", "loadWeights", "$r", "manifest", "paramMappings", "params", "weights", "result", "res", "Ft", "depthwiseSeparableConv", "x", "params", "stride", "B", "out", "fm", "X", "denseBlock3", "x", "denseBlockParams", "isFirstLayer", "B", "out1", "Pr", "X", "Sn", "depthwiseSeparableConv", "out2", "in3", "out3", "denseBlock4", "isScaleDown", "in4", "out4", "convLayer", "x", "params", "padding", "withRelu", "B", "out", "X", "Sn", "Pr", "disposeUnusedWeightTensors", "weightMap", "paramMappings", "path", "pm", "extractConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "filterSize", "mappedPrefix", "filters", "F_", "bias", "extractFCParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "fc_weights", "Us", "fc_bias", "SeparableConvParams", "depthwise_filter", "pointwise_filter", "bias", "extractSeparableConvParamsFactory", "extractWeights", "paramMappings", "channelsIn", "channelsOut", "mappedPrefix", "depthwise_filter", "F_", "pointwise_filter", "bias", "SeparableConvParams", "loadSeparableConvParamsFactory", "extractWeightEntry", "prefix", "extractWeightEntryFactory", "weightMap", "paramMappings", "originalPath", "paramRank", "mappedPath", "tensor", "isTensor", "extractWeightsFactory", "weights", "remainingWeights", "extractWeights", "numWeights", "ret", "getRemainingWeights", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractDenseBlock3Params", "channelsIn", "channelsOut", "mappedPrefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock4Params", "extractorsFactory", "dense0", "dense1", "dense2", "dense3", "loadConvParamsFactory", "extractWeightEntry", "prefix", "filters", "bias", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractDenseBlock3Params", "prefix", "isFirstLayer", "conv0", "conv1", "conv2", "extractDenseBlock4Params", "conv3", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractDenseBlock4Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "FaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock4", "Ql", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "fullyConnectedLayer", "x", "params", "B", "X", "Lt", "extractParams", "weights", "channelsIn", "channelsOut", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "fc", "extractFCParamsFactory", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "seperateWeightMaps", "weightMap", "featureExtractorMap", "classifierMap", "key", "map", "FaceProcessor", "NeuralNetwork", "_name", "faceFeatureExtractor", "input", "params", "B", "bottleneckFeatures", "NetInput", "fullyConnectedLayer", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "cIn", "cOut", "classifierWeightSize", "featureExtractorWeights", "classifierWeights", "FACE_EXPRESSION_LABELS", "FaceExpressions", "probabilities", "expression", "idx", "e0", "e1", "FaceExpressionNet", "FaceProcessor", "faceFeatureExtractor", "FaceFeatureExtractor", "input", "B", "lu", "toNetInput", "netInput", "out", "probabilitesByBatch", "dr", "t", "data", "predictionsByBatch", "probabilites", "FaceExpressions", "isWithFaceExpressions", "obj", "FaceExpressions", "extendWithFaceExpressions", "sourceObj", "expressions", "drawFaceExpressions", "canvasArg", "faceExpressions", "minConfidence", "textFieldAnchor", "e", "expr", "FaceExpressions", "isWithFaceExpressions", "resultsToDisplay", "exprLocal", "anchor", "isWithFaceDetection", "Point", "DrawTextField", "round", "isWithFaceLandmarks", "obj", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "calculateFaceAngle", "mesh", "degrees", "radians", "calcLengthBetweenTwoPoints", "a", "b", "angle", "calcYaw", "leftPoint", "midPoint", "rightPoint", "leftToMidpoint", "rightToMidpoint", "calcRoll", "lever", "pivot", "hypotenuse", "opposite", "angleInRadians", "angleInDegrees", "normalizeAngle", "tiltDirection", "calcPitch", "base", "baseCoords", "midToBaseLength", "direction", "pt", "extendWithFaceLandmarks", "sourceObj", "unshiftedLandmarks", "shift", "landmarks", "rect", "imageDims", "alignedRect", "DrawFaceLandmarksOptions", "options", "drawLines", "drawPoints", "lineWidth", "lineColor", "pointSize", "pointColor", "DrawFaceLandmarks", "faceLandmarks", "canvasArg", "ctx", "getContext2dOrThrow", "FaceLandmarks68", "drawContour", "drawPoint", "pt", "drawFaceLandmarks", "f", "landmarks", "FaceLandmarks", "isWithFaceLandmarks", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractReductionBlockParams", "channelsIn", "channelsOut", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "channels", "separable_conv2", "extractParams", "weights", "numMainBlocks", "getRemainingWeights", "extractWeightsFactory", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "loadParamsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractConvParams", "loadConvParamsFactory", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractReductionBlockParams", "mappedPrefix", "separable_conv0", "separable_conv1", "expansion_conv", "extractMainBlockParams", "separable_conv2", "extractParamsFromWeightMap", "numMainBlocks", "entry_flow_conv_in", "entry_flow_reduction_block_0", "entry_flow_reduction_block_1", "entry_flow", "middle_flow", "range", "idx", "exit_flow_reduction_block", "exit_flow_separable_conv", "exit_flow", "disposeUnusedWeightTensors", "conv", "x", "params", "stride", "X", "Sn", "reductionBlock", "isActivateInput", "out", "Pr", "depthwiseSeparableConv", "su", "mainBlock", "TinyXception", "NeuralNetwork", "numMainBlocks", "input", "B", "batchTensor", "J", "normalized", "normalize", "range", "idx", "toNetInput", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "extractParams", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractFCParams", "extractFCParamsFactory", "age", "gender", "extractParamsFromWeightMap", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractFcParams", "prefix", "weights", "bias", "params", "disposeUnusedWeightTensors", "Gender", "AgeGenderNet", "NeuralNetwork", "faceFeatureExtractor", "TinyXception", "input", "params", "B", "bottleneckFeatures", "NetInput", "pooled", "Ql", "age", "fullyConnectedLayer", "gender", "lu", "toNetInput", "netInput", "out", "ages", "dr", "genders", "ageAndGenderTensors", "ageTensor", "i", "predictionsByBatch", "genderTensor", "probMale", "isMale", "genderProbability", "throwOnRedispose", "weights", "paramMappings", "extractParams", "weightMap", "featureExtractorMap", "classifierMap", "seperateWeightMaps", "extractParamsFromWeightMap", "featureExtractorWeights", "classifierWeights", "FaceLandmark68NetBase", "FaceProcessor", "output", "inputSize", "originalDimensions", "inputDimensions", "width", "height", "scale", "batchSize", "B", "createInterleavedTensor", "fillX", "fillY", "qe", "bo", "getPadding", "batchIdx", "cond", "getPaddingX", "w", "getPaddingY", "_", "input", "out", "toNetInput", "netInput", "landmarkTensors", "dr", "landmarksForBatch", "landmarkTensor", "landmarksArray", "xCoords", "i", "isEven", "yCoords", "FaceLandmarks68", "Point", "t", "FaceLandmark68Net", "FaceLandmark68NetBase", "faceFeatureExtractor", "FaceFeatureExtractor", "extractParamsFromWeightMapTiny", "weightMap", "paramMappings", "extractDenseBlock3Params", "loadParamsFactory", "params", "disposeUnusedWeightTensors", "extractParamsTiny", "weights", "paramMappings", "extractWeights", "getRemainingWeights", "extractWeightsFactory", "extractDenseBlock3Params", "extractorsFactory", "dense0", "dense1", "dense2", "TinyFaceFeatureExtractor", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "denseBlock3", "Ql", "toNetInput", "weightMap", "extractParamsFromWeightMapTiny", "weights", "extractParamsTiny", "FaceLandmark68TinyNet", "FaceLandmark68NetBase", "faceFeatureExtractor", "TinyFaceFeatureExtractor", "FaceLandmarkNet", "FaceLandmark68Net", "scale", "x", "params", "X", "D", "convLayer", "x", "params", "strides", "withRelu", "padding", "filters", "bias", "out", "Sn", "X", "scale", "Pr", "conv", "convNoRelu", "convDown", "extractorsFactory", "extractWeights", "paramMappings", "extractFilterValues", "numFilterValues", "numFilters", "filterSize", "weights", "depth", "isFloat", "B", "Ot", "F_", "extractConvParams", "mappedPrefix", "filters", "bias", "extractScaleLayerParams", "numWeights", "biases", "extractConvLayerParams", "conv", "scale", "extractResidualLayerParams", "isDown", "conv1", "conv2", "extractParams", "getRemainingWeights", "extractWeightsFactory", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "Us", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractScaleLayerParams", "prefix", "weights", "biases", "extractConvLayerParams", "filters", "bias", "scale", "extractResidualLayerParams", "extractParamsFromWeightMap", "conv32_down", "conv32_1", "conv32_2", "conv32_3", "conv64_down", "conv64_1", "conv64_2", "conv64_3", "conv128_down", "conv128_1", "conv128_2", "conv256_down", "conv256_1", "conv256_2", "conv256_down_out", "fc", "isTensor2D", "params", "disposeUnusedWeightTensors", "residual", "x", "params", "out", "conv", "convNoRelu", "X", "Pr", "residualDown", "convDown", "pooled", "Ql", "zeros", "Ne", "isPad", "padShapeX", "zerosW", "oe", "padShapeY", "zerosH", "FaceRecognitionNet", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "normalized", "normalize", "out", "convDown", "su", "residual", "residualDown", "globalAvg", "Lt", "toNetInput", "_a", "dim", "netInput", "faceDescriptorTensors", "dr", "faceDescriptorsForBatch", "t", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createFaceRecognitionNet", "weights", "net", "FaceRecognitionNet", "extendWithFaceDescriptor", "sourceObj", "descriptor", "isWithAge", "obj", "extendWithAge", "sourceObj", "age", "isWithGender", "obj", "isValidProbablitiy", "extendWithGender", "sourceObj", "gender", "genderProbability", "extractorsFactory", "extractWeights", "paramMappings", "extractDepthwiseConvParams", "numChannels", "mappedPrefix", "filters", "F_", "batch_norm_scale", "batch_norm_offset", "batch_norm_mean", "batch_norm_variance", "extractConvParams", "channelsIn", "channelsOut", "filterSize", "isPointwiseConv", "bias", "extractPointwiseConvParams", "extractConvPairParams", "depthwise_conv", "pointwise_conv", "extractMobilenetV1Params", "conv_0", "conv_1", "conv_2", "conv_3", "conv_4", "conv_5", "conv_6", "conv_7", "conv_8", "conv_9", "conv_10", "conv_11", "conv_12", "conv_13", "extractPredictionLayerParams", "box_encoding_0_predictor", "class_predictor_0", "box_encoding_1_predictor", "class_predictor_1", "box_encoding_2_predictor", "class_predictor_2", "box_encoding_3_predictor", "class_predictor_3", "box_encoding_4_predictor", "class_predictor_4", "box_encoding_5_predictor", "class_predictor_5", "extractParams", "weights", "getRemainingWeights", "extractWeightsFactory", "mobilenetv1", "prediction_layer", "output_layer", "nx", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractPointwiseConvParams", "prefix", "idx", "mappedPrefix", "filters", "batch_norm_offset", "extractConvPairParams", "prefixDepthwiseConv", "mappedPrefixDepthwiseConv", "mappedPrefixPointwiseConv", "batch_norm_scale", "batch_norm_mean", "batch_norm_variance", "extractMobilenetV1Params", "extractConvParams", "bias", "extractBoxPredictorParams", "box_encoding_predictor", "class_predictor", "extractPredictionLayerParams", "extractParamsFromWeightMap", "extra_dim", "isTensor3D", "params", "disposeUnusedWeightTensors", "pointwiseConvLayer", "x", "params", "strides", "B", "out", "Sn", "X", "vr", "epsilon", "depthwiseConvLayer", "x", "params", "strides", "B", "out", "Li", "Oi", "vr", "getStridesForLayerIdx", "layerIdx", "idx", "mobileNetV1", "conv11", "pointwiseConvLayer", "param", "depthwiseConvStrides", "IOU", "boxes", "i", "j", "boxesData", "yminI", "xminI", "ymaxI", "xmaxI", "yminJ", "xminJ", "ymaxJ", "xmaxJ", "areaI", "areaJ", "intersectionYmin", "intersectionXmin", "intersectionYmax", "intersectionXmax", "intersectionArea", "nonMaxSuppression", "scores", "maxOutputSize", "iouThreshold", "scoreThreshold", "numBoxes", "outputSize", "candidates", "score", "boxIndex", "c", "c1", "c2", "suppressFunc", "x", "selected", "originalScore", "iou", "getCenterCoordinatesAndSizesLayer", "x", "vec", "dr", "Ot", "sizes", "ct", "centers", "X", "pt", "decodeBoxesLayer", "x0", "x1", "div0_out", "D", "or", "add0_out", "div1_out", "add1_out", "qe", "outputLayer", "boxPredictions", "classPredictions", "params", "B", "batchSize", "boxes", "R", "Fr", "scoresAndClasses", "Jr", "Rt", "scores", "boxesByBatch", "scoresByBatch", "boxPredictionLayer", "x", "params", "B", "batchSize", "boxPredictionEncoding", "R", "convLayer", "classPrediction", "predictionLayer", "x", "conv11", "params", "B", "conv0", "pointwiseConvLayer", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "boxPrediction0", "boxPredictionLayer", "boxPrediction1", "boxPrediction2", "boxPrediction3", "boxPrediction4", "boxPrediction5", "boxPredictions", "oe", "classPredictions", "SsdMobilenetv1Options", "minConfidence", "maxResults", "SsdMobilenetv1", "NeuralNetwork", "input", "params", "B", "batchTensor", "J", "x", "ct", "pt", "features", "mobileNetV1", "boxPredictions", "classPredictions", "predictionLayer", "outputLayer", "toNetInput", "options", "maxResults", "minConfidence", "SsdMobilenetv1Options", "netInput", "_boxes", "_scores", "boxes", "scores", "i", "scoresData", "indices", "nonMaxSuppression", "reshapedDims", "inputSize", "padX", "padY", "boxesData", "results", "idx", "top", "bottom", "val", "left", "right", "FaceDetection", "Rect", "weightMap", "extractParamsFromWeightMap", "weights", "extractParams", "createSsdMobilenetv1", "weights", "net", "SsdMobilenetv1", "createFaceDetectionNet", "FaceDetectionNet", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "DEFAULT_MODEL_NAME", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "isNumber", "arg", "validateConfig", "config", "c", "a", "leaky", "x", "B", "min", "D", "mt", "X", "Pr", "ct", "convWithBatchNorm", "x", "params", "B", "out", "pn", "Sn", "ct", "D", "X", "leaky", "depthwiseSeparableConv", "x", "params", "B", "out", "pn", "fm", "X", "leaky", "extractorsFactory", "extractWeights", "paramMappings", "extractConvParams", "extractConvParamsFactory", "extractBatchNormParams", "size", "mappedPrefix", "sub", "truediv", "extractConvWithBatchNormParams", "channelsIn", "channelsOut", "conv", "bn", "extractSeparableConvParams", "extractSeparableConvParamsFactory", "extractParams", "weights", "config", "boxEncodingSize", "filterSizes", "getRemainingWeights", "extractWeightsFactory", "params", "s0", "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8", "conv0", "conv1", "conv2", "conv3", "conv4", "conv5", "conv6", "conv7", "conv8", "extractorsFactory", "weightMap", "paramMappings", "extractWeightEntry", "extractWeightEntryFactory", "extractBatchNormParams", "prefix", "sub", "truediv", "extractConvParams", "filters", "bias", "extractConvWithBatchNormParams", "conv", "bn", "extractSeparableConvParams", "loadSeparableConvParamsFactory", "extractParamsFromWeightMap", "config", "params", "numFilters", "disposeUnusedWeightTensors", "TinyYolov2Options", "inputSize", "scoreThreshold", "_TinyYolov2Base", "NeuralNetwork", "config", "validateConfig", "x", "params", "out", "convWithBatchNorm", "su", "convLayer", "leaky", "depthwiseSeparableConv", "input", "inputSize", "B", "batchTensor", "J", "normalize", "toNetInput", "forwardParams", "scoreThreshold", "TinyYolov2Options", "netInput", "out0", "dr", "inputDimensions", "results", "boxes", "res", "scores", "classScores", "classNames", "nonMaxSuppression", "box", "idx", "ObjectDetection", "weightMap", "extractParamsFromWeightMap", "weights", "filterSizes", "numFilters", "extractParams", "outputTensor", "inputBlobDimensions", "width", "height", "correctionFactorX", "correctionFactorY", "numCells", "numBoxes", "boxesTensor", "scoresTensor", "classScoresTensor", "reshaped", "lu", "mt", "scoresData", "boxesData", "row", "col", "anchor", "score", "sigmoid", "ctX", "ctY", "widthLocal", "heightLocal", "y", "pos", "classScore", "label", "BoundingBox", "classesTensor", "classesData", "_", "i", "max", "curr", "TinyYolov2Base", "TinyYolov2", "TinyYolov2Base", "withSeparableConvs", "config", "IOU_THRESHOLD", "BOX_ANCHORS_SEPARABLE", "MEAN_RGB_SEPARABLE", "BOX_ANCHORS", "input", "forwardParams", "det", "FaceDetection", "DEFAULT_MODEL_NAME_SEPARABLE_CONV", "DEFAULT_MODEL_NAME", "weightMap", "createTinyYolov2", "weights", "withSeparableConvs", "net", "TinyYolov2", "TinyFaceDetectorOptions", "TinyYolov2Options", "ComposableTask", "onfulfilled", "extractAllFacesAndComputeResults", "parentResults", "input", "computeResults", "extractedFaces", "getRectForAlignment", "alignedRect", "faceBoxes", "parentResult", "isWithFaceLandmarks", "faces", "Ft", "extractFaceTensors", "extractFaces", "results", "f", "extractSingleFaceAndComputeResult", "computeResult", "IOU_THRESHOLD", "BOX_ANCHORS", "Point", "MEAN_RGB", "TinyFaceDetector", "TinyYolov2Base", "config", "IOU_THRESHOLD", "BOX_ANCHORS", "MEAN_RGB", "input", "forwardParams", "det", "FaceDetection", "weightMap", "nets", "SsdMobilenetv1", "TinyFaceDetector", "TinyYolov2", "FaceLandmark68Net", "FaceLandmark68TinyNet", "FaceRecognitionNet", "FaceExpressionNet", "AgeGenderNet", "ssdMobilenetv1", "input", "options", "tinyFaceDetector", "tinyYolov2", "detectFaceLandmarks", "detectFaceLandmarksTiny", "computeFaceDescriptor", "recognizeFaceExpressions", "predictAgeAndGender", "loadSsdMobilenetv1Model", "url", "loadTinyFaceDetectorModel", "loadTinyYolov2Model", "loadFaceLandmarkModel", "loadFaceLandmarkTinyModel", "loadFaceRecognitionModel", "loadFaceExpressionModel", "loadAgeGenderModel", "loadFaceDetectionModel", "locateFaces", "detectLandmarks", "PredictFaceExpressionsTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllFaceExpressionsTask", "parentResults", "faceExpressionsByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "extendWithFaceExpressions", "PredictAllAgeAndGenderTask", "PredictSingleFaceExpressionsTask", "faceExpressions", "extractSingleFaceAndComputeResult", "PredictSingleAgeAndGenderTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "PredictAgeAndGenderTaskBase", "ComposableTask", "parentTask", "input", "extractedFaces", "PredictAllAgeAndGenderTask", "parentResults", "ageAndGenderByFace", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "i", "age", "gender", "genderProbability", "extendWithAge", "extendWithGender", "PredictAllFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "PredictAllFaceExpressionsWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "ComputeFaceDescriptorsTaskBase", "ComposableTask", "parentTask", "input", "ComputeAllFaceDescriptorsTask", "parentResults", "extractAllFacesAndComputeResults", "faces", "face", "nets", "parentResult", "descriptor", "i", "extendWithFaceDescriptor", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "extractSingleFaceAndComputeResult", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "DetectFaceLandmarksTaskBase", "ComposableTask", "parentTask", "input", "useTinyLandmarkNet", "nets", "DetectAllFaceLandmarksTask", "parentResults", "detections", "res", "faces", "Ft", "extractFaceTensors", "extractFaces", "faceLandmarksByFace", "face", "f", "_parentResult", "i", "parentResult", "extendWithFaceLandmarks", "PredictAllFaceExpressionsWithFaceAlignmentTask", "PredictAllAgeAndGenderWithFaceAlignmentTask", "ComputeAllFaceDescriptorsTask", "DetectSingleFaceLandmarksTask", "detection", "landmarks", "PredictSingleFaceExpressionsWithFaceAlignmentTask", "PredictSingleAgeAndGenderWithFaceAlignmentTask", "ComputeSingleFaceDescriptorTask", "DetectFacesTaskBase", "ComposableTask", "input", "options", "SsdMobilenetv1Options", "DetectAllFacesTask", "result", "TinyFaceDetectorOptions", "nets", "TinyYolov2Options", "resolve", "reject", "detections", "detection", "extendWithFaceDetection", "err", "useTinyLandmarkNet", "DetectAllFaceLandmarksTask", "PredictAllFaceExpressionsTask", "PredictAllAgeAndGenderTask", "DetectSingleFaceTask", "faceDetections", "faceDetectionWithHighestScore", "faceDetection", "DetectSingleFaceLandmarksTask", "PredictSingleFaceExpressionsTask", "PredictSingleAgeAndGenderTask", "detectSingleFace", "input", "options", "SsdMobilenetv1Options", "DetectSingleFaceTask", "detectAllFaces", "DetectAllFacesTask", "allFacesSsdMobilenetv1", "input", "minConfidence", "detectAllFaces", "SsdMobilenetv1Options", "allFacesTinyYolov2", "forwardParams", "TinyYolov2Options", "allFaces", "euclideanDistance", "arr1", "arr2", "desc1", "desc2", "val", "i", "res", "diff", "FaceMatcher", "inputs", "distanceThreshold", "inputArray", "count", "createUniqueLabel", "desc", "LabeledFaceDescriptors", "queryDescriptor", "descriptors", "d", "euclideanDistance", "d1", "d2", "label", "FaceMatch", "best", "curr", "bestMatch", "ld", "json", "labeledDescriptors", "createTinyFaceDetector", "weights", "net", "TinyFaceDetector", "resizeResults", "results", "dimensions", "width", "height", "Dimensions", "obj", "isWithFaceLandmarks", "resizedDetection", "resizedLandmarks", "extendWithFaceLandmarks", "extendWithFaceDetection", "isWithFaceDetection", "FaceLandmarks", "FaceDetection", "version"] } diff --git a/dist/face-api.js b/dist/face-api.js index cc69e53..52dd2c3 100644 --- a/dist/face-api.js +++ b/dist/face-api.js @@ -4,65 +4,65 @@ author: ' */ -"use strict";var faceapi=(()=>{var cb=Object.defineProperty;var pF=Object.getOwnPropertyDescriptor;var cF=Object.getOwnPropertyNames;var dF=Object.prototype.hasOwnProperty;var Xr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var rh=(e,t)=>{for(var n in t)cb(e,n,{get:t[n],enumerable:!0})},hF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of cF(t))!dF.call(e,r)&&r!==n&&cb(e,r,{get:()=>t[r],enumerable:!(a=pF(t,r))||a.enumerable});return e};var mF=e=>hF(cb({},"__esModule",{value:!0}),e);var Lce={};rh(Lce,{AgeGenderNet:()=>wd,BoundingBox:()=>Co,Box:()=>st,ComposableTask:()=>ka,ComputeAllFaceDescriptorsTask:()=>Gr,ComputeFaceDescriptorsTaskBase:()=>Td,ComputeSingleFaceDescriptorTask:()=>Hr,DetectAllFaceLandmarksTask:()=>Cd,DetectAllFacesTask:()=>xp,DetectFaceLandmarksTaskBase:()=>Nd,DetectFacesTaskBase:()=>Ed,DetectSingleFaceLandmarksTask:()=>_d,DetectSingleFaceTask:()=>$d,Dimensions:()=>yn,FACE_EXPRESSION_LABELS:()=>D1,FaceDetection:()=>yt,FaceDetectionNet:()=>W1,FaceExpressionNet:()=>vd,FaceExpressions:()=>Br,FaceLandmark68Net:()=>Po,FaceLandmark68TinyNet:()=>kd,FaceLandmarkNet:()=>O1,FaceLandmarks:()=>ra,FaceLandmarks5:()=>x1,FaceLandmarks68:()=>Eo,FaceMatch:()=>sp,FaceMatcher:()=>Ad,FaceRecognitionNet:()=>Oo,Gender:()=>gg,LabeledBox:()=>ip,LabeledFaceDescriptors:()=>gr,NetInput:()=>br,NeuralNetwork:()=>sn,ObjectDetection:()=>Lr,Point:()=>De,PredictedBox:()=>v1,Rect:()=>_o,SsdMobilenetv1:()=>$s,SsdMobilenetv1Options:()=>wa,TinyFaceDetector:()=>Vo,TinyFaceDetectorOptions:()=>Sd,TinyYolov2:()=>Wo,TinyYolov2Options:()=>Qa,allFaces:()=>Mce,allFacesSsdMobilenetv1:()=>EA,allFacesTinyYolov2:()=>Rce,awaitMediaLoaded:()=>C1,bufferToImage:()=>_1,computeFaceDescriptor:()=>vce,createCanvas:()=>Do,createCanvasFromMedia:()=>gd,createFaceDetectionNet:()=>hce,createFaceRecognitionNet:()=>nce,createSsdMobilenetv1:()=>mA,createTinyFaceDetector:()=>Pce,createTinyYolov2:()=>gce,detectAllFaces:()=>Tg,detectFaceLandmarks:()=>CA,detectFaceLandmarksTiny:()=>xce,detectLandmarks:()=>Fce,detectSingleFace:()=>Dce,draw:()=>M1,env:()=>Je,euclideanDistance:()=>U1,extendWithAge:()=>vg,extendWithFaceDescriptor:()=>xg,extendWithFaceDetection:()=>$o,extendWithFaceExpressions:()=>dg,extendWithFaceLandmarks:()=>fp,extendWithGender:()=>wg,extractFaceTensors:()=>up,extractFaces:()=>lp,fetchImage:()=>Vpe,fetchJson:()=>A1,fetchNetWeights:()=>Upe,fetchOrThrow:()=>Wr,fetchVideo:()=>Gpe,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>Fo,imageTensorToCanvas:()=>E1,imageToSquare:()=>$1,inverseSigmoid:()=>Mpe,iou:()=>f1,isMediaElement:()=>rg,isMediaLoaded:()=>fd,isWithAge:()=>ace,isWithFaceDetection:()=>yr,isWithFaceExpressions:()=>R1,isWithFaceLandmarks:()=>Mo,isWithGender:()=>rce,loadAgeGenderModel:()=>Ece,loadFaceDetectionModel:()=>$ce,loadFaceExpressionModel:()=>_ce,loadFaceLandmarkModel:()=>Tce,loadFaceLandmarkTinyModel:()=>Nce,loadFaceRecognitionModel:()=>Cce,loadSsdMobilenetv1Model:()=>_A,loadTinyFaceDetectorModel:()=>Ice,loadTinyYolov2Model:()=>Sce,loadWeightMap:()=>F1,locateFaces:()=>Ace,matchDimensions:()=>Hpe,minBbox:()=>g1,nets:()=>Qe,nonMaxSuppression:()=>y1,normalize:()=>Za,padToSquare:()=>b1,predictAgeAndGender:()=>kce,recognizeFaceExpressions:()=>wce,resizeResults:()=>$A,resolveInput:()=>Ao,shuffleArray:()=>Rpe,sigmoid:()=>dd,ssdMobilenetv1:()=>NA,tf:()=>Pe,tinyFaceDetector:()=>yce,tinyYolov2:()=>bce,toNetInput:()=>bt,utils:()=>m1,validateConfig:()=>B1,version:()=>Oce});var Pe={};rh(Pe,{Abs:()=>Dl,Acos:()=>Rl,Acosh:()=>Ml,AdadeltaOptimizer:()=>kf,AdagradOptimizer:()=>If,AdamOptimizer:()=>Sf,AdamaxOptimizer:()=>Tf,Add:()=>gs,AddN:()=>fi,All:()=>Pl,Any:()=>Ol,ArgMax:()=>gi,ArgMin:()=>cc,Asin:()=>Ll,Asinh:()=>zl,Atan:()=>Wl,Atan2:()=>Vl,Atanh:()=>Bl,AvgPool:()=>yi,AvgPool3D:()=>dc,AvgPool3DGrad:()=>cm,AvgPoolGrad:()=>pm,BackendWasm:()=>U$,BatchMatMul:()=>bi,BatchToSpaceND:()=>Ul,Bincount:()=>dm,BroadcastArgs:()=>hm,BroadcastTo:()=>tS,Callback:()=>x2,CallbackList:()=>IN,Cast:()=>xi,Ceil:()=>vi,ClipByValue:()=>ys,Complex:()=>mm,ComplexAbs:()=>hc,Concat:()=>Gl,Conv2D:()=>wi,Conv2DBackpropFilter:()=>fm,Conv2DBackpropInput:()=>ki,Conv3D:()=>mc,Conv3DBackpropFilterV2:()=>gm,Conv3DBackpropInputV2:()=>ym,Cos:()=>Ii,Cosh:()=>Si,CropAndResize:()=>jl,Cumprod:()=>Hl,Cumsum:()=>Ti,CustomCallback:()=>TN,DataStorage:()=>om,DenseBincount:()=>bm,DepthToSpace:()=>ql,DepthwiseConv2dNative:()=>Ni,DepthwiseConv2dNativeBackpropFilter:()=>xm,DepthwiseConv2dNativeBackpropInput:()=>vm,Diag:()=>wm,Dilation2D:()=>fc,Dilation2DBackpropFilter:()=>Ah,Dilation2DBackpropInput:()=>$h,ENV:()=>Ax,EarlyStopping:()=>v2,Einsum:()=>km,Elu:()=>_i,EluGrad:()=>Im,Environment:()=>QI,Equal:()=>Xl,Erf:()=>Kl,Exp:()=>Ei,ExpandDims:()=>Yl,Expm1:()=>Zl,FFT:()=>Sm,Fill:()=>gc,FlipLeftRight:()=>Jl,Floor:()=>$i,FloorDiv:()=>Ai,FromPixels:()=>Fh,FusedBatchNorm:()=>Fi,FusedConv2D:()=>ei,FusedDepthwiseConv2D:()=>ti,GPGPUContext:()=>Th,GatherNd:()=>eu,GatherV2:()=>Ql,GraphModel:()=>$0,Greater:()=>tu,GreaterEqual:()=>Di,History:()=>SN,IFFT:()=>Tm,Identity:()=>Ri,Imag:()=>Nm,InputSpec:()=>zt,IsFinite:()=>nu,IsInf:()=>au,IsNan:()=>ru,KernelBackend:()=>pc,LRN:()=>yc,LRNGrad:()=>_m,LayerVariable:()=>gN,LayersModel:()=>Er,LeakyRelu:()=>Mi,Less:()=>su,LessEqual:()=>iu,LinSpace:()=>Cm,Log:()=>Pi,Log1p:()=>ou,LogSoftmax:()=>aS,LogicalAnd:()=>lu,LogicalNot:()=>uu,LogicalOr:()=>pu,LogicalXor:()=>nS,LowerBound:()=>rD,MathBackendWebGL:()=>Xf,Max:()=>Oi,MaxPool:()=>zi,MaxPool3D:()=>bc,MaxPool3DGrad:()=>$m,MaxPoolGrad:()=>Em,MaxPoolWithArgmax:()=>Am,Maximum:()=>Li,Mean:()=>Wi,Min:()=>Bi,Minimum:()=>Vi,MirrorPad:()=>Ui,Mod:()=>cu,MomentumOptimizer:()=>Nf,Multinomial:()=>Fm,Multiply:()=>Gi,Neg:()=>du,NonMaxSuppressionV3:()=>mu,NonMaxSuppressionV4:()=>fu,NonMaxSuppressionV5:()=>gu,NotEqual:()=>hu,OP_SCOPE_SUFFIX:()=>Mx,OneHot:()=>Hi,OnesLike:()=>yu,Optimizer:()=>Rr,OptimizerConstructors:()=>Yr,Pack:()=>bu,PadV2:()=>ji,Pool:()=>sD,Pow:()=>qi,Prelu:()=>Ki,Prod:()=>Xi,RMSPropOptimizer:()=>Cf,RNN:()=>mr,RaggedGather:()=>Dm,RaggedRange:()=>Rm,RaggedTensorToTensor:()=>Mm,Range:()=>xc,Rank:()=>Eb,Real:()=>Pm,RealDiv:()=>Ci,Reciprocal:()=>xu,Reduction:()=>vn,Relu:()=>Yi,Relu6:()=>Qi,Reshape:()=>vu,ResizeBilinear:()=>Ji,ResizeBilinearGrad:()=>Lm,ResizeNearestNeighbor:()=>Zi,ResizeNearestNeighborGrad:()=>Om,Reverse:()=>eo,RotateWithOffset:()=>Pu,Round:()=>to,Rsqrt:()=>no,SGDOptimizer:()=>qc,ScatterNd:()=>wu,SearchSorted:()=>zm,Select:()=>ku,Selu:()=>Iu,Sequential:()=>Tl,Sigmoid:()=>ro,Sign:()=>Nu,Sin:()=>ao,Sinh:()=>Tu,Slice:()=>Su,Softmax:()=>oo,Softplus:()=>Cu,SpaceToBatchND:()=>_u,SparseFillEmptyRows:()=>vc,SparseReshape:()=>$u,SparseSegmentMean:()=>wc,SparseSegmentSum:()=>kc,SparseToDense:()=>Wm,SplitV:()=>Eu,Sqrt:()=>so,Square:()=>Ic,SquaredDifference:()=>lo,Step:()=>xs,StridedSlice:()=>Au,StringNGrams:()=>Sc,StringSplit:()=>Tc,StringToHashBucketFast:()=>Nc,Sub:()=>uo,Sum:()=>io,SymbolicTensor:()=>Ba,Tan:()=>po,Tanh:()=>co,Tensor:()=>Te,TensorBuffer:()=>Ht,Tile:()=>bs,TopK:()=>Fu,Transform:()=>Du,Transpose:()=>_r,Unique:()=>Bm,Unpack:()=>Ru,UnsortedSegmentSum:()=>Cc,UpperBound:()=>iD,Variable:()=>is,ZerosLike:()=>Mu,_FusedMatMul:()=>Qs,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,backend:()=>$S,backend_util:()=>N,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,broadcast_util:()=>Ou,browser:()=>ho,buffer:()=>Oe,callbacks:()=>EH,cast:()=>le,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>$r,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,constraints:()=>xN,conv1d:()=>qm,conv2d:()=>At,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,copyRegisteredKernels:()=>pD,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,customGrad:()=>ur,data:()=>G2,denseBincount:()=>zh,deprecationWarn:()=>Vx,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,deregisterOp:()=>FH,device_util:()=>Ac,diag:()=>tT,dilation2d:()=>bv,disableDeprecationWarnings:()=>LR,dispose:()=>_e,disposeVariables:()=>zR,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enableDebugMode:()=>OR,enableProdMode:()=>PR,enclosingPowerOfTwo:()=>Kv,engine:()=>_a,env:()=>H,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,findBackend:()=>jR,findBackendFactory:()=>qR,floor:()=>Wu,floorDiv:()=>Hm,forceHalfFloat:()=>uE,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,gather_util:()=>Ux,getBackend:()=>GR,getGradient:()=>Cb,getKernel:()=>Dh,getKernelsForBackend:()=>Rh,getThreadsCount:()=>Tpe,gpgpu_util:()=>B_,grad:()=>yO,grads:()=>bO,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,initializers:()=>vN,input:()=>zN,io:()=>Ut,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,keep:()=>Jt,kernel_impls:()=>hr,layers:()=>wN,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,loadGraphModel:()=>M6,loadGraphModelSync:()=>P6,loadLayersModel:()=>$U,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>$v,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>Aa,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>Av,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,math:()=>ES,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,memory:()=>Oh,meshgrid:()=>cT,metrics:()=>g2,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,model:()=>DU,models:()=>y2,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,nextFrame:()=>Jv,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>Ar,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,profile:()=>WR,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,ready:()=>UR,real:()=>yl,reciprocal:()=>zv,registerBackend:()=>Gm,registerCallbackConstructor:()=>MU,registerGradient:()=>rS,registerKernel:()=>_c,registerOp:()=>AH,regularizers:()=>b2,relu:()=>Xe,relu6:()=>sf,removeBackend:()=>HR,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>xe,scatterND:()=>PT,scatter_util:()=>Gx,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,sequential:()=>RU,serialization:()=>ne,setBackend:()=>VR,setPlatform:()=>KR,setThreadsCount:()=>Spe,setWasmPath:()=>kpe,setWasmPaths:()=>Ipe,setWebGLContext:()=>c_,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,slice_util:()=>jt,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,sumOutType:()=>Um,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>$a,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>$T,tensor6d:()=>AT,tensor_util:()=>Va,test_util:()=>HS,tidy:()=>P,tile:()=>Ln,time:()=>BR,topk:()=>Uv,train:()=>Ws,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unregisterGradient:()=>uD,unregisterKernel:()=>lD,unsortedSegmentSum:()=>gf,unstack:()=>ct,upcastType:()=>fa,upperBound:()=>FT,util:()=>v,valueAndGrad:()=>xO,valueAndGrads:()=>vO,variable:()=>Hv,variableGrads:()=>lT,version:()=>Fpe,version_converter:()=>L6,version_core:()=>NM,version_layers:()=>vw,version_wasm:()=>Npe,version_webgl:()=>fJ,webgl:()=>gJ,webgl_util:()=>p_,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var fF=Object.create,Nx=Object.defineProperty,gF=Object.getOwnPropertyDescriptor,yF=Object.getOwnPropertyNames,bF=Object.getPrototypeOf,xF=Object.prototype.hasOwnProperty,BI=(e=>typeof Xr!="undefined"?Xr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Xr!="undefined"?Xr:t)[n]}):e)(function(e){if(typeof Xr!="undefined")return Xr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),$e=(e,t)=>{for(var n in t)Nx(e,n,{get:t[n],enumerable:!0})},vF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of yF(t))!xF.call(e,r)&&r!==n&&Nx(e,r,{get:()=>t[r],enumerable:!(a=gF(t,r))||a.enumerable});return e},ms=(e,t,n)=>(n=e!=null?fF(bF(e)):{},vF(t||!e||!e.__esModule?Nx(n,"default",{value:e,enumerable:!0}):n,e)),wF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return E}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),kF=Bt(()=>{}),IF=Bt(()=>{}),SF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),TF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),NF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),CF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),_F=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),EF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),$F=Bt(()=>{}),AF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var E=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),E),R=new f(E),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,E=this,$=0,R=E.i=E.j=0,F=E.S=[];for(C||(I=[C++]);${var n=SF(),a=TF(),r=NF(),s=CF(),i=_F(),o=EF(),l=AF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),VI=Bt(()=>{}),Cx=Bt(()=>{}),Ch=Bt(()=>{}),FF=Bt(()=>{}),DF=Bt(()=>{}),RF=Bt(()=>{}),MF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&ot(ue.buffer),dt}function i(){return ue.buffer!=ze&&ot(ue.buffer),jn}function o(){return ue.buffer!=ze&&ot(ue.buffer),Mt}function l(){return ue.buffer!=ze&&ot(ue.buffer),on}function u(){return ue.buffer!=ze&&ot(ue.buffer),Fn}function p(){return ue.buffer!=ze&&ot(ue.buffer),oa}function d(){return ue.buffer!=ze&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,E="";function $(D){return c.locateFile?c.locateFile(D,E):E+D}var R,F,S,M;function B(D){D instanceof Ms||J("exiting due to exception: "+D)}if(T){I?E=Ch().dirname(E)+"/":E=__dirname+"/";var U,G;typeof BI=="function"&&(U=Cx(),G=Ch()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,ce)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?ce(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof Ms))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(Ia())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=FF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?E=self.location.href:typeof document!="undefined"&&document.currentScript&&(E=document.currentScript.src),typeof a!="undefined"&&a&&(E=a),E.indexOf("blob:")!==0?E=E.substr(0,E.replace(/[?#].*/,"").lastIndexOf("/")+1):E="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var ce=new XMLHttpRequest;ce.open("GET",D,!0),ce.responseType="arraybuffer",ce.onload=()=>{if(ce.status==200||ce.status==0&&ce.response){j(ce.response);return}re()},ce.onerror=re,ce.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=DF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` +"use strict";var faceapi=(()=>{var mb=Object.defineProperty;var hF=Object.getOwnPropertyDescriptor;var mF=Object.getOwnPropertyNames;var fF=Object.prototype.hasOwnProperty;var Zr=(e=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof require!="undefined"?require:t)[n]}):e)(function(e){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')});var sh=(e,t)=>{for(var n in t)mb(e,n,{get:t[n],enumerable:!0})},gF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of mF(t))!fF.call(e,r)&&r!==n&&mb(e,r,{get:()=>t[r],enumerable:!(a=hF(t,r))||a.enumerable});return e};var yF=e=>gF(mb({},"__esModule",{value:!0}),e);var Hce={};sh(Hce,{AgeGenderNet:()=>kd,BoundingBox:()=>Fo,Box:()=>st,ComposableTask:()=>Ia,ComputeAllFaceDescriptorsTask:()=>jr,ComputeFaceDescriptorsTaskBase:()=>Nd,ComputeSingleFaceDescriptorTask:()=>qr,DetectAllFaceLandmarksTask:()=>Ed,DetectAllFacesTask:()=>vp,DetectFaceLandmarksTaskBase:()=>Cd,DetectFacesTaskBase:()=>Ad,DetectSingleFaceLandmarksTask:()=>_d,DetectSingleFaceTask:()=>$d,Dimensions:()=>bn,FACE_EXPRESSION_LABELS:()=>P1,FaceDetection:()=>yt,FaceDetectionNet:()=>U1,FaceExpressionNet:()=>wd,FaceExpressions:()=>Ur,FaceLandmark68Net:()=>Bo,FaceLandmark68TinyNet:()=>Id,FaceLandmarkNet:()=>W1,FaceLandmarks:()=>ra,FaceLandmarks5:()=>k1,FaceLandmarks68:()=>Ro,FaceMatch:()=>ip,FaceMatcher:()=>Fd,FaceRecognitionNet:()=>Vo,Gender:()=>yg,LabeledBox:()=>op,LabeledFaceDescriptors:()=>br,NetInput:()=>vr,NeuralNetwork:()=>on,ObjectDetection:()=>Wr,Point:()=>De,PredictedBox:()=>I1,Rect:()=>Do,SsdMobilenetv1:()=>Rs,SsdMobilenetv1Options:()=>ka,TinyFaceDetector:()=>qo,TinyFaceDetectorOptions:()=>Td,TinyYolov2:()=>Ho,TinyYolov2Options:()=>er,allFaces:()=>Vce,allFacesSsdMobilenetv1:()=>F$,allFacesTinyYolov2:()=>Bce,awaitMediaLoaded:()=>A1,bufferToImage:()=>$1,computeFaceDescriptor:()=>Cce,createCanvas:()=>Lo,createCanvasFromMedia:()=>yd,createFaceDetectionNet:()=>vce,createFaceRecognitionNet:()=>uce,createSsdMobilenetv1:()=>y$,createTinyFaceDetector:()=>Uce,createTinyYolov2:()=>Ice,detectAllFaces:()=>Ng,detectFaceLandmarks:()=>A$,detectFaceLandmarksTiny:()=>Nce,detectLandmarks:()=>zce,detectSingleFace:()=>Wce,draw:()=>L1,env:()=>Qe,euclideanDistance:()=>j1,extendWithAge:()=>wg,extendWithFaceDescriptor:()=>vg,extendWithFaceDetection:()=>Mo,extendWithFaceExpressions:()=>hg,extendWithFaceLandmarks:()=>gp,extendWithGender:()=>kg,extractFaceTensors:()=>pp,extractFaces:()=>up,fetchImage:()=>Xpe,fetchJson:()=>R1,fetchNetWeights:()=>Ype,fetchOrThrow:()=>Vr,fetchVideo:()=>Zpe,getContext2dOrThrow:()=>Gn,getMediaDimensions:()=>Oo,imageTensorToCanvas:()=>F1,imageToSquare:()=>D1,inverseSigmoid:()=>Vpe,iou:()=>b1,isMediaElement:()=>sg,isMediaLoaded:()=>gd,isWithAge:()=>pce,isWithFaceDetection:()=>xr,isWithFaceExpressions:()=>O1,isWithFaceLandmarks:()=>Wo,isWithGender:()=>cce,loadAgeGenderModel:()=>Pce,loadFaceDetectionModel:()=>Oce,loadFaceExpressionModel:()=>Mce,loadFaceLandmarkModel:()=>Fce,loadFaceLandmarkTinyModel:()=>Dce,loadFaceRecognitionModel:()=>Rce,loadSsdMobilenetv1Model:()=>$$,loadTinyFaceDetectorModel:()=>Ace,loadTinyYolov2Model:()=>$ce,loadWeightMap:()=>M1,locateFaces:()=>Lce,matchDimensions:()=>Jpe,minBbox:()=>x1,nets:()=>et,nonMaxSuppression:()=>v1,normalize:()=>Ja,padToSquare:()=>w1,predictAgeAndGender:()=>_ce,recognizeFaceExpressions:()=>Ece,resizeResults:()=>D$,resolveInput:()=>Po,shuffleArray:()=>Bpe,sigmoid:()=>hd,ssdMobilenetv1:()=>_$,tf:()=>Pe,tinyFaceDetector:()=>Sce,tinyYolov2:()=>Tce,toNetInput:()=>bt,utils:()=>y1,validateConfig:()=>G1,version:()=>Gce});var Pe={};sh(Pe,{Abs:()=>Pl,Acos:()=>Ol,Acosh:()=>Ll,AdadeltaOptimizer:()=>If,AdagradOptimizer:()=>Sf,AdamOptimizer:()=>Tf,AdamaxOptimizer:()=>Nf,Add:()=>vs,AddN:()=>xi,All:()=>zl,Any:()=>Wl,ArgMax:()=>vi,ArgMin:()=>dc,Asin:()=>Bl,Asinh:()=>Vl,Atan:()=>Ul,Atan2:()=>Hl,Atanh:()=>Gl,AvgPool:()=>wi,AvgPool3D:()=>hc,AvgPool3DGrad:()=>dm,AvgPoolGrad:()=>cm,BackendWasm:()=>jA,BatchMatMul:()=>ki,BatchToSpaceND:()=>jl,Bincount:()=>hm,BroadcastArgs:()=>mm,BroadcastTo:()=>rS,Callback:()=>k2,CallbackList:()=>NN,Cast:()=>Ii,Ceil:()=>Si,ClipByValue:()=>ws,Complex:()=>fm,ComplexAbs:()=>mc,Concat:()=>ql,Conv2D:()=>Ti,Conv2DBackpropFilter:()=>gm,Conv2DBackpropInput:()=>Ni,Conv3D:()=>fc,Conv3DBackpropFilterV2:()=>ym,Conv3DBackpropInputV2:()=>bm,Cos:()=>Ci,Cosh:()=>Ei,CropAndResize:()=>Xl,Cumprod:()=>Kl,Cumsum:()=>_i,CustomCallback:()=>EN,DataStorage:()=>lm,DenseBincount:()=>xm,DepthToSpace:()=>Yl,DepthwiseConv2dNative:()=>Ai,DepthwiseConv2dNativeBackpropFilter:()=>vm,DepthwiseConv2dNativeBackpropInput:()=>wm,Diag:()=>km,Dilation2D:()=>gc,Dilation2DBackpropFilter:()=>Fh,Dilation2DBackpropInput:()=>$h,ENV:()=>Rx,EarlyStopping:()=>I2,Einsum:()=>Im,Elu:()=>Fi,EluGrad:()=>Sm,Environment:()=>nS,Equal:()=>Jl,Erf:()=>Zl,Exp:()=>Di,ExpandDims:()=>Ql,Expm1:()=>eu,FFT:()=>Tm,Fill:()=>yc,FlipLeftRight:()=>tu,Floor:()=>Ri,FloorDiv:()=>Mi,FromPixels:()=>Dh,FusedBatchNorm:()=>Pi,FusedConv2D:()=>ai,FusedDepthwiseConv2D:()=>ri,GPGPUContext:()=>Nh,GatherNd:()=>au,GatherV2:()=>nu,GraphModel:()=>D0,Greater:()=>ru,GreaterEqual:()=>Oi,History:()=>CN,IFFT:()=>Nm,Identity:()=>Li,Imag:()=>Cm,InputSpec:()=>zt,IsFinite:()=>su,IsInf:()=>iu,IsNan:()=>zi,KernelBackend:()=>cc,LRN:()=>bc,LRNGrad:()=>_m,LayerVariable:()=>xN,LayersModel:()=>$r,LeakyRelu:()=>Wi,Less:()=>ou,LessEqual:()=>lu,LinSpace:()=>Em,Log:()=>Bi,Log1p:()=>uu,LogSoftmax:()=>iS,LogicalAnd:()=>pu,LogicalNot:()=>cu,LogicalOr:()=>du,LogicalXor:()=>sS,LowerBound:()=>oD,MathBackendWebGL:()=>Yf,Max:()=>Vi,MaxPool:()=>Gi,MaxPool3D:()=>xc,MaxPool3DGrad:()=>$m,MaxPoolGrad:()=>Am,MaxPoolWithArgmax:()=>Fm,Maximum:()=>Ui,Mean:()=>Hi,Min:()=>ji,Minimum:()=>qi,MirrorPad:()=>Ki,Mod:()=>hu,MomentumOptimizer:()=>Cf,Multinomial:()=>Dm,Multiply:()=>Xi,Neg:()=>mu,NonMaxSuppressionV3:()=>gu,NonMaxSuppressionV4:()=>yu,NonMaxSuppressionV5:()=>bu,NotEqual:()=>fu,OP_SCOPE_SUFFIX:()=>Lx,OneHot:()=>Yi,OnesLike:()=>xu,Optimizer:()=>Pr,OptimizerConstructors:()=>Jr,Pack:()=>vu,PadV2:()=>Zi,Pool:()=>lD,Pow:()=>Ji,Prelu:()=>Qi,Prod:()=>eo,RMSPropOptimizer:()=>Ef,RNN:()=>gr,RaggedGather:()=>Rm,RaggedRange:()=>Mm,RaggedTensorToTensor:()=>Pm,Range:()=>vc,Rank:()=>Rb,Real:()=>Om,RealDiv:()=>$i,Reciprocal:()=>to,Reduction:()=>wn,Relu:()=>no,Relu6:()=>so,Reshape:()=>wu,ResizeBilinear:()=>ro,ResizeBilinearGrad:()=>zm,ResizeNearestNeighbor:()=>ao,ResizeNearestNeighborGrad:()=>Lm,Reverse:()=>io,RotateWithOffset:()=>Ou,Round:()=>oo,Rsqrt:()=>lo,SGDOptimizer:()=>Kc,ScatterNd:()=>ku,SearchSorted:()=>Wm,Select:()=>Iu,Selu:()=>Su,Sequential:()=>El,Sigmoid:()=>po,Sign:()=>Cu,Sin:()=>uo,Sinh:()=>Nu,Slice:()=>Tu,Softmax:()=>mo,Softplus:()=>Eu,SpaceToBatchND:()=>_u,SparseFillEmptyRows:()=>wc,SparseReshape:()=>$u,SparseSegmentMean:()=>kc,SparseSegmentSum:()=>Ic,SparseToDense:()=>Bm,SplitV:()=>Au,Sqrt:()=>co,Square:()=>Sc,SquaredDifference:()=>fo,Step:()=>Is,StridedSlice:()=>Fu,StringNGrams:()=>Tc,StringSplit:()=>Nc,StringToHashBucketFast:()=>Cc,Sub:()=>go,Sum:()=>ho,SymbolicTensor:()=>Va,Tan:()=>yo,Tanh:()=>bo,Tensor:()=>Te,TensorBuffer:()=>qt,Tile:()=>ks,TopK:()=>Du,Transform:()=>Ru,Transpose:()=>Ar,Unique:()=>Vm,Unpack:()=>Mu,UnsortedSegmentSum:()=>Ec,UpperBound:()=>uD,Variable:()=>ps,ZerosLike:()=>Pu,_FusedMatMul:()=>ni,abs:()=>Lt,acos:()=>Jx,acosh:()=>Qx,add:()=>Y,addN:()=>ZS,all:()=>qm,any:()=>ec,argMax:()=>oi,argMin:()=>ev,asin:()=>tv,asinh:()=>nv,atan:()=>av,atan2:()=>rv,atanh:()=>sv,avgPool:()=>ba,avgPool3d:()=>ov,backend:()=>DS,backend_util:()=>N,basicLSTMCell:()=>tT,batchNorm:()=>Ns,batchNorm2d:()=>lv,batchNorm3d:()=>uv,batchNorm4d:()=>pv,batchToSpaceND:()=>Oc,bincount:()=>cv,booleanMaskAsync:()=>OT,broadcastArgs:()=>nT,broadcastTo:()=>Js,broadcast_util:()=>Lu,browser:()=>xo,buffer:()=>Oe,callbacks:()=>DH,cast:()=>le,ceil:()=>dv,clipByValue:()=>tn,clone:()=>or,complex:()=>Fr,concat:()=>Ze,concat1d:()=>hv,concat2d:()=>mv,concat3d:()=>fv,concat4d:()=>gv,constraints:()=>kN,conv1d:()=>Km,conv2d:()=>Ft,conv2dTranspose:()=>Xm,conv3d:()=>bv,conv3dTranspose:()=>xv,copyRegisteredKernels:()=>hD,cos:()=>Lc,cosh:()=>Ym,cosineWindow:()=>bf,cumprod:()=>tc,cumsum:()=>Zm,customGrad:()=>cr,data:()=>q2,denseBincount:()=>Wh,deprecationWarn:()=>Hx,depthToSpace:()=>vv,depthwiseConv2d:()=>Cs,deregisterOp:()=>PH,device_util:()=>Fc,diag:()=>rT,dilation2d:()=>wv,disableDeprecationWarnings:()=>BR,dispose:()=>Ee,disposeVariables:()=>VR,div:()=>me,divNoNan:()=>kv,dot:()=>Iv,dropout:()=>Yv,einsum:()=>sT,elu:()=>zu,enableDebugMode:()=>WR,enableProdMode:()=>zR,enclosingPowerOfTwo:()=>Zv,engine:()=>_a,env:()=>H,equal:()=>Qn,erf:()=>Sv,euclideanNorm:()=>Cv,exp:()=>gn,expandDims:()=>Qt,expm1:()=>Ev,eye:()=>Jm,fft:()=>jc,fill:()=>yn,findBackend:()=>XR,findBackendFactory:()=>YR,floor:()=>Bu,floorDiv:()=>jm,forceHalfFloat:()=>d_,fused:()=>Tl,gather:()=>Vu,gatherND:()=>BT,gather_util:()=>jx,getBackend:()=>qR,getGradient:()=>Fb,getKernel:()=>Rh,getKernelsForBackend:()=>Mh,getThreadsCount:()=>Fpe,gpgpu_util:()=>GE,grad:()=>vO,grads:()=>wO,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>Sl,imag:()=>Rc,image:()=>$a,inTopKAsync:()=>VT,initializers:()=>IN,input:()=>VN,io:()=>Gt,irfft:()=>mf,isFinite:()=>_v,isInf:()=>Av,isNaN:()=>$v,keep:()=>Ht,kernel_impls:()=>fr,layers:()=>SN,leakyRelu:()=>zc,less:()=>Qm,lessEqual:()=>Es,linalg:()=>ew,linspace:()=>pT,loadGraphModel:()=>W6,loadGraphModelSync:()=>B6,loadLayersModel:()=>$U,localResponseNormalization:()=>Fv,log:()=>ea,log1p:()=>Wc,logSigmoid:()=>Dv,logSoftmax:()=>tf,logSumExp:()=>nf,logicalAnd:()=>Da,logicalNot:()=>Bc,logicalOr:()=>af,logicalXor:()=>Rv,losses:()=>eN,lowerBound:()=>dT,matMul:()=>Fe,math:()=>FS,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Mv,maxPoolWithArgmax:()=>hT,maximum:()=>mr,mean:()=>Nt,memory:()=>Lh,meshgrid:()=>mT,metrics:()=>x2,min:()=>kl,minimum:()=>Uu,mirrorPad:()=>Pv,mod:()=>Ov,model:()=>RU,models:()=>v2,moments:()=>Vc,movingAverage:()=>LT,mul:()=>z,multiRNNCell:()=>fT,multinomial:()=>gT,neg:()=>vt,nextFrame:()=>tw,norm:()=>Wu,notEqual:()=>pi,oneHot:()=>vl,ones:()=>Jn,onesLike:()=>ta,op:()=>L,outerProduct:()=>yT,pad:()=>xa,pad1d:()=>bT,pad2d:()=>xT,pad3d:()=>vT,pad4d:()=>wT,pool:()=>Lv,pow:()=>Dr,prelu:()=>Gc,print:()=>Vx,prod:()=>zv,profile:()=>UR,raggedGather:()=>kT,raggedRange:()=>IT,raggedTensorToTensor:()=>ST,rand:()=>TT,randomGamma:()=>NT,randomNormal:()=>sf,randomStandardNormal:()=>CT,randomUniform:()=>Gu,range:()=>ci,ready:()=>jR,real:()=>wl,reciprocal:()=>Vv,registerBackend:()=>Hm,registerCallbackConstructor:()=>PU,registerGradient:()=>oS,registerKernel:()=>_c,registerOp:()=>MH,regularizers:()=>w2,relu:()=>Xe,relu6:()=>of,removeBackend:()=>KR,reshape:()=>W,reverse:()=>ya,reverse1d:()=>ET,reverse2d:()=>_T,reverse3d:()=>AT,reverse4d:()=>$T,rfft:()=>qc,round:()=>lf,rsqrt:()=>uf,scalar:()=>xe,scatterND:()=>zT,scatter_util:()=>qx,searchSorted:()=>rf,selu:()=>pf,separableConv2d:()=>_s,sequential:()=>MU,serialization:()=>ne,setBackend:()=>HR,setPlatform:()=>ZR,setThreadsCount:()=>$pe,setWasmPath:()=>_pe,setWasmPaths:()=>Ape,setWebGLContext:()=>mE,setdiff1dAsync:()=>FT,sigmoid:()=>ha,sign:()=>Uv,signal:()=>QT,sin:()=>cf,sinh:()=>df,slice:()=>Be,slice1d:()=>Hc,slice2d:()=>hf,slice3d:()=>wo,slice4d:()=>Il,slice_util:()=>Kt,softmax:()=>Xa,softplus:()=>vo,spaceToBatchND:()=>Uc,sparse:()=>tN,sparseToDense:()=>WT,spectral:()=>JT,split:()=>zn,sqrt:()=>pn,square:()=>lt,squaredDifference:()=>ff,squeeze:()=>As,stack:()=>$t,step:()=>ko,stridedSlice:()=>Gv,string:()=>nN,sub:()=>pe,sum:()=>fe,sumOutType:()=>Gm,tan:()=>Hv,tanh:()=>li,tensor:()=>mn,tensor1d:()=>Ke,tensor2d:()=>Fa,tensor3d:()=>Mc,tensor4d:()=>Ma,tensor5d:()=>DT,tensor6d:()=>RT,tensor_util:()=>Ua,test_util:()=>KS,tidy:()=>P,tile:()=>Ln,time:()=>GR,topk:()=>jv,train:()=>Gs,transpose:()=>_e,truncatedNormal:()=>gf,unique:()=>qv,unregisterGradient:()=>dD,unregisterKernel:()=>cD,unsortedSegmentSum:()=>yf,unstack:()=>pt,upcastType:()=>fa,upperBound:()=>MT,util:()=>v,valueAndGrad:()=>kO,valueAndGrads:()=>IO,variable:()=>Kv,variableGrads:()=>cT,version:()=>zpe,version_converter:()=>U6,version_core:()=>_M,version_layers:()=>Iw,version_wasm:()=>Dpe,version_webgl:()=>vJ,webgl:()=>wJ,webgl_util:()=>hE,where:()=>fn,whereAsync:()=>Xv,zeros:()=>It,zerosLike:()=>qe});var bF=Object.create,Ax=Object.defineProperty,xF=Object.getOwnPropertyDescriptor,vF=Object.getOwnPropertyNames,wF=Object.getPrototypeOf,kF=Object.prototype.hasOwnProperty,GI=(e=>typeof Zr!="undefined"?Zr:typeof Proxy!="undefined"?new Proxy(e,{get:(t,n)=>(typeof Zr!="undefined"?Zr:t)[n]}):e)(function(e){if(typeof Zr!="undefined")return Zr.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),Bt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ae=(e,t)=>{for(var n in t)Ax(e,n,{get:t[n],enumerable:!0})},IF=(e,t,n,a)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of vF(t))!kF.call(e,r)&&r!==n&&Ax(e,r,{get:()=>t[r],enumerable:!(a=xF(t,r))||a.enumerable});return e},bs=(e,t,n)=>(n=e!=null?bF(wF(e)):{},IF(t||!e||!e.__esModule?Ax(n,"default",{value:e,enumerable:!0}):n,e)),SF=Bt((e,t)=>{t.exports=a;var n=null;try{n=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(S){}function a(S,M,B){this.low=S|0,this.high=M|0,this.unsigned=!!B}a.prototype.__isLong__,Object.defineProperty(a.prototype,"__isLong__",{value:!0});function r(S){return(S&&S.__isLong__)===!0}a.isLong=r;var s={},i={};function o(S,M){var B,U,G;return M?(S>>>=0,(G=0<=S&&S<256)&&(U=i[S],U)?U:(B=u(S,(S|0)<0?-1:0,!0),G&&(i[S]=B),B)):(S|=0,(G=-128<=S&&S<128)&&(U=s[S],U)?U:(B=u(S,S<0?-1:0,!1),G&&(s[S]=B),B))}a.fromInt=o;function l(S,M){if(isNaN(S))return M?w:x;if(M){if(S<0)return w;if(S>=g)return $}else{if(S<=-y)return R;if(S+1>=y)return _}return S<0?l(-S,M).neg():u(S%f|0,S/f|0,M)}a.fromNumber=l;function u(S,M,B){return new a(S,M,B)}a.fromBits=u;var p=Math.pow;function d(S,M,B){if(S.length===0)throw Error("empty string");if(S==="NaN"||S==="Infinity"||S==="+Infinity"||S==="-Infinity")return x;if(typeof M=="number"?(B=M,M=!1):M=!!M,B=B||10,B<2||360)throw Error("interior hyphen");if(U===0)return d(S.substring(1),M,B).neg();for(var G=l(p(B,8)),q=x,K=0;K>>0:this.low},F.toNumber=function(){return this.unsigned?(this.high>>>0)*f+(this.low>>>0):this.high*f+(this.low>>>0)},F.toString=function(S){if(S=S||10,S<2||36>>0,ee=J.toString(S);if(q=Z,q.isZero())return ee+K;for(;ee.length<6;)ee="0"+ee;K=""+ee+K}},F.getHighBits=function(){return this.high},F.getHighBitsUnsigned=function(){return this.high>>>0},F.getLowBits=function(){return this.low},F.getLowBitsUnsigned=function(){return this.low>>>0},F.getNumBitsAbs=function(){if(this.isNegative())return this.eq(R)?64:this.neg().getNumBitsAbs();for(var S=this.high!=0?this.high:this.low,M=31;M>0&&(S&1<=0},F.isOdd=function(){return(this.low&1)===1},F.isEven=function(){return(this.low&1)===0},F.equals=function(S){return r(S)||(S=c(S)),this.unsigned!==S.unsigned&&this.high>>>31===1&&S.high>>>31===1?!1:this.high===S.high&&this.low===S.low},F.eq=F.equals,F.notEquals=function(S){return!this.eq(S)},F.neq=F.notEquals,F.ne=F.notEquals,F.lessThan=function(S){return this.comp(S)<0},F.lt=F.lessThan,F.lessThanOrEqual=function(S){return this.comp(S)<=0},F.lte=F.lessThanOrEqual,F.le=F.lessThanOrEqual,F.greaterThan=function(S){return this.comp(S)>0},F.gt=F.greaterThan,F.greaterThanOrEqual=function(S){return this.comp(S)>=0},F.gte=F.greaterThanOrEqual,F.ge=F.greaterThanOrEqual,F.compare=function(S){if(r(S)||(S=c(S)),this.eq(S))return 0;var M=this.isNegative(),B=S.isNegative();return M&&!B?-1:!M&&B?1:this.unsigned?S.high>>>0>this.high>>>0||S.high===this.high&&S.low>>>0>this.low>>>0?-1:1:this.sub(S).isNegative()?-1:1},F.comp=F.compare,F.negate=function(){return!this.unsigned&&this.eq(R)?R:this.not().add(I)},F.neg=F.negate,F.add=function(S){r(S)||(S=c(S));var M=this.high>>>16,B=this.high&65535,U=this.low>>>16,G=this.low&65535,q=S.high>>>16,K=S.high&65535,Z=S.low>>>16,J=S.low&65535,ee=0,ae=0,te=0,ie=0;return ie+=G+J,te+=ie>>>16,ie&=65535,te+=U+Z,ae+=te>>>16,te&=65535,ae+=B+K,ee+=ae>>>16,ae&=65535,ee+=M+q,ee&=65535,u(te<<16|ie,ee<<16|ae,this.unsigned)},F.subtract=function(S){return r(S)||(S=c(S)),this.add(S.neg())},F.sub=F.subtract,F.multiply=function(S){if(this.isZero())return x;if(r(S)||(S=c(S)),n){var M=n.mul(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(S.isZero())return x;if(this.eq(R))return S.isOdd()?R:x;if(S.eq(R))return this.isOdd()?R:x;if(this.isNegative())return S.isNegative()?this.neg().mul(S.neg()):this.neg().mul(S).neg();if(S.isNegative())return this.mul(S.neg()).neg();if(this.lt(b)&&S.lt(b))return l(this.toNumber()*S.toNumber(),this.unsigned);var B=this.high>>>16,U=this.high&65535,G=this.low>>>16,q=this.low&65535,K=S.high>>>16,Z=S.high&65535,J=S.low>>>16,ee=S.low&65535,ae=0,te=0,ie=0,oe=0;return oe+=q*ee,ie+=oe>>>16,oe&=65535,ie+=G*ee,te+=ie>>>16,ie&=65535,ie+=q*J,te+=ie>>>16,ie&=65535,te+=U*ee,ae+=te>>>16,te&=65535,te+=G*J,ae+=te>>>16,te&=65535,te+=q*Z,ae+=te>>>16,te&=65535,ae+=B*ee+U*J+G*Z+q*K,ae&=65535,u(ie<<16|oe,ae<<16|te,this.unsigned)},F.mul=F.multiply,F.divide=function(S){if(r(S)||(S=c(S)),S.isZero())throw Error("division by zero");if(n){if(!this.unsigned&&this.high===-2147483648&&S.low===-1&&S.high===-1)return this;var M=(this.unsigned?n.div_u:n.div_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?w:x;var B,U,G;if(this.unsigned){if(S.unsigned||(S=S.toUnsigned()),S.gt(this))return w;if(S.gt(this.shru(1)))return T;G=w}else{if(this.eq(R)){if(S.eq(I)||S.eq(C))return R;if(S.eq(R))return I;var q=this.shr(1);return B=q.div(S).shl(1),B.eq(x)?S.isNegative()?I:C:(U=this.sub(S.mul(B)),G=B.add(U.div(S)),G)}else if(S.eq(R))return this.unsigned?w:x;if(this.isNegative())return S.isNegative()?this.neg().div(S.neg()):this.neg().div(S).neg();if(S.isNegative())return this.div(S.neg()).neg();G=x}for(U=this;U.gte(S);){B=Math.max(1,Math.floor(U.toNumber()/S.toNumber()));for(var K=Math.ceil(Math.log(B)/Math.LN2),Z=K<=48?1:p(2,K-48),J=l(B),ee=J.mul(S);ee.isNegative()||ee.gt(U);)B-=Z,J=l(B,this.unsigned),ee=J.mul(S);J.isZero()&&(J=I),G=G.add(J),U=U.sub(ee)}return G},F.div=F.divide,F.modulo=function(S){if(r(S)||(S=c(S)),n){var M=(this.unsigned?n.rem_u:n.rem_s)(this.low,this.high,S.low,S.high);return u(M,n.get_high(),this.unsigned)}return this.sub(this.div(S).mul(S))},F.mod=F.modulo,F.rem=F.modulo,F.not=function(){return u(~this.low,~this.high,this.unsigned)},F.and=function(S){return r(S)||(S=c(S)),u(this.low&S.low,this.high&S.high,this.unsigned)},F.or=function(S){return r(S)||(S=c(S)),u(this.low|S.low,this.high|S.high,this.unsigned)},F.xor=function(S){return r(S)||(S=c(S)),u(this.low^S.low,this.high^S.high,this.unsigned)},F.shiftLeft=function(S){return r(S)&&(S=S.toInt()),(S&=63)===0?this:S<32?u(this.low<>>32-S,this.unsigned):u(0,this.low<>>S|this.high<<32-S,this.high>>S,this.unsigned):u(this.high>>S-32,this.high>=0?0:-1,this.unsigned)},F.shr=F.shiftRight,F.shiftRightUnsigned=function(S){if(r(S)&&(S=S.toInt()),S&=63,S===0)return this;var M=this.high;if(S<32){var B=this.low;return u(B>>>S|M<<32-S,M>>>S,this.unsigned)}else return S===32?u(M,0,this.unsigned):u(M>>>S-32,0,this.unsigned)},F.shru=F.shiftRightUnsigned,F.shr_u=F.shiftRightUnsigned,F.toSigned=function(){return this.unsigned?u(this.low,this.high,!1):this},F.toUnsigned=function(){return this.unsigned?this:u(this.low,this.high,!0)},F.toBytes=function(S){return S?this.toBytesLE():this.toBytesBE()},F.toBytesLE=function(){var S=this.high,M=this.low;return[M&255,M>>>8&255,M>>>16&255,M>>>24,S&255,S>>>8&255,S>>>16&255,S>>>24]},F.toBytesBE=function(){var S=this.high,M=this.low;return[S>>>24,S>>>16&255,S>>>8&255,S&255,M>>>24,M>>>16&255,M>>>8&255,M&255]},a.fromBytes=function(S,M,B){return B?a.fromBytesLE(S,M):a.fromBytesBE(S,M)},a.fromBytesLE=function(S,M){return new a(S[0]|S[1]<<8|S[2]<<16|S[3]<<24,S[4]|S[5]<<8|S[6]<<16|S[7]<<24,M)},a.fromBytesBE=function(S,M){return new a(S[4]<<24|S[5]<<16|S[6]<<8|S[7],S[0]<<24|S[1]<<16|S[2]<<8|S[3],M)}}),TF=Bt(()=>{}),NF=Bt(()=>{}),CF=Bt((e,t)=>{(function(n,a,r){function s(u){var p=this,d=l();p.next=function(){var c=2091639*p.s0+p.c*23283064365386963e-26;return p.s0=p.s1,p.s1=p.s2,p.s2=c-(p.c=c|0)},p.c=1,p.s0=d(" "),p.s1=d(" "),p.s2=d(" "),p.s0-=d(u),p.s0<0&&(p.s0+=1),p.s1-=d(u),p.s1<0&&(p.s1+=1),p.s2-=d(u),p.s2<0&&(p.s2+=1),d=null}function i(u,p){return p.c=u.c,p.s0=u.s0,p.s1=u.s1,p.s2=u.s2,p}function o(u,p){var d=new s(u),c=p&&p.state,h=d.next;return h.int32=function(){return d.next()*4294967296|0},h.double=function(){return h()+(h()*2097152|0)*11102230246251565e-32},h.quick=h,c&&(typeof c=="object"&&i(c,d),h.state=function(){return i(d,{})}),h}function l(){var u=4022871197,p=function(d){d=String(d);for(var c=0;c>>0,h-=u,h*=u,u=h>>>0,h-=u,u+=h*4294967296}return(u>>>0)*23283064365386963e-26};return p}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.alea=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),EF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.x=0,u.y=0,u.z=0,u.w=0,u.next=function(){var c=u.x^u.x<<11;return u.x=u.y,u.y=u.z,u.z=u.w,u.w^=u.w>>>19^c^c>>>8},l===(l|0)?u.x=l:p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor128=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),_F=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.x^u.x>>>2;return u.x=u.y,u.y=u.z,u.z=u.w,u.w=u.v,(u.d=u.d+362437|0)+(u.v=u.v^u.v<<4^(c^c<<1))|0},u.x=0,u.y=0,u.z=0,u.w=0,u.v=0,l===(l|0)?u.x=l:p+=l;for(var d=0;d>>4),u.next()}function i(l,u){return u.x=l.x,u.y=l.y,u.z=l.z,u.w=l.w,u.v=l.v,u.d=l.d,u}function o(l,u){var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorwow=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),AF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.x,c=u.i,h,m,f;return h=d[c],h^=h>>>7,m=h^h<<24,h=d[c+1&7],m^=h^h>>>10,h=d[c+3&7],m^=h^h>>>3,h=d[c+4&7],m^=h^h<<7,h=d[c+7&7],h=h^h<<13,m^=h^h<<9,d[c]=m,u.i=c+1&7,m};function p(d,c){var h,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,h=0;h0;--h)d.next()}p(u,l)}function i(l,u){return u.x=l.x.slice(),u.i=l.i,u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.x&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xorshift7=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),$F=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this;u.next=function(){var d=u.w,c=u.X,h=u.i,m,f;return u.w=d=d+1640531527|0,f=c[h+34&127],m=c[h=h+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[h]=f^m,u.i=h,f+(d^d>>>16)|0};function p(d,c){var h,m,f,g,y,b=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,g=-32;g>>15,m^=m<<4,m^=m>>>13,g>=0&&(y=y+1640531527|0,h=b[g&127]^=m+y,f=h==0?f+1:0);for(f>=128&&(b[(c&&c.length||0)&127]=-1),f=127,g=4*128;g>0;--g)m=b[f+34&127],h=b[f=f+1&127],m^=m<<13,h^=h<<17,m^=m>>>15,h^=h>>>12,b[f]=m^h;d.w=y,d.X=b,d.i=f}p(u,l)}function i(l,u){return u.i=l.i,u.w=l.w,u.X=l.X.slice(),u}function o(l,u){l==null&&(l=+new Date);var p=new s(l),d=u&&u.state,c=function(){return(p.next()>>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(d.X&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.xor4096=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),FF=Bt((e,t)=>{(function(n,a,r){function s(l){var u=this,p="";u.next=function(){var c=u.b,h=u.c,m=u.d,f=u.a;return c=c<<25^c>>>7^h,h=h-m|0,m=m<<24^m>>>8^f,f=f-c|0,u.b=c=c<<20^c>>>12^h,u.c=h=h-m|0,u.d=m<<16^h>>>16^f,u.a=f-c|0},u.a=0,u.b=0,u.c=-1640531527,u.d=1367130551,l===Math.floor(l)?(u.a=l/4294967296|0,u.b=l|0):p+=l;for(var d=0;d>>0)/4294967296};return c.double=function(){do var h=p.next()>>>11,m=(p.next()>>>0)/4294967296,f=(h+m)/(1<<21);while(f===0);return f},c.int32=p.next,c.quick=c,d&&(typeof d=="object"&&i(d,p),c.state=function(){return i(p,{})}),c}a&&a.exports?a.exports=o:r&&r.amd?r(function(){return o}):this.tychei=o})(e,typeof t=="object"&&t,typeof define=="function"&&define)}),DF=Bt(()=>{}),RF=Bt((e,t)=>{(function(n,a,r){var s=256,i=6,o=52,l="random",u=r.pow(s,i),p=r.pow(2,o),d=p*2,c=s-1,h;function m(I,T,C){var _=[];T=T==!0?{entropy:!0}:T||{};var $=b(y(T.entropy?[I,w(a)]:I==null?x():I,3),_),R=new f(_),F=function(){for(var S=R.g(i),M=u,B=0;S=d;)S/=2,M/=2,B>>>=1;return(S+B)/M};return F.int32=function(){return R.g(4)|0},F.quick=function(){return R.g(4)/4294967296},F.double=F,b(w(R.S),a),(T.pass||C||function(S,M,B,U){return U&&(U.S&&g(U,R),S.state=function(){return g(R,{})}),B?(r[l]=S,M):S})(F,$,"global"in T?T.global:this==r,T.state)}function f(I){var T,C=I.length,_=this,$=0,R=_.i=_.j=0,F=_.S=[];for(C||(I=[C++]);${var n=CF(),a=EF(),r=_F(),s=AF(),i=$F(),o=FF(),l=RF();l.alea=n,l.xor128=a,l.xorwow=r,l.xorshift7=s,l.xor4096=i,l.tychei=o,t.exports=l}),HI=Bt(()=>{}),$x=Bt(()=>{}),Eh=Bt(()=>{}),MF=Bt(()=>{}),PF=Bt(()=>{}),OF=Bt(()=>{}),LF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};function s(){return ue.buffer!=ze&&ot(ue.buffer),dt}function i(){return ue.buffer!=ze&&ot(ue.buffer),jn}function o(){return ue.buffer!=ze&&ot(ue.buffer),Mt}function l(){return ue.buffer!=ze&&ot(ue.buffer),ln}function u(){return ue.buffer!=ze&&ot(ue.buffer),Fn}function p(){return ue.buffer!=ze&&ot(ue.buffer),oa}function d(){return ue.buffer!=ze&&ot(ue.buffer),Dn}var c=typeof r!="undefined"?r:{},h,m;c.ready=new Promise(function(D,j){h=D,m=j});var f;typeof process!="undefined"&&process.listeners&&(f={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var g=Object.assign({},c),y=[],b="./this.program",x=(D,j)=>{throw j},w=typeof window=="object",I=typeof importScripts=="function",T=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=c.ENVIRONMENT_IS_PTHREAD||!1,_="";function $(D){return c.locateFile?c.locateFile(D,_):_+D}var R,F,S,M;function B(D){D instanceof zs||J("exiting due to exception: "+D)}if(T){I?_=Eh().dirname(_)+"/":_=__dirname+"/";var U,G;typeof GI=="function"&&(U=$x(),G=Eh()),R=(j,re)=>(j=G.normalize(j),U.readFileSync(j,re?void 0:"utf8")),S=j=>{var re=R(j,!0);return re.buffer||(re=new Uint8Array(re)),re},F=(j,re,de)=>{j=G.normalize(j),U.readFile(j,function(Ie,je){Ie?de(Ie):re(je.buffer)})},process.argv.length>1&&(b=process.argv[1].replace(/\\/g,"/")),y=process.argv.slice(2),process.on("uncaughtException",function(j){if(!(j instanceof zs))throw j}),process.on("unhandledRejection",function(j){throw j}),x=(j,re)=>{if(Sa())throw process.exitCode=j,re;B(re),process.exit(j)},c.inspect=function(){return"[Emscripten Module object]"};let D;try{D=MF()}catch(j){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),j}global.Worker=D.Worker}else(w||I)&&(I?_=self.location.href:typeof document!="undefined"&&document.currentScript&&(_=document.currentScript.src),typeof a!="undefined"&&a&&(_=a),_.indexOf("blob:")!==0?_=_.substr(0,_.replace(/[?#].*/,"").lastIndexOf("/")+1):_="",T||(R=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.send(null),j.responseText},I&&(S=D=>{var j=new XMLHttpRequest;return j.open("GET",D,!1),j.responseType="arraybuffer",j.send(null),new Uint8Array(j.response)}),F=(D,j,re)=>{var de=new XMLHttpRequest;de.open("GET",D,!0),de.responseType="arraybuffer",de.onload=()=>{if(de.status==200||de.status==0&&de.response){j(de.response);return}re()},de.onerror=re,de.send(null)}),M=D=>document.title=D);T&&typeof performance=="undefined"&&(global.performance=PF().performance);var q=console.log.bind(console),K=console.warn.bind(console);T&&(q=D=>U.writeSync(1,D+` `),K=D=>U.writeSync(2,D+` -`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&Yo("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||Yo(j)}var Ve=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var ce=j+re,Ie=j;D[Ie]&&!(Ie>=ce);)++Ie;if(Ie-j>16&&D.buffer&&Ve)return Ve.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|ua&1023)}}return je}function it(D,j){return D?nt(i(),D,j):""}function et(D,j,re,ce){if(!(ce>0))return 0;for(var Ie=re,je=re+ce-1,Ce=0;Ce=55296&&Re<=57343){var Ot=D.charCodeAt(++Ce);Re=65536+((Re&1023)<<10)|Ot&1023}if(Re<=127){if(re>=je)break;j[re++]=Re}else if(Re<=2047){if(re+1>=je)break;j[re++]=192|Re>>6,j[re++]=128|Re&63}else if(Re<=65535){if(re+2>=je)break;j[re++]=224|Re>>12,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}else{if(re+3>=je)break;j[re++]=240|Re>>18,j[re++]=128|Re>>12&63,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}}return j[re]=0,re-Ie}function at(D,j,re){return et(D,i(),j,re)}var ze,dt,jn,Mt,ia,on,Fn,oa,Dn;C&&(ze=c.buffer);function ot(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=on=new Int32Array(D),c.HEAPU8=jn=new Uint8Array(D),c.HEAPU16=ia=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=oa=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,ot(ze);var qn,xr=[],qo=[],er=[],vp=!1;function Ia(){return ye}function Ko(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Ng(c.preRun.shift());Sp(xr)}function Xt(){vp=!0,!C&&Sp(qo)}function Fd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)G1(c.postRun.shift());Sp(er)}}function Ng(D){xr.unshift(D)}function Cg(D){qo.unshift(D)}function G1(D){er.unshift(D)}var jr=0,Xo=null,vr=null;function H1(D){jr++,c.monitorRunDependencies&&c.monitorRunDependencies(jr)}function j1(D){if(jr--,c.monitorRunDependencies&&c.monitorRunDependencies(jr),jr==0&&(Xo!==null&&(clearInterval(Xo),Xo=null),vr)){var j=vr;vr=null,j()}}function Yo(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var _g="data:application/octet-stream;base64,";function Dd(D){return D.startsWith(_g)}function wp(D){return D.startsWith("file://")}var bn;bn="tfjs-backend-wasm-threaded-simd.wasm",Dd(bn)||(bn=$(bn));function Rd(D){try{if(D==bn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){Yo(j)}}function Eg(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!wp(bn))return fetch(bn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+bn+"'";return D.arrayBuffer()}).catch(function(){return Rd(bn)});if(F)return new Promise(function(D,j){F(bn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return Rd(bn)})}function $g(){var D={env:jd,wasi_snapshot_preview1:jd};function j(Ce,Re){var Ot=Ce.exports;if(c.asm=Ot,Wg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Cg(c.asm.__wasm_call_ctors),be=Re,!C){var ua=Ae.unusedWorkers.length;Ae.unusedWorkers.forEach(function(kr){Ae.loadWasmModuleToWorker(kr,function(){--ua||j1("wasm-instantiate")})})}}C||H1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function ce(Ce){return Eg().then(function(Re){return WebAssembly.instantiate(Re,D)}).then(function(Re){return Re}).then(Ce,function(Re){J("failed to asynchronously prepare wasm: "+Re),Yo(Re)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!Dd(bn)&&!wp(bn)&&!T&&typeof fetch=="function"?fetch(bn,{credentials:"same-origin"}).then(function(Ce){var Re=WebAssembly.instantiateStreaming(Ce,D);return Re.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),ce(re)})}):ce(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Ag,q1,Fg={};function Ms(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Dg(D){var j=Ae.pthreads[D];delete Ae.pthreads[D],j.terminate(),lb(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Rg(D){var j=Ae.pthreads[D];j.postMessage({cmd:"cancel"})}function kp(D){var j=Ae.pthreads[D];Le(j),Ae.returnWorkerToPool(j)}function Md(D){var j=Ae.getNewWorker();if(!j)return 6;Ae.runningWorkers.push(j),Ae.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var Pd={varargs:void 0,get:function(){Pd.varargs+=4;var D=l()[Pd.varargs-4>>2];return D},getStr:function(D){var j=it(D);return j}};function Ip(D){if(C)return qr(1,1,D);Se=D,Ia()||(Ae.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new Ms(D))}function K1(D,j){if(Se=D,!j&&C)throw Ld(D),"unwind";Ip(D)}var Od=K1;function Mg(D){if(D instanceof Ms||D=="unwind")return Se;x(1,D)}var Ae={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Ae.initWorker():Ae.initMainThread()},initMainThread:function(){for(var D=8;D--;)Ae.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values(Ae.pthreads))Ae.returnWorkerToPool(D);for(var D of Ae.unusedWorkers)D.terminate();Ae.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete Ae.pthreads[j],Ae.unusedWorkers.push(D),Ae.runningWorkers.splice(Ae.runningWorkers.indexOf(D),1),D.pthread_ptr=0,lb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){Ae.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var ce=re.data,Ie=ce.cmd;if(D.pthread_ptr&&(Ae.currentProxiedOperationCallerThread=D.pthread_ptr),ce.targetThread&&ce.targetThread!=Jd()){var je=Ae.pthreads[ce.targetThread];je?je.postMessage(ce,ce.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+ce.targetThread+", but that thread no longer exists!"),Ae.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?Tp(ce.queue):Ie==="spawnThread"?Md(ce):Ie==="cleanupThread"?kp(ce.thread):Ie==="killThread"?Dg(ce.thread):Ie==="cancelThread"?Rg(ce.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+ce.threadId+": "+ce.text):Ie==="printErr"?J("Thread "+ce.threadId+": "+ce.text):Ie==="alert"?alert("Thread "+ce.threadId+": "+ce.text):ce.target==="setimmediate"?D.postMessage(ce):Ie==="onAbort"?c.onAbort&&c.onAbort(ce.arg):Ie&&J("worker sent an unknown command "+Ie),Ae.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var ce="worker sent an error!";throw J(ce+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");Ae.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return Ae.unusedWorkers.length==0&&(Ae.allocateUnusedWorker(),Ae.loadWasmModuleToWorker(Ae.unusedWorkers[0])),Ae.unusedWorkers.pop()}};c.PThread=Ae;function Sp(D){for(;D.length>0;)D.shift()(c)}function Pg(D){var j=ub(),re=D();return Qd(j),re}function X1(D){return D}function Y1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var ce=re;return re===ce?re:ce+" ["+re+"]"})}function Og(){var D=Jd(),j=l()[D+44>>2],re=l()[D+48>>2],ce=j-re;ak(j,ce),Qd(j)}c.establishStackSpace=Og;function Ld(D){if(C)return qr(2,0,D);try{Od(D)}catch(j){Mg(j)}}var Zo=[];function Lg(D){var j=Zo[D];return j||(D>=Zo.length&&(Zo.length=D+1),Zo[D]=j=qn.get(D)),j}function zg(D,j){var re=Lg(D)(j);Ia()?Ae.setExitStatus(re):nk(re)}c.invokeEntryPoint=zg;function Z1(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Wg(D){Ae.tlsInitFunctions.push(D)}function Bg(D,j){s().set(D,j)}function Vg(D){Q1(D,!I,1,!w),Ae.threadInitTLS()}function Ug(D){C?postMessage({cmd:"cleanupThread",thread:D}):kp(D)}function zd(D,j,re,ce){return C?qr(3,1,D,j,re,ce):Wd(D,j,re,ce)}function Wd(D,j,re,ce){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return zd(D,j,re,ce);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:ce,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):Md(Ce)}function Gg(){return 2097152}var Hg=!0;function jg(){return Hg}function Tp(D){Atomics.store(l(),D>>2,1),Jd()&&tk(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=Tp;function qg(D,j,re,ce){if(D==j)setTimeout(()=>Tp(ce));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:ce});else{var Ie=Ae.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:ce})}return 1}function Kg(D,j,re){return-1}function Xg(){Yo("")}function Ps(D){Ps.shown||(Ps.shown={}),Ps.shown[D]||(Ps.shown[D]=1,T&&(D="warning: "+D),J(D))}function Yg(){T||I||Ps("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Zg(){return Date.now()}function Bd(){return 2147483648}function Jg(){return Bd()}var Jo;T?Jo=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?Jo=()=>performance.now()-c.__performance_now_clock_drift:Jo=()=>performance.now();function Qg(D,j,re){i().copyWithin(D,j,j+re)}function ey(){return T?RF().cpus().length:navigator.hardwareConcurrency}function qr(D,j){var re=arguments.length-2,ce=arguments;return Pg(()=>{for(var Ie=re,je=eh(Ie*8),Ce=je>>3,Re=0;Re>3,Ie=0;Ie>>16),ot(ue.buffer),1}catch(j){}}function ay(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Bd();if(D>re)return!1;let ce=(Ot,ua)=>Ot+(ua-Ot%ua)%ua;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,ce(Math.max(D,je),65536)),Re=ny(Ce);if(Re)return!0}return!1}function ry(){throw"unwind"}function Vd(D){return C?qr(4,1,D):52}function Ud(D,j,re,ce,Ie){return C?qr(5,1,D,j,re,ce,Ie):70}var sy=[null,[],[]];function iy(D,j){var re=sy[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function Gd(D,j,re,ce){if(C)return qr(6,1,D,j,re,ce);for(var Ie=0,je=0;je>2],Re=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function Hd(D){var j=c["_"+D];return j}function oy(D,j,re,ce,Ie){var je={string:pa=>{var nl=0;if(pa!=null&&pa!==0){var ik=(pa.length<<2)+1;nl=eh(ik),at(pa,nl,ik)}return nl},array:pa=>{var nl=eh(pa.length);return Bg(pa,nl),nl}};function Ce(pa){return j==="string"?it(pa):j==="boolean"?Boolean(pa):pa}var Re=Hd(D),Ot=[],ua=0;if(ce)for(var kr=0;krCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!ce?Hd(D):function(){return oy(D,j,re,arguments,ce)}}Ae.init();var uy=[null,Ip,Ld,zd,Vd,Ud,Gd],jd={__emscripten_init_main_thread_js:Vg,__emscripten_thread_cleanup:Ug,__pthread_create_js:Wd,_emscripten_default_pthread_stack_size:Gg,_emscripten_get_now_is_monotonic:jg,_emscripten_notify_task_queue:qg,_emscripten_set_offscreencanvas_size:Kg,abort:Xg,emscripten_check_blocking_allowed:Yg,emscripten_date_now:Zg,emscripten_get_heap_max:Jg,emscripten_get_now:Jo,emscripten_memcpy_big:Qg,emscripten_num_logical_cores:ey,emscripten_receive_on_main_thread_js:ty,emscripten_resize_heap:ay,emscripten_unwind_to_js_event_loop:ry,exit:Od,fd_close:Vd,fd_seek:Ud,fd_write:Gd,memory:ue||c.wasmMemory},J1=$g(),py=c.___wasm_call_ctors=function(){return(py=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},cy=c._init=function(){return(cy=c._init=c.asm.init).apply(null,arguments)},dy=c._init_with_threads_count=function(){return(dy=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},hy=c._get_threads_count=function(){return(hy=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},my=c._register_tensor=function(){return(my=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},fy=c._dispose_data=function(){return(fy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},gy=c._dispose=function(){return(gy=c._dispose=c.asm.dispose).apply(null,arguments)},yy=c._Abs=function(){return(yy=c._Abs=c.asm.Abs).apply(null,arguments)},by=c._Add=function(){return(by=c._Add=c.asm.Add).apply(null,arguments)},xy=c._AddN=function(){return(xy=c._AddN=c.asm.AddN).apply(null,arguments)},vy=c._All=function(){return(vy=c._All=c.asm.All).apply(null,arguments)},wy=c._Any=function(){return(wy=c._Any=c.asm.Any).apply(null,arguments)},ky=c._ArgMax=function(){return(ky=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Iy=c._AvgPool=function(){return(Iy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Sy=c._BatchMatMul=function(){return(Sy=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ty=c._Ceil=function(){return(Ty=c._Ceil=c.asm.Ceil).apply(null,arguments)},Ny=c._ClipByValue=function(){return(Ny=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Cy=c._Conv2D=function(){return(Cy=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},_y=c._Conv2DBackpropInput=function(){return(_y=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Ey=c._Cos=function(){return(Ey=c._Cos=c.asm.Cos).apply(null,arguments)},$y=c._Cosh=function(){return($y=c._Cosh=c.asm.Cosh).apply(null,arguments)},Ay=c._CropAndResize=function(){return(Ay=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Fy=c._Cumprod=function(){return(Fy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Dy=c._Cumsum=function(){return(Dy=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},Ry=c._DepthToSpace=function(){return(Ry=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},My=c._DepthwiseConv2dNative=function(){return(My=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Py=c._Elu=function(){return(Py=c._Elu=c.asm.Elu).apply(null,arguments)},Oy=c._Equal=function(){return(Oy=c._Equal=c.asm.Equal).apply(null,arguments)},Ly=c._Exp=function(){return(Ly=c._Exp=c.asm.Exp).apply(null,arguments)},zy=c._FlipLeftRight=function(){return(zy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},Wy=c._Floor=function(){return(Wy=c._Floor=c.asm.Floor).apply(null,arguments)},By=c._FloorDiv=function(){return(By=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Vy=c._FusedBatchNorm=function(){return(Vy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Uy=c._FusedConv2D=function(){return(Uy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Gy=c._FusedDepthwiseConv2D=function(){return(Gy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},Hy=c._Gather=function(){return(Hy=c._Gather=c.asm.Gather).apply(null,arguments)},jy=c._GatherNd=function(){return(jy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},qy=c._Greater=function(){return(qy=c._Greater=c.asm.Greater).apply(null,arguments)},Ky=c._GreaterEqual=function(){return(Ky=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Xy=c._LeakyRelu=function(){return(Xy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Yy=c._Less=function(){return(Yy=c._Less=c.asm.Less).apply(null,arguments)},Zy=c._LessEqual=function(){return(Zy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},Jy=c._Log=function(){return(Jy=c._Log=c.asm.Log).apply(null,arguments)},Qy=c._LogicalAnd=function(){return(Qy=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},eb=c._LogicalNot=function(){return(eb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},tb=c._LogicalOr=function(){return(tb=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},nb=c._LogicalXor=function(){return(nb=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},ab=c._Max=function(){return(ab=c._Max=c.asm.Max).apply(null,arguments)},qd=c._MaxPool=function(){return(qd=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Kd=c._Maximum=function(){return(Kd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Cp=c._Mean=function(){return(Cp=c._Mean=c.asm.Mean).apply(null,arguments)},rb=c._Min=function(){return(rb=c._Min=c.asm.Min).apply(null,arguments)},sb=c._Minimum=function(){return(sb=c._Minimum=c.asm.Minimum).apply(null,arguments)},Qo=c._MirrorPad=function(){return(Qo=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},Xd=c._Multiply=function(){return(Xd=c._Multiply=c.asm.Multiply).apply(null,arguments)},el=c._Neg=function(){return(el=c._Neg=c.asm.Neg).apply(null,arguments)},tl=c._NonMaxSuppressionV3=function(){return(tl=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},ib=c._NonMaxSuppressionV4=function(){return(ib=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},X=c._NonMaxSuppressionV5=function(){return(X=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},se=c._NotEqual=function(){return(se=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},we=c._OneHot=function(){return(we=c._OneHot=c.asm.OneHot).apply(null,arguments)},He=c._PadV2=function(){return(He=c._PadV2=c.asm.PadV2).apply(null,arguments)},wt=c._Pow=function(){return(wt=c._Pow=c.asm.Pow).apply(null,arguments)},kt=c._Prelu=function(){return(kt=c._Prelu=c.asm.Prelu).apply(null,arguments)},Ue=c._Prod=function(){return(Ue=c._Prod=c.asm.Prod).apply(null,arguments)},We=c._RealDiv=function(){return(We=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},la=c._Relu6=function(){return(la=c._Relu6=c.asm.Relu6).apply(null,arguments)},wr=c._ResizeBilinear=function(){return(wr=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Yd=c._ResizeNearestNeighbor=function(){return(Yd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},_p=c._Reverse=function(){return(_p=c._Reverse=c.asm.Reverse).apply(null,arguments)},ob=c._RotateWithOffset=function(){return(ob=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Kr=c._Rsqrt=function(){return(Kr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Zd=c._ScatterNd=function(){return(Zd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},AA=c._SelectV2=function(){return(AA=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},FA=c._Sigmoid=function(){return(FA=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},DA=c._Sin=function(){return(DA=c._Sin=c.asm.Sin).apply(null,arguments)},RA=c._Softmax=function(){return(RA=c._Softmax=c.asm.Softmax).apply(null,arguments)},MA=c._SparseFillEmptyRows=function(){return(MA=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},PA=c._SparseReshape=function(){return(PA=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},OA=c._SparseSegmentReduction=function(){return(OA=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},LA=c._Sqrt=function(){return(LA=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},zA=c._Square=function(){return(zA=c._Square=c.asm.Square).apply(null,arguments)},WA=c._SquaredDifference=function(){return(WA=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},BA=c._Step=function(){return(BA=c._Step=c.asm.Step).apply(null,arguments)},VA=c._StridedSlice=function(){return(VA=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},UA=c._Sub=function(){return(UA=c._Sub=c.asm.Sub).apply(null,arguments)},GA=c._Sum=function(){return(GA=c._Sum=c.asm.Sum).apply(null,arguments)},HA=c._Tan=function(){return(HA=c._Tan=c.asm.Tan).apply(null,arguments)},jA=c._Tanh=function(){return(jA=c._Tanh=c.asm.Tanh).apply(null,arguments)},qA=c._Tile=function(){return(qA=c._Tile=c.asm.Tile).apply(null,arguments)},KA=c._TopK=function(){return(KA=c._TopK=c.asm.TopK).apply(null,arguments)},XA=c._Transform=function(){return(XA=c._Transform=c.asm.Transform).apply(null,arguments)},YA=c._Transpose=function(){return(YA=c._Transpose=c.asm.Transpose).apply(null,arguments)},ZA=c.__FusedMatMul=function(){return(ZA=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},JA=c._malloc=function(){return(JA=c._malloc=c.asm.malloc).apply(null,arguments)},QA=c._free=function(){return(QA=c._free=c.asm.free).apply(null,arguments)},eF=c.__emscripten_tls_init=function(){return(eF=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Jd=c._pthread_self=function(){return(Jd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},tF=c.___errno_location=function(){return(tF=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},Q1=c.__emscripten_thread_init=function(){return(Q1=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},nF=c.__emscripten_thread_crashed=function(){return(nF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},aF=c._emscripten_main_thread_process_queued_calls=function(){return(aF=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},rF=c._emscripten_main_browser_thread_id=function(){return(rF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},ek=c._emscripten_run_in_main_runtime_thread_js=function(){return(ek=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},sF=c._emscripten_dispatch_to_thread_=function(){return(sF=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},tk=c.__emscripten_proxy_execute_task_queue=function(){return(tk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},lb=c.__emscripten_thread_free_data=function(){return(lb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},nk=c.__emscripten_thread_exit=function(){return(nk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},ak=c._emscripten_stack_set_limits=function(){return(ak=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},ub=c.stackSave=function(){return(ub=c.stackSave=c.asm.stackSave).apply(null,arguments)},Qd=c.stackRestore=function(){return(Qd=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},eh=c.stackAlloc=function(){return(eh=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},iF=c.dynCall_iijjiiii=function(){return(iF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},oF=c.dynCall_jiji=function(){return(oF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Ia,c.wasmMemory=ue,c.cwrap=ly,c.ExitStatus=Ms,c.PThread=Ae;var th;vr=function D(){th||rk(),th||(vr=D)};function rk(D){if(D=D||y,jr>0)return;if(C){h(c),Xt(),postMessage({cmd:"loaded"});return}if(Ko(),jr>0)return;function j(){th||(th=!0,c.calledRun=!0,!ke&&(Xt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Fd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();rk();var nh;f&&(nh={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var ah;if(typeof WasmBackendModule!="undefined")ah=WasmBackendModule;else if(typeof r!="undefined")ah=r;else throw new Error("Could not find wasm module in post.js");if(nh){var lF=ah._dispose;ah._dispose=function(){lF(),nh.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),nh.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),PF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),OF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof Xo||R("exiting due to exception: "+X)}if(f){m?g=Ch().dirname(g)+"/":g=__dirname+"/";var C,E;typeof BI=="function"&&(C=Cx(),E=Ch()),b=(X,se)=>(X=E.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=E.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof Xo))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(jn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&er("no native wasm support detected");var B,U=!1,G;function q(X,se){X||er(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|la&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ue=0;Ue=55296&&We<=57343){var Pt=X.charCodeAt(++Ue);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ve(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,it,et=[],at=[],ze=[],dt=!1;function jn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());vr(et)}function ia(){dt=!0,vr(at)}function on(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());vr(ze)}function Fn(X){et.unshift(X)}function oa(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var ot=0,Rn=null,qn=null;function xr(X){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function qo(X){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),qn)){var se=qn;qn=null,se()}}function er(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var vp="data:application/octet-stream;base64,";function Ia(X){return X.startsWith(vp)}function Ko(X){return X.startsWith("file://")}var Xt;Xt="tfjs-backend-wasm.wasm",Ia(Xt)||(Xt=y(Xt));function Fd(X){try{if(X==Xt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){er(se)}}function Ng(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Ko(Xt))return fetch(Xt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Xt+"'";return X.arrayBuffer()}).catch(function(){return Fd(Xt)});if(x)return new Promise(function(X,se){x(Xt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return Fd(Xt)})}function Cg(){var X={env:Ip,wasi_snapshot_preview1:Ip};function se(Ue,We){var Pt=Ue.exports;s.asm=Pt,B=s.asm.memory,Ve(B.buffer),it=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),qo("wasm-instantiate")}xr("wasm-instantiate");function we(Ue){se(Ue.instance)}function He(Ue){return Ng().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ue,function(We){R("failed to asynchronously prepare wasm: "+We),er(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Ia(Xt)&&!Ko(Xt)&&!f&&typeof fetch=="function"?fetch(Xt,{credentials:"same-origin"}).then(function(Ue){var We=WebAssembly.instantiateStreaming(Ue,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ue){R("Module.instantiateWasm callback failed with error: "+Ue),o(Ue)}return wt().catch(o),{}}var G1,jr;function Xo(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function vr(X){for(;X.length>0;)X.shift()(s)}function H1(X){return X}function j1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function Yo(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function _g(X,se){ie.set(X,se)}function Dd(){er("")}function wp(){return 2147483648}function bn(){return wp()}function Rd(X,se,we){oe.copyWithin(X,se,se+we)}function Eg(X){try{return B.grow(X-te.byteLength+65535>>>16),Ve(B.buffer),1}catch(se){}}function $g(X){var se=oe.length;X=X>>>0;var we=wp();if(X>we)return!1;let He=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ue=Math.min(we,He(Math.max(X,kt),65536)),We=Eg(Ue);if(We)return!0}return!1}var Ag={varargs:void 0,get:function(){Ag.varargs+=4;var X=be[Ag.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function q1(X){return 52}function Fg(X,se,we,He,wt){return 70}var Ms=[null,[],[]];function Dg(X,se){var we=Ms[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Rg(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function kp(X){var se=s["_"+X];return se}function Md(X,se,we,He,wt){var kt={string:Mn=>{var Kr=0;if(Mn!=null&&Mn!==0){var Zd=(Mn.length<<2)+1;Kr=Cp(Zd),ae(Mn,Kr,Zd)}return Kr},array:Mn=>{var Kr=Cp(Mn.length);return _g(Mn,Kr),Kr}};function Ue(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=kp(X),Pt=[],la=0;if(He)for(var wr=0;wrUe==="number"||Ue==="boolean"),kt=se!=="string";return kt&&wt&&!He?kp(X):function(){return Md(X,se,we,arguments,He)}}var Ip={abort:Dd,emscripten_get_heap_max:bn,emscripten_memcpy_big:Rd,emscripten_resize_heap:$g,fd_close:q1,fd_seek:Fg,fd_write:Rg},K1=Cg(),Od=s.___wasm_call_ctors=function(){return(Od=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Mg=s._init=function(){return(Mg=s._init=s.asm.init).apply(null,arguments)},Ae=s._init_with_threads_count=function(){return(Ae=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Sp=s._get_threads_count=function(){return(Sp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Pg=s._register_tensor=function(){return(Pg=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},X1=s._dispose_data=function(){return(X1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Y1=s._dispose=function(){return(Y1=s._dispose=s.asm.dispose).apply(null,arguments)},Og=s._Abs=function(){return(Og=s._Abs=s.asm.Abs).apply(null,arguments)},Ld=s._Add=function(){return(Ld=s._Add=s.asm.Add).apply(null,arguments)},Zo=s._AddN=function(){return(Zo=s._AddN=s.asm.AddN).apply(null,arguments)},Lg=s._All=function(){return(Lg=s._All=s.asm.All).apply(null,arguments)},zg=s._Any=function(){return(zg=s._Any=s.asm.Any).apply(null,arguments)},Z1=s._ArgMax=function(){return(Z1=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Wg=s._AvgPool=function(){return(Wg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Bg=s._BatchMatMul=function(){return(Bg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Vg=s._Ceil=function(){return(Vg=s._Ceil=s.asm.Ceil).apply(null,arguments)},Ug=s._ClipByValue=function(){return(Ug=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},zd=s._Conv2D=function(){return(zd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Wd=s._Conv2DBackpropInput=function(){return(Wd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Gg=s._Cos=function(){return(Gg=s._Cos=s.asm.Cos).apply(null,arguments)},Hg=s._Cosh=function(){return(Hg=s._Cosh=s.asm.Cosh).apply(null,arguments)},jg=s._CropAndResize=function(){return(jg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Tp=s._Cumprod=function(){return(Tp=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},qg=s._Cumsum=function(){return(qg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Kg=s._DepthToSpace=function(){return(Kg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Xg=s._DepthwiseConv2dNative=function(){return(Xg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ps=s._Elu=function(){return(Ps=s._Elu=s.asm.Elu).apply(null,arguments)},Yg=s._Equal=function(){return(Yg=s._Equal=s.asm.Equal).apply(null,arguments)},Zg=s._Exp=function(){return(Zg=s._Exp=s.asm.Exp).apply(null,arguments)},Bd=s._FlipLeftRight=function(){return(Bd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Jg=s._Floor=function(){return(Jg=s._Floor=s.asm.Floor).apply(null,arguments)},Jo=s._FloorDiv=function(){return(Jo=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},Qg=s._FusedBatchNorm=function(){return(Qg=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},ey=s._FusedConv2D=function(){return(ey=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},qr=s._FusedDepthwiseConv2D=function(){return(qr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Np=s._Gather=function(){return(Np=s._Gather=s.asm.Gather).apply(null,arguments)},ty=s._GatherNd=function(){return(ty=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},ny=s._Greater=function(){return(ny=s._Greater=s.asm.Greater).apply(null,arguments)},ay=s._GreaterEqual=function(){return(ay=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},ry=s._LeakyRelu=function(){return(ry=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Vd=s._Less=function(){return(Vd=s._Less=s.asm.Less).apply(null,arguments)},Ud=s._LessEqual=function(){return(Ud=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},sy=s._Log=function(){return(sy=s._Log=s.asm.Log).apply(null,arguments)},iy=s._LogicalAnd=function(){return(iy=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},Gd=s._LogicalNot=function(){return(Gd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},Hd=s._LogicalOr=function(){return(Hd=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},oy=s._LogicalXor=function(){return(oy=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},ly=s._Max=function(){return(ly=s._Max=s.asm.Max).apply(null,arguments)},uy=s._MaxPool=function(){return(uy=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},jd=s._Maximum=function(){return(jd=s._Maximum=s.asm.Maximum).apply(null,arguments)},J1=s._Mean=function(){return(J1=s._Mean=s.asm.Mean).apply(null,arguments)},py=s._Min=function(){return(py=s._Min=s.asm.Min).apply(null,arguments)},cy=s._Minimum=function(){return(cy=s._Minimum=s.asm.Minimum).apply(null,arguments)},dy=s._MirrorPad=function(){return(dy=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},hy=s._Multiply=function(){return(hy=s._Multiply=s.asm.Multiply).apply(null,arguments)},my=s._Neg=function(){return(my=s._Neg=s.asm.Neg).apply(null,arguments)},fy=s._NonMaxSuppressionV3=function(){return(fy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},gy=s._NonMaxSuppressionV4=function(){return(gy=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},yy=s._NonMaxSuppressionV5=function(){return(yy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},by=s._NotEqual=function(){return(by=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},xy=s._OneHot=function(){return(xy=s._OneHot=s.asm.OneHot).apply(null,arguments)},vy=s._PadV2=function(){return(vy=s._PadV2=s.asm.PadV2).apply(null,arguments)},wy=s._Pow=function(){return(wy=s._Pow=s.asm.Pow).apply(null,arguments)},ky=s._Prelu=function(){return(ky=s._Prelu=s.asm.Prelu).apply(null,arguments)},Iy=s._Prod=function(){return(Iy=s._Prod=s.asm.Prod).apply(null,arguments)},Sy=s._RealDiv=function(){return(Sy=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Ty=s._Relu=function(){return(Ty=s._Relu=s.asm.Relu).apply(null,arguments)},Ny=s._Relu6=function(){return(Ny=s._Relu6=s.asm.Relu6).apply(null,arguments)},Cy=s._ResizeBilinear=function(){return(Cy=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},_y=s._ResizeNearestNeighbor=function(){return(_y=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Ey=s._Reverse=function(){return(Ey=s._Reverse=s.asm.Reverse).apply(null,arguments)},$y=s._RotateWithOffset=function(){return($y=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Ay=s._Round=function(){return(Ay=s._Round=s.asm.Round).apply(null,arguments)},Fy=s._Rsqrt=function(){return(Fy=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Dy=s._ScatterNd=function(){return(Dy=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Ry=s._SelectV2=function(){return(Ry=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},My=s._Sigmoid=function(){return(My=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},Py=s._Sin=function(){return(Py=s._Sin=s.asm.Sin).apply(null,arguments)},Oy=s._Softmax=function(){return(Oy=s._Softmax=s.asm.Softmax).apply(null,arguments)},Ly=s._SparseFillEmptyRows=function(){return(Ly=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},zy=s._SparseReshape=function(){return(zy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Wy=s._SparseSegmentReduction=function(){return(Wy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},By=s._Sqrt=function(){return(By=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Vy=s._Square=function(){return(Vy=s._Square=s.asm.Square).apply(null,arguments)},Uy=s._SquaredDifference=function(){return(Uy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},Gy=s._Step=function(){return(Gy=s._Step=s.asm.Step).apply(null,arguments)},Hy=s._StridedSlice=function(){return(Hy=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},jy=s._Sub=function(){return(jy=s._Sub=s.asm.Sub).apply(null,arguments)},qy=s._Sum=function(){return(qy=s._Sum=s.asm.Sum).apply(null,arguments)},Ky=s._Tan=function(){return(Ky=s._Tan=s.asm.Tan).apply(null,arguments)},Xy=s._Tanh=function(){return(Xy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Yy=s._Tile=function(){return(Yy=s._Tile=s.asm.Tile).apply(null,arguments)},Zy=s._TopK=function(){return(Zy=s._TopK=s.asm.TopK).apply(null,arguments)},Jy=s._Transform=function(){return(Jy=s._Transform=s.asm.Transform).apply(null,arguments)},Qy=s._Transpose=function(){return(Qy=s._Transpose=s.asm.Transpose).apply(null,arguments)},eb=s.__FusedMatMul=function(){return(eb=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},tb=s._malloc=function(){return(tb=s._malloc=s.asm.malloc).apply(null,arguments)},nb=s._free=function(){return(nb=s._free=s.asm.free).apply(null,arguments)},ab=s.___errno_location=function(){return(ab=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},qd=s.stackSave=function(){return(qd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Kd=s.stackRestore=function(){return(Kd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Cp=s.stackAlloc=function(){return(Cp=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},rb=s.dynCall_iijjiiii=function(){return(rb=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},sb=s.dynCall_jiji=function(){return(sb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Pd;var Qo;qn=function X(){Qo||Xd(),Qo||(qn=X)};function Xd(X){if(X=X||p,ot>0||(Mt(),ot>0))return;function se(){Qo||(Qo=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),on()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Xd();var el;l&&(el={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var tl;if(typeof r!="undefined")tl=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")tl=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(el){var ib=tl._dispose;tl._dispose=function(){ib(),el.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),el.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),om=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},pc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromTexture(e,t,n){return Kn("createTensorFromTexture")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function UI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,_h(e,t,n)}function LF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,_h(e,n,a),_h(t,n,a)}function Kp(e,t,n){return Math.max(e,Math.min(t,n))}function zF(e){return e%2===0?e:e+1}function _h(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function WF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function mi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Js(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function KF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function Fa(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>hl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function GI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Fa(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function HI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function jI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function qI(e,t){for(let n=0;nt+=n.length),t}function Qr(e){return typeof e=="string"||e instanceof String}function YI(e){return typeof e=="boolean"}function ZI(e){return typeof e=="number"}function lm(e){return Array.isArray(e)?lm(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":ZI(e)?"float32":Qr(e)?"string":YI(e)?"bool":"float32"}function ss(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Eh(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function JI(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return JI(0,e,t,n)}function _x(e,t){let n=um(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return ul(e,new Float32Array(n));if(t==="int32")return ul(e,new Int32Array(n));if(t==="bool")return ul(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function Ex(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function ZF(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=tD(n,a)})}};function QF(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(eD(t,a[0],a[1]),a.join("="))),t}function eD(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function tD(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Ax}var Ax=null;function nD(e){Ax=e}var db;function eS(){if(db==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");db=e}return db}function aD(){let e=eS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Fx(e,t){let n=aD();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Dl="Abs",Rl="Acos",Ml="Acosh",gs="Add",fi="AddN",Pl="All",Ol="Any",gi="ArgMax",cc="ArgMin",Ll="Asin",zl="Asinh",Wl="Atan",Bl="Atanh",Vl="Atan2",yi="AvgPool",pm="AvgPoolGrad",dc="AvgPool3D",cm="AvgPool3DGrad",bi="BatchMatMul",Ul="BatchToSpaceND",dm="Bincount",tS="BroadcastTo",hm="BroadcastArgs",xi="Cast",vi="Ceil",ys="ClipByValue",mm="Complex",hc="ComplexAbs",Gl="Concat",wi="Conv2D",fm="Conv2DBackpropFilter",ki="Conv2DBackpropInput",mc="Conv3D",gm="Conv3DBackpropFilterV2",ym="Conv3DBackpropInputV2",Ii="Cos",Si="Cosh",Hl="Cumprod",Ti="Cumsum",jl="CropAndResize",bm="DenseBincount",ql="DepthToSpace",Ni="DepthwiseConv2dNative",xm="DepthwiseConv2dNativeBackpropFilter",vm="DepthwiseConv2dNativeBackpropInput",wm="Diag",fc="Dilation2D",$h="Dilation2DBackpropInput",Ah="Dilation2DBackpropFilter",Ci="RealDiv",km="Einsum",_i="Elu",Im="EluGrad",Kl="Erf",Xl="Equal",Ei="Exp",Yl="ExpandDims",Zl="Expm1",Sm="FFT",gc="Fill",Jl="FlipLeftRight",$i="Floor",Ai="FloorDiv",Fi="FusedBatchNorm",Ql="GatherV2",eu="GatherNd",tu="Greater",Di="GreaterEqual",Ri="Identity",Tm="IFFT",Nm="Imag",nu="IsFinite",au="IsInf",ru="IsNan",Mi="LeakyRelu",su="Less",iu="LessEqual",Cm="LinSpace",Pi="Log",ou="Log1p",lu="LogicalAnd",uu="LogicalNot",pu="LogicalOr",nS="LogicalXor",aS="LogSoftmax",rD="LowerBound",yc="LRN",_m="LRNGrad",Oi="Max",Li="Maximum",zi="MaxPool",Em="MaxPoolGrad",bc="MaxPool3D",$m="MaxPool3DGrad",Am="MaxPoolWithArgmax",Wi="Mean",Bi="Min",Vi="Minimum",Ui="MirrorPad",cu="Mod",Fm="Multinomial",Gi="Multiply",du="Neg",hu="NotEqual",mu="NonMaxSuppressionV3",fu="NonMaxSuppressionV4",gu="NonMaxSuppressionV5",yu="OnesLike",Hi="OneHot",bu="Pack",ji="PadV2",sD="Pool",qi="Pow",Ki="Prelu",Xi="Prod",Dm="RaggedGather",Rm="RaggedRange",Mm="RaggedTensorToTensor",xc="Range",Pm="Real",xu="Reciprocal",Yi="Relu",vu="Reshape",Zi="ResizeNearestNeighbor",Om="ResizeNearestNeighborGrad",Ji="ResizeBilinear",Lm="ResizeBilinearGrad",Qi="Relu6",eo="Reverse",to="Round",no="Rsqrt",wu="ScatterNd",zm="SearchSorted",ku="Select",Iu="Selu",Su="Slice",ao="Sin",Tu="Sinh",Nu="Sign",ro="Sigmoid",Cu="Softplus",so="Sqrt",io="Sum",_u="SpaceToBatchND",Eu="SplitV",oo="Softmax",vc="SparseFillEmptyRows",$u="SparseReshape",wc="SparseSegmentMean",kc="SparseSegmentSum",Wm="SparseToDense",lo="SquaredDifference",Ic="Square",Au="StridedSlice",Sc="StringNGrams",Tc="StringSplit",Nc="StringToHashBucketFast",uo="Sub",po="Tan",co="Tanh",bs="Tile",Fu="TopK",Du="Transform",_r="Transpose",Bm="Unique",Ru="Unpack",Cc="UnsortedSegmentSum",iD="UpperBound",Mu="ZerosLike",xs="Step",Fh="FromPixels",Pu="RotateWithOffset",Qs="_FusedMatMul",ei="FusedConv2D",ti="FusedDepthwiseConv2D";function Jr(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function oD(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var ml=Fx("kernelRegistry",()=>new Map),Xp=Fx("gradRegistry",()=>new Map);function Dh(e,t){let n=Dx(e,t);return ml.get(n)}function Cb(e){return Xp.get(e)}function Rh(e){let t=ml.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function _c(e){let{kernelName:t,backendName:n}=e,a=Dx(t,n);ml.has(a)&&Jr(`The kernel '${t}' for backend '${n}' is already registered`),ml.set(a,e)}function rS(e){let{kernelName:t}=e;Xp.has(t)&&H().getBool("DEBUG")&&Jr(`Overriding the gradient for '${t}'`),Xp.set(t,e)}function lD(e,t){let n=Dx(e,t);if(!ml.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);ml.delete(n)}function uD(e){if(!Xp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Xp.delete(e)}function pD(e,t){Rh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});_c(a)})}function Dx(e,t){return`${t}_${e}`}var v={};$e(v,{arraysEqual:()=>fs,assert:()=>A,assertNonNegativeIntegerDimensions:()=>Ex,assertNonNull:()=>mi,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>XI,bytesPerElement:()=>Nb,checkConversionForErrors:()=>qI,clamp:()=>Kp,computeStrides:()=>Fl,createScalarValue:()=>gD,createShuffledIndices:()=>jF,decodeString:()=>Mh,distSquared:()=>VF,encodeString:()=>$c,fetch:()=>bD,fingerPrint64:()=>fD,flatten:()=>Js,getArrayFromDType:()=>jI,getTypedArrayFromDType:()=>HI,hasEncodingLoss:()=>XF,hexToLong:()=>Ec,indexToLoc:()=>JF,inferDtype:()=>lm,inferFromImplicitShape:()=>KF,isBoolean:()=>YI,isFunction:()=>ss,isInt:()=>hl,isNumber:()=>ZI,isPromise:()=>$x,isScalarShape:()=>UF,isString:()=>Qr,isTypedArray:()=>hn,isValidDtype:()=>KI,locToIndex:()=>ZF,makeOnesTypedArray:()=>_x,makeZerosNestedTypedArray:()=>YF,makeZerosTypedArray:()=>um,nearestDivisor:()=>Eh,nearestLargerEven:()=>zF,now:()=>Yp,parseAxisParam:()=>Fa,randUniform:()=>BF,repeatedTry:()=>qF,rightPad:()=>Gp,shuffle:()=>UI,shuffleCombo:()=>LF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>HF,squeezeShape:()=>GI,sum:()=>WF,swap:()=>_h,tanh:()=>GF,toNestedArray:()=>ul,toTypedArray:()=>Vm});var lk=ms(wF()),Bs=lk.default||lk;function Ec(e){return Bs.fromString(e,!0,16)}var sS=Ec("c3a5c85c97cb3127"),zs=Ec("b492b66fbe98f273"),xn=Ec("9ae16a3b2f90404f");function _b(e){return e.xor(e.shru(47))}function iS(e,t,n){let a=e.slice(t,t+n);return Bs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return iS(e,t,8)}function uk(e,t){return iS(e,t,4)}function Yt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function ns(e,t,n=Ec("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function cD(e,t,n,a,r,s){r=r.add(e),s=Yt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Yt(r,44)),[r.add(a),s.add(i)]}function sh(e,t,n,a){return cD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function dD(e,t=e.length){if(t>=8){let n=xn.add(t*2),a=ht(e,0).add(xn),r=ht(e,t-8),s=Yt(r,37).mul(n).add(a),i=Yt(a,25).add(r).mul(n);return ns(s,i,n)}if(t>=4){let n=xn.add(t*2),a=uk(e,0);return ns(a.shl(3).add(t),uk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return _b(xn.mul(s).xor(sS.mul(i))).mul(xn)}return xn}function hD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(zs),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn);return ns(Yt(a.add(r),43).add(Yt(s,30)).add(i),a.add(Yt(r.add(xn),18)).add(s),n)}function mD(e,t=e.length){let n=xn.add(t*2),a=ht(e,0).mul(xn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(xn),o=Yt(a.add(r),43).add(Yt(s,30)).add(i),l=ns(o,a.add(Yt(r.add(xn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return ns(Yt(u.add(p),43).add(Yt(d,30)).add(c),u.add(Yt(p.add(a),18)).add(d),n)}function fD(e,t=e.length){let n=Bs.fromNumber(81,!0);if(t<=32)return t<=16?dD(e,t):hD(e,t);if(t<=64)return mD(e,t);let a=n,r=n.mul(zs).add(113),s=_b(r.mul(xn).add(113)).mul(xn),i=[Bs.UZERO,Bs.UZERO],o=[Bs.UZERO,Bs.UZERO];a=a.mul(xn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(zs),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(zs),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Yt(s.add(o[0]),33).mul(zs),i=sh(e,l,i[1].mul(zs),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=zs.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Yt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Yt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Yt(s.add(o[0]),33).mul(d),i=sh(e,l,i[1].mul(d),a.add(o[0])),o=sh(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],ns(ns(i[0],o[0],d).add(_b(r).mul(sS)).add(s),ns(i[1],o[1],d).add(a),d)}function gD(e,t){return t==="string"?$c(e):Vm([e],t)}function yD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Vm(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=Js(e)),H().getBool("DEBUG")&&qI(e,t),yD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Yp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Yp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{vD(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function vD(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function kD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!fs(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var pk=20,Ep=3,hb=7;function SD(e,t,n,a){let r=Fl(t),s=TD(e,t,n,r),i=t.length,o=bh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` +`));var Z=c.print||q,J=c.printErr||K;Object.assign(c,g),g=null,c.arguments&&(y=c.arguments),c.thisProgram&&(b=c.thisProgram),c.quit&&(x=c.quit);var ee=4,ae=Atomics.load,te=Atomics.store,ie=Atomics.compareExchange,oe;c.wasmBinary&&(oe=c.wasmBinary);var ye=c.noExitRuntime||!0;typeof WebAssembly!="object"&&tl("no native wasm support detected");var ue,be,ke=!1,Se;function Le(D,j){D||tl(j)}var Ue=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function nt(D,j,re){for(var de=j+re,Ie=j;D[Ie]&&!(Ie>=de);)++Ie;if(Ie-j>16&&D.buffer&&Ue)return Ue.decode(D.buffer instanceof SharedArrayBuffer?D.slice(j,Ie):D.subarray(j,Ie));for(var je="";j>10,56320|ua&1023)}}return je}function it(D,j){return D?nt(i(),D,j):""}function tt(D,j,re,de){if(!(de>0))return 0;for(var Ie=re,je=re+de-1,Ce=0;Ce=55296&&Re<=57343){var Ot=D.charCodeAt(++Ce);Re=65536+((Re&1023)<<10)|Ot&1023}if(Re<=127){if(re>=je)break;j[re++]=Re}else if(Re<=2047){if(re+1>=je)break;j[re++]=192|Re>>6,j[re++]=128|Re&63}else if(Re<=65535){if(re+2>=je)break;j[re++]=224|Re>>12,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}else{if(re+3>=je)break;j[re++]=240|Re>>18,j[re++]=128|Re>>12&63,j[re++]=128|Re>>6&63,j[re++]=128|Re&63}}return j[re]=0,re-Ie}function at(D,j,re){return tt(D,i(),j,re)}var ze,dt,jn,Mt,ia,ln,Fn,oa,Dn;C&&(ze=c.buffer);function ot(D){ze=D,c.HEAP8=dt=new Int8Array(D),c.HEAP16=Mt=new Int16Array(D),c.HEAP32=ln=new Int32Array(D),c.HEAPU8=jn=new Uint8Array(D),c.HEAPU16=ia=new Uint16Array(D),c.HEAPU32=Fn=new Uint32Array(D),c.HEAPF32=oa=new Float32Array(D),c.HEAPF64=Dn=new Float64Array(D)}var Rn=c.INITIAL_MEMORY||16777216;if(C)ue=c.wasmMemory,ze=c.buffer;else if(c.wasmMemory)ue=c.wasmMemory;else if(ue=new WebAssembly.Memory({initial:Rn/65536,maximum:32768,shared:!0}),!(ue.buffer instanceof SharedArrayBuffer))throw J("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),T&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");ue&&(ze=ue.buffer),Rn=ze.byteLength,ot(ze);var qn,wr=[],Jo=[],tr=[],wp=!1;function Sa(){return ye}function Qo(){if(c.preRun)for(typeof c.preRun=="function"&&(c.preRun=[c.preRun]);c.preRun.length;)Cg(c.preRun.shift());Tp(wr)}function Zt(){wp=!0,!C&&Tp(Jo)}function Dd(){if(!C){if(c.postRun)for(typeof c.postRun=="function"&&(c.postRun=[c.postRun]);c.postRun.length;)q1(c.postRun.shift());Tp(tr)}}function Cg(D){wr.unshift(D)}function Eg(D){Jo.unshift(D)}function q1(D){tr.unshift(D)}var Kr=0,el=null,kr=null;function K1(D){Kr++,c.monitorRunDependencies&&c.monitorRunDependencies(Kr)}function X1(D){if(Kr--,c.monitorRunDependencies&&c.monitorRunDependencies(Kr),Kr==0&&(el!==null&&(clearInterval(el),el=null),kr)){var j=kr;kr=null,j()}}function tl(D){C?postMessage({cmd:"onAbort",arg:D}):c.onAbort&&c.onAbort(D),D="Aborted("+D+")",J(D),ke=!0,Se=1,D+=". Build with -sASSERTIONS for more info.";var j=new WebAssembly.RuntimeError(D);throw m(j),j}var _g="data:application/octet-stream;base64,";function Rd(D){return D.startsWith(_g)}function kp(D){return D.startsWith("file://")}var xn;xn="tfjs-backend-wasm-threaded-simd.wasm",Rd(xn)||(xn=$(xn));function Md(D){try{if(D==xn&&oe)return new Uint8Array(oe);if(S)return S(D);throw"both async and sync fetching of the wasm failed"}catch(j){tl(j)}}function Ag(){if(!oe&&(w||I)){if(typeof fetch=="function"&&!kp(xn))return fetch(xn,{credentials:"same-origin"}).then(function(D){if(!D.ok)throw"failed to load wasm binary file at '"+xn+"'";return D.arrayBuffer()}).catch(function(){return Md(xn)});if(F)return new Promise(function(D,j){F(xn,function(re){D(new Uint8Array(re))},j)})}return Promise.resolve().then(function(){return Md(xn)})}function $g(){var D={env:qd,wasi_snapshot_preview1:qd};function j(Ce,Re){var Ot=Ce.exports;if(c.asm=Ot,Bg(c.asm._emscripten_tls_init),qn=c.asm.__indirect_function_table,Eg(c.asm.__wasm_call_ctors),be=Re,!C){var ua=$e.unusedWorkers.length;$e.unusedWorkers.forEach(function(Sr){$e.loadWasmModuleToWorker(Sr,function(){--ua||X1("wasm-instantiate")})})}}C||K1("wasm-instantiate");function re(Ce){j(Ce.instance,Ce.module)}function de(Ce){return Ag().then(function(Re){return WebAssembly.instantiate(Re,D)}).then(function(Re){return Re}).then(Ce,function(Re){J("failed to asynchronously prepare wasm: "+Re),tl(Re)})}function Ie(){return!oe&&typeof WebAssembly.instantiateStreaming=="function"&&!Rd(xn)&&!kp(xn)&&!T&&typeof fetch=="function"?fetch(xn,{credentials:"same-origin"}).then(function(Ce){var Re=WebAssembly.instantiateStreaming(Ce,D);return Re.then(re,function(Ot){return J("wasm streaming compile failed: "+Ot),J("falling back to ArrayBuffer instantiation"),de(re)})}):de(re)}if(c.instantiateWasm)try{var je=c.instantiateWasm(D,j);return je}catch(Ce){J("Module.instantiateWasm callback failed with error: "+Ce),m(Ce)}return Ie().catch(m),{}}var Fg,Y1,Dg={};function zs(D){this.name="ExitStatus",this.message="Program terminated with exit("+D+")",this.status=D}function Rg(D){var j=$e.pthreads[D];delete $e.pthreads[D],j.terminate(),cb(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(j),1),j.pthread_ptr=0}function Mg(D){var j=$e.pthreads[D];j.postMessage({cmd:"cancel"})}function Ip(D){var j=$e.pthreads[D];Le(j),$e.returnWorkerToPool(j)}function Pd(D){var j=$e.getNewWorker();if(!j)return 6;$e.runningWorkers.push(j),$e.pthreads[D.pthread_ptr]=j,j.pthread_ptr=D.pthread_ptr;var re={cmd:"run",start_routine:D.startRoutine,arg:D.arg,pthread_ptr:D.pthread_ptr};return j.runPthread=()=>{re.time=performance.now(),j.postMessage(re,D.transferList)},j.loaded&&(j.runPthread(),delete j.runPthread),0}var Od={varargs:void 0,get:function(){Od.varargs+=4;var D=l()[Od.varargs-4>>2];return D},getStr:function(D){var j=it(D);return j}};function Sp(D){if(C)return Xr(1,1,D);Se=D,Sa()||($e.terminateAllThreads(),c.onExit&&c.onExit(D),ke=!0),x(D,new zs(D))}function Z1(D,j){if(Se=D,!j&&C)throw zd(D),"unwind";Sp(D)}var Ld=Z1;function Pg(D){if(D instanceof zs||D=="unwind")return Se;x(1,D)}var $e={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?$e.initWorker():$e.initMainThread()},initMainThread:function(){for(var D=8;D--;)$e.allocateUnusedWorker()},initWorker:function(){ye=!1},setExitStatus:function(D){Se=D},terminateAllThreads:function(){for(var D of Object.values($e.pthreads))$e.returnWorkerToPool(D);for(var D of $e.unusedWorkers)D.terminate();$e.unusedWorkers=[]},returnWorkerToPool:function(D){var j=D.pthread_ptr;delete $e.pthreads[j],$e.unusedWorkers.push(D),$e.runningWorkers.splice($e.runningWorkers.indexOf(D),1),D.pthread_ptr=0,cb(j)},receiveObjectTransfer:function(D){},threadInitTLS:function(){$e.tlsInitFunctions.forEach(D=>D())},loadWasmModuleToWorker:function(D,j){D.onmessage=re=>{var de=re.data,Ie=de.cmd;if(D.pthread_ptr&&($e.currentProxiedOperationCallerThread=D.pthread_ptr),de.targetThread&&de.targetThread!=Qd()){var je=$e.pthreads[de.targetThread];je?je.postMessage(de,de.transferList):J('Internal error! Worker sent a message "'+Ie+'" to target pthread '+de.targetThread+", but that thread no longer exists!"),$e.currentProxiedOperationCallerThread=void 0;return}Ie==="processProxyingQueue"?Np(de.queue):Ie==="spawnThread"?Pd(de):Ie==="cleanupThread"?Ip(de.thread):Ie==="killThread"?Rg(de.thread):Ie==="cancelThread"?Mg(de.thread):Ie==="loaded"?(D.loaded=!0,j&&j(D),D.runPthread&&(D.runPthread(),delete D.runPthread)):Ie==="print"?Z("Thread "+de.threadId+": "+de.text):Ie==="printErr"?J("Thread "+de.threadId+": "+de.text):Ie==="alert"?alert("Thread "+de.threadId+": "+de.text):de.target==="setimmediate"?D.postMessage(de):Ie==="onAbort"?c.onAbort&&c.onAbort(de.arg):Ie&&J("worker sent an unknown command "+Ie),$e.currentProxiedOperationCallerThread=void 0},D.onerror=re=>{var de="worker sent an error!";throw J(de+" "+re.filename+":"+re.lineno+": "+re.message),re},T&&(D.on("message",function(re){D.onmessage({data:re})}),D.on("error",function(re){D.onerror(re)}),D.on("detachedExit",function(){})),D.postMessage({cmd:"load",urlOrBlob:c.mainScriptUrlOrBlob||a,wasmMemory:ue,wasmModule:be})},allocateUnusedWorker:function(){var D=$("tfjs-backend-wasm-threaded-simd.worker.js");$e.unusedWorkers.push(new Worker(D))},getNewWorker:function(){return $e.unusedWorkers.length==0&&($e.allocateUnusedWorker(),$e.loadWasmModuleToWorker($e.unusedWorkers[0])),$e.unusedWorkers.pop()}};c.PThread=$e;function Tp(D){for(;D.length>0;)D.shift()(c)}function Og(D){var j=db(),re=D();return eh(j),re}function J1(D){return D}function Q1(D){var j=/\b_Z[\w\d_]+/g;return D.replace(j,function(re){var de=re;return re===de?re:de+" ["+re+"]"})}function Lg(){var D=Qd(),j=l()[D+44>>2],re=l()[D+48>>2],de=j-re;ik(j,de),eh(j)}c.establishStackSpace=Lg;function zd(D){if(C)return Xr(2,0,D);try{Ld(D)}catch(j){Pg(j)}}var nl=[];function zg(D){var j=nl[D];return j||(D>=nl.length&&(nl.length=D+1),nl[D]=j=qn.get(D)),j}function Wg(D,j){var re=zg(D)(j);Sa()?$e.setExitStatus(re):sk(re)}c.invokeEntryPoint=Wg;function ek(){var D=new Error;if(!D.stack){try{throw new Error}catch(j){D=j}if(!D.stack)return"(no stack trace available)"}return D.stack.toString()}function Bg(D){$e.tlsInitFunctions.push(D)}function Vg(D,j){s().set(D,j)}function Ug(D){nk(D,!I,1,!w),$e.threadInitTLS()}function Gg(D){C?postMessage({cmd:"cleanupThread",thread:D}):Ip(D)}function Wd(D,j,re,de){return C?Xr(3,1,D,j,re,de):Bd(D,j,re,de)}function Bd(D,j,re,de){if(typeof SharedArrayBuffer=="undefined")return J("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Ie=[],je=0;if(C&&(Ie.length===0||je))return Wd(D,j,re,de);if(je)return je;var Ce={startRoutine:re,pthread_ptr:D,arg:de,transferList:Ie};return C?(Ce.cmd="spawnThread",postMessage(Ce,Ie),0):Pd(Ce)}function Hg(){return 2097152}var jg=!0;function qg(){return jg}function Np(D){Atomics.store(l(),D>>2,1),Qd()&&rk(D),Atomics.compareExchange(l(),D>>2,1,0)}c.executeNotifiedProxyingQueue=Np;function Kg(D,j,re,de){if(D==j)setTimeout(()=>Np(de));else if(C)postMessage({targetThread:D,cmd:"processProxyingQueue",queue:de});else{var Ie=$e.pthreads[D];if(!Ie)return;Ie.postMessage({cmd:"processProxyingQueue",queue:de})}return 1}function Xg(D,j,re){return-1}function Yg(){tl("")}function Ws(D){Ws.shown||(Ws.shown={}),Ws.shown[D]||(Ws.shown[D]=1,T&&(D="warning: "+D),J(D))}function Zg(){T||I||Ws("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function Jg(){return Date.now()}function Vd(){return 2147483648}function Qg(){return Vd()}var al;T?al=()=>{var D=process.hrtime();return D[0]*1e3+D[1]/1e6}:C?al=()=>performance.now()-c.__performance_now_clock_drift:al=()=>performance.now();function ey(D,j,re){i().copyWithin(D,j,j+re)}function ty(){return T?OF().cpus().length:navigator.hardwareConcurrency}function Xr(D,j){var re=arguments.length-2,de=arguments;return Og(()=>{for(var Ie=re,je=th(Ie*8),Ce=je>>3,Re=0;Re>3,Ie=0;Ie>>16),ot(ue.buffer),1}catch(j){}}function ry(D){var j=i().length;if(D=D>>>0,D<=j)return!1;var re=Vd();if(D>re)return!1;let de=(Ot,ua)=>Ot+(ua-Ot%ua)%ua;for(var Ie=1;Ie<=4;Ie*=2){var je=j*(1+.2/Ie);je=Math.min(je,D+100663296);var Ce=Math.min(re,de(Math.max(D,je),65536)),Re=ay(Ce);if(Re)return!0}return!1}function sy(){throw"unwind"}function Ud(D){return C?Xr(4,1,D):52}function Gd(D,j,re,de,Ie){return C?Xr(5,1,D,j,re,de,Ie):70}var iy=[null,[],[]];function oy(D,j){var re=iy[D];j===0||j===10?((D===1?Z:J)(nt(re,0)),re.length=0):re.push(j)}function Hd(D,j,re,de){if(C)return Xr(6,1,D,j,re,de);for(var Ie=0,je=0;je>2],Re=u()[j+4>>2];j+=8;for(var Ot=0;Ot>2]=Ie,0}function jd(D){var j=c["_"+D];return j}function ly(D,j,re,de,Ie){var je={string:pa=>{var ol=0;if(pa!=null&&pa!==0){var uk=(pa.length<<2)+1;ol=th(uk),at(pa,ol,uk)}return ol},array:pa=>{var ol=th(pa.length);return Vg(pa,ol),ol}};function Ce(pa){return j==="string"?it(pa):j==="boolean"?Boolean(pa):pa}var Re=jd(D),Ot=[],ua=0;if(de)for(var Sr=0;SrCe==="number"||Ce==="boolean"),je=j!=="string";return je&&Ie&&!de?jd(D):function(){return ly(D,j,re,arguments,de)}}$e.init();var py=[null,Sp,zd,Wd,Ud,Gd,Hd],qd={__emscripten_init_main_thread_js:Ug,__emscripten_thread_cleanup:Gg,__pthread_create_js:Bd,_emscripten_default_pthread_stack_size:Hg,_emscripten_get_now_is_monotonic:qg,_emscripten_notify_task_queue:Kg,_emscripten_set_offscreencanvas_size:Xg,abort:Yg,emscripten_check_blocking_allowed:Zg,emscripten_date_now:Jg,emscripten_get_heap_max:Qg,emscripten_get_now:al,emscripten_memcpy_big:ey,emscripten_num_logical_cores:ty,emscripten_receive_on_main_thread_js:ny,emscripten_resize_heap:ry,emscripten_unwind_to_js_event_loop:sy,exit:Ld,fd_close:Ud,fd_seek:Gd,fd_write:Hd,memory:ue||c.wasmMemory},tk=$g(),cy=c.___wasm_call_ctors=function(){return(cy=c.___wasm_call_ctors=c.asm.__wasm_call_ctors).apply(null,arguments)},dy=c._init=function(){return(dy=c._init=c.asm.init).apply(null,arguments)},hy=c._init_with_threads_count=function(){return(hy=c._init_with_threads_count=c.asm.init_with_threads_count).apply(null,arguments)},my=c._get_threads_count=function(){return(my=c._get_threads_count=c.asm.get_threads_count).apply(null,arguments)},fy=c._register_tensor=function(){return(fy=c._register_tensor=c.asm.register_tensor).apply(null,arguments)},gy=c._dispose_data=function(){return(gy=c._dispose_data=c.asm.dispose_data).apply(null,arguments)},yy=c._dispose=function(){return(yy=c._dispose=c.asm.dispose).apply(null,arguments)},by=c._Abs=function(){return(by=c._Abs=c.asm.Abs).apply(null,arguments)},xy=c._Add=function(){return(xy=c._Add=c.asm.Add).apply(null,arguments)},vy=c._AddN=function(){return(vy=c._AddN=c.asm.AddN).apply(null,arguments)},wy=c._All=function(){return(wy=c._All=c.asm.All).apply(null,arguments)},ky=c._Any=function(){return(ky=c._Any=c.asm.Any).apply(null,arguments)},Iy=c._ArgMax=function(){return(Iy=c._ArgMax=c.asm.ArgMax).apply(null,arguments)},Sy=c._AvgPool=function(){return(Sy=c._AvgPool=c.asm.AvgPool).apply(null,arguments)},Ty=c._BatchMatMul=function(){return(Ty=c._BatchMatMul=c.asm.BatchMatMul).apply(null,arguments)},Ny=c._Ceil=function(){return(Ny=c._Ceil=c.asm.Ceil).apply(null,arguments)},Cy=c._ClipByValue=function(){return(Cy=c._ClipByValue=c.asm.ClipByValue).apply(null,arguments)},Ey=c._Conv2D=function(){return(Ey=c._Conv2D=c.asm.Conv2D).apply(null,arguments)},_y=c._Conv2DBackpropInput=function(){return(_y=c._Conv2DBackpropInput=c.asm.Conv2DBackpropInput).apply(null,arguments)},Ay=c._Cos=function(){return(Ay=c._Cos=c.asm.Cos).apply(null,arguments)},$y=c._Cosh=function(){return($y=c._Cosh=c.asm.Cosh).apply(null,arguments)},Fy=c._CropAndResize=function(){return(Fy=c._CropAndResize=c.asm.CropAndResize).apply(null,arguments)},Dy=c._Cumprod=function(){return(Dy=c._Cumprod=c.asm.Cumprod).apply(null,arguments)},Ry=c._Cumsum=function(){return(Ry=c._Cumsum=c.asm.Cumsum).apply(null,arguments)},My=c._DepthToSpace=function(){return(My=c._DepthToSpace=c.asm.DepthToSpace).apply(null,arguments)},Py=c._DepthwiseConv2dNative=function(){return(Py=c._DepthwiseConv2dNative=c.asm.DepthwiseConv2dNative).apply(null,arguments)},Oy=c._Elu=function(){return(Oy=c._Elu=c.asm.Elu).apply(null,arguments)},Ly=c._Equal=function(){return(Ly=c._Equal=c.asm.Equal).apply(null,arguments)},zy=c._Exp=function(){return(zy=c._Exp=c.asm.Exp).apply(null,arguments)},Wy=c._FlipLeftRight=function(){return(Wy=c._FlipLeftRight=c.asm.FlipLeftRight).apply(null,arguments)},By=c._Floor=function(){return(By=c._Floor=c.asm.Floor).apply(null,arguments)},Vy=c._FloorDiv=function(){return(Vy=c._FloorDiv=c.asm.FloorDiv).apply(null,arguments)},Uy=c._FusedBatchNorm=function(){return(Uy=c._FusedBatchNorm=c.asm.FusedBatchNorm).apply(null,arguments)},Gy=c._FusedConv2D=function(){return(Gy=c._FusedConv2D=c.asm.FusedConv2D).apply(null,arguments)},Hy=c._FusedDepthwiseConv2D=function(){return(Hy=c._FusedDepthwiseConv2D=c.asm.FusedDepthwiseConv2D).apply(null,arguments)},jy=c._Gather=function(){return(jy=c._Gather=c.asm.Gather).apply(null,arguments)},qy=c._GatherNd=function(){return(qy=c._GatherNd=c.asm.GatherNd).apply(null,arguments)},Ky=c._Greater=function(){return(Ky=c._Greater=c.asm.Greater).apply(null,arguments)},Xy=c._GreaterEqual=function(){return(Xy=c._GreaterEqual=c.asm.GreaterEqual).apply(null,arguments)},Yy=c._IsNan=function(){return(Yy=c._IsNan=c.asm.IsNan).apply(null,arguments)},Zy=c._LeakyRelu=function(){return(Zy=c._LeakyRelu=c.asm.LeakyRelu).apply(null,arguments)},Jy=c._Less=function(){return(Jy=c._Less=c.asm.Less).apply(null,arguments)},Qy=c._LessEqual=function(){return(Qy=c._LessEqual=c.asm.LessEqual).apply(null,arguments)},eb=c._Log=function(){return(eb=c._Log=c.asm.Log).apply(null,arguments)},tb=c._LogicalAnd=function(){return(tb=c._LogicalAnd=c.asm.LogicalAnd).apply(null,arguments)},nb=c._LogicalNot=function(){return(nb=c._LogicalNot=c.asm.LogicalNot).apply(null,arguments)},ab=c._LogicalOr=function(){return(ab=c._LogicalOr=c.asm.LogicalOr).apply(null,arguments)},rb=c._LogicalXor=function(){return(rb=c._LogicalXor=c.asm.LogicalXor).apply(null,arguments)},sb=c._Max=function(){return(sb=c._Max=c.asm.Max).apply(null,arguments)},ib=c._MaxPool=function(){return(ib=c._MaxPool=c.asm.MaxPool).apply(null,arguments)},Kd=c._Maximum=function(){return(Kd=c._Maximum=c.asm.Maximum).apply(null,arguments)},Xd=c._Mean=function(){return(Xd=c._Mean=c.asm.Mean).apply(null,arguments)},Ep=c._Min=function(){return(Ep=c._Min=c.asm.Min).apply(null,arguments)},ob=c._Minimum=function(){return(ob=c._Minimum=c.asm.Minimum).apply(null,arguments)},lb=c._MirrorPad=function(){return(lb=c._MirrorPad=c.asm.MirrorPad).apply(null,arguments)},rl=c._Multiply=function(){return(rl=c._Multiply=c.asm.Multiply).apply(null,arguments)},Yd=c._Neg=function(){return(Yd=c._Neg=c.asm.Neg).apply(null,arguments)},sl=c._NonMaxSuppressionV3=function(){return(sl=c._NonMaxSuppressionV3=c.asm.NonMaxSuppressionV3).apply(null,arguments)},il=c._NonMaxSuppressionV4=function(){return(il=c._NonMaxSuppressionV4=c.asm.NonMaxSuppressionV4).apply(null,arguments)},ub=c._NonMaxSuppressionV5=function(){return(ub=c._NonMaxSuppressionV5=c.asm.NonMaxSuppressionV5).apply(null,arguments)},X=c._NotEqual=function(){return(X=c._NotEqual=c.asm.NotEqual).apply(null,arguments)},se=c._OneHot=function(){return(se=c._OneHot=c.asm.OneHot).apply(null,arguments)},we=c._PadV2=function(){return(we=c._PadV2=c.asm.PadV2).apply(null,arguments)},He=c._Pow=function(){return(He=c._Pow=c.asm.Pow).apply(null,arguments)},wt=c._Prelu=function(){return(wt=c._Prelu=c.asm.Prelu).apply(null,arguments)},kt=c._Prod=function(){return(kt=c._Prod=c.asm.Prod).apply(null,arguments)},Ge=c._RealDiv=function(){return(Ge=c._RealDiv=c.asm.RealDiv).apply(null,arguments)},We=c._Reciprocal=function(){return(We=c._Reciprocal=c.asm.Reciprocal).apply(null,arguments)},Pt=c._Relu=function(){return(Pt=c._Relu=c.asm.Relu).apply(null,arguments)},la=c._Relu6=function(){return(la=c._Relu6=c.asm.Relu6).apply(null,arguments)},Ir=c._ResizeBilinear=function(){return(Ir=c._ResizeBilinear=c.asm.ResizeBilinear).apply(null,arguments)},Zd=c._ResizeNearestNeighbor=function(){return(Zd=c._ResizeNearestNeighbor=c.asm.ResizeNearestNeighbor).apply(null,arguments)},_p=c._Reverse=function(){return(_p=c._Reverse=c.asm.Reverse).apply(null,arguments)},pb=c._RotateWithOffset=function(){return(pb=c._RotateWithOffset=c.asm.RotateWithOffset).apply(null,arguments)},Mn=c._Round=function(){return(Mn=c._Round=c.asm.Round).apply(null,arguments)},Yr=c._Rsqrt=function(){return(Yr=c._Rsqrt=c.asm.Rsqrt).apply(null,arguments)},Jd=c._ScatterNd=function(){return(Jd=c._ScatterNd=c.asm.ScatterNd).apply(null,arguments)},R$=c._SelectV2=function(){return(R$=c._SelectV2=c.asm.SelectV2).apply(null,arguments)},M$=c._Sigmoid=function(){return(M$=c._Sigmoid=c.asm.Sigmoid).apply(null,arguments)},P$=c._Sin=function(){return(P$=c._Sin=c.asm.Sin).apply(null,arguments)},O$=c._Softmax=function(){return(O$=c._Softmax=c.asm.Softmax).apply(null,arguments)},L$=c._SparseFillEmptyRows=function(){return(L$=c._SparseFillEmptyRows=c.asm.SparseFillEmptyRows).apply(null,arguments)},z$=c._SparseReshape=function(){return(z$=c._SparseReshape=c.asm.SparseReshape).apply(null,arguments)},W$=c._SparseSegmentReduction=function(){return(W$=c._SparseSegmentReduction=c.asm.SparseSegmentReduction).apply(null,arguments)},B$=c._Sqrt=function(){return(B$=c._Sqrt=c.asm.Sqrt).apply(null,arguments)},V$=c._Square=function(){return(V$=c._Square=c.asm.Square).apply(null,arguments)},U$=c._SquaredDifference=function(){return(U$=c._SquaredDifference=c.asm.SquaredDifference).apply(null,arguments)},G$=c._Step=function(){return(G$=c._Step=c.asm.Step).apply(null,arguments)},H$=c._StridedSlice=function(){return(H$=c._StridedSlice=c.asm.StridedSlice).apply(null,arguments)},j$=c._Sub=function(){return(j$=c._Sub=c.asm.Sub).apply(null,arguments)},q$=c._Sum=function(){return(q$=c._Sum=c.asm.Sum).apply(null,arguments)},K$=c._Tan=function(){return(K$=c._Tan=c.asm.Tan).apply(null,arguments)},X$=c._Tanh=function(){return(X$=c._Tanh=c.asm.Tanh).apply(null,arguments)},Y$=c._Tile=function(){return(Y$=c._Tile=c.asm.Tile).apply(null,arguments)},Z$=c._TopK=function(){return(Z$=c._TopK=c.asm.TopK).apply(null,arguments)},J$=c._Transform=function(){return(J$=c._Transform=c.asm.Transform).apply(null,arguments)},Q$=c._Transpose=function(){return(Q$=c._Transpose=c.asm.Transpose).apply(null,arguments)},eF=c.__FusedMatMul=function(){return(eF=c.__FusedMatMul=c.asm._FusedMatMul).apply(null,arguments)},tF=c._malloc=function(){return(tF=c._malloc=c.asm.malloc).apply(null,arguments)},nF=c._free=function(){return(nF=c._free=c.asm.free).apply(null,arguments)},aF=c.__emscripten_tls_init=function(){return(aF=c.__emscripten_tls_init=c.asm._emscripten_tls_init).apply(null,arguments)},Qd=c._pthread_self=function(){return(Qd=c._pthread_self=c.asm.pthread_self).apply(null,arguments)},rF=c.___errno_location=function(){return(rF=c.___errno_location=c.asm.__errno_location).apply(null,arguments)},nk=c.__emscripten_thread_init=function(){return(nk=c.__emscripten_thread_init=c.asm._emscripten_thread_init).apply(null,arguments)},sF=c.__emscripten_thread_crashed=function(){return(sF=c.__emscripten_thread_crashed=c.asm._emscripten_thread_crashed).apply(null,arguments)},iF=c._emscripten_main_thread_process_queued_calls=function(){return(iF=c._emscripten_main_thread_process_queued_calls=c.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},oF=c._emscripten_main_browser_thread_id=function(){return(oF=c._emscripten_main_browser_thread_id=c.asm.emscripten_main_browser_thread_id).apply(null,arguments)},ak=c._emscripten_run_in_main_runtime_thread_js=function(){return(ak=c._emscripten_run_in_main_runtime_thread_js=c.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},lF=c._emscripten_dispatch_to_thread_=function(){return(lF=c._emscripten_dispatch_to_thread_=c.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},rk=c.__emscripten_proxy_execute_task_queue=function(){return(rk=c.__emscripten_proxy_execute_task_queue=c.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},cb=c.__emscripten_thread_free_data=function(){return(cb=c.__emscripten_thread_free_data=c.asm._emscripten_thread_free_data).apply(null,arguments)},sk=c.__emscripten_thread_exit=function(){return(sk=c.__emscripten_thread_exit=c.asm._emscripten_thread_exit).apply(null,arguments)},ik=c._emscripten_stack_set_limits=function(){return(ik=c._emscripten_stack_set_limits=c.asm.emscripten_stack_set_limits).apply(null,arguments)},db=c.stackSave=function(){return(db=c.stackSave=c.asm.stackSave).apply(null,arguments)},eh=c.stackRestore=function(){return(eh=c.stackRestore=c.asm.stackRestore).apply(null,arguments)},th=c.stackAlloc=function(){return(th=c.stackAlloc=c.asm.stackAlloc).apply(null,arguments)},uF=c.dynCall_iijjiiii=function(){return(uF=c.dynCall_iijjiiii=c.asm.dynCall_iijjiiii).apply(null,arguments)},pF=c.dynCall_jiji=function(){return(pF=c.dynCall_jiji=c.asm.dynCall_jiji).apply(null,arguments)};c.keepRuntimeAlive=Sa,c.wasmMemory=ue,c.cwrap=uy,c.ExitStatus=zs,c.PThread=$e;var nh;kr=function D(){nh||ok(),nh||(kr=D)};function ok(D){if(D=D||y,Kr>0)return;if(C){h(c),Zt(),postMessage({cmd:"loaded"});return}if(Qo(),Kr>0)return;function j(){nh||(nh=!0,c.calledRun=!0,!ke&&(Zt(),h(c),c.onRuntimeInitialized&&c.onRuntimeInitialized(),Dd()))}c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},1),j()},1)):j()}if(c.preInit)for(typeof c.preInit=="function"&&(c.preInit=[c.preInit]);c.preInit.length>0;)c.preInit.pop()();ok();var ah;f&&(ah={uncaughtException:process.listeners("uncaughtException").filter(function(D){return!f.uncaughtException.indexOf(D)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(D){return!f.unhandledRejection.indexOf(D)>-1})});var rh;if(typeof WasmBackendModule!="undefined")rh=WasmBackendModule;else if(typeof r!="undefined")rh=r;else throw new Error("Could not find wasm module in post.js");if(ah){var cF=rh._dispose;rh._dispose=function(){cF(),ah.uncaughtException.forEach(function(D){process.removeListener("uncaughtException",D)}),ah.unhandledRejection.forEach(function(D){process.removeListener("unhandledRejection",D)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModuleThreadedSimd=n)}),zF=Bt((e,t)=>{t.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`}),WF=Bt((e,t)=>{var n=(()=>{var a=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(a=a||__filename),function(r){r=r||{};var s=typeof r!="undefined"?r:{},i,o;s.ready=new Promise(function(X,se){i=X,o=se});var l;typeof process!="undefined"&&process.listeners&&(l={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var u=Object.assign({},s),p=[],d="./this.program",c=(X,se)=>{throw se},h=typeof window=="object",m=typeof importScripts=="function",f=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",g="";function y(X){return s.locateFile?s.locateFile(X,g):g+X}var b,x,w,I;function T(X){X instanceof el||R("exiting due to exception: "+X)}if(f){m?g=Eh().dirname(g)+"/":g=__dirname+"/";var C,_;typeof GI=="function"&&(C=$x(),_=Eh()),b=(X,se)=>(X=_.normalize(X),C.readFileSync(X,se?void 0:"utf8")),w=X=>{var se=b(X,!0);return se.buffer||(se=new Uint8Array(se)),se},x=(X,se,we)=>{X=_.normalize(X),C.readFile(X,function(He,wt){He?we(He):se(wt.buffer)})},process.argv.length>1&&(d=process.argv[1].replace(/\\/g,"/")),p=process.argv.slice(2),process.on("uncaughtException",function(X){if(!(X instanceof el))throw X}),process.on("unhandledRejection",function(X){throw X}),c=(X,se)=>{if(jn())throw process.exitCode=X,se;T(se),process.exit(X)},s.inspect=function(){return"[Emscripten Module object]"}}else(h||m)&&(m?g=self.location.href:typeof document!="undefined"&&document.currentScript&&(g=document.currentScript.src),a&&(g=a),g.indexOf("blob:")!==0?g=g.substr(0,g.replace(/[?#].*/,"").lastIndexOf("/")+1):g="",b=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.send(null),se.responseText},m&&(w=X=>{var se=new XMLHttpRequest;return se.open("GET",X,!1),se.responseType="arraybuffer",se.send(null),new Uint8Array(se.response)}),x=(X,se,we)=>{var He=new XMLHttpRequest;He.open("GET",X,!0),He.responseType="arraybuffer",He.onload=()=>{if(He.status==200||He.status==0&&He.response){se(He.response);return}we()},He.onerror=we,He.send(null)},I=X=>document.title=X);var $=s.print||console.log.bind(console),R=s.printErr||console.warn.bind(console);Object.assign(s,u),u=null,s.arguments&&(p=s.arguments),s.thisProgram&&(d=s.thisProgram),s.quit&&(c=s.quit);var F=4,S;s.wasmBinary&&(S=s.wasmBinary);var M=s.noExitRuntime||!0;typeof WebAssembly!="object"&&tr("no native wasm support detected");var B,U=!1,G;function q(X,se){X||tr(se)}var K=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Z(X,se,we){for(var He=se+we,wt=se;X[wt]&&!(wt>=He);)++wt;if(wt-se>16&&X.buffer&&K)return K.decode(X.subarray(se,wt));for(var kt="";se>10,56320|la&1023)}}return kt}function J(X,se){return X?Z(oe,X,se):""}function ee(X,se,we,He){if(!(He>0))return 0;for(var wt=we,kt=we+He-1,Ge=0;Ge=55296&&We<=57343){var Pt=X.charCodeAt(++Ge);We=65536+((We&1023)<<10)|Pt&1023}if(We<=127){if(we>=kt)break;se[we++]=We}else if(We<=2047){if(we+1>=kt)break;se[we++]=192|We>>6,se[we++]=128|We&63}else if(We<=65535){if(we+2>=kt)break;se[we++]=224|We>>12,se[we++]=128|We>>6&63,se[we++]=128|We&63}else{if(we+3>=kt)break;se[we++]=240|We>>18,se[we++]=128|We>>12&63,se[we++]=128|We>>6&63,se[we++]=128|We&63}}return se[we]=0,we-wt}function ae(X,se,we){return ee(X,oe,se,we)}var te,ie,oe,ye,ue,be,ke,Se,Le;function Ue(X){te=X,s.HEAP8=ie=new Int8Array(X),s.HEAP16=ye=new Int16Array(X),s.HEAP32=be=new Int32Array(X),s.HEAPU8=oe=new Uint8Array(X),s.HEAPU16=ue=new Uint16Array(X),s.HEAPU32=ke=new Uint32Array(X),s.HEAPF32=Se=new Float32Array(X),s.HEAPF64=Le=new Float64Array(X)}var nt=s.INITIAL_MEMORY||16777216,it,tt=[],at=[],ze=[],dt=!1;function jn(){return M}function Mt(){if(s.preRun)for(typeof s.preRun=="function"&&(s.preRun=[s.preRun]);s.preRun.length;)Fn(s.preRun.shift());kr(tt)}function ia(){dt=!0,kr(at)}function ln(){if(s.postRun)for(typeof s.postRun=="function"&&(s.postRun=[s.postRun]);s.postRun.length;)Dn(s.postRun.shift());kr(ze)}function Fn(X){tt.unshift(X)}function oa(X){at.unshift(X)}function Dn(X){ze.unshift(X)}var ot=0,Rn=null,qn=null;function wr(X){ot++,s.monitorRunDependencies&&s.monitorRunDependencies(ot)}function Jo(X){if(ot--,s.monitorRunDependencies&&s.monitorRunDependencies(ot),ot==0&&(Rn!==null&&(clearInterval(Rn),Rn=null),qn)){var se=qn;qn=null,se()}}function tr(X){s.onAbort&&s.onAbort(X),X="Aborted("+X+")",R(X),U=!0,G=1,X+=". Build with -sASSERTIONS for more info.";var se=new WebAssembly.RuntimeError(X);throw o(se),se}var wp="data:application/octet-stream;base64,";function Sa(X){return X.startsWith(wp)}function Qo(X){return X.startsWith("file://")}var Zt;Zt="tfjs-backend-wasm.wasm",Sa(Zt)||(Zt=y(Zt));function Dd(X){try{if(X==Zt&&S)return new Uint8Array(S);if(w)return w(X);throw"both async and sync fetching of the wasm failed"}catch(se){tr(se)}}function Cg(){if(!S&&(h||m)){if(typeof fetch=="function"&&!Qo(Zt))return fetch(Zt,{credentials:"same-origin"}).then(function(X){if(!X.ok)throw"failed to load wasm binary file at '"+Zt+"'";return X.arrayBuffer()}).catch(function(){return Dd(Zt)});if(x)return new Promise(function(X,se){x(Zt,function(we){X(new Uint8Array(we))},se)})}return Promise.resolve().then(function(){return Dd(Zt)})}function Eg(){var X={env:Sp,wasi_snapshot_preview1:Sp};function se(Ge,We){var Pt=Ge.exports;s.asm=Pt,B=s.asm.memory,Ue(B.buffer),it=s.asm.__indirect_function_table,oa(s.asm.__wasm_call_ctors),Jo("wasm-instantiate")}wr("wasm-instantiate");function we(Ge){se(Ge.instance)}function He(Ge){return Cg().then(function(We){return WebAssembly.instantiate(We,X)}).then(function(We){return We}).then(Ge,function(We){R("failed to asynchronously prepare wasm: "+We),tr(We)})}function wt(){return!S&&typeof WebAssembly.instantiateStreaming=="function"&&!Sa(Zt)&&!Qo(Zt)&&!f&&typeof fetch=="function"?fetch(Zt,{credentials:"same-origin"}).then(function(Ge){var We=WebAssembly.instantiateStreaming(Ge,X);return We.then(we,function(Pt){return R("wasm streaming compile failed: "+Pt),R("falling back to ArrayBuffer instantiation"),He(we)})}):He(we)}if(s.instantiateWasm)try{var kt=s.instantiateWasm(X,se);return kt}catch(Ge){R("Module.instantiateWasm callback failed with error: "+Ge),o(Ge)}return wt().catch(o),{}}var q1,Kr;function el(X){this.name="ExitStatus",this.message="Program terminated with exit("+X+")",this.status=X}function kr(X){for(;X.length>0;)X.shift()(s)}function K1(X){return X}function X1(X){var se=/\b_Z[\w\d_]+/g;return X.replace(se,function(we){var He=we;return we===He?we:He+" ["+we+"]"})}function tl(){var X=new Error;if(!X.stack){try{throw new Error}catch(se){X=se}if(!X.stack)return"(no stack trace available)"}return X.stack.toString()}function _g(X,se){ie.set(X,se)}function Rd(){tr("")}function kp(){return 2147483648}function xn(){return kp()}function Md(X,se,we){oe.copyWithin(X,se,se+we)}function Ag(X){try{return B.grow(X-te.byteLength+65535>>>16),Ue(B.buffer),1}catch(se){}}function $g(X){var se=oe.length;X=X>>>0;var we=kp();if(X>we)return!1;let He=(Pt,la)=>Pt+(la-Pt%la)%la;for(var wt=1;wt<=4;wt*=2){var kt=se*(1+.2/wt);kt=Math.min(kt,X+100663296);var Ge=Math.min(we,He(Math.max(X,kt),65536)),We=Ag(Ge);if(We)return!0}return!1}var Fg={varargs:void 0,get:function(){Fg.varargs+=4;var X=be[Fg.varargs-4>>2];return X},getStr:function(X){var se=J(X);return se}};function Y1(X){return 52}function Dg(X,se,we,He,wt){return 70}var zs=[null,[],[]];function Rg(X,se){var we=zs[X];se===0||se===10?((X===1?$:R)(Z(we,0)),we.length=0):we.push(se)}function Mg(X,se,we,He){for(var wt=0,kt=0;kt>2],We=ke[se+4>>2];se+=8;for(var Pt=0;Pt>2]=wt,0}function Ip(X){var se=s["_"+X];return se}function Pd(X,se,we,He,wt){var kt={string:Mn=>{var Yr=0;if(Mn!=null&&Mn!==0){var Jd=(Mn.length<<2)+1;Yr=Ep(Jd),ae(Mn,Yr,Jd)}return Yr},array:Mn=>{var Yr=Ep(Mn.length);return _g(Mn,Yr),Yr}};function Ge(Mn){return se==="string"?J(Mn):se==="boolean"?Boolean(Mn):Mn}var We=Ip(X),Pt=[],la=0;if(He)for(var Ir=0;IrGe==="number"||Ge==="boolean"),kt=se!=="string";return kt&&wt&&!He?Ip(X):function(){return Pd(X,se,we,arguments,He)}}var Sp={abort:Rd,emscripten_get_heap_max:xn,emscripten_memcpy_big:Md,emscripten_resize_heap:$g,fd_close:Y1,fd_seek:Dg,fd_write:Mg},Z1=Eg(),Ld=s.___wasm_call_ctors=function(){return(Ld=s.___wasm_call_ctors=s.asm.__wasm_call_ctors).apply(null,arguments)},Pg=s._init=function(){return(Pg=s._init=s.asm.init).apply(null,arguments)},$e=s._init_with_threads_count=function(){return($e=s._init_with_threads_count=s.asm.init_with_threads_count).apply(null,arguments)},Tp=s._get_threads_count=function(){return(Tp=s._get_threads_count=s.asm.get_threads_count).apply(null,arguments)},Og=s._register_tensor=function(){return(Og=s._register_tensor=s.asm.register_tensor).apply(null,arguments)},J1=s._dispose_data=function(){return(J1=s._dispose_data=s.asm.dispose_data).apply(null,arguments)},Q1=s._dispose=function(){return(Q1=s._dispose=s.asm.dispose).apply(null,arguments)},Lg=s._Abs=function(){return(Lg=s._Abs=s.asm.Abs).apply(null,arguments)},zd=s._Add=function(){return(zd=s._Add=s.asm.Add).apply(null,arguments)},nl=s._AddN=function(){return(nl=s._AddN=s.asm.AddN).apply(null,arguments)},zg=s._All=function(){return(zg=s._All=s.asm.All).apply(null,arguments)},Wg=s._Any=function(){return(Wg=s._Any=s.asm.Any).apply(null,arguments)},ek=s._ArgMax=function(){return(ek=s._ArgMax=s.asm.ArgMax).apply(null,arguments)},Bg=s._AvgPool=function(){return(Bg=s._AvgPool=s.asm.AvgPool).apply(null,arguments)},Vg=s._BatchMatMul=function(){return(Vg=s._BatchMatMul=s.asm.BatchMatMul).apply(null,arguments)},Ug=s._Ceil=function(){return(Ug=s._Ceil=s.asm.Ceil).apply(null,arguments)},Gg=s._ClipByValue=function(){return(Gg=s._ClipByValue=s.asm.ClipByValue).apply(null,arguments)},Wd=s._Conv2D=function(){return(Wd=s._Conv2D=s.asm.Conv2D).apply(null,arguments)},Bd=s._Conv2DBackpropInput=function(){return(Bd=s._Conv2DBackpropInput=s.asm.Conv2DBackpropInput).apply(null,arguments)},Hg=s._Cos=function(){return(Hg=s._Cos=s.asm.Cos).apply(null,arguments)},jg=s._Cosh=function(){return(jg=s._Cosh=s.asm.Cosh).apply(null,arguments)},qg=s._CropAndResize=function(){return(qg=s._CropAndResize=s.asm.CropAndResize).apply(null,arguments)},Np=s._Cumprod=function(){return(Np=s._Cumprod=s.asm.Cumprod).apply(null,arguments)},Kg=s._Cumsum=function(){return(Kg=s._Cumsum=s.asm.Cumsum).apply(null,arguments)},Xg=s._DepthToSpace=function(){return(Xg=s._DepthToSpace=s.asm.DepthToSpace).apply(null,arguments)},Yg=s._DepthwiseConv2dNative=function(){return(Yg=s._DepthwiseConv2dNative=s.asm.DepthwiseConv2dNative).apply(null,arguments)},Ws=s._Elu=function(){return(Ws=s._Elu=s.asm.Elu).apply(null,arguments)},Zg=s._Equal=function(){return(Zg=s._Equal=s.asm.Equal).apply(null,arguments)},Jg=s._Exp=function(){return(Jg=s._Exp=s.asm.Exp).apply(null,arguments)},Vd=s._FlipLeftRight=function(){return(Vd=s._FlipLeftRight=s.asm.FlipLeftRight).apply(null,arguments)},Qg=s._Floor=function(){return(Qg=s._Floor=s.asm.Floor).apply(null,arguments)},al=s._FloorDiv=function(){return(al=s._FloorDiv=s.asm.FloorDiv).apply(null,arguments)},ey=s._FusedBatchNorm=function(){return(ey=s._FusedBatchNorm=s.asm.FusedBatchNorm).apply(null,arguments)},ty=s._FusedConv2D=function(){return(ty=s._FusedConv2D=s.asm.FusedConv2D).apply(null,arguments)},Xr=s._FusedDepthwiseConv2D=function(){return(Xr=s._FusedDepthwiseConv2D=s.asm.FusedDepthwiseConv2D).apply(null,arguments)},Cp=s._Gather=function(){return(Cp=s._Gather=s.asm.Gather).apply(null,arguments)},ny=s._GatherNd=function(){return(ny=s._GatherNd=s.asm.GatherNd).apply(null,arguments)},ay=s._Greater=function(){return(ay=s._Greater=s.asm.Greater).apply(null,arguments)},ry=s._GreaterEqual=function(){return(ry=s._GreaterEqual=s.asm.GreaterEqual).apply(null,arguments)},sy=s._IsNan=function(){return(sy=s._IsNan=s.asm.IsNan).apply(null,arguments)},Ud=s._LeakyRelu=function(){return(Ud=s._LeakyRelu=s.asm.LeakyRelu).apply(null,arguments)},Gd=s._Less=function(){return(Gd=s._Less=s.asm.Less).apply(null,arguments)},iy=s._LessEqual=function(){return(iy=s._LessEqual=s.asm.LessEqual).apply(null,arguments)},oy=s._Log=function(){return(oy=s._Log=s.asm.Log).apply(null,arguments)},Hd=s._LogicalAnd=function(){return(Hd=s._LogicalAnd=s.asm.LogicalAnd).apply(null,arguments)},jd=s._LogicalNot=function(){return(jd=s._LogicalNot=s.asm.LogicalNot).apply(null,arguments)},ly=s._LogicalOr=function(){return(ly=s._LogicalOr=s.asm.LogicalOr).apply(null,arguments)},uy=s._LogicalXor=function(){return(uy=s._LogicalXor=s.asm.LogicalXor).apply(null,arguments)},py=s._Max=function(){return(py=s._Max=s.asm.Max).apply(null,arguments)},qd=s._MaxPool=function(){return(qd=s._MaxPool=s.asm.MaxPool).apply(null,arguments)},tk=s._Maximum=function(){return(tk=s._Maximum=s.asm.Maximum).apply(null,arguments)},cy=s._Mean=function(){return(cy=s._Mean=s.asm.Mean).apply(null,arguments)},dy=s._Min=function(){return(dy=s._Min=s.asm.Min).apply(null,arguments)},hy=s._Minimum=function(){return(hy=s._Minimum=s.asm.Minimum).apply(null,arguments)},my=s._MirrorPad=function(){return(my=s._MirrorPad=s.asm.MirrorPad).apply(null,arguments)},fy=s._Multiply=function(){return(fy=s._Multiply=s.asm.Multiply).apply(null,arguments)},gy=s._Neg=function(){return(gy=s._Neg=s.asm.Neg).apply(null,arguments)},yy=s._NonMaxSuppressionV3=function(){return(yy=s._NonMaxSuppressionV3=s.asm.NonMaxSuppressionV3).apply(null,arguments)},by=s._NonMaxSuppressionV4=function(){return(by=s._NonMaxSuppressionV4=s.asm.NonMaxSuppressionV4).apply(null,arguments)},xy=s._NonMaxSuppressionV5=function(){return(xy=s._NonMaxSuppressionV5=s.asm.NonMaxSuppressionV5).apply(null,arguments)},vy=s._NotEqual=function(){return(vy=s._NotEqual=s.asm.NotEqual).apply(null,arguments)},wy=s._OneHot=function(){return(wy=s._OneHot=s.asm.OneHot).apply(null,arguments)},ky=s._PadV2=function(){return(ky=s._PadV2=s.asm.PadV2).apply(null,arguments)},Iy=s._Pow=function(){return(Iy=s._Pow=s.asm.Pow).apply(null,arguments)},Sy=s._Prelu=function(){return(Sy=s._Prelu=s.asm.Prelu).apply(null,arguments)},Ty=s._Prod=function(){return(Ty=s._Prod=s.asm.Prod).apply(null,arguments)},Ny=s._RealDiv=function(){return(Ny=s._RealDiv=s.asm.RealDiv).apply(null,arguments)},Cy=s._Reciprocal=function(){return(Cy=s._Reciprocal=s.asm.Reciprocal).apply(null,arguments)},Ey=s._Relu=function(){return(Ey=s._Relu=s.asm.Relu).apply(null,arguments)},_y=s._Relu6=function(){return(_y=s._Relu6=s.asm.Relu6).apply(null,arguments)},Ay=s._ResizeBilinear=function(){return(Ay=s._ResizeBilinear=s.asm.ResizeBilinear).apply(null,arguments)},$y=s._ResizeNearestNeighbor=function(){return($y=s._ResizeNearestNeighbor=s.asm.ResizeNearestNeighbor).apply(null,arguments)},Fy=s._Reverse=function(){return(Fy=s._Reverse=s.asm.Reverse).apply(null,arguments)},Dy=s._RotateWithOffset=function(){return(Dy=s._RotateWithOffset=s.asm.RotateWithOffset).apply(null,arguments)},Ry=s._Round=function(){return(Ry=s._Round=s.asm.Round).apply(null,arguments)},My=s._Rsqrt=function(){return(My=s._Rsqrt=s.asm.Rsqrt).apply(null,arguments)},Py=s._ScatterNd=function(){return(Py=s._ScatterNd=s.asm.ScatterNd).apply(null,arguments)},Oy=s._SelectV2=function(){return(Oy=s._SelectV2=s.asm.SelectV2).apply(null,arguments)},Ly=s._Sigmoid=function(){return(Ly=s._Sigmoid=s.asm.Sigmoid).apply(null,arguments)},zy=s._Sin=function(){return(zy=s._Sin=s.asm.Sin).apply(null,arguments)},Wy=s._Softmax=function(){return(Wy=s._Softmax=s.asm.Softmax).apply(null,arguments)},By=s._SparseFillEmptyRows=function(){return(By=s._SparseFillEmptyRows=s.asm.SparseFillEmptyRows).apply(null,arguments)},Vy=s._SparseReshape=function(){return(Vy=s._SparseReshape=s.asm.SparseReshape).apply(null,arguments)},Uy=s._SparseSegmentReduction=function(){return(Uy=s._SparseSegmentReduction=s.asm.SparseSegmentReduction).apply(null,arguments)},Gy=s._Sqrt=function(){return(Gy=s._Sqrt=s.asm.Sqrt).apply(null,arguments)},Hy=s._Square=function(){return(Hy=s._Square=s.asm.Square).apply(null,arguments)},jy=s._SquaredDifference=function(){return(jy=s._SquaredDifference=s.asm.SquaredDifference).apply(null,arguments)},qy=s._Step=function(){return(qy=s._Step=s.asm.Step).apply(null,arguments)},Ky=s._StridedSlice=function(){return(Ky=s._StridedSlice=s.asm.StridedSlice).apply(null,arguments)},Xy=s._Sub=function(){return(Xy=s._Sub=s.asm.Sub).apply(null,arguments)},Yy=s._Sum=function(){return(Yy=s._Sum=s.asm.Sum).apply(null,arguments)},Zy=s._Tan=function(){return(Zy=s._Tan=s.asm.Tan).apply(null,arguments)},Jy=s._Tanh=function(){return(Jy=s._Tanh=s.asm.Tanh).apply(null,arguments)},Qy=s._Tile=function(){return(Qy=s._Tile=s.asm.Tile).apply(null,arguments)},eb=s._TopK=function(){return(eb=s._TopK=s.asm.TopK).apply(null,arguments)},tb=s._Transform=function(){return(tb=s._Transform=s.asm.Transform).apply(null,arguments)},nb=s._Transpose=function(){return(nb=s._Transpose=s.asm.Transpose).apply(null,arguments)},ab=s.__FusedMatMul=function(){return(ab=s.__FusedMatMul=s.asm._FusedMatMul).apply(null,arguments)},rb=s._malloc=function(){return(rb=s._malloc=s.asm.malloc).apply(null,arguments)},sb=s._free=function(){return(sb=s._free=s.asm.free).apply(null,arguments)},ib=s.___errno_location=function(){return(ib=s.___errno_location=s.asm.__errno_location).apply(null,arguments)},Kd=s.stackSave=function(){return(Kd=s.stackSave=s.asm.stackSave).apply(null,arguments)},Xd=s.stackRestore=function(){return(Xd=s.stackRestore=s.asm.stackRestore).apply(null,arguments)},Ep=s.stackAlloc=function(){return(Ep=s.stackAlloc=s.asm.stackAlloc).apply(null,arguments)},ob=s.dynCall_iijjiiii=function(){return(ob=s.dynCall_iijjiiii=s.asm.dynCall_iijjiiii).apply(null,arguments)},lb=s.dynCall_jiji=function(){return(lb=s.dynCall_jiji=s.asm.dynCall_jiji).apply(null,arguments)};s.cwrap=Od;var rl;qn=function X(){rl||Yd(),rl||(qn=X)};function Yd(X){if(X=X||p,ot>0||(Mt(),ot>0))return;function se(){rl||(rl=!0,s.calledRun=!0,!U&&(ia(),i(s),s.onRuntimeInitialized&&s.onRuntimeInitialized(),ln()))}s.setStatus?(s.setStatus("Running..."),setTimeout(function(){setTimeout(function(){s.setStatus("")},1),se()},1)):se()}if(s.preInit)for(typeof s.preInit=="function"&&(s.preInit=[s.preInit]);s.preInit.length>0;)s.preInit.pop()();Yd();var sl;l&&(sl={uncaughtException:process.listeners("uncaughtException").filter(function(X){return!l.uncaughtException.indexOf(X)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(X){return!l.unhandledRejection.indexOf(X)>-1})});var il;if(typeof r!="undefined")il=r;else if(typeof WasmBackendModuleThreadedSimd!="undefined")il=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(sl){var ub=il._dispose;il._dispose=function(){ub(),sl.uncaughtException.forEach(function(X){process.removeListener("uncaughtException",X)}),sl.unhandledRejection.forEach(function(X){process.removeListener("unhandledRejection",X)})}}return r.ready}})();typeof e=="object"&&typeof t=="object"?t.exports=n:typeof define=="function"&&define.amd?define([],function(){return n}):typeof e=="object"&&(e.WasmBackendModule=n)}),lm=class{constructor(e,t){this.backend=e,this.dataMover=t,this.data=new WeakMap,this.dataIdsCount=0}get(e){return this.data.has(e)||this.dataMover.moveData(this.backend,e),this.data.get(e)}set(e,t){this.dataIdsCount++,this.data.set(e,t)}has(e){return this.data.has(e)}delete(e){return this.dataIdsCount--,this.data.delete(e)}numDataIds(){return this.dataIdsCount}},cc=class{refCount(e){return Kn("refCount")}incRef(e){return Kn("incRef")}timerAvailable(){return!0}time(e){return Kn("time")}read(e){return Kn("read")}readSync(e){return Kn("readSync")}readToGPU(e,t){return Kn("readToGPU")}numDataIds(){return Kn("numDataIds")}disposeData(e,t){return Kn("disposeData")}write(e,t,n){return Kn("write")}move(e,t,n,a,r){return Kn("move")}createTensorFromTexture(e,t,n){return Kn("createTensorFromTexture")}memory(){return Kn("memory")}floatPrecision(){return Kn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Kn("dispose")}};function Kn(e){throw new Error(`'${e}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function jI(e){let t=e.length,n=0;for(;t>0;)n=Math.random()*t|0,t--,_h(e,t,n)}function BF(e,t){if(e.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${e.length}Second array length was ${t.length}`);let n=e.length,a=0;for(;n>0;)a=Math.random()*n|0,n--,_h(e,n,a),_h(t,n,a)}function Xp(e,t,n){return Math.max(e,Math.min(t,n))}function VF(e){return e%2===0?e:e+1}function _h(e,t,n){let a=e[t];e[t]=e[n],e[n]=a}function UF(e){let t=0;for(let n=0;nn+` Shapes ${e} and ${t} must match`)}function bi(e){A(e!=null,()=>"The input to the tensor constructor must be a non-null value.")}function ti(e,t=[],n=!1){if(t==null&&(t=[]),Array.isArray(e)||hn(e)&&!n)for(let a=0;a0,n,a){return new Promise((r,s)=>{let i=0,o=()=>{if(e()){r();return}i++;let l=t(i);if(n!=null&&i>=n){s();return}a!=null?a(o,l):setTimeout(o,l)};o()})}function ZF(e,t){let n=1,a=-1;for(let s=0;s=0)n*=e[s];else if(e[s]===-1){if(a!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${a} and dim ${s}`);a=s}else if(e[s]<0)throw Error(`Shapes can not be < 0. Found ${e[s]} at dim ${s}`);if(a===-1){if(t>0&&t!==n)throw Error(`Size(${t}) must match the product of shape ${e}`);return e}if(n===0)throw Error(`Cannot infer the missing size in [${e}] when there are 0 elements`);if(t%n!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${n}`);let r=e.slice();return r[a]=t/n,r}function Ra(e,t){let n=t.length;return e=e==null?t.map((a,r)=>r):[].concat(e),A(e.every(a=>a>=-n&&a`All values in axis param must be in range [-${n}, ${n}) but got axis ${e}`),A(e.every(a=>yl(a)),()=>`All values in axis param must be integers but got axis ${e}`),e.map(a=>a<0?n+a:a)}function qI(e,t){let n=[],a=[],r=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||r?null:Ra(t,e).sort(),i=0;for(let o=0;oo)&&e[o]===1&&(n.push(e[o]),a.push(o)),s[i]<=o&&i++}e[o]!==1&&(n.push(e[o]),a.push(o))}return{newShape:n,keptDims:a}}function KI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else throw new Error(`Unknown data type ${e}`);return n}function XI(e,t){let n=null;if(e==null||e==="float32")n=new Float32Array(t);else if(e==="int32")n=new Int32Array(t);else if(e==="bool")n=new Uint8Array(t);else if(e==="string")n=new Array(t);else throw new Error(`Unknown data type ${e}`);return n}function YI(e,t){for(let n=0;nt+=n.length),t}function ns(e){return typeof e=="string"||e instanceof String}function QI(e){return typeof e=="boolean"}function eS(e){return typeof e=="number"}function um(e){return Array.isArray(e)?um(e[0]):e instanceof Float32Array?"float32":e instanceof Int32Array||e instanceof Uint8Array||e instanceof Uint8ClampedArray?"int32":eS(e)?"float32":ns(e)?"string":QI(e)?"bool":"float32"}function us(e){return!!(e&&e.constructor&&e.call&&e.apply)}function Ah(e,t){for(let n=t;n=0;--a)n[a]=n[a+1]*e[a+1];return n}function tS(e,t,n,a=!1){let r=new Array;if(t.length===1){let s=t[0]*(a?2:1);for(let i=0;il*u)*(a?2:1);for(let l=0;lr*s)*(n?2:1);if(a===0)return[];if(a!==t.length)throw new Error(`[${e}] does not match the input size ${t.length}${n?" for a complex tensor":""}.`);return tS(0,e,t,n)}function Fx(e,t){let n=pm(e,t);for(let a=0;aa*r,1);if(t==null||t==="float32")return hl(e,new Float32Array(n));if(t==="int32")return hl(e,new Int32Array(n));if(t==="bool")return hl(e,new Uint8Array(n));throw new Error(`Unknown data type ${t}`)}function aa(e){e.forEach(t=>{A(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${e}].`)})}function eD(e,t,n){if(t===0)return 0;if(t===1)return e[0];let a=e[e.length-1];for(let r=0;r{let[n,a]=t.split(":");this.urlFlags[n]=rD(n,a)})}};function nD(e){let t={};return e.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(n,...a)=>(aD(t,a[0],a[1]),a.join("="))),t}function aD(e,t,n){e[decodeURIComponent(t)]=decodeURIComponent(n||"")}function rD(e,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${e}.`)}function H(){return Rx}var Rx=null;function sD(e){Rx=e}var fb;function aS(){if(fb==null){let e;if(typeof window!="undefined")e=window;else if(typeof global!="undefined")e=global;else if(typeof process!="undefined")e=process;else if(typeof self!="undefined")e=self;else throw new Error("Could not find a global object");fb=e}return fb}function iD(){let e=aS();return e._tfGlobals==null&&(e._tfGlobals=new Map),e._tfGlobals}function Mx(e,t){let n=iD();if(n.has(e))return n.get(e);{let a=t();return n.set(e,a),n.get(e)}}var Pl="Abs",Ol="Acos",Ll="Acosh",vs="Add",xi="AddN",zl="All",Wl="Any",vi="ArgMax",dc="ArgMin",Bl="Asin",Vl="Asinh",Ul="Atan",Gl="Atanh",Hl="Atan2",wi="AvgPool",cm="AvgPoolGrad",hc="AvgPool3D",dm="AvgPool3DGrad",ki="BatchMatMul",jl="BatchToSpaceND",hm="Bincount",rS="BroadcastTo",mm="BroadcastArgs",Ii="Cast",Si="Ceil",ws="ClipByValue",fm="Complex",mc="ComplexAbs",ql="Concat",Ti="Conv2D",gm="Conv2DBackpropFilter",Ni="Conv2DBackpropInput",fc="Conv3D",ym="Conv3DBackpropFilterV2",bm="Conv3DBackpropInputV2",Ci="Cos",Ei="Cosh",Kl="Cumprod",_i="Cumsum",Xl="CropAndResize",xm="DenseBincount",Yl="DepthToSpace",Ai="DepthwiseConv2dNative",vm="DepthwiseConv2dNativeBackpropFilter",wm="DepthwiseConv2dNativeBackpropInput",km="Diag",gc="Dilation2D",$h="Dilation2DBackpropInput",Fh="Dilation2DBackpropFilter",$i="RealDiv",Im="Einsum",Fi="Elu",Sm="EluGrad",Zl="Erf",Jl="Equal",Di="Exp",Ql="ExpandDims",eu="Expm1",Tm="FFT",yc="Fill",tu="FlipLeftRight",Ri="Floor",Mi="FloorDiv",Pi="FusedBatchNorm",nu="GatherV2",au="GatherNd",ru="Greater",Oi="GreaterEqual",Li="Identity",Nm="IFFT",Cm="Imag",su="IsFinite",iu="IsInf",zi="IsNan",Wi="LeakyRelu",ou="Less",lu="LessEqual",Em="LinSpace",Bi="Log",uu="Log1p",pu="LogicalAnd",cu="LogicalNot",du="LogicalOr",sS="LogicalXor",iS="LogSoftmax",oD="LowerBound",bc="LRN",_m="LRNGrad",Vi="Max",Ui="Maximum",Gi="MaxPool",Am="MaxPoolGrad",xc="MaxPool3D",$m="MaxPool3DGrad",Fm="MaxPoolWithArgmax",Hi="Mean",ji="Min",qi="Minimum",Ki="MirrorPad",hu="Mod",Dm="Multinomial",Xi="Multiply",mu="Neg",fu="NotEqual",gu="NonMaxSuppressionV3",yu="NonMaxSuppressionV4",bu="NonMaxSuppressionV5",xu="OnesLike",Yi="OneHot",vu="Pack",Zi="PadV2",lD="Pool",Ji="Pow",Qi="Prelu",eo="Prod",Rm="RaggedGather",Mm="RaggedRange",Pm="RaggedTensorToTensor",vc="Range",Om="Real",to="Reciprocal",no="Relu",wu="Reshape",ao="ResizeNearestNeighbor",Lm="ResizeNearestNeighborGrad",ro="ResizeBilinear",zm="ResizeBilinearGrad",so="Relu6",io="Reverse",oo="Round",lo="Rsqrt",ku="ScatterNd",Wm="SearchSorted",Iu="Select",Su="Selu",Tu="Slice",uo="Sin",Nu="Sinh",Cu="Sign",po="Sigmoid",Eu="Softplus",co="Sqrt",ho="Sum",_u="SpaceToBatchND",Au="SplitV",mo="Softmax",wc="SparseFillEmptyRows",$u="SparseReshape",kc="SparseSegmentMean",Ic="SparseSegmentSum",Bm="SparseToDense",fo="SquaredDifference",Sc="Square",Fu="StridedSlice",Tc="StringNGrams",Nc="StringSplit",Cc="StringToHashBucketFast",go="Sub",yo="Tan",bo="Tanh",ks="Tile",Du="TopK",Ru="Transform",Ar="Transpose",Vm="Unique",Mu="Unpack",Ec="UnsortedSegmentSum",uD="UpperBound",Pu="ZerosLike",Is="Step",Dh="FromPixels",Ou="RotateWithOffset",ni="_FusedMatMul",ai="FusedConv2D",ri="FusedDepthwiseConv2D";function ts(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.warn(...e)}function pD(...e){H().getBool("IS_TEST")||H().getBool("PROD")||console.log(...e)}var bl=Mx("kernelRegistry",()=>new Map),Yp=Mx("gradRegistry",()=>new Map);function Rh(e,t){let n=Px(e,t);return bl.get(n)}function Fb(e){return Yp.get(e)}function Mh(e){let t=bl.entries(),n=[];for(;;){let{done:a,value:r}=t.next();if(a)break;let[s,i]=r,[o]=s.split("_");o===e&&n.push(i)}return n}function _c(e){let{kernelName:t,backendName:n}=e,a=Px(t,n);bl.has(a)&&ts(`The kernel '${t}' for backend '${n}' is already registered`),bl.set(a,e)}function oS(e){let{kernelName:t}=e;Yp.has(t)&&H().getBool("DEBUG")&&ts(`Overriding the gradient for '${t}'`),Yp.set(t,e)}function cD(e,t){let n=Px(e,t);if(!bl.has(n))throw new Error(`The kernel '${e}' for backend '${t}' is not registered`);bl.delete(n)}function dD(e){if(!Yp.has(e))throw new Error(`The gradient '${e}' for backend is not registered`);Yp.delete(e)}function hD(e,t){Mh(e).forEach(n=>{let a=Object.assign({},n,{backendName:t});_c(a)})}function Px(e,t){return`${t}_${e}`}var v={};Ae(v,{arraysEqual:()=>xs,assert:()=>A,assertNonNegativeIntegerDimensions:()=>aa,assertNonNull:()=>bi,assertShapesMatch:()=>Tn,bytesFromStringArray:()=>JI,bytesPerElement:()=>$b,checkConversionForErrors:()=>YI,clamp:()=>Xp,computeStrides:()=>Ml,createScalarValue:()=>xD,createShuffledIndices:()=>XF,decodeString:()=>Ph,distSquared:()=>HF,encodeString:()=>$c,fetch:()=>wD,fingerPrint64:()=>bD,flatten:()=>ti,getArrayFromDType:()=>XI,getTypedArrayFromDType:()=>KI,hasEncodingLoss:()=>JF,hexToLong:()=>Ac,indexToLoc:()=>tD,inferDtype:()=>um,inferFromImplicitShape:()=>ZF,isBoolean:()=>QI,isFunction:()=>us,isInt:()=>yl,isNumber:()=>eS,isPromise:()=>Dx,isScalarShape:()=>jF,isString:()=>ns,isTypedArray:()=>hn,isValidDtype:()=>ZI,locToIndex:()=>eD,makeOnesTypedArray:()=>Fx,makeZerosNestedTypedArray:()=>QF,makeZerosTypedArray:()=>pm,nearestDivisor:()=>Ah,nearestLargerEven:()=>VF,now:()=>Zp,parseAxisParam:()=>Ra,randUniform:()=>GF,repeatedTry:()=>YF,rightPad:()=>Hp,shuffle:()=>jI,shuffleCombo:()=>BF,sizeFromShape:()=>mt,sizeToSquarishShape:()=>KF,squeezeShape:()=>qI,sum:()=>UF,swap:()=>_h,tanh:()=>qF,toNestedArray:()=>hl,toTypedArray:()=>Um});var ck=bs(SF()),Hs=ck.default||ck;function Ac(e){return Hs.fromString(e,!0,16)}var lS=Ac("c3a5c85c97cb3127"),Us=Ac("b492b66fbe98f273"),vn=Ac("9ae16a3b2f90404f");function Db(e){return e.xor(e.shru(47))}function uS(e,t,n){let a=e.slice(t,t+n);return Hs.fromBytes(Array.from(a),!0,!0)}function ht(e,t){return uS(e,t,8)}function dk(e,t){return uS(e,t,4)}function Jt(e,t){return t===0?e:e.shru(t).or(e.shl(64-t))}function is(e,t,n=Ac("9ddfea08eb382d69")){let a=e.xor(t).mul(n);a=a.xor(a.shru(47));let r=t.xor(a).mul(n);return r=r.xor(r.shru(47)),r=r.mul(n),r}function mD(e,t,n,a,r,s){r=r.add(e),s=Jt(s.add(r).add(a),21);let i=r;return r=r.add(t),r=r.add(n),s=s.add(Jt(r,44)),[r.add(a),s.add(i)]}function ih(e,t,n,a){return mD(ht(e,t),ht(e,t+8),ht(e,t+16),ht(e,t+24),n,a)}function fD(e,t=e.length){if(t>=8){let n=vn.add(t*2),a=ht(e,0).add(vn),r=ht(e,t-8),s=Jt(r,37).mul(n).add(a),i=Jt(a,25).add(r).mul(n);return is(s,i,n)}if(t>=4){let n=vn.add(t*2),a=dk(e,0);return is(a.shl(3).add(t),dk(e,t-4),n)}if(t>0){let n=e[0],a=e[t>>1],r=e[t-1],s=n+(a<<8),i=t+(r<<2);return Db(vn.mul(s).xor(lS.mul(i))).mul(vn)}return vn}function gD(e,t=e.length){let n=vn.add(t*2),a=ht(e,0).mul(Us),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(vn);return is(Jt(a.add(r),43).add(Jt(s,30)).add(i),a.add(Jt(r.add(vn),18)).add(s),n)}function yD(e,t=e.length){let n=vn.add(t*2),a=ht(e,0).mul(vn),r=ht(e,8),s=ht(e,t-8).mul(n),i=ht(e,t-16).mul(vn),o=Jt(a.add(r),43).add(Jt(s,30)).add(i),l=is(o,a.add(Jt(r.add(vn),18)).add(s),n),u=ht(e,16).mul(n),p=ht(e,24),d=o.add(ht(e,t-32)).mul(n),c=l.add(ht(e,t-24)).mul(n);return is(Jt(u.add(p),43).add(Jt(d,30)).add(c),u.add(Jt(p.add(a),18)).add(d),n)}function bD(e,t=e.length){let n=Hs.fromNumber(81,!0);if(t<=32)return t<=16?fD(e,t):gD(e,t);if(t<=64)return yD(e,t);let a=n,r=n.mul(Us).add(113),s=Db(r.mul(vn).add(113)).mul(vn),i=[Hs.UZERO,Hs.UZERO],o=[Hs.UZERO,Hs.UZERO];a=a.mul(vn).add(ht(e,0));let l=0,u=(t-1>>6)*64,p=u+(t-1&63)-63;do a=Jt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(Us),r=Jt(r.add(i[1]).add(ht(e,l+48)),42).mul(Us),a=a.xor(o[1]),r=r.add(i[0]).add(ht(e,l+40)),s=Jt(s.add(o[0]),33).mul(Us),i=ih(e,l,i[1].mul(Us),a.add(o[0])),o=ih(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],l+=64;while(l!==u);let d=Us.add(s.and(255).shl(1));return l=p,o[0]=o[0].add(t-1&63),i[0]=i[0].add(o[0]),o[0]=o[0].add(i[0]),a=Jt(a.add(r).add(i[0]).add(ht(e,l+8)),37).mul(d),r=Jt(r.add(i[1]).add(ht(e,l+48)),42).mul(d),a=a.xor(o[1].mul(9)),r=r.add(i[0].mul(9).add(ht(e,l+40))),s=Jt(s.add(o[0]),33).mul(d),i=ih(e,l,i[1].mul(d),a.add(o[0])),o=ih(e,l+32,s.add(o[1]),r.add(ht(e,l+16))),[s,a]=[a,s],is(is(i[0],o[0],d).add(Db(r).mul(lS)).add(s),is(i[1],o[1],d).add(a),d)}function xD(e,t){return t==="string"?$c(e):Um([e],t)}function vD(e,t){return e instanceof Float32Array&&t==="float32"||e instanceof Int32Array&&t==="int32"||e instanceof Uint8Array&&t==="bool"}function Um(e,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(e)&&(e=ti(e)),H().getBool("DEBUG")&&YI(e,t),vD(e,t))return e;if(t==null||t==="float32"||t==="complex64")return new Float32Array(e);if(t==="int32")return new Int32Array(e);if(t==="bool"){let n=new Uint8Array(e.length);for(let a=0;a{a=n()},s,i=Zp();if(this.backendTimer.timerAvailable())s=this.backendTimer.time(r);else{r();for(let o of a)o.dataSync();s=Promise.resolve({kernelMs:Zp()-i})}if(H().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let o=0;o{ID(u,l.dtype,e)})}return{kernelName:e,outputs:a,inputs:t,timeMs:s.then(o=>o.kernelMs),extraInfo:s.then(o=>o.getExtraProfileInfo!=null?o.getExtraProfileInfo():"")}}logKernelProfile(e){let{kernelName:t,outputs:n,timeMs:a,inputs:r,extraInfo:s}=e;n.forEach(i=>{Promise.all([i.data(),a,s]).then(o=>{this.logger.logKernelProfile(t,i,o[0],o[1],r,o[2])})})}};function ID(e,t,n){if(t!=="float32")return!1;for(let a=0;a0?m:""} `}}console.log(`%c${o} %c${i} %c${l}D ${p} %c${u} %c${d} %c${s}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function TD(e,t,n){let a={},r={};for(let l=0;la[f.id]=!0),h=!0,r[u.id]=!0;break}if(h)break}}let s={};s[n.id]=!0;let i={};for(let l=e.length-1;l>=0;l--){let u=e[l],p=u.inputs;for(let d=0;d=0;r--){let s=t[r],i=[];if(s.outputs.forEach(l=>{let u=e[l.id];u!=null?i.push(u):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let o=s.gradient(i);for(let l in s.inputs){if(!(l in o))throw new Error(`Cannot backprop through input ${l}. Available gradients found: ${Object.keys(o)}.`);let u=n(()=>o[l]());if(u.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${l} must have 'float32' dtype, but has '${u.dtype}'`);let p=s.inputs[l];if(!xs(u.shape,p.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${l}' has shape '${u.shape}', which does not match the shape of the input '${p.shape}'`);if(e[p.id]==null)e[p.id]=u;else{let d=e[p.id];e[p.id]=a(d,u),d.dispose()}}}}var hk=20,Ap=3,gb=7;function CD(e,t,n,a){let r=Ml(t),s=ED(e,t,n,r),i=t.length,o=xh(e,t,n,r,s),l=["Tensor"];return a&&(l.push(` dtype: ${n}`),l.push(` rank: ${i}`),l.push(` shape: [${t}]`),l.push(" values:")),l.push(o.map(u=>" "+u).join(` `)),l.join(` -`)}function TD(e,t,n,a){let r=mt(t),s=a[a.length-1],i=new Array(s).fill(0),o=t.length,l=n==="complex64"?Rp(e):e;if(o>1)for(let u=0;upk){let f=Ep*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Ep)*i,o*i));return n==="complex64"&&(g=Rp(g),y=Rp(y)),["["+g.map((b,x)=>Dp(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>Dp(b,r[o-Ep+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Rp(e):Array.from(e)).map((f,g)=>Dp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>pk){for(let f=0;f1)for(let u=0;uhk){let f=Ap*i,g=Array.from(e.slice(0,f)),y=Array.from(e.slice((o-Ap)*i,o*i));return n==="complex64"&&(g=Pp(g),y=Pp(y)),["["+g.map((b,x)=>Mp(b,r[x],n)).join(", ")+", ..., "+y.map((b,x)=>Mp(b,r[o-Ap+x],n)).join(", ")+"]"]}return["["+(n==="complex64"?Pp(e):Array.from(e)).map((f,g)=>Mp(f,r[g],n)).join(", ")+"]"]}let u=t.slice(1),p=a.slice(1),d=a[0]*i,c=[];if(o>hk){for(let f=0;f`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||jI(t,this.size),this.strides=Fl(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aMh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Oa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Oa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Mh(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Oa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Oa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return il.print(this,e)}clone(){return this.throwIfDisposed(),il.clone(this)}toString(e=!1){let t=this.dataSync();return SD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),il.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Oa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Fx("Tensor",()=>Te)}Q();var is=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!fs(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Oa().disposeTensor(this),this.dataId=e.dataId,Oa().incRef(this,null)}dispose(){Oa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(is,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Va={};$e(Va,{assertTypesMatch:()=>lS,getTensorsInContainer:()=>Rx,isTensorInList:()=>AD,makeTypesMatch:()=>_t});var Eb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Eb||(Eb={}));var $b;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})($b||($b={}));var Ab;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Ab||(Ab={}));var Fb;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Fb||(Fb={}));var Db;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Db||(Db={}));var $D={float32:Fb,int32:$b,bool:Ab,complex64:Db};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return $D[e][t]}function Um(e){return fa(e,"int32")}function _t(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function lS(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function AD(e,t){return t.some(n=>n.id===e.id)}function Rx(e){let t=[];return uS(e,t,new Set),t}function uS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!FD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),uS(s,t,n))}}function FD(e){return Array.isArray(e)||typeof e=="object"}function mb(e){return e.kernelName!=null}var ck=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Zp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new ck}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Rh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof pc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Zp.nextTensorId++}nextVariableId(){return Zp.nextVariableId++}clone(e){let t=O.runKernel(Ri,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(xi,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,Dh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=mb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(mb(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Dh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=mb(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Cb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&Qr(e[0])&&(r=e.map(o=>$c(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=XI(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new is(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*Nb(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof is||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*Nb(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Cb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=um(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Rx(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=kD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?DD(r.shape):n,ID(i,s,l=>this.tidy(l),RD);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(ss(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(ss(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Yp(),n=await this.backend.time(e);return n.wallMs=Yp()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new ck;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Zp.nextTensorId=0;Zp.nextVariableId=0;function DD(e){let t=_x(mt(e),"float32");return O.makeTensor(t,e,"float32")}function pS(){let e=eS();if(e._tfengine==null){let t=new QI(e);e._tfengine=new Zp(t)}return nD(e._tfengine.ENV),CD(()=>e._tfengine),e._tfengine}var O=pS();function RD(e,t){let n={a:e,b:t};return O.runKernel(gs,n)}var Ac={};$e(Ac,{isBrowser:()=>cS,isMobile:()=>OD,mockIsMobile:()=>PD});function MD(){return typeof navigator!="undefined"&&navigator!=null}var Rb;function PD(e){Rb=e}function OD(e){if(Rb!==void 0)return Rb;if(e||MD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function cS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var Qn=H();Qn.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});Qn.registerFlag("IS_BROWSER",()=>cS());Qn.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");Qn.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));Qn.registerFlag("PROD",()=>!1);Qn.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>Qn.getBool("DEBUG"));Qn.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);Qn.registerFlag("IS_TEST",()=>!1);Qn.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);Qn.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);Qn.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);Qn.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);Qn.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function lr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&dS(e,a,[]),a}function dS(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),dk(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=lr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Vm(e,r):Js(e,[],!0);return O.makeTensor(i,s,r)}function Jp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>_(r,`${t}[${s}]`,n,a))}var Mx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Mx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return $x(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function LD(e,t){let n=_(e,"real","complex"),a=_(t,"imag","complex");Tn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(mm,r)}var $r=L({complex_:LD});function vs(e,t,n,a){if(a==null&&(a=lm(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Ex(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Vm(e,a):Js(e,[],!0),O.makeTensor(e,t,a)}function In(e,t,n){let a=lr(e,n);return vs(e,t,a,n)}var Mb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Ph=4;async function zD(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+Ph*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var Px=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function hk(e){return Px?Buffer.byteLength(e):new Blob([e]).size}function BD(e){if(Px)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function mk(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function mS(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function fS(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Lx(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),fS(e,n,a)}function Fc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:hk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:hk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function gS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function UD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function GD(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function HD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function jD(){let e=UD(),t=GD(),n=HD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var $t=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return $t.instance==null&&($t.instance=new $t),$t.instance}static registerSaveRouter(e){$t.getInstance().saveRouters.push(e)}static registerLoadRouter(e){$t.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return $t.getHandlers(e,"save")}static getLoadHandlers(e,t){return $t.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?$t.getInstance().loadRouters:$t.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},qD=e=>$t.registerSaveRouter(e),KD=e=>$t.registerLoadRouter(e),XD=e=>$t.getSaveHandlers(e),YD=(e,t)=>$t.getLoadHandlers(e,t),Pb="tensorflowjs",Ob=1,Hs="models_store",es="model_info_store";function yS(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Lb(e){let t=e.result;t.createObjectStore(Hs,{keyPath:"modelPath"}),t.createObjectStore(es,{keyPath:"modelPath"})}var ni=class{constructor(e){if(this.indexedDB=yS(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(Pb,Ob);r.onupgradeneeded=()=>Lb(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Hs,"readonly"),o=i.objectStore(Hs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Fc(t),o=s.transaction(es,"readwrite"),l=o.objectStore(es),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Hs,"readwrite");let d=p.objectStore(Hs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(es);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};ni.URL_SCHEME="indexeddb://";var bS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ni.URL_SCHEME)?ZD(e.slice(ni.URL_SCHEME.length)):null;$t.registerSaveRouter(bS);$t.registerLoadRouter(bS);function ZD(e){return new ni(e)}function JD(e){return e.startsWith(ni.URL_SCHEME)?e.slice(ni.URL_SCHEME.length):e}var QD=class{constructor(){this.indexedDB=yS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Pb,Ob);n.onupgradeneeded=()=>Lb(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(es,"readonly"),s=r.objectStore(es).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=JD(e),new Promise((t,n)=>{let a=this.indexedDB.open(Pb,Ob);a.onupgradeneeded=()=>Lb(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(es,"readwrite"),i=s.objectStore(es),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Hs,"readwrite");let d=l.objectStore(Hs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},Nr="/",ol="tensorflowjs_models",xS="info",eR="model_topology",tR="weight_specs",nR="weight_data",aR="model_metadata";function vS(e){return{info:[ol,e,xS].join(Nr),topology:[ol,e,eR].join(Nr),weightSpecs:[ol,e,tR].join(Nr),weightData:[ol,e,nR].join(Nr),modelMetadata:[ol,e,aR].join(Nr)}}function wS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function rR(e){let t=e.split(Nr);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(Nr)}function sR(e){return e.startsWith(ai.URL_SCHEME)?e.slice(ai.URL_SCHEME.length):e}var ai=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=vS(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Fc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,BD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw wS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=VD(s),t}};ai.URL_SCHEME="localstorage://";var kS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ai.URL_SCHEME)?iR(e.slice(ai.URL_SCHEME.length)):null;$t.registerSaveRouter(kS);$t.registerLoadRouter(kS);function iR(e){return new ai(e)}var oR=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=ol+Nr,n=Nr+xS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(pl)&&(e=e.slice(0,e.indexOf(pl))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function xh(e){if(e.indexOf(pl)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(pl)[0],path:e.split(pl)[1]}}async function IS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=$t.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=$t.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=xh(e).scheme,l=xh(e).path,u=o===xh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function lR(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+pl+r;t[s]=a[r]}}return t}async function uR(e){let t=xh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function pR(e,t){return IS(e,t,!1)}async function cR(e,t){return IS(e,t,!0)}var dR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new dR);try{Pn.registerManager(ai.URL_SCHEME,new oR)}catch(e){}try{Pn.registerManager(ni.URL_SCHEME,new QD)}catch(e){}}var hR={importFetch:()=>kF()},fb,mR=class{constructor(){this.util=IF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(fb==null&&(fb=hR.importFetch()),fb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new mR);function Oe(e,t="float32",n){return t=t||"float32",Ex(e),new Ht(e,t,n)}function fR(e,t){let n=_(e,"x","cast");if(!KI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(xi,a,r)}var le=L({cast_:fR});function gR(e){let t={x:_(e,"x","clone","string_or_numeric")};return O.runKernel(Ri,t)}var ir=L({clone_:gR});function zx(e,t=!1){console.log(e.toString(t))}pS();var yR={buffer:Oe,cast:le,clone:ir,print:zx};_D(yR);var Ut={};$e(Ut,{browserFiles:()=>SR,browserHTTPRequest:()=>ER,concatenateArrayBuffers:()=>Ox,copyModel:()=>pR,decodeWeights:()=>hS,encodeWeights:()=>zD,fromMemory:()=>AR,fromMemorySync:()=>_S,getLoadHandlers:()=>YD,getModelArtifactsForJSON:()=>Lx,getModelArtifactsForJSONSync:()=>fS,getModelArtifactsInfoForJSON:()=>Fc,getSaveHandlers:()=>XD,getWeightSpecs:()=>gS,http:()=>Bx,isHTTPScheme:()=>zb,listModels:()=>lR,loadWeights:()=>TR,moveModel:()=>cR,registerLoadRouter:()=>KD,registerSaveRouter:()=>qD,removeModel:()=>uR,weightsLoaderFactory:()=>TS,withSaveHandler:()=>FR,withSaveHandlerSync:()=>DR});var bR="model",xR=".json",vR=".weights.bin";function fk(e){return new Promise(t=>setTimeout(t)).then(e)}var fl=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(fl.URL_SCHEME)&&(e=e.slice(fl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=bR),this.modelJsonFileName=e+xR,this.weightDataFileName=e+vR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=mS(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await fk(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await fk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Fc(e)}}}};fl.URL_SCHEME="downloads://";var wR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Lx(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Ox(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>mk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=mk(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},kR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(fl.URL_SCHEME)?IR(e.slice(fl.URL_SCHEME.length)):null;$t.registerSaveRouter(kR);function IR(e="model"){return new fl(e)}function SR(e){return new wR(e)}function gk(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function SS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await gk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await gk(i,t.onProgress,o,l)}async function TR(e,t="",n,a){return TS(r=>SS(r,{requestInit:a}))(e,t,n)}function TS(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Mb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. -Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=hS(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var NR="application/octet-stream",CR="application/json",Wx=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=mS(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:CR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:NR}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Fc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Lx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=_R(t),r=this.weightPathPrefix||n,s=gS(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await SS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Ox(l)]}};Wx.URL_SCHEME_REGEX=/^https?:\/\//;function _R(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function zb(e){return e.match(Wx.URL_SCHEME_REGEX)!=null}var NS=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>zb(a)):n=zb(e),n)return Bx(e,t)}return null};$t.registerSaveRouter(NS);$t.registerLoadRouter(NS);function Bx(e,t){return new Wx(e,t)}function ER(e,t){return Bx(e,t)}var gb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},CS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},$R=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function AR(e,t,n,a){let r=arguments;return new $R(_S(...r))}function _S(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new gb(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new gb({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new gb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function FR(e){return new CS(e)}function DR(e){return new CS(e)}var ES={};$e(ES,{confusionMatrix:()=>eM});function RR(e,t,n=!1,a=!1){let r=_(e,"a","matMul"),s=_(t,"b","matMul");[r,s]=_t(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(bi,i,o)}var Fe=L({matMul_:RR});function MR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:_(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Hi,s,i)}var gl=L({oneHot_:MR});function PR(){H().set("PROD",!0)}function OR(){H().set("DEBUG",!0)}function LR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Vx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}ED(Vx);function zR(){O.disposeVariables()}function _a(){return O}function Oh(){return O.memory()}function WR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function _e(e){Rx(e).forEach(t=>t.dispose())}function Jt(e){return O.keep(e)}function BR(e){return O.time(e)}function VR(e){return O.setBackend(e)}function UR(){return O.ready()}function GR(){return O.backendName}function HR(e){O.removeBackend(e)}function jR(e){return O.findBackend(e)}function qR(e){return O.findBackendFactory(e)}function Gm(e,t,n=1){return O.registerBackend(e,t,n)}function $S(){return O.backend}function KR(e,t){H().setPlatform(e,t)}function XR(e){let t={input:_(e,"input","imag")};return O.runKernel(Nm,t)}var Dc=L({imag_:XR});function YR(e){let t={x:_(e,"x","neg")};return O.runKernel(du,t)}var vt=L({neg_:YR});function ZR(e){let t={input:_(e,"input","real")};return O.runKernel(Pm,t)}var yl=L({real_:ZR});function JR(e,t,n){let a=_(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=yl(a),o=Dc(a);return i=O.runKernel(_r,{x:i},s),o=O.runKernel(_r,{x:o},s),n&&(o=vt(o)),$r(i,o)}):O.runKernel(_r,r,s)}var Ee=L({transpose_:JR});function QR(e,t,n){let a=_(e,"labels","confusionMatrix"),r=_(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=gl(le(a,"int32"),n),i=gl(le(r,"int32"),n),o=Ee(s),l=Fe(o,i);return le(l,"int32")}var eM=L({confusionMatrix_:QR}),Ou={};$e(Ou,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>AS,getReductionAxes:()=>Wt});function AS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;roM,fromPixelsAsync:()=>sM,toPixels:()=>iM});function Rc(e,t,n){if(mi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=lr(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}var Os;function FS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(Dh(Fh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Fh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Os==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Os=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Os=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Os.canvas.width=l,Os.canvas.height=u,Os.drawImage(e,0,0,l,u),p=Os.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var oM=L({fromPixels_:FS}),Ux={};$e(Ux,{prepareAndValidate:()=>DS});function DS(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var Gx={};$e(Gx,{calculateShapes:()=>RS,validateInput:()=>jx,validateUpdateShape:()=>Hx});function Hx(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;duM,computeFlatOffset:()=>mM,computeOutShape:()=>cM,getNormalizedAxes:()=>dM,isSliceContinous:()=>hM,maskToAxes:()=>pM,parseSliceParams:()=>US,sliceInfo:()=>fM,startForAxis:()=>BS,startIndicesWithElidedDims:()=>LS,stopForAxis:()=>VS,stopIndicesWithElidedDims:()=>zS,stridesForAxis:()=>WS,stridesWithElidedDims:()=>MS});var Wb=-2,lM=-1;function uM(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function pM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function cM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=LS(i,h,m,a,e),d=zS(o,h,m,r,e),c=MS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=PS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=PS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Kp(0,i,l-1),i}function VS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Kp(0,i,l):i=Kp(-1,i,l-1),i}function hM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function mM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function fM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=yk(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=yk(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let E,$=!1;if(c.beginValid&&c.endValid?(E=c.end[b]-c.begin[b],$=!0):x?(E=1,$=!0):C&&w>=0&&(c.strides[b]<0?E=-w:E=w,$=!0),$){let R;E===0||E<0!=c.strides[b]<0?R=0:R=Math.trunc(E/c.strides[b])+(E%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Wb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Wb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function gM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};$e(ne,{Serializable:()=>GS,SerializationMap:()=>Vs,registerClass:()=>ws});var GS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},Vs=class{constructor(){this.classNameMap={}}static getMap(){return Vs.instance==null&&(Vs.instance=new Vs),Vs.instance}static register(e){Vs.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function ws(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Vs.register(e)}var HS={};$e(HS,{TEST_EPSILON_FLOAT16:()=>jS,createVideoElement:()=>SM,encodeStrings:()=>qS,expectArrayBuffersEqual:()=>IM,expectArraysClose:()=>bM,expectArraysEqual:()=>vM,expectNumbersClose:()=>wM,expectPromiseToFail:()=>xM,expectValuesInRange:()=>kM,play:()=>TM,testEpsilon:()=>qx});var yM=.001,jS=.1;function bM(e,t,n){return n==null&&(n=qx()),Bb(e,t,(a,r)=>Kx(a,r,n))}function qx(){return O.backend.floatPrecision()===32?yM:jS}function Bb(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=lr(e),o=lr(t);if(!fs(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:Js(e),s=hn(t)?t:Js(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. +`;return c[c.length-1]=" "+c[c.length-1]+"]"+(s?"":m),c}function Pp(e){let t=[];for(let n=0;n`Length of values '${a}' does not match the size inferred by the shape '${this.size}'.`)}if(t==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||XI(t,this.size),this.strides=Ml(e)}set(e,...t){t.length===0&&(t=[0]),A(t.length===this.rank,()=>`The number of provided coordinates (${t.length}) must match the rank (${this.rank})`);let n=this.locToIndex(t);this.values[n]=e}get(...e){e.length===0&&(e=[0]);let t=0;for(let a of e){if(a<0||a>=this.shape[t]){let r=`Requested out of range element at ${e}. Buffer shape=${this.shape}`;throw new Error(r)}t++}let n=e[e.length-1];for(let a=0;aPh(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return e}dataToGPU(e){return this.throwIfDisposed(),Wa().readToGPU(this.dataId,e)}dataSync(){this.throwIfDisposed();let e=Wa().readSync(this.dataId);if(this.dtype==="string")try{return e.map(t=>Ph(t))}catch(t){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return e}async bytes(){this.throwIfDisposed();let e=await Wa().read(this.dataId);return this.dtype==="string"?e:new Uint8Array(e.buffer)}dispose(){this.isDisposed||(Wa().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(e=!1){return pl.print(this,e)}clone(){return this.throwIfDisposed(),pl.clone(this)}toString(e=!1){let t=this.dataSync();return CD(t,this.shape,this.dtype,e)}cast(e){return this.throwIfDisposed(),pl.cast(this,e)}variable(e=!0,t,n){return this.throwIfDisposed(),Wa().makeVariable(this,e,t,n)}};Object.defineProperty(Te,Symbol.hasInstance,{value:e=>!!e&&e.data!=null&&e.dataSync!=null&&e.throwIfDisposed!=null});function Q(){return Mx("Tensor",()=>Te)}Q();var ps=class extends Te{constructor(e,t,n,a){super(e.shape,e.dtype,e.dataId,a),this.trainable=t,this.name=n}assign(e){if(e.dtype!==this.dtype)throw new Error(`dtype of the new value (${e.dtype}) and previous value (${this.dtype}) must match`);if(!xs(e.shape,this.shape))throw new Error(`shape of the new value (${e.shape}) and previous value (${this.shape}) must match`);Wa().disposeTensor(this),this.dataId=e.dataId,Wa().incRef(this,null)}dispose(){Wa().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(ps,Symbol.hasInstance,{value:e=>e instanceof Te&&e.assign!=null&&e.assign instanceof Function});var Ua={};Ae(Ua,{assertTypesMatch:()=>cS,getTensorsInContainer:()=>Ox,isTensorInList:()=>RD,makeTypesMatch:()=>Et});var Rb;(function(e){e.R0="R0",e.R1="R1",e.R2="R2",e.R3="R3",e.R4="R4",e.R5="R5",e.R6="R6"})(Rb||(Rb={}));var Mb;(function(e){e.float32="float32",e.int32="int32",e.bool="int32",e.complex64="complex64"})(Mb||(Mb={}));var Pb;(function(e){e.float32="float32",e.int32="int32",e.bool="bool",e.complex64="complex64"})(Pb||(Pb={}));var Ob;(function(e){e.float32="float32",e.int32="float32",e.bool="float32",e.complex64="complex64"})(Ob||(Ob={}));var Lb;(function(e){e.float32="complex64",e.int32="complex64",e.bool="complex64",e.complex64="complex64"})(Lb||(Lb={}));var DD={float32:Ob,int32:Mb,bool:Pb,complex64:Lb};function fa(e,t){if(e==="string"||t==="string"){if(e==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${e} with ${t}`)}return DD[e][t]}function Gm(e){return fa(e,"int32")}function Et(e,t){if(e.dtype===t.dtype)return[e,t];let n=fa(e.dtype,t.dtype);return[e.cast(n),t.cast(n)]}function cS(e,t){A(e.dtype===t.dtype,()=>`The dtypes of the first(${e.dtype}) and second(${t.dtype}) input must match`)}function RD(e,t){return t.some(n=>n.id===e.id)}function Ox(e){let t=[];return dS(e,t,new Set),t}function dS(e,t,n){if(e==null)return;if(e instanceof Te){t.push(e);return}if(!MD(e))return;let a=e;for(let r in a){let s=a[r];n.has(s)||(n.add(s),dS(s,t,n))}}function MD(e){return Array.isArray(e)||typeof e=="object"}function yb(e){return e.kernelName!=null}var mk=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(e=>e.name)))}}}dispose(){for(let e in this.registeredVariables)this.registeredVariables[e].dispose()}},Jp=class{constructor(e){this.ENV=e,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new mk}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let e=this.getSortedBackends();for(let t=0;t{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(e){Mh(e).forEach(t=>{t.disposeFunc!=null&&t.disposeFunc(this.registry[e])})}initializeBackend(e){let t=this.registryFactory[e];if(t==null)throw new Error(`Cannot initialize backend ${e}, no registration found.`);try{let n=t.factory();if(n&&!(n instanceof cc)&&typeof n.then=="function"){let a=++this.pendingBackendInitId,r=n.then(s=>a(athis.registryFactory[t].priority-this.registryFactory[e].priority)}initializeBackendsAndReturnBest(){let e=this.getSortedBackends();for(let t=0;tthis.startScope(n),()=>this.endScope(a),()=>(a=t(),a instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),a))}scopedRun(e,t,n){e();try{let a=n();return t(),a}catch(a){throw t(),a}}nextTensorId(){return Jp.nextTensorId++}nextVariableId(){return Jp.nextVariableId++}clone(e){let t=O.runKernel(Li,{x:e}),n={x:e},a=s=>({x:()=>{let i="float32",o={x:s},l={dtype:i};return O.runKernel(Ii,o,l)}}),r=[];return this.addTapeNode(this.state.activeScope.name,n,[t],a,r,{}),t}runKernel(e,t,n){if(this.backendName==null&&this.backend,Rh(e,this.backendName)==null)throw new Error(`Kernel '${e}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:e,inputs:t,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(e,t,n){let a=this.backend.numDataIds(),r=0;n.forEach(o=>{r+=o.dtype==="complex64"?3:1});let s=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],i=a-t-r-s;if(i>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${i} data ids) after running '${e}'`)}runKernelFunc(e){let t,n=[],a=this.isTapeOn(),r=this.state.numBytes,s=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let i;this.backendName==null&&this.backend;let o,l=yb(e)?e.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(yb(e)){let{kernelName:h,inputs:m,attrs:f}=e;this.backendName==null&&this.backend;let g=Rh(h,this.backendName);A(g!=null,()=>`Cannot find registered kernel '${h}' for backend '${this.backendName}'`),i=()=>{let y=this.backend.numDataIds();o=g.kernelFunc({inputs:m,attrs:f,backend:this.backend});let b=Array.isArray(o)?o:[o];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(h,y,b);let x=b.map(w=>w.rank!=null?w:this.makeTensorFromTensorInfo(w));if(a){let w=this.getTensorsForGradient(h,m,x);n=this.saveTensorsForBackwardMode(w)}return x}}else{let{forwardFunc:h}=e,m=f=>{!a||(n=f.map(g=>this.keep(this.clone(g))))};i=()=>{let f=this.backend.numDataIds();o=this.tidy(()=>h(this.backend,m));let g=Array.isArray(o)?o:[o];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,f,g),g}}let{inputs:u,attrs:p}=e,d=yb(e)?null:e.backwardsFunc,c;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?t=i():(c=this.profiler.profileKernel(l,u,()=>i()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(c),t=c.outputs)}),a&&this.addTapeNode(l,u,t,d,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-r,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-s,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(u).map(h=>u[h]!=null?u[h].shape:null),outputShapes:t.map(h=>h.shape),kernelTimeMs:c.timeMs,extraInfo:c.extraInfo}),Array.isArray(o)?t:t[0]}saveTensorsForBackwardMode(e){return e.map(t=>this.keep(this.clone(t)))}getTensorsForGradient(e,t,n){let a=Fb(e);if(a!=null){let r=a.inputsToSave||[],s=a.outputsToSave||[],i;a.saveAllInputs?(A(Array.isArray(t),()=>"saveAllInputs is true, expected inputs to be an array."),i=Object.keys(t).map(l=>t[l])):i=r.map(l=>t[l]);let o=n.filter((l,u)=>s[u]);return i.concat(o)}return[]}makeTensor(e,t,n,a){if(e==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",a=a||this.backend;let r=e;n==="string"&&ns(e[0])&&(r=e.map(o=>$c(o)));let s=a.write(r,t,n),i=new Te(t,n,s,this.nextTensorId());if(this.trackTensor(i,a),n==="string"){let o=this.state.tensorInfo.get(s),l=JI(r);this.state.numBytes+=l-o.bytes,o.bytes=l}return i}makeTensorFromDataId(e,t,n,a){n=n||"float32";let r={dataId:e,shape:t,dtype:n};return this.makeTensorFromTensorInfo(r,a)}makeTensorFromTensorInfo(e,t){let{dataId:n,shape:a,dtype:r}=e,s=new Te(a,r,n,this.nextTensorId());return this.trackTensor(s,t),s}makeVariable(e,t=!0,n,a){n=n||this.nextVariableId().toString(),a!=null&&a!==e.dtype&&(e=e.cast(a));let r=new ps(e,t,n,this.nextTensorId());if(this.state.registeredVariables[r.name]!=null)throw new Error(`Variable with name ${r.name} was already registered`);return this.state.registeredVariables[r.name]=r,this.incRef(r,this.backend),r}trackTensor(e,t){this.state.numTensors++,e.dtype==="string"&&this.state.numStringTensors++;let n=0;e.dtype!=="complex64"&&e.dtype!=="string"&&(n=e.size*$b(e.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(e.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(e.dataId,{backend:t||this.backend,dtype:e.dtype,shape:e.shape,bytes:n})),e instanceof ps||this.track(e)}incRef(e,t){this.trackTensor(e,t),this.backend.incRef(e.dataId)}removeDataId(e,t){this.state.tensorInfo.has(e)&&this.state.tensorInfo.get(e).backend===t&&(this.state.tensorInfo.delete(e),this.state.numDataBuffers--)}disposeTensor(e){if(!this.state.tensorInfo.has(e.dataId))return;let t=this.state.tensorInfo.get(e.dataId);if(this.state.numTensors--,e.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=t.bytes),e.dtype!=="complex64"&&e.dtype!=="string"){let n=e.size*$b(e.dtype);this.state.numBytes-=n}t.backend.disposeData(e.dataId)&&this.removeDataId(e.dataId,t.backend)}disposeVariables(){for(let e in this.state.registeredVariables){let t=this.state.registeredVariables[e];this.disposeVariable(t)}}disposeVariable(e){this.disposeTensor(e),this.state.registeredVariables[e.name]!=null&&delete this.state.registeredVariables[e.name]}memory(){let e=this.backend.memory();return e.numTensors=this.state.numTensors,e.numDataBuffers=this.state.numDataBuffers,e.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(e.unreliable=!0,e.reasons==null&&(e.reasons=[]),e.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),e}async profile(e){this.state.profiling=!0;let t=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await e(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(a=>a.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-t,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let a of this.state.activeProfile.kernels)a.kernelTimeMs=await a.kernelTimeMs,a.extraInfo=await a.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(e,t,n,a,r,s){let i={id:this.state.nextTapeNodeId++,kernelName:e,inputs:t,outputs:n,saved:r},o=Fb(e);o!=null&&(a=o.gradFunc),a!=null&&(i.gradient=l=>(l=l.map((u,p)=>{if(u==null){let d=n[p],c=pm(d.size,d.dtype);return this.makeTensor(c,d.shape,d.dtype)}return u}),a(l.length>1?l:l[0],r,s))),this.state.activeTape.push(i)}keep(e){return e.kept=!0,e}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(e){let t={track:[],name:"unnamed scope",id:this.state.nextScopeId++};e&&(t.name=e),this.state.scopeStack.push(t),this.state.activeScope=t}endScope(e){let t=Ox(e),n=new Set(t.map(r=>r.id));for(let r=0;r{!r.kept&&r.scopeId===a.id&&this.track(r)})}gradients(e,t,n,a=!1){if(A(t.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let r=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",e));A(r instanceof Te,()=>"The result y returned by f() must be a tensor.");let s=TD(this.state.activeTape,t,r);if(!a&&s.length===0&&t.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let i={};i[r.id]=n==null?PD(r.shape):n,ND(i,s,l=>this.tidy(l),OD);let o=t.map(l=>i[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let u of l.saved)u.dispose()}),this.state.activeTape=null),{value:r,grads:o}})}customGrad(e){return A(us(e),()=>"The f passed in customGrad(f) must be a function."),(...t)=>{A(t.every(i=>i instanceof Te),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,a={};t.forEach((i,o)=>{a[o]=i});let r=(i,o)=>(n=e(...t,o),A(n.value instanceof Te,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),A(us(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),s=(i,o)=>{let l=n.gradFunc(i,o),u=Array.isArray(l)?l:[l];A(u.length===t.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),A(u.every(d=>d instanceof Te),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return u.forEach((d,c)=>{p[c]=()=>d}),p};return this.runKernelFunc({forwardFunc:r,backwardsFunc:s,inputs:a})}}readSync(e){return this.state.tensorInfo.get(e).backend.readSync(e)}read(e){return this.state.tensorInfo.get(e).backend.read(e)}readToGPU(e,t){return this.state.tensorInfo.get(e).backend.readToGPU(e,t)}async time(e){let t=Zp(),n=await this.backend.time(e);return n.wallMs=Zp()-t,n}track(e){return this.state.activeScope!=null&&(e.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(e)),e}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new mk;for(let e in this.registry)this.disposeRegisteredKernels(e),this.registry[e].dispose(),delete this.registry[e];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Jp.nextTensorId=0;Jp.nextVariableId=0;function PD(e){let t=Fx(mt(e),"float32");return O.makeTensor(t,e,"float32")}function hS(){let e=aS();if(e._tfengine==null){let t=new nS(e);e._tfengine=new Jp(t)}return sD(e._tfengine.ENV),AD(()=>e._tfengine),e._tfengine}var O=hS();function OD(e,t){let n={a:e,b:t};return O.runKernel(vs,n)}var Fc={};Ae(Fc,{isBrowser:()=>mS,isMobile:()=>WD,mockIsMobile:()=>zD});function LD(){return typeof navigator!="undefined"&&navigator!=null}var zb;function zD(e){zb=e}function WD(e){if(zb!==void 0)return zb;if(e||LD()){if(e||(e=navigator),e.product==="ReactNative")return!0;let t=e.userAgent||e.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let n=e;return n.userAgentData&&n.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function mS(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ga=H();ga.registerFlag("DEBUG",()=>!1,e=>{e&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ga.registerFlag("IS_BROWSER",()=>mS());ga.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ga.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ga.registerFlag("PROD",()=>!1);ga.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ga.getBool("DEBUG"));ga.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ga.registerFlag("IS_TEST",()=>!1);ga.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);ga.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);ga.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);ga.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function pr(e,t){let n=e;if(hn(e))return t==="string"?[]:[e.length];if(typeof e=="object"&&"texture"in e){let r=e.channels||"RGBA";return[e.height,e.width*r.length]}if(!Array.isArray(e))return[];let a=[];for(;Array.isArray(n)||hn(n)&&t!=="string";)a.push(n.length),n=n[0];return Array.isArray(e)&&H().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&fS(e,a,[]),a}function fS(e,t,n){if(n=n||[],!Array.isArray(e)&&!hn(e)){A(t.length===0,()=>`Element arr[${n.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}A(t.length>0,()=>`Element arr[${n.join("][")}] should be a primitive, but is an array of ${e.length} elements`),A(e.length===t[0],()=>`Element arr[${n.join("][")}] should have ${t[0]} elements, but has ${e.length} elements`);let a=t.slice(1);for(let r=0;r=0&&(r=a),fk(a,r,t,n),e==null||!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string"){let o=e==null?"null":e.constructor.name;throw new Error(`Argument '${t}' passed to '${n}' must be a Tensor or TensorLike, but got '${o}'`)}let s=pr(e,r);!hn(e)&&!Array.isArray(e)&&(e=[e]);let i=r!=="string"?Um(e,r):ti(e,[],!0);return O.makeTensor(i,s,r)}function Qp(e,t,n,a="numeric"){if(!Array.isArray(e))throw new Error(`Argument ${t} passed to ${n} must be a \`Tensor[]\` or \`TensorLike[]\``);return e.map((r,s)=>E(r,`${t}[${s}]`,n,a))}var Lx="__op";function L(e){let t=Object.keys(e);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let n=t[0],a=e[n];n.endsWith("_")&&(n=n.substring(0,n.length-1)),n=n+Lx;let r=(...s)=>{O.startScope(n);try{let i=a(...s);return Dx(i)&&console.error("Cannot return a Promise inside of tidy."),O.endScope(i),i}catch(i){throw O.endScope(null),i}};return Object.defineProperty(r,"name",{value:n,configurable:!0}),r}function BD(e,t){let n=E(e,"real","complex"),a=E(t,"imag","complex");Tn(n.shape,a.shape,`real and imag shapes, ${n.shape} and ${a.shape}, must match in call to tf.complex().`);let r={real:n,imag:a};return O.runKernel(fm,r)}var Fr=L({complex_:BD});function Ss(e,t,n,a){if(a==null&&(a=um(e)),a==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof e=="object"&&"texture"in e){if(a!=="float32"&&a!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${a}.`);return e.channels=e.channels||"RGBA",O.backend.createTensorFromTexture(e,t||n,a)}if(!hn(e)&&!Array.isArray(e)&&typeof e!="number"&&typeof e!="boolean"&&typeof e!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){aa(t);let r=mt(t),s=mt(n);A(r===s,()=>`Based on the provided shape, [${t}], the tensor should have ${r} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${n}) does not match the provided shape (${t}). `)}}return!hn(e)&&!Array.isArray(e)&&(e=[e]),t=t||n,e=a!=="string"?Um(e,a):ti(e,[],!0),O.makeTensor(e,t,a)}function mn(e,t,n){let a=pr(e,n);return Ss(e,t,a,n)}var Wb={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8},Oh=4;async function VD(e,t){let n=[],a=[],r=Array.isArray(e)?e.map(i=>i.name):Object.keys(e);for(let i=0;i{let c=await l.bytes(),h=c.reduce((g,y)=>g+y.length,0)+Oh*c.length,m=new Uint8Array(h),f=0;for(let g=0;g{if(t+=s.byteLength,n.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let a=new Uint8Array(t),r=0;return n.forEach(s=>{a.set(new Uint8Array(s.buffer),r),r+=s.byteLength}),a.buffer}var zx=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function gk(e){return zx?Buffer.byteLength(e):new Blob([e]).size}function GD(e){if(zx)return Buffer.from(e).toString("base64");let t=new Uint8Array(e),n="";for(let a=0,r=t.length;a{t+=r.byteLength});let n=new Uint8Array(t),a=0;return e.forEach(r=>{n.set(new Uint8Array(r),a),a+=r.byteLength}),n.buffer}function yk(e){let t="/";for(e=e.trim();e.endsWith(t);)e=e.slice(0,e.length-1);let n=e.split(t);return n[n.length-1]}function yS(e,t){let n={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,weightsManifest:t};return e.signature!=null&&(n.signature=e.signature),e.userDefinedMetadata!=null&&(n.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(n.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(n.initializerSignature=e.initializerSignature),e.trainingConfig!=null&&(n.trainingConfig=e.trainingConfig),n}function bS(e,t,n){let a={modelTopology:e.modelTopology,format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy};if(e.trainingConfig!=null&&(a.trainingConfig=e.trainingConfig),e.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!n)throw new Error("modelJSON has weightsManifest but weightData is null");a.weightSpecs=t,a.weightData=n}return e.signature!=null&&(a.signature=e.signature),e.userDefinedMetadata!=null&&(a.userDefinedMetadata=e.userDefinedMetadata),e.modelInitializer!=null&&(a.modelInitializer=e.modelInitializer),e.initializerSignature!=null&&(a.initializerSignature=e.initializerSignature),a}async function Bx(e,t){let n,a;return e.weightsManifest!=null&&([n,a]=await t(e.weightsManifest)),bS(e,n,a)}function Dc(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:e.modelTopology==null?0:gk(JSON.stringify(e.modelTopology)),weightSpecsBytes:e.weightSpecs==null?0:gk(JSON.stringify(e.weightSpecs)),weightDataBytes:e.weightData==null?0:e.weightData.byteLength}}function xS(e){let t=[];for(let n of e)t.push(...n.weights);return t}function jD(){let e=n=>{let a=n<<13,r=0;for(;(a&8388608)===0;)r-=8388608,a<<=1;return a&=-8388609,r+=947912704,a|r},t=new Uint32Array(2048);t[0]=0;for(let n=1;n<1024;n++)t[n]=e(n);for(let n=1024;n<2048;n++)t[n]=939524096+(n-1024<<13);return t}function qD(){let e=new Uint32Array(64);e[0]=0,e[31]=1199570944,e[32]=2147483648,e[63]=3347054592;for(let t=1;t<31;t++)e[t]=t<<23;for(let t=33;t<63;t++)e[t]=2147483648+(t-32<<23);return e}function KD(){let e=new Uint32Array(64);for(let t=0;t<64;t++)e[t]=1024;return e[0]=e[32]=0,e}function XD(){let e=jD(),t=qD(),n=KD();return a=>{let r=new ArrayBuffer(4*a.length),s=new Uint32Array(r);for(let i=0;i>10]+(o&1023)]+t[o>>10];s[i]=l}return new Float32Array(r)}}var At=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return At.instance==null&&(At.instance=new At),At.instance}static registerSaveRouter(e){At.getInstance().saveRouters.push(e)}static registerLoadRouter(e){At.getInstance().loadRouters.push(e)}static getSaveHandlers(e){return At.getHandlers(e,"save")}static getLoadHandlers(e,t){return At.getHandlers(e,"load",t)}static getHandlers(e,t,n){let a=[];return(t==="load"?At.getInstance().loadRouters:At.getInstance().saveRouters).forEach(r=>{let s=r(e,n);s!==null&&a.push(s)}),a}},YD=e=>At.registerSaveRouter(e),ZD=e=>At.registerLoadRouter(e),JD=e=>At.getSaveHandlers(e),QD=(e,t)=>At.getLoadHandlers(e,t),Bb="tensorflowjs",Vb=1,Xs="models_store",as="model_info_store";function vS(){if(!H().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let e=typeof window=="undefined"?self:window,t=e.indexedDB||e.mozIndexedDB||e.webkitIndexedDB||e.msIndexedDB||e.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Ub(e){let t=e.result;t.createObjectStore(Xs,{keyPath:"modelPath"}),t.createObjectStore(as,{keyPath:"modelPath"})}var si=class{constructor(e){if(this.indexedDB=vS(),e==null||!e)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=e}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,e)}async load(){return this.databaseAction(this.modelPath)}databaseAction(e,t){return new Promise((n,a)=>{let r=this.indexedDB.open(Bb,Vb);r.onupgradeneeded=()=>Ub(r),r.onsuccess=()=>{let s=r.result;if(t==null){let i=s.transaction(Xs,"readonly"),o=i.objectStore(Xs).get(this.modelPath);o.onsuccess=()=>{if(o.result==null)return s.close(),a(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(o.result.modelArtifacts)},o.onerror=l=>(s.close(),a(o.error)),i.oncomplete=()=>s.close()}else{let i=Dc(t),o=s.transaction(as,"readwrite"),l=o.objectStore(as),u=l.put({modelPath:this.modelPath,modelArtifactsInfo:i}),p;u.onsuccess=()=>{p=s.transaction(Xs,"readwrite");let d=p.objectStore(Xs).put({modelPath:this.modelPath,modelArtifacts:t,modelArtifactsInfo:i});d.onsuccess=()=>n({modelArtifactsInfo:i}),d.onerror=c=>{l=o.objectStore(as);let h=l.delete(this.modelPath);h.onsuccess=()=>(s.close(),a(d.error)),h.onerror=m=>(s.close(),a(d.error))}},u.onerror=d=>(s.close(),a(u.error)),o.oncomplete=()=>{p==null?s.close():p.oncomplete=()=>s.close()}}},r.onerror=s=>a(r.error)})}};si.URL_SCHEME="indexeddb://";var wS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(si.URL_SCHEME)?eR(e.slice(si.URL_SCHEME.length)):null;At.registerSaveRouter(wS);At.registerLoadRouter(wS);function eR(e){return new si(e)}function tR(e){return e.startsWith(si.URL_SCHEME)?e.slice(si.URL_SCHEME.length):e}var nR=class{constructor(){this.indexedDB=vS()}async listModels(){return new Promise((e,t)=>{let n=this.indexedDB.open(Bb,Vb);n.onupgradeneeded=()=>Ub(n),n.onsuccess=()=>{let a=n.result,r=a.transaction(as,"readonly"),s=r.objectStore(as).getAll();s.onsuccess=()=>{let i={};for(let o of s.result)i[o.modelPath]=o.modelArtifactsInfo;e(i)},s.onerror=i=>(a.close(),t(s.error)),r.oncomplete=()=>a.close()},n.onerror=a=>t(n.error)})}async removeModel(e){return e=tR(e),new Promise((t,n)=>{let a=this.indexedDB.open(Bb,Vb);a.onupgradeneeded=()=>Ub(a),a.onsuccess=()=>{let r=a.result,s=r.transaction(as,"readwrite"),i=s.objectStore(as),o=i.get(e),l;o.onsuccess=()=>{if(o.result==null)return r.close(),n(new Error(`Cannot find model with path '${e}' in IndexedDB.`));{let u=i.delete(e),p=()=>{l=r.transaction(Xs,"readwrite");let d=l.objectStore(Xs).delete(e);d.onsuccess=()=>t(o.result.modelArtifactsInfo),d.onerror=c=>n(o.error)};u.onsuccess=p,u.onerror=d=>(p(),r.close(),n(o.error))}},o.onerror=u=>(r.close(),n(o.error)),s.oncomplete=()=>{l==null?r.close():l.oncomplete=()=>r.close()}},a.onerror=r=>n(a.error)})}},_r="/",cl="tensorflowjs_models",kS="info",aR="model_topology",rR="weight_specs",sR="weight_data",iR="model_metadata";function IS(e){return{info:[cl,e,kS].join(_r),topology:[cl,e,aR].join(_r),weightSpecs:[cl,e,rR].join(_r),weightData:[cl,e,sR].join(_r),modelMetadata:[cl,e,iR].join(_r)}}function SS(e){for(let t of Object.values(e))window.localStorage.removeItem(t)}function oR(e){let t=e.split(_r);if(t.length<3)throw new Error(`Invalid key format: ${e}`);return t.slice(1,t.length-1).join(_r)}function lR(e){return e.startsWith(ii.URL_SCHEME)?e.slice(ii.URL_SCHEME.length):e}var ii=class{constructor(e){if(!H().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,e==null||!e)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=e,this.keys=IS(this.modelPath)}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let t=JSON.stringify(e.modelTopology),n=JSON.stringify(e.weightSpecs),a=Dc(e);try{this.LS.setItem(this.keys.info,JSON.stringify(a)),this.LS.setItem(this.keys.topology,t),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,GD(e.weightData));let r={format:e.format,generatedBy:e.generatedBy,convertedBy:e.convertedBy,signature:e.signature!=null?e.signature:void 0,userDefinedMetadata:e.userDefinedMetadata!=null?e.userDefinedMetadata:void 0,modelInitializer:e.modelInitializer!=null?e.modelInitializer:void 0,initializerSignature:e.initializerSignature!=null?e.initializerSignature:void 0,trainingConfig:e.trainingConfig!=null?e.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(r)),{modelArtifactsInfo:a}}catch(r){throw SS(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${a.modelTopologyBytes}, weightSpecsBytes=${a.weightSpecsBytes}, weightDataBytes=${a.weightDataBytes}.`)}}}async load(){let e=JSON.parse(this.LS.getItem(this.keys.info));if(e==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(e.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let t={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);t.modelTopology=n;let a=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(a==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);t.weightSpecs=a;let r=this.LS.getItem(this.keys.modelMetadata);if(r!=null){let i=JSON.parse(r);t.format=i.format,t.generatedBy=i.generatedBy,t.convertedBy=i.convertedBy,i.signature!=null&&(t.signature=i.signature),i.userDefinedMetadata!=null&&(t.userDefinedMetadata=i.userDefinedMetadata),i.modelInitializer!=null&&(t.modelInitializer=i.modelInitializer),i.initializerSignature!=null&&(t.initializerSignature=i.initializerSignature),i.trainingConfig!=null&&(t.trainingConfig=i.trainingConfig)}let s=this.LS.getItem(this.keys.weightData);if(s==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return t.weightData=HD(s),t}};ii.URL_SCHEME="localstorage://";var TS=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(ii.URL_SCHEME)?uR(e.slice(ii.URL_SCHEME.length)):null;At.registerSaveRouter(TS);At.registerLoadRouter(TS);function uR(e){return new ii(e)}var pR=class{constructor(){A(H().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),A(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let e={},t=cl+_r,n=_r+kS;for(let a=0;a"scheme must not be undefined or null."),e.endsWith(ml)&&(e=e.slice(0,e.indexOf(ml))),A(e.length>0,()=>"scheme must not be an empty string.");let n=Pn.getInstance();A(n.managers[e]==null,()=>`A model store manager is already registered for scheme '${e}'.`),n.managers[e]=t}static getManager(e){let t=Pn.getInstance().managers[e];if(t==null)throw new Error(`Cannot find model manager for scheme '${e}'`);return t}static getSchemes(){return Object.keys(Pn.getInstance().managers)}};function vh(e){if(e.indexOf(ml)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Pn.getSchemes().join(",")}`);return{scheme:e.split(ml)[0],path:e.split(ml)[1]}}async function NS(e,t,n=!1){A(e!==t,()=>`Old path and new path are the same: '${e}'`);let a=At.getLoadHandlers(e);A(a.length>0,()=>`Copying failed because no load handler is found for source URL ${e}.`),A(a.length<2,()=>`Copying failed because more than one (${a.length}) load handlers for source URL ${e}.`);let r=a[0],s=At.getSaveHandlers(t);A(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),A(s.length<2,()=>`Copying failed because more than one (${a.length}) save handlers for destination URL ${t}.`);let i=s[0],o=vh(e).scheme,l=vh(e).path,u=o===vh(e).scheme,p=await r.load();n&&u&&await Pn.getManager(o).removeModel(l);let d=await i.save(p);return n&&!u&&await Pn.getManager(o).removeModel(l),d.modelArtifactsInfo}async function cR(){let e=Pn.getSchemes(),t={};for(let n of e){let a=await Pn.getManager(n).listModels();for(let r in a){let s=n+ml+r;t[s]=a[r]}}return t}async function dR(e){let t=vh(e);return Pn.getManager(t.scheme).removeModel(t.path)}async function hR(e,t){return NS(e,t,!1)}async function mR(e,t){return NS(e,t,!0)}var fR=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(e,t){return fetch(e,t)}now(){return performance.now()}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${t}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(e)}decode(e,t){return new TextDecoder(t).decode(e)}setTimeoutCustom(e,t){if(typeof window=="undefined"||!H().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(e,t);return}this.functionRefs.push(e),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},t),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let a=this.functionRefs[n.data.index];a(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(H().get("IS_BROWSER")){H().setPlatform("browser",new fR);try{Pn.registerManager(ii.URL_SCHEME,new pR)}catch(e){}try{Pn.registerManager(si.URL_SCHEME,new nR)}catch(e){}}var gR={importFetch:()=>TF()},bb,yR=class{constructor(){this.util=NF(),this.textEncoder=new this.util.TextEncoder}fetch(e,t){return H().global.fetch!=null?H().global.fetch(e,t):(bb==null&&(bb=gR.importFetch()),bb(e,t))}now(){let e=process.hrtime();return e[0]*1e3+e[1]/1e6}encode(e,t){if(t!=="utf-8"&&t!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${t}`);return this.textEncoder.encode(e)}decode(e,t){return e.length===0?"":new this.util.TextDecoder(t).decode(e)}};H().get("IS_NODE")&&!H().get("IS_BROWSER")&&H().setPlatform("node",new yR);function Oe(e,t="float32",n){return t=t||"float32",aa(e),new qt(e,t,n)}function bR(e,t){let n=E(e,"x","cast");if(!ZI(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&n.dtype!=="string"||t!=="string"&&n.dtype==="string")throw new Error("Only strings can be casted to strings");let a={x:n},r={dtype:t};return O.runKernel(Ii,a,r)}var le=L({cast_:bR});function xR(e){let t={x:E(e,"x","clone","string_or_numeric")};return O.runKernel(Li,t)}var or=L({clone_:xR});function Vx(e,t=!1){console.log(e.toString(t))}hS();var vR={buffer:Oe,cast:le,clone:or,print:Vx};$D(vR);var Gt={};Ae(Gt,{browserFiles:()=>CR,browserHTTPRequest:()=>FR,concatenateArrayBuffers:()=>Wx,copyModel:()=>hR,decodeWeights:()=>gS,encodeWeights:()=>VD,fromMemory:()=>RR,fromMemorySync:()=>$S,getLoadHandlers:()=>QD,getModelArtifactsForJSON:()=>Bx,getModelArtifactsForJSONSync:()=>bS,getModelArtifactsInfoForJSON:()=>Dc,getSaveHandlers:()=>JD,getWeightSpecs:()=>xS,http:()=>Gx,isHTTPScheme:()=>Gb,listModels:()=>cR,loadWeights:()=>ER,moveModel:()=>mR,registerLoadRouter:()=>ZD,registerSaveRouter:()=>YD,removeModel:()=>dR,weightsLoaderFactory:()=>ES,withSaveHandler:()=>MR,withSaveHandlerSync:()=>PR});var wR="model",kR=".json",IR=".weights.bin";function bk(e){return new Promise(t=>setTimeout(t)).then(e)}var xl=class{constructor(e){if(!H().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");e.startsWith(xl.URL_SCHEME)&&(e=e.slice(xl.URL_SCHEME.length)),(e==null||e.length===0)&&(e=wR),this.modelJsonFileName=e+kR,this.weightDataFileName=e+IR}async save(e){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let t=window.URL.createObjectURL(new Blob([e.weightData],{type:"application/octet-stream"}));if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:e.weightSpecs}],a=yS(e,n),r=window.URL.createObjectURL(new Blob([JSON.stringify(a)],{type:"application/json"})),s=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(s.download=this.modelJsonFileName,s.href=r,await bk(()=>s.dispatchEvent(new MouseEvent("click"))),e.weightData!=null){let i=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;i.download=this.weightDataFileName,i.href=t,await bk(()=>i.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Dc(e)}}}};xl.URL_SCHEME="downloads://";var SR=class{constructor(e){if(e==null||e.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${e}`);this.jsonFile=e[0],this.weightsFiles=e.slice(1)}async load(){return new Promise((e,t)=>{let n=new FileReader;n.onload=a=>{let r=JSON.parse(a.target.result),s=r.modelTopology;if(s==null){t(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(r.weightsManifest==null){t(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){e({modelTopology:s});return}let i=Bx(r,o=>this.loadWeights(o));e(i)},n.onerror=a=>t(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(e){let t=[],n=[];for(let s of e)t.push(...s.weights),n.push(...s.paths);let a=this.checkManifestAndWeightFiles(e),r=n.map(s=>this.loadWeightsFile(s,a[s]));return Promise.all(r).then(s=>[t,Wx(s)])}loadWeightsFile(e,t){return new Promise((n,a)=>{let r=new FileReader;r.onload=s=>{let i=s.target.result;n(i)},r.onerror=s=>a(`Failed to weights data from file of path '${e}'.`),r.readAsArrayBuffer(t)})}checkManifestAndWeightFiles(e){let t=[],n=this.weightsFiles.map(r=>yk(r.name)),a={};for(let r of e)r.paths.forEach(s=>{let i=yk(s);if(t.indexOf(i)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${i}'`);if(t.push(i),n.indexOf(i)===-1)throw new Error(`Weight file with basename '${i}' is not provided.`);a[s]=this.weightsFiles[n.indexOf(i)]});if(t.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${t.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return a}},TR=e=>H().getBool("IS_BROWSER")&&!Array.isArray(e)&&e.startsWith(xl.URL_SCHEME)?NR(e.slice(xl.URL_SCHEME.length)):null;At.registerSaveRouter(TR);function NR(e="model"){return new xl(e)}function CR(e){return new SR(e)}function xk(e,t,n,a){i(e),n=n==null?0:n,a=a==null?1:a,o(n,a);let r=0,s=l=>(l.then(u=>{let p=n+ ++r/e.length*(a-n);return t(p),u}),l);function i(l){A(l!=null&&Array.isArray(l)&&l.length>0,()=>"promises must be a none empty array")}function o(l,u){A(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${l}`),A(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${u}`),A(u>=l,()=>`startFraction must be no more than endFraction, but got startFraction ${l} and endFraction ${u}`)}return Promise.all(e.map(s))}async function CS(e,t){t==null&&(t={});let n=t.fetchFunc==null?H().platform.fetch:t.fetchFunc,a=e.map(u=>n(u,t.requestInit,{isBinary:!0})),r=0,s=.5,i=(t.onProgress==null?await Promise.all(a):await xk(a,t.onProgress,r,s)).map(u=>u.arrayBuffer()),o=.5,l=1;return t.onProgress==null?await Promise.all(i):await xk(i,t.onProgress,o,l)}async function ER(e,t="",n,a){return ES(r=>CS(r,{requestInit:a}))(e,t,n)}function ES(e){return async(t,n="",a)=>{let r=t.map(()=>!1),s={},i=a!=null?a.map(()=>!1):[],o=[];if(t.forEach((h,m)=>{let f=0;h.weights.forEach(g=>{let y="quantization"in g?g.quantization.dtype:g.dtype,b=Wb[y]*mt(g.shape),x=()=>{r[m]=!0,s[m]==null&&(s[m]=[]),s[m].push({manifestEntry:g,groupOffset:f,sizeBytes:b})};a!=null?a.forEach((w,I)=>{w===g.name&&(x(),i[I]=!0)}):x(),o.push(g.name),f+=b})}),!i.every(h=>h)){let h=a.filter((m,f)=>!i[f]);throw new Error(`Could not find weights in manifest with names: ${h.join(", ")}. +Manifest JSON has weights with names: ${o.join(", ")}.`)}let l=r.reduce((h,m,f)=>(m&&h.push(f),h),[]),u=[];l.forEach(h=>{t[h].paths.forEach(m=>{let f=n+(n.endsWith("/")?"":"/")+m;u.push(f)})});let p=await e(u),d={},c=0;return l.forEach(h=>{let m=t[h].paths.length,f=0;for(let x=0;x{let w=g.slice(x.groupOffset,x.groupOffset+x.sizeBytes),I=gS(w,[x.manifestEntry]);for(let T in I)d[T]=I[T]}),c+=m}),d}}var _R="application/octet-stream",AR="application/json",Ux=class{constructor(e,t){if(this.DEFAULT_METHOD="POST",t==null&&(t={}),this.weightPathPrefix=t.weightPathPrefix,this.onProgress=t.onProgress,this.weightUrlConverter=t.weightUrlConverter,t.fetchFunc!=null?(A(typeof t.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=t.fetchFunc):this.fetch=H().platform.fetch,A(e!=null&&e.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(e)&&A(e.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${e.length}).`),this.path=e,t.requestInit!=null&&t.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=t.requestInit||{}}async save(e){if(e.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let t=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);t.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:e.weightSpecs}],a=yS(e,n);t.body.append("model.json",new Blob([JSON.stringify(a)],{type:AR}),"model.json"),e.weightData!=null&&t.body.append("model.weights.bin",new Blob([e.weightData],{type:_R}),"model.weights.bin");let r=await this.fetch(this.path,t);if(r.ok)return{modelArtifactsInfo:Dc(e),responses:[r]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${r.status}.`)}async load(){let e=await this.fetch(this.path,this.requestInit);if(!e.ok)throw new Error(`Request to ${this.path} failed with status code ${e.status}. Please verify this URL points to the model JSON of the model to load.`);let t;try{t=await e.json()}catch(r){let s=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?s+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":s+=" Please make sure the server is serving valid JSON for this request.",new Error(s)}let n=t.modelTopology,a=t.weightsManifest;if(n==null&&a==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Bx(t,r=>this.loadWeights(r))}async loadWeights(e){let t=Array.isArray(this.path)?this.path[1]:this.path,[n,a]=$R(t),r=this.weightPathPrefix||n,s=xS(e),i=[],o=[];for(let u of e)for(let p of u.paths)this.weightUrlConverter!=null?o.push(this.weightUrlConverter(p)):i.push(r+p+a);this.weightUrlConverter&&i.push(...await Promise.all(o));let l=await CS(i,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[s,Wx(l)]}};Ux.URL_SCHEME_REGEX=/^https?:\/\//;function $R(e){let t=e.lastIndexOf("/"),n=e.lastIndexOf("?"),a=e.substring(0,t),r=n>t?e.substring(n):"";return[a+"/",r]}function Gb(e){return e.match(Ux.URL_SCHEME_REGEX)!=null}var _S=(e,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let n=!0;if(Array.isArray(e)?n=e.every(a=>Gb(a)):n=Gb(e),n)return Gx(e,t)}return null};At.registerSaveRouter(_S);At.registerLoadRouter(_S);function Gx(e,t){return new Ux(e,t)}function FR(e,t){return Gx(e,t)}var xb=class{constructor(e){this.modelArtifacts=e}load(){return this.modelArtifacts}},AS=class{constructor(e){this.saveHandler=e}save(e){return this.saveHandler(e)}},DR=class{constructor(e){e.load&&(this.load=()=>Promise.resolve(e.load())),e.save&&(this.save=t=>Promise.resolve(e.save(t)))}};function RR(e,t,n,a){let r=arguments;return new DR($S(...r))}function $S(e,t,n,a){return arguments.length===1?e.modelTopology!=null||e.weightSpecs!=null?new xb(e):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new xb({modelTopology:e})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new xb({modelTopology:e,weightSpecs:t,weightData:n,trainingConfig:a}))}function MR(e){return new AS(e)}function PR(e){return new AS(e)}var FS={};Ae(FS,{confusionMatrix:()=>aM});function OR(e,t,n=!1,a=!1){let r=E(e,"a","matMul"),s=E(t,"b","matMul");[r,s]=Et(r,s);let i={a:r,b:s},o={transposeA:n,transposeB:a};return O.runKernel(ki,i,o)}var Fe=L({matMul_:OR});function LR(e,t,n=1,a=0,r="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let s={indices:E(e,"indices","oneHot","int32")},i={dtype:r,depth:t,onValue:n,offValue:a};return O.runKernel(Yi,s,i)}var vl=L({oneHot_:LR});function zR(){H().set("PROD",!0)}function WR(){H().set("DEBUG",!0)}function BR(){H().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Hx(e){H().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(e+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}FD(Hx);function VR(){O.disposeVariables()}function _a(){return O}function Lh(){return O.memory()}function UR(e){return O.profile(e)}function P(e,t){return O.tidy(e,t)}function Ee(e){Ox(e).forEach(t=>t.dispose())}function Ht(e){return O.keep(e)}function GR(e){return O.time(e)}function HR(e){return O.setBackend(e)}function jR(){return O.ready()}function qR(){return O.backendName}function KR(e){O.removeBackend(e)}function XR(e){return O.findBackend(e)}function YR(e){return O.findBackendFactory(e)}function Hm(e,t,n=1){return O.registerBackend(e,t,n)}function DS(){return O.backend}function ZR(e,t){H().setPlatform(e,t)}function JR(e){let t={input:E(e,"input","imag")};return O.runKernel(Cm,t)}var Rc=L({imag_:JR});function QR(e){let t={x:E(e,"x","neg")};return O.runKernel(mu,t)}var vt=L({neg_:QR});function eM(e){let t={input:E(e,"input","real")};return O.runKernel(Om,t)}var wl=L({real_:eM});function tM(e,t,n){let a=E(e,"x","transpose");if(t==null&&(t=a.shape.map((i,o)=>o).reverse()),A(a.rank===t.length,()=>`Error in transpose: rank of input ${a.rank} must match length of perm ${t}.`),t.forEach(i=>{A(i>=0&&i`All entries in 'perm' must be between 0 and ${a.rank-1} but got ${t}`)}),a.rank<=1)return a.clone();let r={x:a},s={perm:t};return a.dtype==="complex64"?P(()=>{let i=wl(a),o=Rc(a);return i=O.runKernel(Ar,{x:i},s),o=O.runKernel(Ar,{x:o},s),n&&(o=vt(o)),Fr(i,o)}):O.runKernel(Ar,r,s)}var _e=L({transpose_:tM});function nM(e,t,n){let a=E(e,"labels","confusionMatrix"),r=E(t,"predictions","confusionMatrix");A(n==null||n>0&&Number.isInteger(n),()=>`If provided, numClasses must be a positive integer, but got ${n}`),A(a.rank===1,()=>`Expected the rank of labels to be 1, but got ${a.rank}`),A(r.rank===1,()=>`Expected the rank of predictions to be 1, but got ${r.rank}`),A(a.shape[0]===r.shape[0],()=>`Mismatch in the number of examples: ${a.shape[0]} vs. ${r.shape[0]}. Labels and predictions should have the same number of elements.`),A(n>0&&Number.isInteger(n),()=>`numClasses is required to be a positive integer, but got ${n}`);let s=vl(le(a,"int32"),n),i=vl(le(r,"int32"),n),o=_e(s),l=Fe(o,i);return le(l,"int32")}var aM=L({confusionMatrix_:nM}),Lu={};Ae(Lu,{assertAndGetBroadcastShape:()=>ut,getBroadcastDims:()=>RS,getReductionAxes:()=>Wt});function RS(e,t){let n=e.length,a=[];for(let r=0;r1&&i===1&&a.unshift(s)}return a}function Wt(e,t){let n=[];for(let a=0;a1)&&n.unshift(s)}return n}function ut(e,t){let n=[],a=Math.max(e.length,t.length);for(let r=0;rpM,fromPixelsAsync:()=>lM,toPixels:()=>uM});function Mc(e,t,n){if(bi(e),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let a=pr(e,n);if(a.length!==3&&a.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return Ss(e,t,a,n)}var Bs;function MS(e,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(e==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let n=!1,a=!1,r=!1,s=!1,i=!1,o=!1;if(e.data instanceof Uint8Array)n=!0;else if(typeof ImageData!="undefined"&&e instanceof ImageData)a=!0;else if(typeof HTMLVideoElement!="undefined"&&e instanceof HTMLVideoElement)r=!0;else if(typeof HTMLImageElement!="undefined"&&e instanceof HTMLImageElement)s=!0;else if(e.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&e instanceof ImageBitmap)o=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${e.constructor.name}`);if(Rh(Dh,O.backendName)!=null){let c={pixels:e},h={numChannels:t};return O.runKernel(Dh,c,h)}let[l,u]=r?[e.videoWidth,e.videoHeight]:[e.width,e.height],p;if(i)p=e.getContext("2d").getImageData(0,0,l,u).data;else if(a||n)p=e.data;else if(s||r||o){if(Bs==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Bs=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Bs=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Bs.canvas.width=l,Bs.canvas.height=u,Bs.drawImage(e,0,0,l,u),p=Bs.getImageData(0,0,l,u).data}let d;if(t===4)d=new Int32Array(p);else{let c=l*u;d=new Int32Array(c*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(n.dtype!=="float32"&&n.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${n.dtype}. Please use float32 or int32 tensors.`);let i=await n.data(),o=n.dtype==="float32"?255:1,l=new Uint8ClampedArray(r*a*4);for(let u=0;u1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${h}.`)}else if(n.dtype==="int32"&&(h<0||h>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${h}.`);s===1?(p[0]=h*o,p[1]=h*o,p[2]=h*o):p[c]=h*o}let d=u*4;l[d+0]=Math.round(p[0]),l[d+1]=Math.round(p[1]),l[d+2]=Math.round(p[2]),l[d+3]=Math.round(p[3])}if(t!=null){t.width=r,t.height=a;let u=t.getContext("2d"),p=new ImageData(l,r,a);u.putImageData(p,0,0)}return n!==e&&n.dispose(),l}var pM=L({fromPixels_:MS}),jx={};Ae(jx,{prepareAndValidate:()=>PS});function PS(e,t){let n=e.shape.length,a=t.shape.length;if(n<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${n}.`);if(a<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${a}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[a-1]>n)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[a-1]} vs. ${n}`);if(mt(e.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${e.shape}.`);let r=t.shape,s=r[r.length-1],i=1;for(let d=0;dd/u),1].slice(0,s);return[l,i,u,p]}var qx={};Ae(qx,{calculateShapes:()=>OS,validateInput:()=>Xx,validateUpdateShape:()=>Kx});function Kx(e,t,n){let a=t.rank>1?t.shape[t.rank-1]:1,r=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${n.shape}, indices.shape: ${t.shape}, shape: ${e}, sliceDim: ${a}, and batchDim: ${r}.`;if(n.rank1?t.shape[a-1]:1,s=n.length,i=1;for(let d=r;ddM,computeFlatOffset:()=>yM,computeOutShape:()=>mM,getNormalizedAxes:()=>fM,isSliceContinous:()=>gM,maskToAxes:()=>hM,parseSliceParams:()=>jS,sliceInfo:()=>bM,startForAxis:()=>GS,startIndicesWithElidedDims:()=>BS,stopForAxis:()=>HS,stopIndicesWithElidedDims:()=>VS,stridesForAxis:()=>US,stridesWithElidedDims:()=>LS});var Hb=-2,cM=-1;function dM(e,t,n){let a=e.shape.length;A(a===t.length,()=>`Error in slice${a}D: Length of begin ${t} must match the rank of the array (${a}).`),A(a===n.length,()=>`Error in slice${a}D: Length of size ${n} must match the rank of the array (${a}).`);for(let r=0;r`Error in slice${a}D: begin[${r}] + size[${r}] (${t[r]+n[r]}) would overflow input.shape[${r}] (${e.shape[r]})`)}function hM(e){let t=[],n=0;for(;e>0;)e&1&&t.push(n),e/=2,n++;return t}function mM(e,t,n){let a=[];for(let r=0;r0){let h=t[0],m=n+1;p=BS(i,h,m,a,e),d=VS(o,h,m,r,e),c=LS(s,h,m,e)}else for(let h=0;h-1)s[o]=0;else{let l=zS(t,n,o),u=a[l];e&1<-1)s[o]=Number.MAX_SAFE_INTEGER;else{let l=zS(t,n,o),u=a[l];e&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),i=Xp(0,i,l-1),i}function HS(e,t,n,a,r,s){let i=t[r],o=n[r]||1;(e&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let l=a[r];return i<0&&(i+=l),o>0?i=Xp(0,i,l):i=Xp(-1,i,l-1),i}function gM(e,t,n){let a=n.length;for(let r=0;r1){a=r;break}for(let r=a+1;r0||n[r]!==e[r])return!1;return!0}function yM(e,t){let n=e.length>0?e[e.length-1]:1;for(let a=0;a{A(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return n==null?s=new Array(r).fill(-1):typeof n=="number"?s=[n,...new Array(r-1).fill(-1)]:n.lengthi>=0?i:(A(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${o}.`),e.shape[o]-a[o])),[a,s]}function bM(e,t,n,a,r,s,i,o,l){let u;if(a==null?(u=new Array(t.length),u.fill(1)):u=a,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let p=!1,d={dims:u.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:n.slice(),strides:u.slice(),beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};for(let b=0;b0?0:-1,c.strides[b]>0?w:w-1];if(x&&c.strides[b]<=0)throw Error("only stride 1 allowed on non-range indexing.");f=f&&c.strides[b]===1;let C=!!(c.beginMask&1<=w)throw Error(`slice index ${c.begin[b]} of dimension ${b} out of bounds.`)}else c.begin[b]=vk(c.begin[b],0,c.strides[b],w,I,T),c.end[b]=vk(c.end[b],1,c.strides[b],w,I,T);let R=c.strides[b]===1&&c.begin[b]===0&&c.end[b]===w;h=h&&R,m=m&&(b===0&&c.strides[b]===1||R)}else h=h&&c.strides[b]===1&&C,m=m&&(b===0&&c.strides[b]===1||C);let _,$=!1;if(c.beginValid&&c.endValid?(_=c.end[b]-c.begin[b],$=!0):x?(_=1,$=!0):C&&w>=0&&(c.strides[b]<0?_=-w:_=w,$=!0),$){let R;_===0||_<0!=c.strides[b]<0?R=0:R=Math.trunc(_/c.strides[b])+(_%c.strides[b]!==0?1:0),g.push(R)}else g.push(-1)}for(let b=0;b=0?y.push(g[x]):x===Hb&&y.push(1)}return{finalShapeSparse:y.filter((b,x)=>c.finalShapeGatherIndices[x]!==Hb),finalShape:y,isIdentity:h,sliceDim0:m,isSimpleSlice:f,begin:c.begin,end:c.end,strides:c.strides}}function xM(e,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let n=0;t.beginValid=e.begin!=null,t.endValid=e.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let a=0;a0?s[t]:s[t+1&1];{let i=e<0?a+e:e;return is[1]?s[1]:i}}var ne={};Ae(ne,{Serializable:()=>qS,SerializationMap:()=>js,registerClass:()=>Ts});var qS=class{getClassName(){return this.constructor.className}static fromConfig(e,t){return new e(t)}},js=class{constructor(){this.classNameMap={}}static getMap(){return js.instance==null&&(js.instance=new js),js.instance}static register(e){js.getMap().classNameMap[e.className]=[e,e.fromConfig]}};function Ts(e){A(e.className!=null,()=>"Class being registered does not have the static className property defined."),A(typeof e.className=="string",()=>"className is required to be a string, but got type "+typeof e.className),A(e.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),js.register(e)}var KS={};Ae(KS,{TEST_EPSILON_FLOAT16:()=>XS,createVideoElement:()=>CM,encodeStrings:()=>YS,expectArrayBuffersEqual:()=>NM,expectArraysClose:()=>wM,expectArraysEqual:()=>IM,expectNumbersClose:()=>SM,expectPromiseToFail:()=>kM,expectValuesInRange:()=>TM,play:()=>EM,testEpsilon:()=>Yx});var vM=.001,XS=.1;function wM(e,t,n){return n==null&&(n=Yx()),jb(e,t,(a,r)=>Zx(a,r,n))}function Yx(){return O.backend.floatPrecision()===32?vM:XS}function jb(e,t,n){let a=!0;if((hn(e)||hn(t))&&(a=!1),hn(e)&&hn(t)&&(a=!0),a){let i=e.constructor.name,o=t.constructor.name;if(i!==o)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${o}`)}if(Array.isArray(e)&&Array.isArray(t)){let i=pr(e),o=pr(t);if(!xs(i,o))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${o}]`)}let r=hn(e)?e:ti(e),s=hn(t)?t:ti(t);if(r.length!==s.length)throw new Error(`Arrays have different lengths actual: ${r.length} vs expected: ${s.length}. Actual: ${r}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function vM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Qr(e)||Qr(e[0])||Qr(t)||Qr(t[0])?Bb(e,n,(a,r)=>a==r):Bb(e,t,(a,r)=>Kx(a,r,0))}function wM(e,t,n){if(n==null&&(n=qx()),!Kx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Kx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function kM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function IM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function TM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var NM="4.0.0";function CM(e,t){let n=_(e,"a","add"),a=_(t,"b","add");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(gs,r)}var Y=L({add_:CM});function _M(e,t){let n=_(e,"a","floorDiv"),a=_(t,"b","floorDiv");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Ai,r)}var Hm=L({floorDiv_:_M});function EM(e,t){let n=_(e,"a","div"),a=_(t,"b","div");if([n,a]=_t(n,a),n.dtype==="int32"&&a.dtype==="int32")return Hm(n,a);let r={a:n,b:a},s={};return O.runKernel(Ci,r,s)}var he=L({div_:EM});function $M(e,t){let n=_(e,"a","mul"),a=_(t,"b","mul");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Gi,r)}var z=L({mul_:$M});function AM(e){let t=_(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(hc,n)}else{let n={x:t};return O.runKernel(Dl,n)}}var Lt=L({abs_:AM});function FM(e){let t={x:_(e,"x","acos")};return O.runKernel(Rl,t)}var Xx=L({acos_:FM});function DM(e){let t={x:_(e,"x","acosh")};return O.runKernel(Ml,t)}var Yx=L({acosh_:DM});function RM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>_(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!fs(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(fi,a)}var KS=L({addN_:RM});function MM(e,t=null,n=!1){let a={x:_(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(Pl,a,r)}var jm=L({all_:MM});function PM(e,t=null,n=!1){let a={x:_(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Ol,a,r)}var Qp=L({any_:PM});function OM(e,t=0){let n={x:_(e,"x","argMax")},a={axis:t};return O.runKernel(gi,n,a)}var ri=L({argMax_:OM});function LM(e,t=0){let n={x:_(e,"x","argMin")},a={axis:t};return O.runKernel(cc,n,a)}var Zx=L({argMin_:LM});function zM(e){let t={x:_(e,"x","asin")};return O.runKernel(Ll,t)}var Jx=L({asin_:zM});function WM(e){let t={x:_(e,"x","asinh")};return O.runKernel(zl,t)}var Qx=L({asinh_:WM});function BM(e){let t={x:_(e,"x","atan")};return O.runKernel(Wl,t)}var ev=L({atan_:BM});function VM(e,t){let n=_(e,"a","atan2"),a=_(t,"b","atan2");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(Vl,r)}var tv=L({atan2_:VM});function UM(e){let t={x:_(e,"x","atanh")};return O.runKernel(Bl,t)}var nv=L({atanh_:UM});function GM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=ZS(r);return Mc(e,o,n,s,a,null,null,l)}function XS(e,t,n,a,r,s,i="channelsLast"){let[o,l]=Lh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Mc(e,u,n,a,r,s,!1,i)}function HM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=Vb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return YS(e,p,n,a,r,!1,d,s)}function Mc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=Lh(n),[y,b]=Lh(a),x=cl(c,y),w=cl(h,b),{padInfo:I,outHeight:T,outWidth:C}=KM(r,u,p,f,g,x,w,s,o),E=i?m*d:m,$;return o==="channelsFirst"?$=[l,E,T,C]:o==="channelsLast"&&($=[l,T,C,E]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:E,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function YS(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=Vb(n),[w,I,T]=Vb(a),C=cl(h,w),E=cl(m,I),$=cl(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=XM(r,u,p,d,y,b,x,C,E,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:E,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function jM(e,t,n,a,r){a==null&&(a=av(e,t,n));let s=e[0],i=e[1],o=Ks((s-t+2*a)/n+1,r),l=Ks((i-t+2*a)/n+1,r);return[o,l]}function qM(e,t,n,a,r,s){r==null&&(r=av(e,t,a));let i=e[0],o=e[1],l=e[2],u=Ks((i-t+2*r)/a+1,s),p=Ks((o-t+2*r)/a+1,s),d=Ks((l-t+2*r)/a+1,s);return[u,p,d,n]}function av(e,t,n,a=1){let r=cl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function Lh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function Vb(e){return typeof e=="number"?[e,e,e]:e}function cl(e,t){return t<=1?e:e+(e-1)*(t-1)}function KM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=jM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Ks((t-s+c+h)/a+1,o),d=Ks((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function XM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=qM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Ks(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function os(e){let[t,n,a]=Lh(e);return t===1&&n===1&&a===1}function cr(e,t){return os(e)||os(t)}function ZS(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(hl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(hl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function YM(e,t){let n={x:_(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(vu,n,a)}var W=L({reshape_:YM});function ZM(e,t,n,a,r){let s=_(e,"x","avgPool","float32"),i=1;A(cr(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(yi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ya=L({avgPool_:ZM});function JM(e,t,n,a,r,s="NDHWC"){let i=_(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(dc,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var rv=L({avgPool3d_:JM});function QM(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=Jp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),n.length===1)return ir(n[0]);let a=n,r={axis:t};return O.runKernel(Gl,a,r)}var Ze=L({concat_:QM});function eP(e){let t={x:_(e,"x","sigmoid","float32")};return O.runKernel(ro,t)}var ha=L({sigmoid_:eP});function tP(e,t,n){let a=_(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(Su,r,s)}var Be=L({slice_:tP});function nP(e){let t={x:_(e,"x","tanh","float32")};return O.runKernel(co,t)}var si=L({tanh_:nP});function aP(e,t,n,a,r,s){let i=_(e,"forgetBias","basicLSTMCell"),o=_(t,"lstmKernel","basicLSTMCell"),l=_(n,"lstmBias","basicLSTMCell"),u=_(a,"data","basicLSTMCell"),p=_(r,"c","basicLSTMCell"),d=_(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(ha(b),si(x)),z(p,ha(Y(i,w)))),C=z(si(T),ha(I));return[T,C]}var JS=L({basicLSTMCell_:aP});function rP(e,t,n){let a=_(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(Ul,s,i)}var Pc=L({batchToSpaceND_:rP});function sP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function iP(e,t,n,a,r,s){s==null&&(s=.001);let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;a!=null&&(p=_(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:sP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Fi,d,c);return W(h,i.shape)}var ks=L({batchNorm_:iP});function oP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var sv=L({batchNorm2d_:oP});function lP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var iv=L({batchNorm3d_:lP});function uP(e,t,n,a,r,s){let i=_(e,"x","batchNorm"),o=_(t,"mean","batchNorm"),l=_(n,"variance","batchNorm"),u;r!=null&&(u=_(r,"scale","batchNorm"));let p;return a!=null&&(p=_(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),ks(i,o,l,p,u,s)}var ov=L({batchNorm4d_:uP});function pP(e,t,n){let a=_(e,"x","bincount"),r=_(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(dm,s,i)}var lv=L({bincount_:pP});function cP(e,t){let n=_(e,"s0","broadcastArgs","int32"),a=_(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(hm,r)}var QS=L({broadcastArgs_:cP});function dP(e,t){let n=_(e,"broadcastTo","x"),a=n.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return ir(n);let i={x:n},o={reps:s};return O.runKernel(bs,i,o)}var Xs=L({broadcastTo_:dP});function hP(e){let t={x:_(e,"x","ceil","float32")};return O.runKernel(vi,t)}var uv=L({ceil_:hP});function gn(e,t,n){let a={shape:e,value:t,dtype:n};return O.runKernel(gc,{},a)}function mP(e,t,n){let a=_(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return gn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ys,r,s)}var en=L({clipByValue_:mP});function fP(e){return Ze(e,0)}var pv=L({concat1d_:fP});function gP(e,t){return Ze(e,t)}var cv=L({concat2d_:gP});function yP(e,t){return Ze(e,t)}var dv=L({concat3d_:yP});function bP(e,t){return Ze(e,t)}var hv=L({concat4d_:bP});function xP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","conv2d","float32"),l=_(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(wi,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var At=L({conv2d_:xP});function vP(e,t,n,a,r="NWC",s=1,i){let o=_(e,"x","conv1d"),l=_(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Nn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(cr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=At(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var qm=L({conv1d_:vP});function wP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(ki,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var mv=L({conv2DBackpropInput_:wP});function kP(e,t,n,a,r,s){let i=_(e,"x","conv2dTranspose"),o=_(t,"filter","conv2dTranspose");return mv(n,i,o,a,r,"NHWC",s)}var Km=L({conv2dTranspose_:kP});function IP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=_(e,"x","conv3d"),o=_(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(cr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(mc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var fv=L({conv3d_:IP});function SP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(ym,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var eT=L({conv3DBackpropInput_:SP});function TP(e,t,n,a,r){let s=_(e,"x","conv3dTranspose"),i=_(t,"filter","conv3dTranspose");return eT(n,s,i,a,r)}var gv=L({conv3dTranspose_:TP});function NP(e){let t={x:_(e,"x","cos","float32")};return O.runKernel(Ii,t)}var Oc=L({cos_:NP});function CP(e){let t={x:_(e,"x","cosh","float32")};return O.runKernel(Si,t)}var Xm=L({cosh_:CP});function _P(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Hl,r,s)}var ec=L({cumprod_:_P});function EP(e,t=0,n=!1,a=!1){let r={x:_(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Ti,r,s)}var Ym=L({cumsum_:EP});function $P(e,t,n,a=!1){let r=_(e,"x","denseBincount"),s=_(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(bm,i,o)}var zh=L({denseBincount_:$P});function AP(e,t,n="NHWC"){let a=_(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function kM(e,t){e().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function IM(e,t){let n=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return ns(e)||ns(e[0])||ns(t)||ns(t[0])?jb(e,n,(a,r)=>a==r):jb(e,t,(a,r)=>Zx(a,r,0))}function SM(e,t,n){if(n==null&&(n=Yx()),!Zx(e,t,n))throw new Error(`Numbers differ: actual === ${e}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function Zx(e,t,n){return!isFinite(e)&&!isFinite(t)?!0:!(isNaN(e)||isNaN(t)||Math.abs(e-t)>n)}function TM(e,t,n){for(let a=0;an)throw new Error(`Value out of range:${e[a]} low: ${t}, high: ${n}`)}function NM(e,t){let n=new Float32Array(e),a=new Float32Array(t);if(n.length!==a.length)throw new Error(`Expected ArrayBuffer to be of length ${a.length}, but it was ${n.length}`);for(let r=0;r{t.addEventListener("loadeddata",a=>n(t)),t.load()})}async function EM(e){await e.play(),"requestVideoFrameCallback"in e&&await new Promise(t=>{e.requestVideoFrameCallback(t)})}var _M="4.1.0";function AM(e,t){let n=E(e,"a","add"),a=E(t,"b","add");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(vs,r)}var Y=L({add_:AM});function $M(e,t){let n=E(e,"a","floorDiv"),a=E(t,"b","floorDiv");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Mi,r)}var jm=L({floorDiv_:$M});function FM(e,t){let n=E(e,"a","div"),a=E(t,"b","div");if([n,a]=Et(n,a),n.dtype==="int32"&&a.dtype==="int32")return jm(n,a);let r={a:n,b:a},s={};return O.runKernel($i,r,s)}var me=L({div_:FM});function DM(e,t){let n=E(e,"a","mul"),a=E(t,"b","mul");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Xi,r)}var z=L({mul_:DM});function RM(e){let t=E(e,"x","abs");if(t.dtype==="complex64"){let n={x:t};return O.runKernel(mc,n)}else{let n={x:t};return O.runKernel(Pl,n)}}var Lt=L({abs_:RM});function MM(e){let t={x:E(e,"x","acos")};return O.runKernel(Ol,t)}var Jx=L({acos_:MM});function PM(e){let t={x:E(e,"x","acosh")};return O.runKernel(Ll,t)}var Qx=L({acosh_:PM});function OM(e){A(Array.isArray(e),()=>"The argument passed to tf.addN() must be a list of tensors"),A(e.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${e.length}`);let t=e.map((r,s)=>E(r,`tensors${s}`,"addN")),n=t[0];t.forEach(r=>{if(r.dtype!==n.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(r=>{if(!xs(r.shape,n.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let a=t;return O.runKernel(xi,a)}var ZS=L({addN_:OM});function LM(e,t=null,n=!1){let a={x:E(e,"x","all","bool")},r={axis:t,keepDims:n};return O.runKernel(zl,a,r)}var qm=L({all_:LM});function zM(e,t=null,n=!1){let a={x:E(e,"x","any","bool")},r={axis:t,keepDims:n};return O.runKernel(Wl,a,r)}var ec=L({any_:zM});function WM(e,t=0){let n={x:E(e,"x","argMax")},a={axis:t};return O.runKernel(vi,n,a)}var oi=L({argMax_:WM});function BM(e,t=0){let n={x:E(e,"x","argMin")},a={axis:t};return O.runKernel(dc,n,a)}var ev=L({argMin_:BM});function VM(e){let t={x:E(e,"x","asin")};return O.runKernel(Bl,t)}var tv=L({asin_:VM});function UM(e){let t={x:E(e,"x","asinh")};return O.runKernel(Vl,t)}var nv=L({asinh_:UM});function GM(e){let t={x:E(e,"x","atan")};return O.runKernel(Ul,t)}var av=L({atan_:GM});function HM(e,t){let n=E(e,"a","atan2"),a=E(t,"b","atan2");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(Hl,r)}var rv=L({atan2_:HM});function jM(e){let t={x:E(e,"x","atanh")};return O.runKernel(Gl,t)}var sv=L({atanh_:jM});function qM(e,t,n,a,r="NHWC",s){let i=e[3],o=[...t,i],l=eT(r);return Pc(e,o,n,s,a,null,null,l)}function JS(e,t,n,a,r,s,i="channelsLast"){let[o,l]=zh(t),u;if(i==="channelsLast")u=[o,l,e[3],e[3]];else if(i==="channelsFirst")u=[o,l,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return Pc(e,u,n,a,r,s,!1,i)}function KM(e,t,n,a,r,s,i="NDHWC"){let[o,l,u]=qb(t),p,d;if(i==="NDHWC")d="channelsLast",p=[o,l,u,e[4],e[4]];else if(i==="NCDHW")d="channelsFirst",p=[o,l,u,e[1],e[1]];else throw new Error(`Unknown dataFormat ${i}`);return QS(e,p,n,a,r,!1,d,s)}function Pc(e,t,n,a,r,s,i=!1,o="channelsLast"){let[l,u,p,d]=[-1,-1,-1,-1];if(o==="channelsLast")[l,u,p,d]=e;else if(o==="channelsFirst")[l,d,u,p]=e;else throw new Error(`Unknown dataFormat ${o}`);let[c,h,,m]=t,[f,g]=zh(n),[y,b]=zh(a),x=fl(c,y),w=fl(h,b),{padInfo:I,outHeight:T,outWidth:C}=ZM(r,u,p,f,g,x,w,s,o),_=i?m*d:m,$;return o==="channelsFirst"?$=[l,_,T,C]:o==="channelsLast"&&($=[l,T,C,_]),{batchSize:l,dataFormat:o,inHeight:u,inWidth:p,inChannels:d,outHeight:T,outWidth:C,outChannels:_,padInfo:I,strideHeight:f,strideWidth:g,filterHeight:c,filterWidth:h,effectiveFilterHeight:x,effectiveFilterWidth:w,dilationHeight:y,dilationWidth:b,inShape:e,outShape:$,filterShape:t}}function QS(e,t,n,a,r,s=!1,i="channelsLast",o){let[l,u,p,d,c]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[l,u,p,d,c]=e;else if(i==="channelsFirst")[l,c,u,p,d]=e;else throw new Error(`Unknown dataFormat ${i}`);let[h,m,f,,g]=t,[y,b,x]=qb(n),[w,I,T]=qb(a),C=fl(h,w),_=fl(m,I),$=fl(f,T),{padInfo:R,outDepth:F,outHeight:S,outWidth:M}=JM(r,u,p,d,y,b,x,C,_,$,o),B=s?g*c:g,U;return i==="channelsFirst"?U=[l,B,F,S,M]:i==="channelsLast"&&(U=[l,F,S,M,B]),{batchSize:l,dataFormat:i,inDepth:u,inHeight:p,inWidth:d,inChannels:c,outDepth:F,outHeight:S,outWidth:M,outChannels:B,padInfo:R,strideDepth:y,strideHeight:b,strideWidth:x,filterDepth:h,filterHeight:m,filterWidth:f,effectiveFilterDepth:C,effectiveFilterHeight:_,effectiveFilterWidth:$,dilationDepth:w,dilationHeight:I,dilationWidth:T,inShape:e,outShape:U,filterShape:t}}function XM(e,t,n,a,r){a==null&&(a=iv(e,t,n));let s=e[0],i=e[1],o=Zs((s-t+2*a)/n+1,r),l=Zs((i-t+2*a)/n+1,r);return[o,l]}function YM(e,t,n,a,r,s){r==null&&(r=iv(e,t,a));let i=e[0],o=e[1],l=e[2],u=Zs((i-t+2*r)/a+1,s),p=Zs((o-t+2*r)/a+1,s),d=Zs((l-t+2*r)/a+1,s);return[u,p,d,n]}function iv(e,t,n,a=1){let r=fl(t,a);return Math.floor((e[0]*(n-1)-n+r)/2)}function zh(e){return typeof e=="number"?[e,e,e]:e.length===2?[e[0],e[1],1]:e}function qb(e){return typeof e=="number"?[e,e,e]:e}function fl(e,t){return t<=1?e:e+(e-1)*(t-1)}function ZM(e,t,n,a,r,s,i,o,l){let u,p,d;if(typeof e=="number"){u={top:e,bottom:e,left:e,right:e,type:e===0?"VALID":"NUMBER"};let c=XM([t,n],s,a,e,o);p=c[0],d=c[1]}else if(e==="same"){p=Math.ceil(t/a),d=Math.ceil(n/r);let c=Math.max(0,(p-1)*a+s-t),h=Math.max(0,(d-1)*r+i-n),m=Math.floor(c/2),f=c-m,g=Math.floor(h/2),y=h-g;u={top:m,bottom:f,left:g,right:y,type:"SAME"}}else if(e==="valid")u={top:0,bottom:0,left:0,right:0,type:"VALID"},p=Math.ceil((t-s+1)/a),d=Math.ceil((n-i+1)/r);else if(typeof e=="object"){let c=l==="channelsLast"?e[1][0]:e[2][0],h=l==="channelsLast"?e[1][1]:e[2][1],m=l==="channelsLast"?e[2][0]:e[3][0],f=l==="channelsLast"?e[2][1]:e[3][1];u={top:c,bottom:h,left:m,right:f,type:c===0&&h===0&&m===0&&f===0?"VALID":"EXPLICIT"},p=Zs((t-s+c+h)/a+1,o),d=Zs((n-i+m+f)/r+1,o)}else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:u,outHeight:p,outWidth:d}}function JM(e,t,n,a,r,s,i,o,l,u,p){let d,c,h,m;if(typeof e=="number"){d={top:e,bottom:e,left:e,right:e,front:e,back:e,type:e===0?"VALID":"NUMBER"};let f=YM([t,n,a,1],o,1,r,e,p);c=f[0],h=f[1],m=f[2]}else if(e==="same"){c=Math.ceil(t/r),h=Math.ceil(n/s),m=Math.ceil(a/i);let f=(c-1)*r+o-t,g=(h-1)*s+l-n,y=(m-1)*i+u-a,b=Math.floor(f/2),x=f-b,w=Math.floor(g/2),I=g-w,T=Math.floor(y/2),C=y-T;d={top:w,bottom:I,left:T,right:C,front:b,back:x,type:"SAME"}}else if(e==="valid")d={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},c=Math.ceil((t-o+1)/r),h=Math.ceil((n-l+1)/s),m=Math.ceil((a-u+1)/i);else throw Error(`Unknown padding parameter: ${e}`);return{padInfo:d,outDepth:c,outHeight:h,outWidth:m}}function Zs(e,t){if(!t)return Math.trunc(e);switch(t){case"round":return Math.round(e);case"ceil":return Math.ceil(e);case"floor":return Math.floor(e);default:throw new Error(`Unknown roundingMode ${t}`)}}function cs(e){let[t,n,a]=zh(e);return t===1&&n===1&&a===1}function hr(e,t){return cs(e)||cs(t)}function eT(e){if(e==="NHWC")return"channelsLast";if(e==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${e}`)}function Nn(e,t,n){if(n!=null){if(typeof t=="string")throw Error(`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);if(typeof t=="number")A(yl(t),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${t}.`);else if(typeof t=="object")t.forEach(a=>{a.forEach(r=>{A(yl(r),()=>`Error in ${e}: pad must be an integer when using dimRoundingMode ${n} but got pad ${r}.`)})});else throw Error(`Error in ${e}: Unknown padding parameter: ${t}`)}}function QM(e,t){let n={x:E(e,"x","reshape","string_or_numeric")},a={shape:t};return O.runKernel(wu,n,a)}var W=L({reshape_:QM});function eP(e,t,n,a,r){let s=E(e,"x","avgPool","float32"),i=1;A(hr(n,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`);let o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${o.rank}.`),Nn("avgPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(wi,u,p);return d=le(d,s.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var ba=L({avgPool_:eP});function tP(e,t,n,a,r,s="NDHWC"){let i=E(e,"x","avgPool3d","float32"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("avgPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(hc,u,p);return d=le(d,o.dtype),l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var ov=L({avgPool3d_:tP});function nP(e,t=0){A(e.length>=1,()=>"Pass at least one tensor to concat");let n=Qp(e,"tensors","concat","string_or_numeric");if(n[0].dtype==="complex64"&&n.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),n.length===1)return or(n[0]);let a=n,r={axis:t};return O.runKernel(ql,a,r)}var Ze=L({concat_:nP});function aP(e){let t={x:E(e,"x","sigmoid","float32")};return O.runKernel(po,t)}var ha=L({sigmoid_:aP});function rP(e,t,n){let a=E(e,"x","slice","string_or_numeric");if(a.rank===0)throw new Error("Slicing scalar is not possible");let r={x:a},s={begin:t,size:n};return O.runKernel(Tu,r,s)}var Be=L({slice_:rP});function sP(e){let t={x:E(e,"x","tanh","float32")};return O.runKernel(bo,t)}var li=L({tanh_:sP});function iP(e,t,n,a,r,s){let i=E(e,"forgetBias","basicLSTMCell"),o=E(t,"lstmKernel","basicLSTMCell"),l=E(n,"lstmBias","basicLSTMCell"),u=E(a,"data","basicLSTMCell"),p=E(r,"c","basicLSTMCell"),d=E(s,"h","basicLSTMCell"),c=Ze([u,d],1),h=Fe(c,o),m=Y(h,l),f=m.shape[0],g=m.shape[1]/4,y=[f,g],b=Be(m,[0,0],y),x=Be(m,[0,g],y),w=Be(m,[0,g*2],y),I=Be(m,[0,g*3],y),T=Y(z(ha(b),li(x)),z(p,ha(Y(i,w)))),C=z(li(T),ha(I));return[T,C]}var tT=L({basicLSTMCell_:iP});function oP(e,t,n){let a=E(e,"x","batchToSpaceND"),r=t.reduce((o,l)=>o*l);A(a.rank>=1+t.length,()=>`input rank is ${a.rank} but should be > than blockShape.length ${t.length}`),A(n.length===t.length,()=>`crops.length is ${n.length} but should be equal to blockShape.length ${t.length}`),A(a.shape[0]%r===0,()=>`input tensor batch is ${a.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${r}`);let s={x:a},i={blockShape:t,crops:n};return O.runKernel(jl,s,i)}var Oc=L({batchToSpaceND_:oP});function lP(e){let t;return e.rank===0||e.rank===1?t=W(e,[1,1,1,e.size]):e.rank===2?t=W(e,[1,1,e.shape[0],e.shape[1]]):e.rank===3?t=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]):t=e,t}function uP(e,t,n,a,r,s){s==null&&(s=.001);let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;a!=null&&(p=E(a,"offset","batchNorm")),A(o.rank===l.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),A(p==null||o.rank===p.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),A(u==null||o.rank===u.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let d={x:lP(i),scale:u,offset:p,mean:o,variance:l},c={varianceEpsilon:s},h=O.runKernel(Pi,d,c);return W(h,i.shape)}var Ns=L({batchNorm_:uP});function pP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),A(o.rank===2||o.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${o.rank}.`),A(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===2||p.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var lv=L({batchNorm2d_:pP});function cP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),A(o.rank===3||o.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${o.rank}.`),A(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===3||p.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var uv=L({batchNorm3d_:cP});function dP(e,t,n,a,r,s){let i=E(e,"x","batchNorm"),o=E(t,"mean","batchNorm"),l=E(n,"variance","batchNorm"),u;r!=null&&(u=E(r,"scale","batchNorm"));let p;return a!=null&&(p=E(a,"offset","batchNorm")),A(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),A(o.rank===4||o.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${o.rank}.`),A(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${l.rank}.`),u!=null&&A(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${u.rank}.`),p!=null&&A(p.rank===4||p.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${p.rank}.`),Ns(i,o,l,p,u,s)}var pv=L({batchNorm4d_:dP});function hP(e,t,n){let a=E(e,"x","bincount"),r=E(t,"weights","bincount");A(a.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${a.dtype}`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(r.size===a.size||r.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${a.shape}, weights shape: ${r.shape}.`);let s={x:a,weights:r},i={size:n};return O.runKernel(hm,s,i)}var cv=L({bincount_:hP});function mP(e,t){let n=E(e,"s0","broadcastArgs","int32"),a=E(t,"s1","broadcastArgs","int32");if(n.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${n.rank}`);if(a.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${a.rank}`);let r={s0:n,s1:a};return O.runKernel(mm,r)}var nT=L({broadcastArgs_:mP});function fP(e,t){let n=E(e,"broadcastTo","x"),a=n.shape;if(aa(t),t.lengthn.rank){let l=n.shape.slice();for(;l.length=0;l--)if(r[l]===t[l])s[l]=1;else if(n.shape[l]!==1)throw new Error(`broadcastTo(): [${a}] cannot be broadcast to [${t}].`);if(s.map((l,u)=>l>1?u:-1).filter(l=>l>=0).length===0)return or(n);let i={x:n},o={reps:s};return O.runKernel(ks,i,o)}var Js=L({broadcastTo_:fP});function gP(e){let t={x:E(e,"x","ceil","float32")};return O.runKernel(Si,t)}var dv=L({ceil_:gP});function yn(e,t,n){aa(e);let a={shape:e,value:t,dtype:n};return O.runKernel(yc,{},a)}function yP(e,t,n){let a=E(e,"x","clipByValue");if(A(t<=n,()=>`Error in clip: min (${t}) must be less than or equal to max (${n}).`),t===n)return yn(a.shape,t,a.dtype);let r={x:a},s={clipValueMin:t,clipValueMax:n};return O.runKernel(ws,r,s)}var tn=L({clipByValue_:yP});function bP(e){return Ze(e,0)}var hv=L({concat1d_:bP});function xP(e,t){return Ze(e,t)}var mv=L({concat2d_:xP});function vP(e,t){return Ze(e,t)}var fv=L({concat3d_:vP});function wP(e,t){return Ze(e,t)}var gv=L({concat4d_:wP});function kP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","conv2d","float32"),l=E(t,"filter","conv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${l.rank}.`),Nn("conv2d",a,i);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in conv2d: depth of input (${d}) must match input depth for filter ${l.shape[2]}.`),A(hr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ti,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ft=L({conv2d_:kP});function IP(e,t,n,a,r="NWC",s=1,i){let o=E(e,"x","conv1d"),l=E(t,"filter","conv1d"),u=o,p=!1;o.rank===2&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1]])),A(u.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${u.rank}.`),A(l.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${l.rank}.`),Nn("conv1d",a,i),A(u.shape[2]===l.shape[1],()=>`Error in conv1d: depth of input (${u.shape[2]}) must match input depth for filter ${l.shape[1]}.`),A(hr(n,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${n} and dilation '${s}'`),A(r==="NWC",()=>`Error in conv1d: got dataFormat of ${r} but only NWC is currently supported.`);let d=W(l,[1,l.shape[0],l.shape[1],l.shape[2]]),c=W(u,[u.shape[0],1,u.shape[1],u.shape[2]]),h=Ft(c,d,[1,n],a,"NHWC",[1,s],i);return p?W(h,[h.shape[2],h.shape[3]]):W(h,[h.shape[0],h.shape[2],h.shape[3]])}var Km=L({conv1d_:IP});function SP(e,t,n,a,r,s="NHWC",i){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let o=e,l=t,u=!1;t.rank===3&&(u=!0,l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]),o=[1,e[0],e[1],e[2]]),A(o.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${o.length}.`),A(l.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${l.rank}`),A(n.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${n.rank}`);let p=s==="NHWC"?o[3]:o[1],d=s==="NHWC"?l.shape[3]:l.shape[1];A(p===n.shape[2],()=>`Error in conv2dDerInput: depth of input (${p}) must match input depth for filter ${n.shape[2]}.`),A(d===n.shape[3],()=>`Error in conv2dDerInput: depth of output (${d}) must match output depth for filter ${n.shape[3]}.`),Nn("conv2dDerInput",r,i);let c={dy:l,filter:n},h={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,inputShape:o},m=O.runKernel(Ni,c,h);return u?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var yv=L({conv2DBackpropInput_:SP});function TP(e,t,n,a,r,s){let i=E(e,"x","conv2dTranspose"),o=E(t,"filter","conv2dTranspose");return yv(n,i,o,a,r,"NHWC",s)}var Xm=L({conv2dTranspose_:TP});function NP(e,t,n,a,r="NDHWC",s=[1,1,1]){let i=E(e,"x","conv3d"),o=E(t,"filter","conv3d"),l=i,u=!1;i.rank===4&&(u=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(l.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${l.rank}.`),A(o.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${o.rank}.`),A(l.shape[4]===o.shape[3],()=>`Error in conv3d: depth of input (${l.shape[4]}) must match input depth for filter ${o.shape[3]}.`),A(hr(n,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),A(r==="NDHWC",()=>`Error in conv3d: got dataFormat of ${r} but only NDHWC is currently supported.`);let p={x:l,filter:o},d={strides:n,pad:a,dataFormat:r,dilations:s},c=O.runKernel(fc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var bv=L({conv3d_:NP});function CP(e,t,n,a,r){A(e.length===t.rank,()=>`Length of inShape (${e.length}) and rank of dy (${t.rank}) must match`);let s=e,i=t,o=!1;t.rank===4&&(o=!0,i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,e[0],e[1],e[2],e[3]]);let l=s[4],u=i.shape[4];A(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),A(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),A(n.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${n.rank}`),A(l===n.shape[3],()=>`Error in conv3dDerInput: depth of input (${l}) must match input depth for filter ${n.shape[3]}.`),A(u===n.shape[4],()=>`Error in conv3dDerInput: depth of output (${u}) must match output depth for filter ${n.shape[4]}.`);let p={dy:i,filter:n},d={pad:r,strides:a,inputShape:s},c=O.runKernel(bm,p,d);return o?W(c,[c.shape[1],c.shape[2],c.shape[3],c.shape[4]]):c}var aT=L({conv3DBackpropInput_:CP});function EP(e,t,n,a,r){let s=E(e,"x","conv3dTranspose"),i=E(t,"filter","conv3dTranspose");return aT(n,s,i,a,r)}var xv=L({conv3dTranspose_:EP});function _P(e){let t={x:E(e,"x","cos","float32")};return O.runKernel(Ci,t)}var Lc=L({cos_:_P});function AP(e){let t={x:E(e,"x","cosh","float32")};return O.runKernel(Ei,t)}var Ym=L({cosh_:AP});function $P(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumprod")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(Kl,r,s)}var tc=L({cumprod_:$P});function FP(e,t=0,n=!1,a=!1){let r={x:E(e,"x","cumsum")},s={axis:t,exclusive:n,reverse:a};return O.runKernel(_i,r,s)}var Zm=L({cumsum_:FP});function DP(e,t,n,a=!1){let r=E(e,"x","denseBincount"),s=E(t,"weights","denseBincount");A(r.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${r.dtype}`),A(r.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${r.rank}.`),A(n>=0,()=>`size must be non-negative, but got ${n}.`),A(s.size===r.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${r.shape}, weights shape: ${s.shape}.`);let i={x:r,weights:s},o={size:n,binaryOutput:a};return O.runKernel(xm,i,o)}var Wh=L({denseBincount_:DP});function RP(e,t,n="NHWC"){let a=E(e,"x","depthToSpace","float32"),r=n==="NHWC"?a.shape[1]:a.shape[2],s=n==="NHWC"?a.shape[2]:a.shape[3],i=n==="NHWC"?a.shape[3]:a.shape[1];A(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),A(r*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${r} and ${t} for depthToSpace with input shape ${a.shape}`),A(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(ql,o,l)}var yv=L({depthToSpace_:AP});function FP(e,t,n,a,r="NHWC",s=[1,1],i){let o=_(e,"x","depthwiseConv2d","float32"),l=_(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ni,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Is=L({depthwiseConv2d_:FP});function DP(e){let t={x:_(e,"x","diag")};return O.runKernel(wm,t)}var tT=L({diag_:DP});function RP(e,t,n,a,r=[1,1],s="NHWC"){let i=_(e,"x","dilation2d"),o=_(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(fc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var bv=L({dilation2d_:RP});function MP(e,t){let n=_(e,"a","equal","string_or_numeric"),a=_(t,"b","equal","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Xl,r)}var ea=L({equal_:MP});function PP(e,t,n){let a=_(t,"a","where"),r=_(n,"b","where"),s=_(e,"condition","where","bool"),i=ut(ut(s.shape,a.shape),r.shape),o=Xs(s,i),l=Xs(a,i),u=Xs(r,i),p={condition:o,t:l,e:u};return O.runKernel(ku,p)}var mn=L({where_:PP});function OP(e){let t={x:_(e,"x","zerosLike")};return O.runKernel(Mu,t)}var qe=L({zerosLike_:OP});function LP(e,t){let n=_(e,"a","div"),a=_(t,"b","div");[n,a]=_t(n,a);let r=he(n,a),s=qe(r),i=ea(a,s);return mn(i,s,r)}var xv=L({divNoNan_:LP});function zP(e,t){let n=_(e,"t1","dot"),a=_(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var vv=L({dot_:zP});function WP(e,...t){let n=t.map((r,s)=>_(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(km,n,a)}var nT=L({einsum_:WP});function BP(e){let t={x:_(e,"x","elu","float32")};return O.runKernel(_i,t)}var Lu=L({elu_:BP});function VP(e){let t=_(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(Kl,n)}var wv=L({erf_:VP});function kv(e,t){for(let n=0;ne[s]);return[n,r]}function ii(e,t){let n=t.map(a=>1);return aT(e,n,t)}function UP(e,t,n){A(kv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function sT(e,t){if(kv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Iv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function GP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Yl,a,r)}var Zt=L({expandDims_:eO});function tO(e){let t={x:_(e,"x","expm1")};return O.runKernel(Zl,t)}var Tv=L({expm1_:tO});function nO(e,t){let n=_(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(bs,a,r)}var Ln=L({tile_:nO});function aO(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),A(hl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(yc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ev=L({localResponseNormalization_:mO});function fO(e){let t={x:_(e,"x","log","float32")};return O.runKernel(Pi,t)}var ta=L({log_:fO});function gO(e){let t={x:_(e,"x","log1p")};return O.runKernel(ou,t)}var zc=L({log1p_:gO});function yO(e){return A(ss(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=_(t,"x","tf.grad","string_or_numeric"),r=n!=null?_(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Qm(i),i[0]})}}function bO(e){return A(ss(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Jp(t,"args","tf.grads","string_or_numeric"),r=n!=null?_(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(i),i})}}function xO(e){return A(ss(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return Qm(a),{grad:a[0],value:r}}}function vO(e){return A(ss(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Tn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Qm(a.grads),a}}function lT(e,t){A(ss(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof is),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function ur(e){return O.customGrad(e)}function Qm(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function wO(e){let t={x:_(e,"x","softplus")};return O.runKernel(Cu,t)}var mo=L({softplus_:wO});function kO(e){let t=_(e,"x","logSigmoid");return ur(n=>({value:vt(mo(vt(n))),gradFunc:a=>z(a,ha(vt(n)))}))(t)}var $v=L({logSigmoid_:kO});function IO(e,t){let n=_(e,"a","sub"),a=_(t,"b","sub");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(uo,r)}var pe=L({sub_:IO});function SO(e,t=-1){let n=_(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return ur((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),ta(fe(fn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=fn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var ef=L({logSoftmax_:SO});function TO(e,t=null,n=!1){let a=_(e,"x","logSumExp"),r=Fa(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=fn(i),l=fe(o,r),u=ta(l),p=Y(W(s,u.shape),u);if(n){let d=ii(p.shape,r);return W(p,d)}return p}var tf=L({logSumExp_:TO});function NO(e,t){let n=_(e,"a","logicalAnd","bool"),a=_(t,"b","logicalAnd","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(lu,r)}var Aa=L({logicalAnd_:NO});function CO(e){let t={x:_(e,"x","logicalNot","bool")};return O.runKernel(uu,t)}var Wc=L({logicalNot_:CO});function _O(e,t){let n=_(e,"a","logicalOr","bool"),a=_(t,"b","logicalOr","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(pu,r)}var nf=L({logicalOr_:_O});function EO(e,t){let n=_(e,"a","logicalXor","bool"),a=_(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Aa(nf(e,t),Wc(Aa(e,t)))}var Av=L({logicalXor_:EO}),ih=2147483648;function $O(e,t,n="left"){let a=_(e,"sortedSequence","searchSorted"),r=_(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=ih)throw new Error(`values tensor size must less than ${ih}`);if(o.shape[1]>=ih)throw new Error(`trailing dim_size must less than ${ih} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(zm,u,p)}var af=L({searchSorted_:$O});function uT(e,t){return af(e,t,"left")}function AO(e,t,n,a,r){let s=_(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(cr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(zi,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:AO});function FO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=_(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(bc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Fv=L({maxPool3d_:FO});function DO(e,t,n,a,r=!1){let s={x:_(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(Am,s,i);return{result:o[0],indexes:o[1]}}var pT=L({maxPoolWithArgmax_:DO});function RO(e,t){let n=_(e,"a","maximum"),a=_(t,"b","maximum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Li,r)}var dr=L({maximum_:RO});function MO(e,t=null,n=!1){let a={x:_(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Wi,a,r)}var Nt=L({mean_:MO});function It(e,t="float32"){if(t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return $r(a,r)}let n=um(mt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(t==="complex64"){let a=Jn(e,"float32"),r=It(e,"float32");return $r(a,r)}let n=_x(mt(e),t);return O.makeTensor(n,e,t)}function cT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=_(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=_(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Jn([i,1],a.dtype),a),Fe(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Jn([1,i],a.dtype)),Fe(Jn([s,1],r.dtype),r)])}function PO(e,t){let n=_(e,"a","minimum"),a=_(t,"b","minimum");[n,a]=_t(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Vi,r)}var Vu=L({minimum_:PO});function OO(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=_(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Ui,i,s)}var Dv=L({mirrorPad_:OO});function LO(e,t){let n=_(e,"a","mod"),a=_(t,"b","mod");[n,a]=_t(n,a);let r={a:n,b:a};return O.runKernel(cu,r)}var Rv=L({mod_:LO});function zO(e,t=null,n=!1){e=_(e,"x","moments");let a=Fa(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=ii(r.shape,a));let i=lt(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Bc=L({moments_:zO});function WO(e,t,n,a){let r=_(t,"data","multiRNNCell"),s=Jp(n,"c","multiRNNCell"),i=Jp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(Fm,o,l);return i===1?W(u,[u.size]):u}var hT=L({multinomial_:BO});function VO(e,t){let n=_(e,"a","notEqual","string_or_numeric"),a=_(t,"b","notEqual","string_or_numeric");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(hu,r)}var oi=L({notEqual_:VO});function UO(e){let t={x:_(e,"x","onesLike")};return O.runKernel(yu,t)}var na=L({onesLike_:UO});function GO(e,t){let n=_(e,"v1","outerProduct"),a=_(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var mT=L({outerProduct_:GO});function HO(e,t,n=0){let a=_(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(ji,s,r)}var ba=L({pad_:HO});function jO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),ba(e,[t],n)}var fT=L({pad1d_:jO});function qO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var gT=L({pad2d_:qO});function KO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var yT=L({pad3d_:KO});function XO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),ba(e,t,n)}var bT=L({pad4d_:XO});function YO(e,t,n){let a=_(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(_u,r,s)}var Vc=L({spaceToBatchND_:YO});function ZO(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=_(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(cr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=XS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=QO([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=JO([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Vc(l,d,m),b=(n==="avg"?()=>ya(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:Pc(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function JO(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function QO(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Mv=L({pool_:ZO});function e3(e,t){let n=_(e,"x","prelu"),a=_(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Ki,r)}var Uc=L({prelu_:e3});function t3(e,t=null,n=!1){let a=_(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(Xi,r,s)}var Pv=L({prod_:t3});function n3(e,t,n,a){let r=e.map((p,d)=>_(p,`tensors${d}`,"raggedGather","int32")),s=_(t,"paramsDenseValues","raggedGather"),i=_(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(Dm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var xT=L({raggedGather_:n3});function a3(e,t,n){let a=_(e,"starts","raggedRange"),r=_(t,"limits","raggedRange",a.dtype),s=_(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(Rm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var vT=L({raggedRange_:a3});function r3(e,t,n,a,r){let s=_(e,"shape","raggedTensorToTensor","int32"),i=_(t,"values","raggedTensorToTensor"),o=_(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>_(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(Mm,u,p)}var wT=L({raggedTensorToTensor_:r3});function s3(e,t,n){let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},i3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Ov.alea(r.toString()),this.randn=new Lv(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Ov.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function l3(e,t,n=1,a="float32",r){if(n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new i3(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ga(t,0)}var TT=L({reverse1d_:g3});function y3(e,t){let n=_(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ga(n,t)}var NT=L({reverse2d_:y3});function b3(e,t){let n=_(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ga(n,t)}var CT=L({reverse3d_:b3});function x3(e,t){let n=_(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ga(n,t)}var _T=L({reverse4d_:x3});function v3(e){let t={x:_(e,"x","round")};return O.runKernel(to,t)}var of=L({round_:v3});function w3(e){let t={x:_(e,"x","rsqrt","float32")};return O.runKernel(no,t)}var lf=L({rsqrt_:w3});function k3(e){let t={x:_(e,"x","selu")};return O.runKernel(Iu,t)}var uf=L({selu_:k3});function I3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=_(e,"x","separableConv2d"),l=_(t,"depthwiseFilter","separableConv2d"),u=_(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Is(p,l,a,r,i,s),f=At(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var Ts=L({separableConv2d_:I3});async function S3(e,t){let n=_(e,"x","setdiff1d"),a=_(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Gc=L({slice1d_:_3});function E3(e,t,n){let a=_(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var df=L({slice2d_:E3});function $3(e,t,n){let a=_(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var fo=L({slice3d_:$3});function A3(e,t,n){let a=_(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var vl=L({slice4d_:A3});function F3(e,t=-1){let n=_(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return O.runKernel(oo,a,r)}var Ka=L({softmax_:F3});function D3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Sm,t)}var Hc=L({fft_:D3});function R3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Tm,t)}var wl=L({ifft_:R3});function M3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=wl(r)}else{let r=[n,2*(t-1)],s=W(yl(e),[n,t]),i=W(Dc(e),[n,t]),o=ga(Be(s,[0,1],[n,t-2]),1),l=z(ga(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W($r(u,p),[r[0],r[1]]);a=wl(d)}if(a=yl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var hf=L({irfft_:M3});function P3(e,t,n=0){let a={x:_(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Eu,a,r)}var zn=L({split_:P3});function O3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W($r(r,s),[a,n]),o=Hc(i),l=Math.floor(n/2)+1,u=yl(o),p=Dc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W($r(d[0],c[0]),h)}var jc=L({rfft_:O3});function L3(e,t){let n=_(e,"a","squaredDifference"),a=_(t,"b","squaredDifference");[n,a]=_t(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(lo,r,s)}var mf=L({squaredDifference_:L3});function z3(e,t){let n=_(e,"x","squeeze","string_or_numeric");return W(n,GI(n.shape,t).newShape)}var Ns=L({squeeze_:z3});function W3(e,t=0){let n=Jp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(bu,a,r)}var Ft=L({stack_:W3});function B3(e,t=0){let n={x:_(e,"x","step")},a={alpha:t};return O.runKernel(xs,n,a)}var go=L({step_:B3});function V3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:_(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(Au,u,p)}var Bv=L({stridedSlice_:V3});function U3(e){let t={x:_(e,"x","tan","float32")};return O.runKernel(po,t)}var Vv=L({tan_:U3});function Ke(e,t){mi(e);let n=lr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return vs(e,null,n,t)}function $a(e,t,n){if(mi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=lr(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return vs(e,t,a,n)}function Da(e,t,n){if(mi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=lr(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function $T(e,t,n){if(mi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=lr(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return vs(e,t,a,n)}function AT(e,t,n){if(mi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=lr(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,vs(e,t,a,n)}function G3(e,t=1,n=!0){let a=_(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(Fu,s,i);return{values:o,indices:l}}var Uv=L({topk_:G3});function H3(e,t=0,n=1,a,r){if(a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Lv(t,n,a,!0,r),i=Oe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Bm,a,r);return{values:s,indices:i}}var Gv=L({unique_:j3});function q3(e,t,n){let a=_(e,"x","unsortedSegmentSum"),r=_(t,"segmentIds","unsortedSegmentSum","int32");A(hl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Cc,s,i)}var gf=L({unsortedSegmentSum_:q3});function K3(e,t=0){let n=_(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(Ru,a,r)}var ct=L({unstack_:K3});function FT(e,t){return af(e,t,"right")}function Hv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function DT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Tn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=_(a,"step","movingAverage");p=he(p,pe(l,Ar(o,d)))}return Y(s,p)}var MT=L({movingAverage_:Z3});function J3(e,t,n){let a=_(e,"indices","scatterND","int32"),r=_(t,"updates","scatterND");jx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(wu,s,i)}var PT=L({scatterND_:J3});function Q3(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function eL(e,t,n,a=0){let r=_(e,"sparseIndices","sparseToDense","int32"),s=_(t,"sparseValues","sparseToDense","string_or_numeric"),i=_(a,"defaultValue","sparseToDense",s.dtype);Q3(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Wm,o,l)}var OT=L({sparseToDense_:eL});function tL(e,t){let n=_(t,"indices","gatherND","int32"),a={params:_(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(eu,a)}var LT=L({gatherND_:tL});function nL(e,t){if(t==null)return e.shape.slice();if(fs(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=nL(r,n),i=1-t,o=he(Wu(Y(Uu(s,0,1,"float32",a),i)),i);return z(r,o)}var qv=L({dropout_:aL});function Kv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function yf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Tn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=HI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;foL,depthwiseConv2d:()=>cL,matMul:()=>hL});function sL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(fm,d,c)}var Xv=L({conv2DBackpropFilter_:sL});function bf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,go(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function xf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function vf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return Lu(e);if(t==="relu6")return sf(e);if(t==="prelu")return Uc(e,n);if(t==="leakyrelu")return Lc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var wf=(e,t)=>!(e>0)||t==="linear";function iL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",wf(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=At(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),vf(T,l,u,p)}let d=_(e,"x","conv2d","float32"),c=_(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(cr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Mc(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=_(o,"bias","fused conv2d"),[y]=_t(y,d),r==="NHWC"?ut(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{ut(T,g.outShape)}catch(C){let E=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(E)}b=_(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[E,$,R,F]=C,S=bf(T,R,l);A(os(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=mv($.shape,S,E,n,a),B=Xv($,S,E.shape,n,a),U=[M,B];if(F!=null){let G=xf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((T,C,E)=>{let $=O.runKernel(ei,w,I);return E([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):ur((T,C,E,$)=>{let R=O.runKernel(ei,w,I);return $([C,T,R,E]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var oL=L({fusedConv2d_:iL});function lL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(xm,u,p)}var WT=L({depthwiseConv2dNativeBackpropFilter_:lL});function uL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(vm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var BT=L({depthwiseConv2dNativeBackpropInput_:uL});function pL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(wf(O.state.gradientDepth,l)===!1){let I=Is(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),vf(I,l,u,p)}let d=_(e,"x","depthwiseConv2d","float32"),c=_(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(cr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=Mc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=_(o,"bias","fused conv2d"),[g]=_t(g,d),ut(f.outShape,g.shape));let y;u!=null&&(y=_(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(os(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,E,$,R]=T,F=bf(I,$,l),S=BT(E.shape,F,C,n,a,s,i),M=WT(E,F,C.shape,n,a,s,i);if(R!=null){let B=xf(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?ur((I,T,C)=>{let E=O.runKernel(ti,x,w);return C([T,I,E]),m&&(E=W(E,[E.shape[1],E.shape[2],E.shape[3]])),{value:E,gradFunc:b}})(h,c):ur((I,T,C,E)=>{let $=O.runKernel(ti,x,w);return E([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var cL=L({fusedDepthwiseConv2d_:pL});function dL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(wf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),vf(R,s,i,o)}let l=_(e,"a","fused matMul"),u=_(t,"b","fused matMul");[l,u]=_t(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=ut(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=_(r,"bias","fused matMul"),[I]=_t(I,l),ut(b,I.shape));let T;i!=null&&(T=_(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=bf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=xf(U,G);return[q,K,Z]}else return[q,K]},E={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?ur((R,F,S)=>{let M=O.runKernel(Qs,E,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):ur((R,F,S,M)=>{let B=O.runKernel(Qs,E,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var hL=L({fusedMatMul_:dL});function mL(e){return yf(e,.54,.46)}var fL=L({hammingWindow_:mL});function gL(e){return yf(e,.5,.5)}var VT=L({hannWindow_:gL});function yL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(jl,p,d)}var wL=L({cropAndResize_:vL});function kL(e){let t=_(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(Jl,n,{})}var IL=L({flipLeftRight_:kL});function SL(e){let t=_(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var TL=L({grayscaleToRGB_:SL});function NL(e,t,n=0,a=.5){let r=_(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Pu,s,i)}var CL=L({rotateWithOffset_:NL});function Gu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function _L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppression","float32"),i=_(t,"scores","nonMaxSuppression","float32"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(mu,{boxes:s,scores:i},l)}var EL=L({nonMaxSuppression_:_L});function $L(e,t,n){let a=AL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function AL(e,t,n){return DL(e,t,n||FL)}function FL(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function GT(e,t,n,a,r){return Yv(e,t,n,a,r,0)}function HT(e,t,n,a,r,s){return Yv(e,t,n,a,r,0,!1,s,!0)}function jT(e,t,n,a,r,s){return Yv(e,t,n,a,r,s,!0)}function Yv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(bk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=RL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*ML(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&$L(u,g,bk))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function RL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function ML(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function bk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function PL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=_(e,"boxes","nonMaxSuppressionAsync"),i=_(t,"scores","nonMaxSuppressionAsync"),o=Gu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=GT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var OL=PL;function LL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(gu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var zL=L({nonMaxSuppressionWithScore_:LL});async function WL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=jT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var BL=WL;function VL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppression"),o=_(t,"scores","nonMaxSuppression"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(fu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var UL=L({nonMaxSuppressionPadded_:VL});async function GL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=_(e,"boxes","nonMaxSuppressionAsync"),o=_(t,"scores","nonMaxSuppressionAsync"),l=Gu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=HT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var HL=GL;function jL(e,t,n=!1,a=!1){let r=_(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Ji,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var qT=L({resizeBilinear_:jL});function qL(e,t,n=!1,a=!1){let r=_(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(Zi,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var KT=L({resizeNearestNeighbor_:qL});function KL(e,t="binary",n=!1,a=.5){let r=_(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=lv(le(of(h),"int32"),In([]),256);u=XL(f,l)}let m=n?Ss(h,u):Cn(h,u);return le(z(m,255),"int32")}function XL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(Du,l,u)}var JL=L({transform_:ZL});function QL(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=_(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=W(xl(0,s,1,"int32"),[-1,1]),l=xl(0,i,1,"int32"),u=pe(o,l),p=Aa(Ss(u,xe(+t,"int32")),Fr(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W(Ft(ct(W(a,[-1,s,i])).map(c=>mn(p,c,d))),r)}var ez=L({bandPart_:QL});function tz(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>Ns(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return xk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=ct(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=xk(l,t);r.push(u),s.push(p)});let i=W(Ft(r,0),e.shape),o=W(Ft(s,0),e.shape);return[i,o]}}function xk(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Zm(n),s=ir(e),i=$a([[1]],[1,1]),o=ir(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=zu(h),f=Be(s,[u,u],[1,1]),g=mn(Cn(f,0),$a([[-1]]),$a([[1]])),y=pe(f,z(g,m)),b=he(h,y);b.shape[0]===1?o=ir(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=vt(he(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=Ee(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=Ee(I),E=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(E,Fe(Fe(E,o),C));else{let $=pe(E,Fe(Fe(E,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),_e([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var rz=L({qr_:az}),vn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(vn||(vn={}));function sz(e,t,n=vn.SUM_BY_NONZERO_WEIGHTS){let a=_(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=_(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===vn.NONE)return s;if(n===vn.SUM)return fe(s);if(n===vn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=he(fe(s),fe(r));return i>1?he(o,xe(i)):o}}if(n===vn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return he(fe(s),xe(a.size));{let i=z(r,Jn(a.shape)),o=le(fe(oi(i,xe(0))),"float32");return he(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Dr=L({computeWeightedLoss_:sz});function iz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","absoluteDifference"),s=_(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=_(n,"weights","absoluteDifference")),Tn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Dr(o,i,a)}var oz=L({absoluteDifference_:iz});function lz(e,t,n,a,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","cosineDistance"),i=_(t,"predictions","cosineDistance"),o=null;a!=null&&(o=_(a,"weights","cosineDistance")),Tn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Dr(u,o,r)}var uz=L({cosineDistance_:lz});function pz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","hingeLoss"),s=_(t,"predictions","hingeLoss"),i=null;n!=null&&(i=_(n,"weights","hingeLoss")),Tn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return Dr(l,i,a)}var cz=L({hingeLoss_:pz});function dz(e,t,n,a=1,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","huberLoss"),i=_(t,"predictions","huberLoss"),o=null;n!=null&&(o=_(n,"weights","huberLoss")),Tn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=Vu(u,l),d=pe(u,p),c=Y(z(xe(.5),lt(p)),z(l,d));return Dr(c,o,r)}var hz=L({huberLoss_:dz});function mz(e,t,n,a=1e-7,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"labels","logLoss"),i=_(t,"predictions","logLoss"),o=null;n!=null&&(o=_(n,"weights","logLoss")),Tn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=vt(z(s,ta(Y(i,u)))),d=z(pe(l,s),ta(Y(pe(l,i),u))),c=pe(p,d);return Dr(c,o,r)}var fz=L({logLoss_:mz});function gz(e,t,n,a=vn.SUM_BY_NONZERO_WEIGHTS){let r=_(e,"labels","meanSquaredError"),s=_(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=_(n,"weights","meanSquaredError")),Tn(r.shape,s.shape,"Error in meanSquaredError: ");let o=mf(r,s);return Dr(o,i,a)}var yz=L({meanSquaredError_:gz});function bz(e,t){let n=_(e,"labels","sigmoidCrossEntropyWithLogits"),a=_(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=zc(fn(vt(Lt(a))));return Y(pe(r,s),i)}function xz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"multiClassLabels","sigmoidCrossEntropy"),i=_(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","sigmoidCrossEntropy")),Tn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=bz(s,i);return Dr(l,o,r)}var vz=L({sigmoidCrossEntropy_:xz});function wz(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return ur((a,r,s)=>{let i=tf(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=vt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=ii(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),fn(c))),z(W(u,h),pe(fn(c),le(d,"float32")))]}}})(e,t)}function kz(e,t,n,a=0,r=vn.SUM_BY_NONZERO_WEIGHTS){let s=_(e,"onehotLabels","softmaxCrossEntropy"),i=_(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=_(n,"weights","softmaxCrossEntropy")),Tn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),he(u,d))}let l=wz(s,i);return Dr(l,o,r)}var Iz=L({softmaxCrossEntropy_:kz});function Sz(e,t,n,a){let r=_(e,"indices","sparseFillEmptyRows","int32"),s=_(t,"values","sparseFillEmptyRows"),i=_(n,"denseShape","sparseFillEmptyRows","int32"),o=_(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(vc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var Tz=L({sparseFillEmptyRows_:Sz});function Nz(e,t,n){let a=_(e,"inputIndices","sparseReshape","int32"),r=_(t,"inputShape","sparseReshape","int32"),s=_(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel($u,i);return{outputIndices:o[0],outputShape:o[1]}}var Cz=L({sparseReshape_:Nz});function _z(e,t,n){let a=_(e,"data","sparseSegmentMean"),r=_(t,"indices","sparseSegmentMean","int32"),s=_(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${a.shape}`),A(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${a.shape}`);let o={x:a},l={blockSize:t,dataFormat:n};return O.runKernel(Yl,o,l)}var vv=L({depthToSpace_:RP});function MP(e,t,n,a,r="NHWC",s=[1,1],i){let o=E(e,"x","depthwiseConv2d","float32"),l=E(t,"filter","depthwiseConv2d","float32"),u=o,p=!1;o.rank===3&&(p=!0,u=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(u.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${u.rank}.`),A(l.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${l.rank}.`);let d=r==="NHWC"?u.shape[3]:u.shape[1];A(d===l.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${d}) must match the inChannels dimension in filter ${l.shape[2]}.`),Nn("depthwiseConv2d",a,i);let c={x:u,filter:l},h={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i},m=O.runKernel(Ai,c,h);return p?W(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Cs=L({depthwiseConv2d_:MP});function PP(e){let t={x:E(e,"x","diag")};return O.runKernel(km,t)}var rT=L({diag_:PP});function OP(e,t,n,a,r=[1,1],s="NHWC"){let i=E(e,"x","dilation2d"),o=E(t,"filter","dilation2d");A(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),A(o.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${o.rank}.`),A(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let l=i,u=!1;i.rank===3&&(l=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=!0);let p={x:l,filter:o},d={strides:n,pad:a,dilations:r},c=O.runKernel(gc,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var wv=L({dilation2d_:OP});function LP(e,t){let n=E(e,"a","equal","string_or_numeric"),a=E(t,"b","equal","string_or_numeric");[n,a]=Et(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Jl,r)}var Qn=L({equal_:LP});function zP(e,t,n){let a=E(t,"a","where"),r=E(n,"b","where"),s=E(e,"condition","where","bool"),i=ut(ut(s.shape,a.shape),r.shape),o=Js(s,i),l=Js(a,i),u=Js(r,i),p={condition:o,t:l,e:u};return O.runKernel(Iu,p)}var fn=L({where_:zP});function WP(e){let t={x:E(e,"x","zerosLike")};return O.runKernel(Pu,t)}var qe=L({zerosLike_:WP});function BP(e,t){let n=E(e,"a","div"),a=E(t,"b","div");[n,a]=Et(n,a);let r=me(n,a),s=qe(r),i=Qn(a,s);return fn(i,s,r)}var kv=L({divNoNan_:BP});function VP(e,t){let n=E(e,"t1","dot"),a=E(t,"t2","dot");A((n.rank===1||n.rank===2)&&(a.rank===1||a.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${n.rank} and ${a.rank}.`);let r=n.rank===1?n.size:n.shape[1],s=a.rank===1?a.size:a.shape[0];if(A(r===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${r} and ${s}.`),n.rank===1&&a.rank===1){let i=W(n,[1,-1]),o=W(a,[-1,1]),l=Fe(i,o);return W(l,[])}else if(n.rank===1&&a.rank===2){let i=W(n,[1,-1]),o=W(a,[a.shape[0],a.shape[1]]),l=Fe(i,o);return W(l,[l.size])}else if(n.rank===2&&a.rank===1){let i=W(a,[-1,1]),o=Fe(n,i);return W(o,[o.size])}else{let i=W(a,[a.shape[0],a.shape[1]]);return Fe(n,i)}}var Iv=L({dot_:VP});function UP(e,...t){let n=t.map((r,s)=>E(r,`tensors${s}`,"einsum")),a={equation:e};return O.runKernel(Im,n,a)}var sT=L({einsum_:UP});function GP(e){let t={x:E(e,"x","elu","float32")};return O.runKernel(Fi,t)}var zu=L({elu_:GP});function HP(e){let t=E(e,"x","erf");A(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=le(t,"float32"));let n={x:t};return O.runKernel(Zl,n)}var Sv=L({erf_:HP});function Tv(e,t){for(let n=0;ne[s]);return[n,r]}function ui(e,t){let n=t.map(a=>1);return iT(e,n,t)}function jP(e,t,n){A(Tv(t,n),()=>`${e} supports only inner-most axes for now. Got axes ${t} and rank-${n} input.`)}function lT(e,t){if(Tv(e,t))return null;let n=[];for(let a=0;an.push(a)),n}function Nv(e){return e.map((t,n)=>[n,t]).sort((t,n)=>t[1]-n[1]).map(t=>t[0])}function qP(e,t){let n=[];for(let a=t-e;a"Axis must be <= rank of the tensor");let a={input:n},r={dim:t};return O.runKernel(Ql,a,r)}var Qt=L({expandDims_:aO});function rO(e){let t={x:E(e,"x","expm1")};return O.runKernel(eu,t)}var Ev=L({expm1_:rO});function sO(e,t){let n=E(e,"x","tile","string_or_numeric");A(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of reps ${t}.`);let a={x:n},r={reps:t};return O.runKernel(ks,a,r)}var Ln=L({tile_:sO});function iO(e,t,n,a="float32"){t==null&&(t=e);let r=Oe([e,t],a),s=e<=t?e:t;for(let o=0;o`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),A(yl(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,o=!1;s.rank===3&&(o=!0,i=W(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let l={x:i},u={depthRadius:t,bias:n,alpha:a,beta:r},p=O.runKernel(bc,l,u);return o?W(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Fv=L({localResponseNormalization_:yO});function bO(e){let t={x:E(e,"x","log","float32")};return O.runKernel(Bi,t)}var ea=L({log_:bO});function xO(e){let t={x:E(e,"x","log1p")};return O.runKernel(uu,t)}var Wc=L({log1p_:xO});function vO(e){return A(us(e),()=>"The f passed in grad(f) must be a function"),(t,n)=>{let a=E(t,"x","tf.grad","string_or_numeric"),r=n!=null?E(n,"dy","tf.grad"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(a),[a],r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),ef(i),i[0]})}}function wO(e){return A(us(e),()=>"The f passed in grads(f) must be a function"),(t,n)=>{A(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let a=Qp(t,"args","tf.grads","string_or_numeric"),r=n!=null?E(n,"dy","tf.grads"):null;return O.tidy(()=>{let{value:s,grads:i}=O.gradients(()=>e(...a),a,r);return r!=null&&Tn(s.shape,r.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ef(i),i})}}function kO(e){return A(us(e),()=>"The f passed in valueAndGrad(f) must be a function"),(t,n)=>{A(t instanceof Te,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:a,value:r}=O.gradients(()=>e(t),[t],n);return ef(a),{grad:a[0],value:r}}}function IO(e){return A(us(e),()=>"The f passed in valueAndGrads(f) must be a function"),(t,n)=>{A(Array.isArray(t)&&t.every(r=>r instanceof Te),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),A(n==null||n instanceof Te,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let a=O.gradients(()=>e(...t),t,n);return n!=null&&Tn(a.value.shape,n.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),ef(a.grads),a}}function cT(e,t){A(us(e),()=>"The f passed in variableGrads(f) must be a function"),A(t==null||Array.isArray(t)&&t.every(u=>u instanceof ps),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let n=t!=null;if(!n){t=[];for(let u in O.registeredVariables)t.push(O.registeredVariables[u])}let a=n?t.filter(u=>!u.trainable):null,r=t.length;t=t.filter(u=>u.trainable),A(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${r} variables is trainable.`);let s=!0,{value:i,grads:o}=O.gradients(e,t,null,s);A(o.some(u=>u!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),A(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let l={};return t.forEach((u,p)=>{o[p]!=null&&(l[u.name]=o[p])}),a!=null&&a.forEach(u=>l[u.name]=null),{value:i,grads:l}}function cr(e){return O.customGrad(e)}function ef(e){if(e.filter(t=>t==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function SO(e){let t={x:E(e,"x","softplus")};return O.runKernel(Eu,t)}var vo=L({softplus_:SO});function TO(e){let t=E(e,"x","logSigmoid");return cr(n=>({value:vt(vo(vt(n))),gradFunc:a=>z(a,ha(vt(n)))}))(t)}var Dv=L({logSigmoid_:TO});function NO(e,t){let n=E(e,"a","sub"),a=E(t,"b","sub");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(go,r)}var pe=L({sub_:NO});function CO(e,t=-1){let n=E(e,"logits","logSoftmax");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and axis was ${t}`);return cr((a,r)=>{let s=ma(a,t,!0),i=pe(a,s),o=pe(le(i,"float32"),ea(fe(gn(i),t,!0)));return r([o]),{value:o,gradFunc:(l,u)=>{let[p]=u,d=!0,c=gn(p);return pe(l,z(fe(l,t,d),c))}}})(n)}var tf=L({logSoftmax_:CO});function EO(e,t=null,n=!1){let a=E(e,"x","logSumExp"),r=Ra(t,a.shape),s=ma(a,r,!0),i=pe(a,s),o=gn(i),l=fe(o,r),u=ea(l),p=Y(W(s,u.shape),u);if(n){let d=ui(p.shape,r);return W(p,d)}return p}var nf=L({logSumExp_:EO});function _O(e,t){let n=E(e,"a","logicalAnd","bool"),a=E(t,"b","logicalAnd","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(pu,r)}var Da=L({logicalAnd_:_O});function AO(e){let t={x:E(e,"x","logicalNot","bool")};return O.runKernel(cu,t)}var Bc=L({logicalNot_:AO});function $O(e,t){let n=E(e,"a","logicalOr","bool"),a=E(t,"b","logicalOr","bool");ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(du,r)}var af=L({logicalOr_:$O});function FO(e,t){let n=E(e,"a","logicalXor","bool"),a=E(t,"b","logicalXor","bool");return ut(n.shape,a.shape),Da(af(e,t),Bc(Da(e,t)))}var Rv=L({logicalXor_:FO}),oh=2147483648;function DO(e,t,n="left"){let a=E(e,"sortedSequence","searchSorted"),r=E(t,"values","searchSorted"),s=a.shape[a.shape.length-1],i=r.shape[r.shape.length-1],o=W(a,[-1,s]),l=W(r,[-1,i]);if(o.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(o.shape[0]!==l.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(mt(l.shape)>=oh)throw new Error(`values tensor size must less than ${oh}`);if(o.shape[1]>=oh)throw new Error(`trailing dim_size must less than ${oh} for int32 output type, was ${o.shape[1]}`);let u={sortedSequence:o,values:l},p={side:n};return O.runKernel(Wm,u,p)}var rf=L({searchSorted_:DO});function dT(e,t){return rf(e,t,"left")}function RO(e,t,n,a,r){let s=E(e,"x","maxPool"),i=1,o=s,l=!1;s.rank===3&&(l=!0,o=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(o.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${o.rank}.`),A(hr(n,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${n} and dilations '${i}'`),Nn("maxPool",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r},d=O.runKernel(Gi,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Dt=L({maxPool_:RO});function MO(e,t=[1,1,1],n,a,r,s="NDHWC"){let i=E(e,"x","maxPool3d"),o=i,l=!1;i.rank===4&&(l=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),A(o.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${o.rank}.`),A(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Nn("maxPool3d",a,r);let u={x:o},p={filterSize:t,strides:n,pad:a,dimRoundingMode:r,dataFormat:s},d=O.runKernel(xc,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3],d.shape[4]]):d}var Mv=L({maxPool3d_:MO});function PO(e,t,n,a,r=!1){let s={x:E(e,"x","maxPoolWithArgmax")},i={filterSize:t,strides:n,pad:a,includeBatchInIndex:r},o=O.runKernel(Fm,s,i);return{result:o[0],indexes:o[1]}}var hT=L({maxPoolWithArgmax_:PO});function OO(e,t){let n=E(e,"a","maximum"),a=E(t,"b","maximum");[n,a]=Et(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(Ui,r)}var mr=L({maximum_:OO});function LO(e,t=null,n=!1){let a={x:E(e,"x","mean")},r={axis:t,keepDims:n};return O.runKernel(Hi,a,r)}var Nt=L({mean_:LO});function It(e,t="float32"){if(aa(e),t==="complex64"){let a=It(e,"float32"),r=It(e,"float32");return Fr(a,r)}let n=pm(mt(e),t);return O.makeTensor(n,e,t)}function Jn(e,t="float32"){if(aa(e),t==="complex64"){let a=Jn(e,"float32"),r=It(e,"float32");return Fr(a,r)}let n=Fx(mt(e),t);return O.makeTensor(n,e,t)}function mT(e,t,{indexing:n="xy"}={}){if(n!=="xy"&&n!=="ij")throw new TypeError(`${n} is not a valid third argument to meshgrid`);if(e===void 0)return[];let a=E(e,"x","meshgrid",e instanceof Te?e.dtype:"float32");if(t===void 0)return[a];let r=E(t,"y","meshgrid",t instanceof Te?t.dtype:"float32"),s=mt(a.shape),i=mt(r.shape);return n==="xy"?(a=W(a,[1,-1]),r=W(r,[-1,1]),[Fe(Jn([i,1],a.dtype),a),Fe(r,Jn([1,s],r.dtype))]):(a=W(a,[-1,1]),r=W(r,[1,-1]),[Fe(a,Jn([1,i],a.dtype)),Fe(Jn([s,1],r.dtype),r)])}function zO(e,t){let n=E(e,"a","minimum"),a=E(t,"b","minimum");[n,a]=Et(n,a),n.dtype==="bool"&&(n=le(n,"int32"),a=le(a,"int32")),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(qi,r)}var Uu=L({minimum_:zO});function WO(e,t,n){A(n==="reflect"||n==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${n}.`);let a=E(e,"x","mirrorPad");if(a.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");A(t.length===a.rank,()=>`Padding doesn't match input. Must be ${a.rank}. Got ${t.length}.`);let r=n==="reflect"?1:0;for(let o=0;o"Invalid number of paddings. Must be length of 2 each."),A(t[o][0]>=0&&t[o][0]<=a.shape[o]-r&&t[o][1]>=0&&t[o][1]<=a.shape[o]-r,()=>`Padding in dimension ${o} cannot be greater than or equal to ${a.shape[o]-r} or less than 0 for input of shape ${a.shape}`);let s={paddings:t,mode:n},i={x:a};return O.runKernel(Ki,i,s)}var Pv=L({mirrorPad_:WO});function BO(e,t){let n=E(e,"a","mod"),a=E(t,"b","mod");[n,a]=Et(n,a);let r={a:n,b:a};return O.runKernel(hu,r)}var Ov=L({mod_:BO});function VO(e,t=null,n=!1){e=E(e,"x","moments");let a=Ra(t,e.shape),r=Nt(e,a,n),s=r.shape;n||(s=ui(r.shape,a));let i=lt(pe(le(e,"float32"),W(r,s))),o=Nt(i,a,n);return{mean:r,variance:o}}var Vc=L({moments_:VO});function UO(e,t,n,a){let r=E(t,"data","multiRNNCell"),s=Qp(n,"c","multiRNNCell"),i=Qp(a,"h","multiRNNCell"),o=r,l=[];for(let d=0;d2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);n=n||Math.random();let o={logits:i===1?W(r,[1,-1]):r},l={numSamples:t,seed:n,normalized:a},u=O.runKernel(Dm,o,l);return i===1?W(u,[u.size]):u}var gT=L({multinomial_:GO});function HO(e,t){let n=E(e,"a","notEqual","string_or_numeric"),a=E(t,"b","notEqual","string_or_numeric");[n,a]=Et(n,a),ut(n.shape,a.shape);let r={a:n,b:a};return O.runKernel(fu,r)}var pi=L({notEqual_:HO});function jO(e){let t={x:E(e,"x","onesLike")};return O.runKernel(xu,t)}var ta=L({onesLike_:jO});function qO(e,t){let n=E(e,"v1","outerProduct"),a=E(t,"v2","outerProduct");A(n.rank===1&&a.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${n.rank} and ${a.rank}.`);let r=W(n,[-1,1]),s=W(a,[1,-1]);return Fe(r,s)}var yT=L({outerProduct_:qO});function KO(e,t,n=0){let a=E(e,"x","pad");if(a.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let r={paddings:t,constantValue:n},s={x:a};return O.runKernel(Zi,s,r)}var xa=L({pad_:KO});function XO(e,t,n=0){return A(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),xa(e,[t],n)}var bT=L({pad1d_:XO});function YO(e,t,n=0){return A(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),xa(e,t,n)}var xT=L({pad2d_:YO});function ZO(e,t,n=0){return A(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),xa(e,t,n)}var vT=L({pad3d_:ZO});function JO(e,t,n=0){return A(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),xa(e,t,n)}var wT=L({pad4d_:JO});function QO(e,t,n){let a=E(e,"x","spaceToBatchND");A(a.rank>=1+t.length,()=>`input rank ${a.rank} should be > than [blockShape] ${t.length}`),A(n.length===t.length,()=>`paddings.shape[0] ${n.length} must be equal to [blockShape] ${t.length}`),A(a.shape.reduce((i,o,l)=>l>0&&l<=t.length?i&&(o+n[l-1][0]+n[l-1][1])%t[l-1]===0:i,!0),()=>`input spatial dimensions ${a.shape.slice(1)} with paddings ${n.toString()} must be divisible by blockShapes ${t.toString()}`);let r={x:a},s={blockShape:t,paddings:n};return O.runKernel(_u,r,s)}var Uc=L({spaceToBatchND_:QO});function e3(e,t,n,a,r,s,i){r==null&&(r=[1,1]),s==null&&(s=1),a===0&&(a="valid");let o=E(e,"x","maxPool"),l=o,u=!1;o.rank===3&&(u=!0,l=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),A(hr(s,r),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${r}'`);let p=JS(l.shape,t,s,r,a),d=[p.dilationHeight,p.dilationWidth],c;a==="same"?c=n3([p.filterHeight,p.filterWidth],d):c=[[0,0],[0,0]];let h=d[0]===1&&d[1]===1,[m,f]=t3([p.inHeight,p.inWidth],d,c),g=h?a:"valid",y=h?l:Uc(l,d,m),b=(n==="avg"?()=>ba(y,t,s,g,i):()=>Dt(y,t,s,g,i))(),x=h?b:Oc(b,d,f);return u?W(x,[x.shape[1],x.shape[2],x.shape[3]]):x}function t3(e,t,n){let a=n.map(p=>p[0]),r=n.map(p=>p[1]),s=e.concat(a,r),i=t.map((p,d)=>(p-s[d]%p)%p),o=r.map((p,d)=>p+i[d]),l=t.map((p,d)=>[a[d],o[d]]),u=t.map((p,d)=>[0,i[d]]);return[l,u]}function n3(e,t){let n=e.map((s,i)=>s+(s-1)*(t[i]-1)).map(s=>s-1),a=n.map(s=>Math.floor(s/2)),r=n.map((s,i)=>s-a[i]);return n.map((s,i)=>[a[i],r[i]])}var Lv=L({pool_:e3});function a3(e,t){let n=E(e,"x","prelu"),a=E(t,"alpha","prelu"),r={x:n,alpha:a};return O.runKernel(Qi,r)}var Gc=L({prelu_:a3});function r3(e,t=null,n=!1){let a=E(e,"x","prod");a.dtype==="bool"&&(a=le(a,"int32"));let r={x:a},s={axis:t,keepDims:n};return O.runKernel(eo,r,s)}var zv=L({prod_:r3});function s3(e,t,n,a){let r=e.map((p,d)=>E(p,`tensors${d}`,"raggedGather","int32")),s=E(t,"paramsDenseValues","raggedGather"),i=E(n,"indices","raggedGather","int32"),o={paramsNestedSplits:r,paramsDenseValues:s,indices:i},l={outputRaggedRank:a},u=O.runKernel(Rm,o,l);return{outputNestedSplits:u.slice(0,u.length-1),outputDenseValues:u[u.length-1]}}var kT=L({raggedGather_:s3});function i3(e,t,n){let a=E(e,"starts","raggedRange"),r=E(t,"limits","raggedRange",a.dtype),s=E(n,"deltas","raggedRange",a.dtype),i={starts:a,limits:r,deltas:s},o=O.runKernel(Mm,i);return{rtNestedSplits:o[0],rtDenseValues:o[1]}}var IT=L({raggedRange_:i3});function o3(e,t,n,a,r){let s=E(e,"shape","raggedTensorToTensor","int32"),i=E(t,"values","raggedTensorToTensor"),o=E(n,"defaultValue","raggedTensorToTensor",i.dtype),l=a.map((d,c)=>E(d,`tensors${c}`,"raggedTensorToTensor","int32")),u={shape:s,values:i,defaultValue:o,rowPartitionTensors:l},p={rowPartitionTypes:r};return O.runKernel(Pm,u,p)}var ST=L({raggedTensorToTensor_:o3});function l3(e,t,n){aa(e);let a=mt(e),r=null;if(n==null||n==="float32")r=new Float32Array(a);else if(n==="int32")r=new Int32Array(a);else if(n==="bool")r=new Uint8Array(a);else throw new Error(`Unknown data type ${n}`);for(let s=0;s=1||s===0);let i=Math.sqrt(-2*Math.log(s)/s);e=this.mean+this.stdDev*a*i,t=this.mean+this.stdDev*r*i,(!this.truncated||this.isValidTruncated(e))&&(n=!0)}return(!this.truncated||this.isValidTruncated(t))&&(this.nextVal=this.convertValue(t)),this.convertValue(e)}convertValue(e){return this.dtype==null||this.dtype==="float32"?e:Math.round(e)}isValidTruncated(e){return e<=this.upper&&e>=this.lower}},u3=class{constructor(e,t,n,a){this.alpha=e,this.beta=1/t,this.dtype=n;let r=a||Math.random();this.randu=Wv.alea(r.toString()),this.randn=new Bv(0,1,n,!1,this.randu()),e<1?this.d=e+2/3:this.d=e-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let e,t,n,a,r,s;for(;;){do a=this.randn.nextValue(),s=1+this.c*a;while(s<=0);if(s*=s*s,e=a*a,t=1-.331*e*e,n=.5*e+this.d*(1-s+Math.log(s)),r=this.randu(),rthis.dtype==null||this.dtype==="float32",this.min=e,this.range=t-e,this.dtype=n,a==null&&(a=Math.random()),typeof a=="number"&&(a=a.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${e} - ${t} <= 1 and dtype is not float`);this.random=Wv.alea(a)}convertValue(e){return this.canReturnFloat()?e:Math.round(e)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function c3(e,t,n=1,a="float32",r){if(aa(e),n==null&&(n=1),a==null&&(a="float32"),a!=="float32"&&a!=="int32")throw new Error(`Unsupported data type ${a}`);let s=new u3(t,n,a,r),i=Oe(e,a);for(let o=0;o`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),ya(t,0)}var ET=L({reverse1d_:x3});function v3(e,t){let n=E(e,"x","reverse");return A(n.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${n.rank}.`),ya(n,t)}var _T=L({reverse2d_:v3});function w3(e,t){let n=E(e,"x","reverse");return A(n.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${n.rank}.`),ya(n,t)}var AT=L({reverse3d_:w3});function k3(e,t){let n=E(e,"x","reverse");return A(n.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${n.rank}.`),ya(n,t)}var $T=L({reverse4d_:k3});function I3(e){let t={x:E(e,"x","round")};return O.runKernel(oo,t)}var lf=L({round_:I3});function S3(e){let t={x:E(e,"x","rsqrt","float32")};return O.runKernel(lo,t)}var uf=L({rsqrt_:S3});function T3(e){let t={x:E(e,"x","selu")};return O.runKernel(Su,t)}var pf=L({selu_:T3});function N3(e,t,n,a,r,s=[1,1],i="NHWC"){let o=E(e,"x","separableConv2d"),l=E(t,"depthwiseFilter","separableConv2d"),u=E(n,"pointwiseFilter","separableConv2d"),p=o,d=!1;if(o.rank===3&&(d=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");A(p.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${p.rank}.`),A(l.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${l.rank}.`),A(u.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${u.shape[0]}.`),A(u.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${u.shape[1]}.`);let c=l.shape[2],h=l.shape[3];A(u.shape[2]===c*h,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${c*h}, but got ${u.shape[2]}.`);let m=Cs(p,l,a,r,i,s),f=Ft(m,u,1,"valid",i);return d?W(f,[f.shape[1],f.shape[2],f.shape[3]]):f}var _s=L({separableConv2d_:N3});async function C3(e,t){let n=E(e,"x","setdiff1d"),a=E(t,"y","setdiff1d");A(n.dtype===a.dtype,()=>`x and y should have the same dtype, but got x (${n.dtype}) and y (${a.dtype}).`),A(n.rank===1,()=>`x should be 1D tensor, but got x (${n.shape}).`),A(a.rank===1,()=>`y should be 1D tensor, but got y (${a.shape}).`);let r=await n.data(),s=await a.data(),i=new Set(s),o=0;for(let p=0;p`slice1d expects a rank-1 tensor, but got a rank-${a.rank} tensor`),Be(a,[t],[n])}var Hc=L({slice1d_:$3});function F3(e,t,n){let a=E(e,"x","slice2d");return A(a.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var hf=L({slice2d_:F3});function D3(e,t,n){let a=E(e,"x","slice3d");return A(a.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var wo=L({slice3d_:D3});function R3(e,t,n){let a=E(e,"x","slice4d");return A(a.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${a.rank} tensor`),Be(a,t,n)}var Il=L({slice4d_:R3});function M3(e,t=-1){let n=E(e,"logits","softmax","float32");if(t===-1&&(t=n.rank-1),t!==n.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${n.rank} and dim was ${t}`);let a={logits:n},r={dim:t};return O.runKernel(mo,a,r)}var Xa=L({softmax_:M3});function P3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Tm,t)}var jc=L({fft_:P3});function O3(e){A(e.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${e.dtype}.`);let t={input:e};return O.runKernel(Nm,t)}var Sl=L({ifft_:O3});function L3(e){let t=e.shape[e.shape.length-1],n=e.size/t,a;if(t<=2){let r=W(e,[n,t]);a=Sl(r)}else{let r=[n,2*(t-1)],s=W(wl(e),[n,t]),i=W(Rc(e),[n,t]),o=ya(Be(s,[0,1],[n,t-2]),1),l=z(ya(Be(i,[0,1],[n,t-2]),1),xe(-1)),u=Ze([s,o],1),p=Ze([i,l],1),d=W(Fr(u,p),[r[0],r[1]]);a=Sl(d)}if(a=wl(a),e.rank===3&&e.shape[0]!==0){let r=a,s=e.shape[0];a=W(a,[s,a.shape[0]/s,a.shape[1]]),r.dispose()}return a}var mf=L({irfft_:L3});function z3(e,t,n=0){let a={x:E(e,"x","split")},r={numOrSizeSplits:t,axis:n};return O.runKernel(Au,a,r)}var zn=L({split_:z3});function W3(e,t){A(e.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${e.dtype}`);let n=e.shape[e.shape.length-1],a=e.size/n,r;if(t!=null&&t0),f=e.shape.map(g=>g);f[e.shape.length-1]=t,r=Be(e,m,f),n=t}else if(t!=null&&t>n){let m=e.shape.map(f=>f);m[e.shape.length-1]=t-n,r=Ze([e,It(m)],e.shape.length-1),n=t}else r=e;let s=qe(r),i=W(Fr(r,s),[a,n]),o=jc(i),l=Math.floor(n/2)+1,u=wl(o),p=Rc(o),d=zn(u,[l,n-l],u.shape.length-1),c=zn(p,[l,n-l],p.shape.length-1),h=r.shape.slice();return h[r.shape.length-1]=l,W(Fr(d[0],c[0]),h)}var qc=L({rfft_:W3});function B3(e,t){let n=E(e,"a","squaredDifference"),a=E(t,"b","squaredDifference");[n,a]=Et(n,a),ut(n.shape,a.shape);let r={a:n,b:a},s={};return O.runKernel(fo,r,s)}var ff=L({squaredDifference_:B3});function V3(e,t){let n=E(e,"x","squeeze","string_or_numeric");return W(n,qI(n.shape,t).newShape)}var As=L({squeeze_:V3});function U3(e,t=0){let n=Qp(e,"tensors","stack","string_or_numeric");A(n.length>=1,()=>"Pass at least one tensor to tf.stack"),n.length>0&&A(t<=n[0].rank,()=>"Axis must be <= rank of the tensor");let a=n,r={axis:t};return O.runKernel(vu,a,r)}var $t=L({stack_:U3});function G3(e,t=0){let n={x:E(e,"x","step")},a={alpha:t};return O.runKernel(Is,n,a)}var ko=L({step_:G3});function H3(e,t,n,a,r=0,s=0,i=0,o=0,l=0){let u={x:E(e,"x","stridedSlice","string_or_numeric")},p={begin:t,end:n,strides:a,beginMask:r,endMask:s,ellipsisMask:i,newAxisMask:o,shrinkAxisMask:l};return O.runKernel(Fu,u,p)}var Gv=L({stridedSlice_:H3});function j3(e){let t={x:E(e,"x","tan","float32")};return O.runKernel(yo,t)}var Hv=L({tan_:j3});function Ke(e,t){bi(e);let n=pr(e,t);if(n.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return Ss(e,null,n,t)}function Fa(e,t,n){if(bi(e),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let a=pr(e,n);if(a.length!==2&&a.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return Ss(e,t,a,n)}function Ma(e,t,n){if(bi(e),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let a=pr(e,n);if(a.length!==4&&a.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return Ss(e,t,a,n)}function DT(e,t,n){if(bi(e),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let a=pr(e,n);if(a.length!==5&&a.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return Ss(e,t,a,n)}function RT(e,t,n){if(bi(e),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let a=pr(e,n);if(a.length!==6&&a.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(a.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||a,Ss(e,t,a,n)}function q3(e,t=1,n=!0){let a=E(e,"x","topk");if(a.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let r=a.shape[a.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>r)throw new Error(`'k' passed to topk() must be <= the last dimension (${r}) but got ${t}`);let s={x:a},i={k:t,sorted:n},[o,l]=O.runKernel(Du,s,i);return{values:o,indices:l}}var jv=L({topk_:q3});function K3(e,t=0,n=1,a,r){if(aa(e),a!=null&&a==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Bv(t,n,a,!0,r),i=Oe(e,a);for(let o=0;o0,()=>"The input tensor must be at least 1D");let a={x:n},r={axis:t},[s,i]=O.runKernel(Vm,a,r);return{values:s,indices:i}}var qv=L({unique_:X3});function Y3(e,t,n){let a=E(e,"x","unsortedSegmentSum"),r=E(t,"segmentIds","unsortedSegmentSum","int32");A(yl(n),()=>"numSegments must be of dtype int");let s={x:a,segmentIds:r},i={numSegments:n};return O.runKernel(Ec,s,i)}var yf=L({unsortedSegmentSum_:Y3});function Z3(e,t=0){let n=E(e,"x","unstack","string_or_numeric");A(t>=-n.shape.length&&t`Axis = ${t} is not in [-${n.shape.length}, ${n.shape.length})`);let a={value:n},r={axis:t};return O.runKernel(Mu,a,r)}var pt=L({unstack_:Z3});function MT(e,t){return rf(e,t,"right")}function Kv(e,t=!0,n,a){return O.makeVariable(e,t,n,a)}function PT(e,t){let n=[];for(let s=0;s0,()=>"mask cannot be scalar"),Tn(o.slice(s,s+i),r.shape,"mask's shape must match the first K dimensions of tensor's shape,");let l=1;for(let f=s;f"Shape mismatch in v and x");let l=xe(1),u=pe(l,o),p=z(pe(i,s),u);if(r){A(a!=null,()=>"When using zeroDebias: true, step is required.");let d=E(a,"step","movingAverage");p=me(p,pe(l,Dr(o,d)))}return Y(s,p)}var LT=L({movingAverage_:eL});function tL(e,t,n){aa(n);let a=E(e,"indices","scatterND","int32"),r=E(t,"updates","scatterND");Xx(r,a,n);let s={indices:a,updates:r},i={shape:n};return O.runKernel(ku,s,i)}var zT=L({scatterND_:tL});function nL(e,t,n,a){if(e.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${e.dtype}.`);if(e.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${e.shape}.`);let r=e.rank>0?e.shape[0]:1,s=e.rank>1?e.shape[1]:1;if(n.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${n.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===r))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${r}]`);if(t.dtype!==a.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function aL(e,t,n,a=0){aa(n);let r=E(e,"sparseIndices","sparseToDense","int32"),s=E(t,"sparseValues","sparseToDense","string_or_numeric"),i=E(a,"defaultValue","sparseToDense",s.dtype);nL(r,s,n,i);let o={sparseIndices:r,sparseValues:s,defaultValue:i},l={outputShape:n};return O.runKernel(Bm,o,l)}var WT=L({sparseToDense_:aL});function rL(e,t){let n=E(t,"indices","gatherND","int32"),a={params:E(e,"x","gatherND","string_or_numeric"),indices:n};return O.runKernel(au,a)}var BT=L({gatherND_:rL});function sL(e,t){if(t==null)return e.shape.slice();if(xs(e.shape,t))return t;if(e.shape.length===t.length){let n=[];for(let a=0;a`x has to be a floating point tensor since it's going to be scaled, but got a ${r.dtype} tensor instead.`),A(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return e instanceof Te?r.clone():r;let s=sL(r,n),i=1-t,o=me(Bu(Y(Gu(s,0,1,"float32",a),i)),i);return z(r,o)}var Yv=L({dropout_:iL});function Zv(e){return Math.floor(Math.pow(2,Math.ceil(Math.log(e)/Math.log(2))))}function bf(e,t,n){let a=1-e%2,r=new Float32Array(e);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${a.rank}`),A(a.rank-1===r.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${a.rank} and targets rank ${r.rank}`),Tn(a.shape.slice(0,a.shape.length-1),r.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=a.shape[a.shape.length-1];A(n>0&&n<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${n}`);let i=await a.data(),o=await r.data(),[l,u]=[i.length/s,s],p=KI("bool",l);for(let d=0;dg.value-f.value),p[d]=0;for(let f=0;fpL,depthwiseConv2d:()=>mL,matMul:()=>gL});function lL(e,t,n,a,r,s="NHWC",i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]])),A(o.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${o.shape}.`),A(l.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${l.shape}.`),A(n.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${n}.`);let u=s==="NHWC"?o.shape[3]:o.shape[1],p=s==="NHWC"?l.shape[3]:l.shape[1];A(u===n[2],()=>`Error in conv2dDerFilter: depth of input ${u}) must match input depth in filter (${n[2]}.`),A(p===n[3],()=>`Error in conv2dDerFilter: depth of dy (${p}) must match output depth for filter (${n[3]}).`),Nn("conv2dDerFilter",r,i);let d={x:o,dy:l},c={strides:a,pad:r,dataFormat:s,dimRoundingMode:i,filterShape:n};return O.runKernel(gm,d,c)}var Jv=L({conv2DBackpropFilter_:lL});function xf(e,t,n){if(n==null||n==="linear")return e;if(n==="relu")return z(e,ko(t));throw new Error(`Cannot compute gradient for fused activation ${n}.`)}function vf(e,t){let n=t,a=Wt(e.shape,t.shape);return a.length>0&&(n=fe(n,a)),W(n,e.shape)}function wf(e,t,n,a){if(t==="linear")return e;if(t==="relu")return Xe(e);if(t==="elu")return zu(e);if(t==="relu6")return of(e);if(t==="prelu")return Gc(e,n);if(t==="leakyrelu")return zc(e,a);if(t==="sigmoid")return ha(e);throw new Error(`Unknown fused activation ${t}.`)}var kf=(e,t)=>!(e>0)||t==="linear";function uL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(l=l||"linear",kf(O.state.gradientDepth,l)===!1){A(r==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${r} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let T=Ft(e,t,n,a,r,s,i);return o!=null&&(T=Y(T,o)),wf(T,l,u,p)}let d=E(e,"x","conv2d","float32"),c=E(t,"filter","conv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${c.rank}.`),Nn("fused conv2d",a,i);let f=r==="NHWC"?h.shape[3]:h.shape[1];A(c.shape[2]===f,()=>`Error in conv2d: depth of input (${f}) must match input depth for filter ${c.shape[2]}.`),A(hr(n,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`);let g=Pc(h.shape,c.shape,n,s,a,i),y;o!=null&&(y=E(o,"bias","fused conv2d"),[y]=Et(y,d),r==="NHWC"?ut(g.outShape,y.shape):(A(y.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${y.shape.length}.`),A(y.shape.length===0||y.shape[0]===g.outChannels||y.shape[0]===1,()=>`Error in fused conv2d: bias shape (${y.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(u!=null){let T=u.shape;if(A(T.length<=1||T.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${T.length}.`),T.length===1)A(T[0]===1||T[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the number of output channels (${g.outChannels}).`);else if(T.length===3)try{ut(T,g.outShape)}catch(C){let _=`Error in fused conv2d: PReLU activation weights (${T}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error(_)}b=E(u,"prelu weights","fused conv2d")}let x=(T,C)=>{A(r==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${r} but only NHWC is currently supported.`);let[_,$,R,F]=C,S=xf(T,R,l);A(cs(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let M=yv($.shape,S,_,n,a),B=Jv($,S,_.shape,n,a),U=[M,B];if(F!=null){let G=vf(F,S);U.push(G)}return U},w={x:h,filter:c,bias:y,preluActivationWeights:b},I={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((T,C,_)=>{let $=O.runKernel(ai,w,I);return _([C,T,$]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:x}})(h,c):cr((T,C,_,$)=>{let R=O.runKernel(ai,w,I);return $([C,T,R,_]),m&&(R=W(R,[R.shape[1],R.shape[2],R.shape[3]])),{value:R,gradFunc:x}})(h,c,y)}var pL=L({fusedConv2d_:uL});function cL(e,t,n,a,r,s=[1,1],i){let o=e;e.rank===3&&(o=W(e,[1,e.shape[0],e.shape[1],e.shape[2]]));let l=t;l.rank===3&&(l=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={x:o,dy:l},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,filterShape:n};return O.runKernel(vm,u,p)}var UT=L({depthwiseConv2dNativeBackpropFilter_:cL});function dL(e,t,n,a,r,s=[1,1],i){let o=t,l=!1;t.rank===3&&(l=!0,o=W(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let u={dy:o,filter:n},p={strides:a,pad:r,dimRoundingMode:i,dilations:s,inputShape:e},d=O.runKernel(wm,u,p);return l?W(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var GT=L({depthwiseConv2dNativeBackpropInput_:dL});function hL({x:e,filter:t,strides:n,pad:a,dataFormat:r="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:o,activation:l="linear",preluActivationWeights:u,leakyreluAlpha:p}){if(kf(O.state.gradientDepth,l)===!1){let I=Cs(e,t,n,a,r,s,i);return o!=null&&(I=Y(I,o)),wf(I,l,u,p)}let d=E(e,"x","depthwiseConv2d","float32"),c=E(t,"filter","depthwiseConv2d","float32"),h=d,m=!1;d.rank===3&&(m=!0,h=W(d,[1,d.shape[0],d.shape[1],d.shape[2]])),A(h.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${h.rank}.`),A(c.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${c.rank}.`),A(h.shape[3]===c.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${h.shape[3]}) must match the inChannels dimension in filter ${c.shape[2]}.`),s==null&&(s=[1,1]),A(hr(n,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${n} and dilations '${s}'`),Nn("fused depthwiseConv2d",a,i);let f=Pc(h.shape,c.shape,n,s,a,i,!0),g;o!=null&&(g=E(o,"bias","fused conv2d"),[g]=Et(g,d),ut(f.outShape,g.shape));let y;u!=null&&(y=E(u,"prelu weights","fused depthwiseConv2d"));let b=(I,T)=>{A(cs(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[C,_,$,R]=T,F=xf(I,$,l),S=GT(_.shape,F,C,n,a,s,i),M=UT(_,F,C.shape,n,a,s,i);if(R!=null){let B=vf(g,F);return[S,M,B]}return[S,M]},x={x:h,filter:c,bias:g,preluActivationWeights:y},w={strides:n,pad:a,dataFormat:r,dilations:s,dimRoundingMode:i,activation:l,leakyreluAlpha:p};return o==null?cr((I,T,C)=>{let _=O.runKernel(ri,x,w);return C([T,I,_]),m&&(_=W(_,[_.shape[1],_.shape[2],_.shape[3]])),{value:_,gradFunc:b}})(h,c):cr((I,T,C,_)=>{let $=O.runKernel(ri,x,w);return _([T,I,$,C]),m&&($=W($,[$.shape[1],$.shape[2],$.shape[3]])),{value:$,gradFunc:b}})(h,c,g)}var mL=L({fusedDepthwiseConv2d_:hL});function fL({a:e,b:t,transposeA:n=!1,transposeB:a=!1,bias:r,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:o=.2}){if(kf(O.state.gradientDepth,s)===!1){let R=Fe(e,t,n,a);return r!=null&&(R=Y(R,r)),wf(R,s,i,o)}let l=E(e,"a","fused matMul"),u=E(t,"b","fused matMul");[l,u]=Et(l,u);let p=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=a?u.shape[u.rank-1]:u.shape[u.rank-2],c=n?l.shape[l.rank-1]:l.shape[l.rank-2],h=a?u.shape[u.rank-2]:u.shape[u.rank-1],m=l.shape.slice(0,-2),f=u.shape.slice(0,-2),g=mt(m),y=mt(f);A(p===d,()=>`Error in fused matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${l.shape} and ${u.shape} and transposeA=${n} and transposeB=${a} must match.`);let b=ut(l.shape.slice(0,-2),u.shape.slice(0,-2)).concat([c,h]),x=n?W(l,[g,p,c]):W(l,[g,c,p]),w=a?W(u,[y,h,d]):W(u,[y,d,h]),I;r!=null&&(I=E(r,"bias","fused matMul"),[I]=Et(I,l),ut(b,I.shape));let T;i!=null&&(T=E(i,"prelu weights","fused matMul"));let C=(R,F)=>{let[S,M,B,U]=F,G=xf(W(R,B.shape),B,s),q,K;if(!n&&!a?(q=Fe(G,M,!1,!0),K=Fe(S,G,!0,!1)):!n&&a?(q=Fe(G,M,!1,!1),K=Fe(G,S,!0,!1)):n&&!a?(q=Fe(M,G,!1,!0),K=Fe(S,G,!1,!1)):(q=Fe(M,G,!0,!0),K=Fe(G,S,!0,!0)),r!=null){let Z=vf(U,G);return[q,K,Z]}else return[q,K]},_={a:x,b:w,bias:I,preluActivationWeights:T},$={transposeA:n,transposeB:a,activation:s,leakyreluAlpha:o};return r==null?cr((R,F,S)=>{let M=O.runKernel(ni,_,$);return S([R,F,M]),{value:W(M,b),gradFunc:C}})(x,w):cr((R,F,S,M)=>{let B=O.runKernel(ni,_,$);return M([R,F,B,S]),{value:W(B,b),gradFunc:C}})(x,w,I)}var gL=L({fusedMatMul_:fL});function yL(e){return bf(e,.54,.46)}var bL=L({hammingWindow_:yL});function xL(e){return bf(e,.5,.5)}var HT=L({hannWindow_:xL});function vL(e,t,n,a=!1,r=0){let s=0,i=[];for(;s+t<=e.size;)i.push(Be(e,s,t)),s+=n;if(a)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&o.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${u},4] but had shape ${o.shape}.`),A(l.rank===1&&l.shape[0]===u,()=>`Error in cropAndResize: boxInd must be have size [${u}] but had shape ${o.shape}.`),A(a.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${a.length}.`),A(a[0]>=1&&a[1]>=1,()=>`cropSize must be atleast [1,1], but was ${a}`),A(r==="bilinear"||r==="nearest",()=>`method must be bilinear or nearest, but was ${r}`);let p={image:i,boxes:o,boxInd:l},d={method:r,extrapolationValue:s,cropSize:a};return O.runKernel(Xl,p,d)}var SL=L({cropAndResize_:IL});function TL(e){let t=E(e,"image","flipLeftRight","float32");A(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let n={image:t};return O.runKernel(tu,n,{})}var NL=L({flipLeftRight_:TL});function CL(e){let t=E(e,"image","grayscaleToRGB"),n=t.rank-1,a=t.shape[n];A(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),A(a===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${a}.`);let r=new Array(t.rank);return r.fill(1,0,n),r[n]=3,Ln(t,r)}var EL=L({grayscaleToRGB_:CL});function _L(e,t,n=0,a=.5){let r=E(e,"image","rotateWithOffset","float32");A(r.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${r.rank}.`);let s={image:r},i={radians:t,fillValue:n,center:a};return O.runKernel(Ou,s,i)}var AL=L({rotateWithOffset_:_L});function Hu(e,t,n,a,r,s){a==null&&(a=.5),r==null&&(r=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=e.shape[0];return n=Math.min(n,i),A(0<=a&&a<=1,()=>`iouThreshold must be in [0, 1], but was '${a}'`),A(e.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${e.rank}'`),A(e.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${e.shape[1]}`),A(t.rank===1,()=>"scores must be a 1D tensor"),A(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),A(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s}}function $L(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppression","float32"),i=E(t,"scores","nonMaxSuppression","float32"),o=Hu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l={maxOutputSize:n,iouThreshold:a,scoreThreshold:r};return O.runKernel(gu,{boxes:s,scores:i},l)}var FL=L({nonMaxSuppression_:$L});function DL(e,t,n){let a=RL(e,t,n),r=a<0?-(a+1):a;e.splice(r,0,t)}function RL(e,t,n){return PL(e,t,n||ML)}function ML(e,t){return e>t?1:e>>1);let o=n(t,e[s]);o>0?a=s+1:(r=s,i=!o)}return i?a:-a-1}function qT(e,t,n,a,r){return Qv(e,t,n,a,r,0)}function KT(e,t,n,a,r,s){return Qv(e,t,n,a,r,0,!1,s,!0)}function XT(e,t,n,a,r,s){return Qv(e,t,n,a,r,s,!0)}function Qv(e,t,n,a,r,s,i=!1,o=!1,l=!1){let u=[];for(let g=0;gr&&u.push({score:t[g],boxIndex:g,suppressBeginIndex:0});u.sort(wk);let p=s>0?-.5/s:0,d=[],c=[];for(;d.length0;){let g=u.pop(),{score:y,boxIndex:b,suppressBeginIndex:x}=g;if(y=x;--I){let T=OL(e,b,d[I]);if(T>=a){w=!0;break}if(g.score=g.score*LL(a,p,T),g.score<=r)break}g.suppressBeginIndex=d.length,w||(g.score===y?(d.push(b),c.push(g.score)):g.score>r&&DL(u,g,wk))}let h=d.length,m=n-h;o&&m>0&&(d.push(...new Array(m).fill(0)),c.push(...new Array(m).fill(0)));let f={selectedIndices:d};return i&&(f.selectedScores=c),l&&(f.validOutputs=h),f}function OL(e,t,n){let a=e.subarray(t*4,t*4+4),r=e.subarray(n*4,n*4+4),s=Math.min(a[0],a[2]),i=Math.min(a[1],a[3]),o=Math.max(a[0],a[2]),l=Math.max(a[1],a[3]),u=Math.min(r[0],r[2]),p=Math.min(r[1],r[3]),d=Math.max(r[0],r[2]),c=Math.max(r[1],r[3]),h=(o-s)*(l-i),m=(d-u)*(c-p);if(h<=0||m<=0)return 0;let f=Math.max(s,u),g=Math.max(i,p),y=Math.min(o,d),b=Math.min(l,c),x=Math.max(y-f,0)*Math.max(b-g,0);return x/(h+m-x)}function LL(e,t,n){let a=Math.exp(t*n*n);return n<=e?a:0}function wk(e,t){return e.score-t.score||e.score===t.score&&t.boxIndex-e.boxIndex}async function zL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY){let s=E(e,"boxes","nonMaxSuppressionAsync"),i=E(t,"scores","nonMaxSuppressionAsync"),o=Hu(s,i,n,a,r);n=o.maxOutputSize,a=o.iouThreshold,r=o.scoreThreshold;let l=await Promise.all([s.data(),i.data()]),u=l[0],p=l[1],{selectedIndices:d}=qT(u,p,n,a,r);return s!==e&&s.dispose(),i!==t&&i.dispose(),Ke(d,"int32")}var WL=zL;function BL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u={boxes:i,scores:o},p={maxOutputSize:n,iouThreshold:a,scoreThreshold:r,softNmsSigma:s},d=O.runKernel(bu,u,p);return{selectedIndices:d[0],selectedScores:d[1]}}var VL=L({nonMaxSuppressionWithScore_:BL});async function UL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=0){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hu(i,o,n,a,r,s);n=l.maxOutputSize,a=l.iouThreshold,r=l.scoreThreshold,s=l.softNmsSigma;let u=await Promise.all([i.data(),o.data()]),p=u[0],d=u[1],{selectedIndices:c,selectedScores:h}=XT(p,d,n,a,r,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(c,"int32"),selectedScores:Ke(h)}}var GL=UL;function HL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppression"),o=E(t,"scores","nonMaxSuppression"),l=Hu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,c={boxes:i,scores:o},h={maxOutputSize:u,iouThreshold:p,scoreThreshold:d,padToMaxOutputSize:s},m=O.runKernel(yu,c,h);return{selectedIndices:m[0],validOutputs:m[1]}}var jL=L({nonMaxSuppressionPadded_:HL});async function qL(e,t,n,a=.5,r=Number.NEGATIVE_INFINITY,s=!1){let i=E(e,"boxes","nonMaxSuppressionAsync"),o=E(t,"scores","nonMaxSuppressionAsync"),l=Hu(i,o,n,a,r,null),u=l.maxOutputSize,p=l.iouThreshold,d=l.scoreThreshold,[c,h]=await Promise.all([i.data(),o.data()]),{selectedIndices:m,validOutputs:f}=KT(c,h,u,p,d,s);return i!==e&&i.dispose(),o!==t&&o.dispose(),{selectedIndices:Ke(m,"int32"),validOutputs:xe(f,"int32")}}var KL=qL;function XL(e,t,n=!1,a=!1){let r=E(e,"images","resizeBilinear");A(r.rank===3||r.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),A(a===!1||n===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(ro,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var YT=L({resizeBilinear_:XL});function YL(e,t,n=!1,a=!1){let r=E(e,"images","resizeNearestNeighbor");A(r.rank===3||r.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${r.rank}.`),A(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),A(r.dtype==="float32"||r.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),A(a===!1||n===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=r,i=!1;r.rank===3&&(i=!0,s=W(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let[]=t,o={images:s},l={alignCorners:n,halfPixelCenters:a,size:t},u=O.runKernel(ao,o,l);return i?W(u,[u.shape[1],u.shape[2],u.shape[3]]):u}var ZT=L({resizeNearestNeighbor_:YL});function ZL(e,t="binary",n=!1,a=.5){let r=E(e,"image","threshold"),s=.2989,i=.587,o=.114,l=r.shape[0]*r.shape[1],u=z(Ke([a]),255),p,d,c,h;if(A(r.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${r.rank}.`),A(r.shape[2]===3||r.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${r.shape[2]}.`),A(r.dtype==="int32"||r.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${r.dtype}.`),A(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),r.shape[2]===3){[p,d,c]=zn(r,[1,1,1],-1);let f=z(p,s),g=z(d,i),y=z(c,o);h=Y(Y(f,g),y)}else h=e;if(t==="otsu"){let f=cv(le(lf(h),"int32"),mn([]),256);u=JL(f,l)}let m=n?Es(h,u):Cn(h,u);return le(z(m,255),"int32")}function JL(e,t){let n=Ke([-1]),a=Ke([0]),r=Ke([0]),s,i,o,l,u,p;for(let d=0;d`Error in transform: image must be rank 4,but got rank ${i.rank}.`),A(o.rank===2&&(o.shape[0]===i.shape[0]||o.shape[0]===1)&&o.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),A(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let l={image:i,transforms:o},u={interpolation:n,fillMode:a,fillValue:r,outputShape:s};return O.runKernel(Ru,l,u)}var tz=L({transform_:ez});function nz(e,t,n){A(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),A(n%1===0,()=>`bandPart(): numUpper must be an integer, got ${n}.`);let a=E(e,"a","bandPart");A(a.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${a.rank}.`);let r=a.shape,[s,i]=a.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(n<=i))throw new Error(`bandPart(): numUpper (${n}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),n<0&&(n=i);let o=W(ci(0,s,1,"int32"),[-1,1]),l=ci(0,i,1,"int32"),u=pe(o,l),p=Da(Es(u,xe(+t,"int32")),Rr(u,xe(-n,"int32"))),d=It([s,i],a.dtype);return W($t(pt(W(a,[-1,s,i])).map(c=>fn(p,c,d))),r)}var az=L({bandPart_:nz});function rz(e){let t;if(Array.isArray(e)){t=!1,A(e!=null&&e.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let r=e[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${e[s].shape[0]} vs. ${r})`)}else t=!0,e=zn(e,e.shape[0],0).map(r=>As(r,[0]));A(e.length<=e[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${e.length}) exceeds number of dimensions (${e[0].shape[0]}).`);let n=[],a=e;for(let r=0;r{let s=a[r];if(r>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${e.rank}`),e.rank===2)return kk(e,t);{let n=e.shape.slice(0,e.shape.length-2).reduce((l,u)=>l*u),a=pt(W(e,[n,e.shape[e.shape.length-2],e.shape[e.shape.length-1]]),0),r=[],s=[];a.forEach(l=>{let[u,p]=kk(l,t);r.push(u),s.push(p)});let i=W($t(r,0),e.shape),o=W($t(s,0),e.shape);return[i,o]}}function kk(e,t=!1){return O.tidy(()=>{A(e.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${e.shape.length}D Tensor.`);let n=e.shape[0],a=e.shape[1],r=Jm(n),s=or(e),i=Fa([[1]],[1,1]),o=or(i),l=n>=a?a:n;for(let u=0;u{let h=Be(s,[u,u],[n-u,1]),m=Wu(h),f=Be(s,[u,u],[1,1]),g=fn(Cn(f,0),Fa([[-1]]),Fa([[1]])),y=pe(f,z(g,m)),b=me(h,y);b.shape[0]===1?o=or(i):o=Ze([i,Be(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let x=vt(me(Fe(g,y),m)),w=Be(s,[u,0],[n-u,a]),I=z(x,o),T=_e(o);if(u===0)s=pe(w,Fe(I,Fe(T,w)));else{let $=pe(w,Fe(I,Fe(T,w)));s=Ze([Be(s,[0,0],[u,a]),$],0)}let C=_e(I),_=Be(r,[0,u],[n,r.shape[1]-u]);if(u===0)r=pe(_,Fe(Fe(_,o),C));else{let $=pe(_,Fe(Fe(_,o),C));r=Ze([Be(r,[0,0],[n,u]),$],1)}return[o,s,r]}),Ee([p,d,c])}return!t&&n>a&&(r=Be(r,[0,0],[n,a]),s=Be(s,[0,0],[a,a])),[r,s]})}var oz=L({qr_:iz}),wn;(function(e){e[e.NONE=0]="NONE",e[e.MEAN=1]="MEAN",e[e.SUM=2]="SUM",e[e.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(wn||(wn={}));function lz(e,t,n=wn.SUM_BY_NONZERO_WEIGHTS){let a=E(e,"losses","computeWeightedLoss"),r=null;t!=null&&(r=E(t,"weights","computeWeightedLoss"));let s=r==null?a:z(a,r);if(n===wn.NONE)return s;if(n===wn.SUM)return fe(s);if(n===wn.MEAN){if(r==null)return Nt(s);{let i=a.size/r.size,o=me(fe(s),fe(r));return i>1?me(o,xe(i)):o}}if(n===wn.SUM_BY_NONZERO_WEIGHTS){if(r==null)return me(fe(s),xe(a.size));{let i=z(r,Jn(a.shape)),o=le(fe(pi(i,xe(0))),"float32");return me(fe(s),o)}}throw Error(`Unknown reduction: ${n}`)}var Mr=L({computeWeightedLoss_:lz});function uz(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","absoluteDifference"),s=E(t,"predictions","absoluteDifference"),i=null;n!=null&&(i=E(n,"weights","absoluteDifference")),Tn(r.shape,s.shape,"Error in absoluteDifference: ");let o=Lt(pe(r,s));return Mr(o,i,a)}var pz=L({absoluteDifference_:uz});function cz(e,t,n,a,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","cosineDistance"),i=E(t,"predictions","cosineDistance"),o=null;a!=null&&(o=E(a,"weights","cosineDistance")),Tn(s.shape,i.shape,"Error in cosineDistance: ");let l=xe(1),u=pe(l,fe(z(s,i),n,!0));return Mr(u,o,r)}var dz=L({cosineDistance_:cz});function hz(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","hingeLoss"),s=E(t,"predictions","hingeLoss"),i=null;n!=null&&(i=E(n,"weights","hingeLoss")),Tn(r.shape,s.shape,"Error in hingeLoss: ");let o=xe(1);r=pe(z(xe(2),r),o);let l=Xe(pe(o,z(r,s)));return Mr(l,i,a)}var mz=L({hingeLoss_:hz});function fz(e,t,n,a=1,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","huberLoss"),i=E(t,"predictions","huberLoss"),o=null;n!=null&&(o=E(n,"weights","huberLoss")),Tn(s.shape,i.shape,"Error in huberLoss: ");let l=xe(a),u=Lt(pe(i,s)),p=Uu(u,l),d=pe(u,p),c=Y(z(xe(.5),lt(p)),z(l,d));return Mr(c,o,r)}var gz=L({huberLoss_:fz});function yz(e,t,n,a=1e-7,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"labels","logLoss"),i=E(t,"predictions","logLoss"),o=null;n!=null&&(o=E(n,"weights","logLoss")),Tn(s.shape,i.shape,"Error in logLoss: ");let l=xe(1),u=xe(a),p=vt(z(s,ea(Y(i,u)))),d=z(pe(l,s),ea(Y(pe(l,i),u))),c=pe(p,d);return Mr(c,o,r)}var bz=L({logLoss_:yz});function xz(e,t,n,a=wn.SUM_BY_NONZERO_WEIGHTS){let r=E(e,"labels","meanSquaredError"),s=E(t,"predictions","meanSquaredError"),i=null;n!=null&&(i=E(n,"weights","meanSquaredError")),Tn(r.shape,s.shape,"Error in meanSquaredError: ");let o=ff(r,s);return Mr(o,i,a)}var vz=L({meanSquaredError_:xz});function wz(e,t){let n=E(e,"labels","sigmoidCrossEntropyWithLogits"),a=E(t,"logits","sigmoidCrossEntropyWithLogits");Tn(n.shape,a.shape,"Error in sigmoidCrossEntropyWithLogits: ");let r=Xe(a),s=z(a,n),i=Wc(gn(vt(Lt(a))));return Y(pe(r,s),i)}function kz(e,t,n,a=0,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"multiClassLabels","sigmoidCrossEntropy"),i=E(t,"logits","sigmoidCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","sigmoidCrossEntropy")),Tn(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(.5);s=Y(z(s,pe(p,u)),z(d,u))}let l=wz(s,i);return Mr(l,o,r)}var Iz=L({sigmoidCrossEntropy_:kz});function Sz(e,t,n=-1){if(n===-1&&(n=t.rank-1),n!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${n}`);return cr((a,r,s)=>{let i=nf(r,[n],!0),o=pe(le(r,"float32"),i);s([a,o]);let l=vt(z(o,a));return{value:fe(l,[n]),gradFunc:(u,p)=>{let[d,c]=p,h=ui(u.shape,[n]);return[z(W(u,h),pe(le(d,"float32"),gn(c))),z(W(u,h),pe(gn(c),le(d,"float32")))]}}})(e,t)}function Tz(e,t,n,a=0,r=wn.SUM_BY_NONZERO_WEIGHTS){let s=E(e,"onehotLabels","softmaxCrossEntropy"),i=E(t,"logits","softmaxCrossEntropy"),o=null;if(n!=null&&(o=E(n,"weights","softmaxCrossEntropy")),Tn(s.shape,i.shape,"Error in softmaxCrossEntropy: "),a>0){let u=xe(a),p=xe(1),d=xe(s.shape[1]);s=Y(z(s,pe(p,u)),me(u,d))}let l=Sz(s,i);return Mr(l,o,r)}var Nz=L({softmaxCrossEntropy_:Tz});function Cz(e,t,n,a){let r=E(e,"indices","sparseFillEmptyRows","int32"),s=E(t,"values","sparseFillEmptyRows"),i=E(n,"denseShape","sparseFillEmptyRows","int32"),o=E(a,"defaultValue","sparseFillEmptyRows",s.dtype);if(r.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${r.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(o.rank!==0)throw new Error(`Default value should be a scalar but received shape ${o.shape}`);let l={indices:r,values:s,denseShape:i,defaultValue:o},u=O.runKernel(wc,l);return{outputIndices:u[0],outputValues:u[1],emptyRowIndicator:u[2],reverseIndexMap:u[3]}}var Ez=L({sparseFillEmptyRows_:Cz});function _z(e,t,n){let a=E(e,"inputIndices","sparseReshape","int32"),r=E(t,"inputShape","sparseReshape","int32"),s=E(n,"newShape","sparseReshape","int32");if(a.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${a.shape}`);if(r.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:a,inputShape:r,newShape:s},o=O.runKernel($u,i);return{outputIndices:o[0],outputShape:o[1]}}var Az=L({sparseReshape_:_z});function $z(e,t,n){let a=E(e,"data","sparseSegmentMean"),r=E(t,"indices","sparseSegmentMean","int32"),s=E(n,"segmentIds","sparseSegmentMean","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(wc,i)}var Ez=L({sparseSegmentMean_:_z});function $z(e,t,n){let a=_(e,"data","sparseSegmentSum"),r=_(t,"indices","sparseSegmentSum","int32"),s=_(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(kc,i)}var Fz=L({sparseSegmentMean_:$z});function Dz(e,t,n){let a=E(e,"data","sparseSegmentSum"),r=E(t,"indices","sparseSegmentSum","int32"),s=E(n,"segmentIds","sparseSegmentSum","int32");if(a.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${r.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(kc,i)}var Az=L({sparseSegmentSum_:$z});function Fz(e,t,n,a,r,s,i,o){let l=_(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=_(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(Sc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Dz=L({stringNGrams_:Fz});function Rz(e,t,n=!0){let a=_(e,"input","stringSplit","string"),r=_(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(Tc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Mz=L({stringSplit_:Rz});function Pz(e,t){let n=_(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(Nc,r,a)}var Oz=L({stringToHashBucketFast_:Pz}),XT={fft:Hc,ifft:wl,rfft:jc,irfft:hf},YT={hammingWindow:fL,hannWindow:VT,frame:UT,stft:xL},za={flipLeftRight:IL,grayscaleToRGB:TL,resizeNearestNeighbor:KT,resizeBilinear:qT,rotateWithOffset:CL,cropAndResize:wL,nonMaxSuppression:EL,nonMaxSuppressionAsync:OL,nonMaxSuppressionWithScore:zL,nonMaxSuppressionWithScoreAsync:BL,nonMaxSuppressionPadded:UL,nonMaxSuppressionPaddedAsync:HL,threshold:YL,transform:JL},Zv={bandPart:ez,gramSchmidt:nz,qr:rz},ZT={absoluteDifference:oz,computeWeightedLoss:Dr,cosineDistance:uz,hingeLoss:cz,huberLoss:hz,logLoss:fz,meanSquaredError:yz,sigmoidCrossEntropy:vz,softmaxCrossEntropy:Iz},JT={sparseFillEmptyRows:Tz,sparseReshape:Cz,sparseSegmentMean:Ez,sparseSegmentSum:Az},QT={stringNGrams:Dz,stringSplit:Mz,stringToHashBucketFast:Oz},Rr=class extends GS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return _e(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return lT(e,t)}dispose(){this.iterations_!=null&&_e(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Rr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var kf=class extends Rr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(lt(s),1-this.rho)),u=z(he(un(Y(o,this.epsilon)),un(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(_e(this.accumulatedGrads.map(e=>e.variable)),_e(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};kf.className="Adadelta";ws(kf);var If=class extends Rr{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>gn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,lt(r));s.assign(i);let o=Y(z(he(r,un(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&_e(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};If.className="Adagrad";ws(If);var Sf=class extends Rr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(lt(l),1-this.beta2)),h=he(d,n),m=he(c,a);u.assign(d),p.assign(c);let f=Y(z(he(h,Y(un(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&_e(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(Ar(this.beta1,this.iterations_+1)),this.accBeta2.assign(Ar(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Sf.className="Adam";ws(Sf);var Tf=class extends Rr{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=he(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=dr(c,h);u.assign(d),p.assign(m);let f=Y(z(he(a,n),he(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&_e(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&_e(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Tf.className="Adamax";ws(Tf);var qc=class extends Rr{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Jt(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};qc.className="SGD";ws(qc);var Nf=class extends qc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&_e(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Nf.className="Momentum";ws(Nf);var Cf=class extends Rr{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=he(z(s,this.learningRate),un(pe(l,Y(lt(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(lt(s),1-this.decay)),p=Y(z(o,this.momentum),he(z(s,this.learningRate),un(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&_e(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&_e(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&_e(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Cf.className="RMSProp";ws(Cf);var Yr=class{static sgd(e){return new qc(e)}static momentum(e,t,n=!1){return new Nf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Cf(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Sf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new kf(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Tf(e,t,n,a,r)}static adagrad(e,t=.1){return new If(e,t)}},Ws={sgd:Yr.sgd,momentum:Yr.momentum,adadelta:Yr.adadelta,adagrad:Yr.adagrad,rmsprop:Yr.rmsprop,adamax:Yr.adamax,adam:Yr.adam},Lz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function Jv(){return new Promise(e=>Lz(()=>e()))}var N={};$e(N,{ERF_A1:()=>Qz,ERF_A2:()=>eW,ERF_A3:()=>tW,ERF_A4:()=>nW,ERF_A5:()=>aW,ERF_P:()=>Jz,PARALLELIZE_THRESHOLD:()=>Qv,RowPartitionType:()=>nr,SELU_SCALE:()=>tN,SELU_SCALEALPHA:()=>eN,applyActivation:()=>vf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>UP,assertParamsConsistent:()=>zz,assignToTypedArray:()=>uW,axesAreInnerMostDims:()=>kv,calculateShapes:()=>RS,checkEinsumDimSizes:()=>fW,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>aT,combineRaggedTensorToTensorShapes:()=>Bz,complexWithEvenIndex:()=>iW,complexWithOddIndex:()=>oW,computeConv2DInfo:()=>Mc,computeConv3DInfo:()=>YS,computeDefaultPad:()=>av,computeDilation2DInfo:()=>GM,computeOptimalWindowSize:()=>Hz,computeOutAndReduceShapes:()=>rT,computeOutShape:()=>Wz,computePool2DInfo:()=>XS,computePool3DInfo:()=>HM,convertConv2DDataFormat:()=>ZS,decodeEinsumEquation:()=>hW,eitherStridesOrDilationsAreOne:()=>cr,expandShapeToKeepDim:()=>ii,exponent:()=>cW,exponents:()=>pW,fromStringArrayToUint8:()=>PW,fromUint8ToStringArray:()=>MW,getAxesPermutation:()=>sT,getBroadcastDims:()=>AS,getComplexWithIndex:()=>lW,getEinsumComputePath:()=>gW,getEinsumPermutation:()=>mW,getFusedBiasGradient:()=>xf,getFusedDyActivation:()=>bf,getImageCenter:()=>jz,getInnerMostAxes:()=>GP,getPermuted:()=>Kz,getRaggedRank:()=>Uz,getReductionAxes:()=>Wt,getReshaped:()=>qz,getReshapedPermuted:()=>Xz,getRowPartitionTypesHelper:()=>Vz,getSliceBeginCoords:()=>Yz,getSliceSize:()=>Zz,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>vW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>wW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>kW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>TW,getSparseReshapeInputOutputMismatchErrorMessage:()=>CW,getSparseReshapeInputOutputMultipleErrorMessage:()=>NW,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>IW,getSparseReshapeNegativeOutputDimErrorMessage:()=>SW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>AW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>_W,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>EW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>$W,getUndoAxesPermutation:()=>Iv,isIdentityPermutation:()=>yW,log:()=>oD,mergeRealAndImagArrays:()=>rW,prepareAndValidate:()=>DS,prepareSplitSize:()=>xW,segment_util:()=>nN,shouldFuse:()=>wf,slice_util:()=>jt,splitRealAndImagArrays:()=>sW,tupleValuesAreOne:()=>os,upcastType:()=>fa,validateDefaultValueShape:()=>Gz,validateInput:()=>jx,validateUpdateShape:()=>Hx,warn:()=>Jr});function zz(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Wz(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Vz(e){let t={FIRST_DIM_SIZE:nr.FIRST_DIM_SIZE,VALUE_ROWIDS:nr.VALUE_ROWIDS,ROW_LENGTHS:nr.ROW_LENGTHS,ROW_SPLITS:nr.ROW_SPLITS,ROW_LIMITS:nr.ROW_LIMITS,ROW_STARTS:nr.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function Uz(e){return e.length===0?0:e[0]===nr.FIRST_DIM_SIZE?e.length-1:e.length}function Gz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var Qv=30;function Hz(e){return e<=Qv?e:Eh(e,Math.floor(Math.sqrt(e)))}function jz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function qz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Xz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,vk=",",wk="...";function hW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(dW,"").length)/yb.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${yb}").`);let[a,r]=e.split(yb);A(a.indexOf(wk)===-1,()=>`The ellipsis notation ("${wk}") is not supported yet.`);let s=a.split(vk),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function fW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function gW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function bW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function vW(e){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${e}`}function wW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function kW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function IW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function SW(e,t){return`size ${e} must be non-negative, not ${t}`}function TW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function NW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} - dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function CW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function _W(){return"segment ids must be >= 0"}function EW(){return"segment ids are not increasing"}function $W(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function AW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var nN={};$e(nN,{collectGatherOpShapeInfo:()=>RW,computeOutShape:()=>DW,segOpComputeOptimalWindowSize:()=>FW});function FW(e,t){let n=!1,a;for(e<=Qv?(a=e,n=!0):a=Eh(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Eh(e,a+1);return a}function DW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( - ${s}).`);if(nMh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function PW(e){return e.map(t=>$c(t))}var hr={};$e(hr,{nonMaxSuppressionV3Impl:()=>GT,nonMaxSuppressionV4Impl:()=>HT,nonMaxSuppressionV5Impl:()=>jT,whereImpl:()=>DT});var aN={kernelName:Dl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,go(le(n,"float32"),-1))}}},OW={kernelName:Rl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(le(n,"float32")),r=un(pe(xe(1),a));return vt(he(e,r))}}}},LW={kernelName:Ml,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(pe(lt(le(n,"float32")),1));return he(e,a)}}}},zW={kernelName:gs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},WW={kernelName:fi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},BW={kernelName:gi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},VW={kernelName:cc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},UW={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,un(pe(xe(1),lt(le(n,"float32")))))}}},GW={kernelName:zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=un(Y(xe(1),lt(le(n,"float32"))));return he(e,a)}}}},HW={kernelName:Vl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Y(lt(n),lt(a)),i=z(e,he(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(lt(n),lt(a)),i=vt(z(e,he(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},jW={kernelName:Wl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(lt(le(n,"float32")),1))}}},qW={kernelName:Bl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,pe(xe(1),lt(le(n,"float32"))))}}};function KW(e,t,n,a,r,s){let i=_(e,"dy","avgPool3dGrad"),o=_(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(cm,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var XW=L({avgPool3dGrad_:KW}),YW={kernelName:dc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>XW(e,a,r,s,i,o)}}};function ZW(e,t,n,a,r){let s=_(e,"dy","avgPoolGrad"),i=_(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(pm,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var JW=L({avgPoolGrad_:ZW}),QW={kernelName:yi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>JW(e,a,r,s,i)}}},eB={kernelName:bi,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},tB={kernelName:Ul,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Vc(e,a,r)}}},nB={kernelName:tS,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},aB={kernelName:xi,gradFunc:e=>({x:()=>e.clone()})},rB={kernelName:vi,gradFunc:e=>({x:()=>qe(e)})},sB={kernelName:ys,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>mn(Aa(Fr(a,r),Ss(a,s)),e,qe(e))}}},iB={kernelName:hc,inputsToSave:["x"],gradFunc:aN.gradFunc},oB={kernelName:Gl,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Fa(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},lB={kernelName:wi,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(os(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>mv(a.shape,e,r,i,o,l),filter:()=>Xv(a,e,r.shape,i,o,l)}}},uB={kernelName:ki,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>At(e,r,s,i,o,1,l),filter:()=>Xv(e,a,r.shape,s,i,o,l)}}};function pB(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(gm,o,l)}var cB=L({conv3DBackpropFilter_:pB}),dB={kernelName:mc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(os(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>eT(i.shape,e,o,r,s),filter:()=>cB(i,e,o.shape,r,s)}}},hB={kernelName:Ii,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(vt(pf(le(n,"float32"))),e)}}},mB={kernelName:Si,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(cf(le(n,"float32")),e)}}},fB={kernelName:Ti,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=sT([r],a.rank),l=Ym(e,r,s,!i);return o!=null&&(l=Ee(l,o)),l}}}},gB={kernelName:Ni,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(os(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),A(cr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>BT(l.shape,e,u,r,s,o,i),filter:()=>WT(l,e,u.shape,r,s,o,i)}}},yB={kernelName:fc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel($h,s,n),filter:()=>O.runKernel(Ah,i,n)}}},bB={kernelName:_i,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(Im,a)}}},xB={kernelName:Kl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(fn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},vB={kernelName:Ei,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},wB={kernelName:Yl,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},kB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,fn(n))}}},IB={kernelName:$i,gradFunc:e=>({x:()=>qe(e)})},SB={kernelName:Ai,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,le(o,"float32")))}}}},TB={kernelName:Fi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},NB={kernelName:Ql,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Fa(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=kk(0,p),m=kk(p+1,p+1+c),f=Ik([u,[l],d]),g=W(e,f),y=W(r,[l]),b=Ik([[p],h,m]),x=Ee(g,b),w=gf(x,y,a.shape[i]),I=Iv(b);return w=Ee(w,I),w},indices:()=>r}}};function kk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},_B={kernelName:Ri,gradFunc:e=>({x:()=>le(e,"float32")})},EB={kernelName:nu,gradFunc:e=>({x:()=>qe(e)})},$B={kernelName:au,gradFunc:e=>({x:()=>qe(e)})},AB={kernelName:ru,gradFunc:e=>({x:()=>qe(e)})},FB={kernelName:Mi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>mn(s,e,z(e,r))}}},DB={kernelName:ou,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,Y(n,1))}}},RB={kernelName:Pi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,le(n,"float32"))}}},MB={kernelName:aS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=fn(a);return pe(e,z(fe(e,r,!0),s))}}}};function PB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(_m,o,l)}var OB=L({localResponseNormalizationBackprop_:PB}),LB={kernelName:yc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>OB(a,r,e,s,i,o,l)}}};function rN(e,t,n,a){return t.rankz(e,le(ea(n,t),e.dtype))}}var Sk={kernelName:Oi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},zB={kernelName:Li,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Fr(n,a),"float32")),b:()=>z(e,le(Jm(n,a),"float32"))}}};function WB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPool3dGrad"),l=_(t,"input","maxPool3dGrad"),u=_(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel($m,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var BB=L({maxPool3dGrad_:WB}),VB={kernelName:bc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>BB(e,a,r,s,i,o,l)}}};function UB(e,t,n,a,r,s,i){let o=_(e,"dy","maxPoolGrad"),l=_(t,"input","maxPoolGrad"),u=_(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Em,p,d)}var GB=L({maxPoolGrad_:UB}),HB={kernelName:zi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>GB(e,a,r,s,i,o)}}},jB={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Fa(r,a.shape),i=rT(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return he(z(u,Jn(a.shape,"float32")),o)}}}},qB={kernelName:Bi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Fa(r,s.shape),l=rN(e,i,s,o);return{x:()=>l.x()}}},KB={kernelName:Vi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Ss(n,a),"float32")),b:()=>z(e,le(Cn(n,a),"float32"))}}},XB={kernelName:Ui,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},YB={kernelName:cu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,vt(Wu(he(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},ZB={kernelName:Gi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},JB={kernelName:du,gradFunc:e=>({x:()=>vt(e)})},QB={kernelName:Hi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},e4={kernelName:yu,gradFunc:e=>({x:()=>qe(e)})},t4={kernelName:bu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return ct(e,a).map(r=>()=>r)}},Tk={kernelName:ji,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},n4={kernelName:qi,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ut(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,Ar(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=mn(l,ta(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},a4={kernelName:Ki,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>mn(r,e,z(e,a)),alpha:()=>{let s=mn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function r4(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=ec(e,n,!0,!1),i=ec(e,n,!0,!0),o=z(s,i);return z(r,o)}function s4(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=Ee(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=r4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=Ee(p,d)}return p}var i4={kernelName:Xi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>s4(a,e,s)}}},o4={kernelName:Ci,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=he(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(he(s,le(o,"float32")))}}}},l4={kernelName:xu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,vt(lt(n)))}}},u4={kernelName:Qi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Ss(n,6),go(n));return{x:()=>z(e,le(a,"float32"))}}},p4={kernelName:Yi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(go(n),"float32"))}}},c4={kernelName:vu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},d4={kernelName:Ji,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Lm,r,n)}}},h4={kernelName:Zi,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Om,r,n)}}},m4={kernelName:eo,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Fa(a,e.shape);return{x:()=>ga(e,r)}}},f4={kernelName:to,gradFunc:e=>({x:()=>qe(e)})},g4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(he(e,z(Ar(n,1.5),2)))}}},y4={kernelName:ku,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Wc(n),e.dtype))}}},b4={kernelName:Iu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,xe(0)),r=xe(eN),s=xe(tN),i=z(e,s),o=z(z(e,r),fn(le(n,"float32")));return mn(a,i,o)}}}},x4={kernelName:ro,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},v4={kernelName:Nu,gradFunc:e=>({x:()=>qe(e)})},w4={kernelName:ao,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Oc(le(n,"float32")),e)}}},k4={kernelName:Tu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Xm(le(n,"float32")),e)}}},I4={kernelName:Su,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=US(a,r,s),u=[];for(let p=0;pba(e,u)}}},S4={kernelName:oo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},T4={kernelName:Cu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},Nk={kernelName:_u,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Pc(e,a,r)}}},Ck={kernelName:Eu,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},N4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,z(un(le(n,"float32")),2))}}},C4={kernelName:Ic,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},_4={kernelName:lo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},E4={kernelName:xs,gradFunc:e=>({x:()=>qe(e)})},$4={kernelName:uo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(vt(s),a.shape)}}}},A4={kernelName:io,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Fa(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Jn(a.shape,"float32"));return{x:()=>o}}},F4={kernelName:po,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>he(e,lt(Oc(n)))}}},D4={kernelName:co,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),lt(n)),e)}}},R4={kernelName:bs,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Iv(r);return{x:()=>Ee(e,s)}}},P4={kernelName:Ru,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>Ft(e,r)}}},O4={kernelName:Cc,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>L4(e,n)}}};function L4(e,t){let n=dr(t,qe(t)),a=Bu(e,n),r=Fr(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},W4=[aN,OW,LW,zW,WW,BW,VW,UW,GW,HW,jW,qW,YW,QW,eB,tB,nB,aB,rB,sB,iB,oB,uB,lB,dB,hB,mB,fB,gB,yB,o4,bB,xB,vB,wB,kB,SB,IB,TB,NB,CB,_B,EB,$B,AB,FB,DB,RB,MB,LB,Sk,Sk,zB,VB,HB,jB,qB,KB,XB,YB,ZB,JB,QB,e4,t4,Tk,Tk,n4,a4,i4,l4,u4,p4,c4,d4,h4,m4,f4,g4,y4,b4,x4,v4,w4,k4,I4,S4,T4,Nk,Nk,Ck,Ck,N4,_4,C4,E4,$4,A4,F4,D4,R4,M4,P4,O4,z4];for(let e of W4)rS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Xx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Yx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),jm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),Qp(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),ri(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),Zx(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),Jx(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),Qx(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),ev(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),tv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),nv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ya(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Pc(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),ks(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Xs(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),uv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),en(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),qm(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Km(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),At(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Oc(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Xm(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),ec(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Ym(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),yv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Is(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),bv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),xv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),he(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),vv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),Lu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),ea(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),wv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Sv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),fn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Zt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),Tv(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),Hc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),Wu(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),Hm(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Bu(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Fr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),wl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),hf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),Nv(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),Cv(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),_v(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),Lc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Ss(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Jm(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Ev(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),$v(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),ef(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),tf(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),zc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Aa(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),nf(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Av(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),dr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),bl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),Vu(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Dv(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Rv(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),vt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),zu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),oi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),gl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),na(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),ba(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Mv(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Ar(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Uc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),Pv(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),zv(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),sf(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),qT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),KT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ga(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),jc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),of(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),lf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),uf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ts(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Wv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),pf(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),cf(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Ka(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),mo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Vc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),un(this)};Q().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),mf(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),Ns(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return Ft(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),go(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Bv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Vv(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),si(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),Uv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),Ee(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),Gv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),gf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),ct(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),mn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Ir=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ir.prototype)}},Wa=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Wa.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Me=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Me.prototype)}},sN=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,sN.prototype)}},iN=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Sa={};function ew(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Ub(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Ub(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Ub(a))}}}function Kc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in Sa)i=Sa[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:a,indices:r,segmentIds:s};return O.runKernel(Ic,i)}var Rz=L({sparseSegmentSum_:Dz});function Mz(e,t,n,a,r,s,i,o){let l=E(e,"data","stringNGrams","string");if(l.dtype!=="string")throw new Error("Data must be of datatype string");if(l.shape.length!==1)throw new Error(`Data must be a vector, saw: ${l.shape}`);let u=E(t,"dataSplits","stringNGrams");if(u.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let p={separator:n,nGramWidths:a,leftPad:r,rightPad:s,padWidth:i,preserveShortSequences:o},d={data:l,dataSplits:u},c=O.runKernel(Tc,d,p);return{nGrams:c[0],nGramsSplits:c[1]}}var Pz=L({stringNGrams_:Mz});function Oz(e,t,n=!0){let a=E(e,"input","stringSplit","string"),r=E(t,"delimiter","stringSplit","string");if(a.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${a.shape}`);if(r.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${r.shape}`);let s={skipEmpty:n},i={input:a,delimiter:r},o=O.runKernel(Nc,i,s);return{indices:o[0],values:o[1],shape:o[2]}}var Lz=L({stringSplit_:Oz});function zz(e,t){let n=E(e,"input","stringToHashBucketFast","string"),a={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let r={input:n};return O.runKernel(Cc,r,a)}var Wz=L({stringToHashBucketFast_:zz}),JT={fft:jc,ifft:Sl,rfft:qc,irfft:mf},QT={hammingWindow:bL,hannWindow:HT,frame:jT,stft:kL},$a={flipLeftRight:NL,grayscaleToRGB:EL,resizeNearestNeighbor:ZT,resizeBilinear:YT,rotateWithOffset:AL,cropAndResize:SL,nonMaxSuppression:FL,nonMaxSuppressionAsync:WL,nonMaxSuppressionWithScore:VL,nonMaxSuppressionWithScoreAsync:GL,nonMaxSuppressionPadded:jL,nonMaxSuppressionPaddedAsync:KL,threshold:QL,transform:tz},ew={bandPart:az,gramSchmidt:sz,qr:oz},eN={absoluteDifference:pz,computeWeightedLoss:Mr,cosineDistance:dz,hingeLoss:mz,huberLoss:gz,logLoss:bz,meanSquaredError:vz,sigmoidCrossEntropy:Iz,softmaxCrossEntropy:Nz},tN={sparseFillEmptyRows:Ez,sparseReshape:Az,sparseSegmentMean:Fz,sparseSegmentSum:Rz},nN={stringNGrams:Pz,stringSplit:Lz,stringToHashBucketFast:Wz},Pr=class extends qS{minimize(e,t=!1,n){let{value:a,grads:r}=this.computeGradients(e,n);if(n!=null){let s=n.map(i=>({name:i.name,tensor:r[i.name]}));this.applyGradients(s)}else this.applyGradients(r);return Ee(r),t?a:(a.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(e,t){return cT(e,t)}dispose(){this.iterations_!=null&&Ee(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:xe(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(e){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(e){return this.iterations_=(await e[0].tensor.data())[0],e.slice(1)}};Object.defineProperty(Pr,Symbol.hasInstance,{value:e=>e.minimize!=null&&e.computeGradients!=null&&e.applyGradients!=null});var If=class extends Pr{constructor(e,t,n=null){super(),this.learningRate=e,this.rho=t,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accum_grad`,variable:P(()=>qe(a).variable(r))}),this.accumulatedUpdates[n]==null&&(this.accumulatedUpdates[n]={originalName:`${t}/accum_var`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedGrads[n].variable,o=this.accumulatedUpdates[n].variable;P(()=>{let l=Y(z(i,this.rho),z(lt(s),1-this.rho)),u=z(me(pn(Y(o,this.epsilon)),pn(Y(i,this.epsilon))),s),p=Y(z(o,this.rho),z(lt(u),1-this.rho));i.assign(l),o.assign(p);let d=Y(z(u,-this.learningRate),a);a.assign(d)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Ee(this.accumulatedGrads.map(e=>e.variable)),Ee(this.accumulatedUpdates.map(e=>e.variable)))}async getWeights(){let e=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=e.length/2,n=!1;this.accumulatedGrads=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedUpdates=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.rho,t.epsilon)}};If.className="Adadelta";Ts(If);var Sf=class extends Pr{constructor(e,t=.1){super(),this.learningRate=e,this.initialAccumulatorValue=t,this.accumulatedGrads=[]}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulatedGrads[n]==null&&(this.accumulatedGrads[n]={originalName:`${t}/accumulator`,variable:P(()=>yn(a.shape,this.initialAccumulatorValue).variable(!1))});let r=Array.isArray(e)?e[n].tensor:e[t];if(r==null)return;let s=this.accumulatedGrads[n].variable;P(()=>{let i=Y(s,lt(r));s.assign(i);let o=Y(z(me(r,pn(Y(i,O.backend.epsilon()))),-this.learningRate),a);a.assign(o)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Ee(this.accumulatedGrads.map(e=>e.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulatedGrads=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(e,t){return new e(t.learningRate,t.initialAccumulatorValue)}};Sf.className="Adagrad";Ts(Sf);var Tf=class extends Pr{constructor(e,t,n,a=null){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],P(()=>{this.accBeta1=xe(t).variable(),this.accBeta2=xe(n).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=pe(1,this.accBeta2);t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:P(()=>qe(i).variable(o))}),this.accumulatedSecondMoment[s]==null&&(this.accumulatedSecondMoment[s]={originalName:`${r}/v`,variable:P(()=>qe(i).variable(o))});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedSecondMoment[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=Y(z(p,this.beta2),z(lt(l),1-this.beta2)),h=me(d,n),m=me(c,a);u.assign(d),p.assign(c);let f=Y(z(me(h,Y(pn(m),this.epsilon)),-this.learningRate),i);i.assign(f)}),this.accBeta1.assign(z(this.accBeta1,this.beta1)),this.accBeta2.assign(z(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedSecondMoment!=null&&Ee(this.accumulatedSecondMoment.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e),P(()=>{this.accBeta1.assign(Dr(this.beta1,this.iterations_+1)),this.accBeta2.assign(Dr(this.beta2,this.iterations_+1))});let t=e.length/2,n=!1;this.accumulatedFirstMoment=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedSecondMoment=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon)}};Tf.className="Adam";Ts(Tf);var Nf=class extends Pr{constructor(e,t,n,a=null,r=0){super(),this.learningRate=e,this.beta1=t,this.beta2=n,this.epsilon=a,this.decay=r,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],P(()=>{this.iteration=xe(0).variable(),this.accBeta1=xe(t).variable()}),a==null&&(this.epsilon=O.backend.epsilon())}applyGradients(e){let t=Array.isArray(e)?e.map(n=>n.name):Object.keys(e);P(()=>{let n=pe(1,this.accBeta1),a=me(-this.learningRate,Y(z(this.iteration,this.decay),1));t.forEach((r,s)=>{let i=O.registeredVariables[r],o=!1;this.accumulatedFirstMoment[s]==null&&(this.accumulatedFirstMoment[s]={originalName:`${r}/m`,variable:qe(i).variable(o)}),this.accumulatedWeightedInfNorm[s]==null&&(this.accumulatedWeightedInfNorm[s]={originalName:`${r}/v`,variable:qe(i).variable(o)});let l=Array.isArray(e)?e[s].tensor:e[r];if(l==null)return;let u=this.accumulatedFirstMoment[s].variable,p=this.accumulatedWeightedInfNorm[s].variable,d=Y(z(u,this.beta1),z(l,1-this.beta1)),c=z(p,this.beta2),h=Lt(l),m=mr(c,h);u.assign(d),p.assign(m);let f=Y(z(me(a,n),me(d,Y(m,this.epsilon))),i);i.assign(f)}),this.iteration.assign(Y(this.iteration,1)),this.accBeta1.assign(z(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Ee(this.accumulatedFirstMoment.map(e=>e.variable)),this.accumulatedWeightedInfNorm!=null&&Ee(this.accumulatedWeightedInfNorm.map(e=>e.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(e){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(e,t){return new e(t.learningRate,t.beta1,t.beta2,t.epsilon,t.decay)}};Nf.className="Adamax";Ts(Nf);var Kc=class extends Pr{constructor(e){super(),this.learningRate=e,this.setLearningRate(e)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=Array.isArray(e)?e[n].tensor:e[t];if(a==null)return;let r=O.registeredVariables[t];P(()=>{let s=Y(z(this.c,a),r);r.assign(s)})}),this.incrementIterations()}setLearningRate(e){this.learningRate=e,this.c!=null&&this.c.dispose(),this.c=Ht(xe(-e))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(e){if(e=await this.extractIterations(e),e.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(e,t){return new e(t.learningRate)}};Kc.className="SGD";Ts(Kc);var Cf=class extends Kc{constructor(e,t,n=!1){super(e),this.learningRate=e,this.momentum=t,this.useNesterov=n,this.accumulations=[],this.m=xe(this.momentum)}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t];this.accumulations[n]==null&&(this.accumulations[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(!1))});let r=this.accumulations[n].variable,s=Array.isArray(e)?e[n].tensor:e[t];s!=null&&P(()=>{let i,o=Y(z(this.m,r),s);this.useNesterov?i=Y(z(this.c,Y(s,z(o,this.m))),a):i=Y(z(this.c,o),a),r.assign(o),a.assign(i)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Ee(this.accumulations.map(e=>e.variable))}setMomentum(e){this.momentum=e}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=!1;this.accumulations=e.map(n=>({originalName:n.name,variable:n.tensor.variable(t)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(e,t){return new e(t.learningRate,t.momentum,t.useNesterov)}};Cf.className="Momentum";Ts(Cf);var Ef=class extends Pr{constructor(e,t=.9,n=0,a=null,r=!1){if(super(),this.learningRate=e,this.decay=t,this.momentum=n,this.epsilon=a,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=r,a==null&&(this.epsilon=O.backend.epsilon()),e==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(e){(Array.isArray(e)?e.map(t=>t.name):Object.keys(e)).forEach((t,n)=>{let a=O.registeredVariables[t],r=!1;this.accumulatedMeanSquares[n]==null&&(this.accumulatedMeanSquares[n]={originalName:`${t}/rms`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMoments[n]==null&&(this.accumulatedMoments[n]={originalName:`${t}/momentum`,variable:P(()=>qe(a).variable(r))}),this.accumulatedMeanGrads[n]==null&&this.centered&&(this.accumulatedMeanGrads[n]={originalName:`${t}/mg`,variable:P(()=>qe(a).variable(r))});let s=Array.isArray(e)?e[n].tensor:e[t];if(s==null)return;let i=this.accumulatedMeanSquares[n].variable,o=this.accumulatedMoments[n].variable;P(()=>{let l=Y(z(i,this.decay),z(lt(s),1-this.decay));if(this.centered){let u=this.accumulatedMeanGrads[n].variable,p=Y(z(u,this.decay),z(s,1-this.decay)),d=me(z(s,this.learningRate),pn(pe(l,Y(lt(p),this.epsilon)))),c=Y(z(o,this.momentum),d);i.assign(l),u.assign(p),o.assign(c);let h=pe(a,c);a.assign(h)}else{let u=Y(z(i,this.decay),z(lt(s),1-this.decay)),p=Y(z(o,this.momentum),me(z(s,this.learningRate),pn(Y(u,this.epsilon))));i.assign(u),o.assign(p);let d=pe(a,p);a.assign(d)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Ee(this.accumulatedMeanSquares.map(e=>e.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Ee(this.accumulatedMeanGrads.map(e=>e.variable)),this.accumulatedMoments!=null&&Ee(this.accumulatedMoments.map(e=>e.variable))}async getWeights(){let e=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&e.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(e.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(e){e=await this.extractIterations(e);let t=this.centered?e.length/3:e.length/2,n=!1;this.accumulatedMeanSquares=e.slice(0,t).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.accumulatedMoments=e.slice(t,t*2).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=e.slice(t*2,t*3).map(a=>({originalName:a.name,variable:a.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(e,t){return new e(t.learningRate,t.decay,t.momentum,t.epsilon,t.centered)}};Ef.className="RMSProp";Ts(Ef);var Jr=class{static sgd(e){return new Kc(e)}static momentum(e,t,n=!1){return new Cf(e,t,n)}static rmsprop(e,t=.9,n=0,a=null,r=!1){return new Ef(e,t,n,a,r)}static adam(e=.001,t=.9,n=.999,a=null){return new Tf(e,t,n,a)}static adadelta(e=.001,t=.95,n=null){return new If(e,t,n)}static adamax(e=.002,t=.9,n=.999,a=null,r=0){return new Nf(e,t,n,a,r)}static adagrad(e,t=.1){return new Sf(e,t)}},Gs={sgd:Jr.sgd,momentum:Jr.momentum,adadelta:Jr.adadelta,adagrad:Jr.adagrad,rmsprop:Jr.rmsprop,adamax:Jr.adamax,adam:Jr.adam},Bz=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:e=>e())();function tw(){return new Promise(e=>Bz(()=>e()))}var N={};Ae(N,{ERF_A1:()=>nW,ERF_A2:()=>aW,ERF_A3:()=>rW,ERF_A4:()=>sW,ERF_A5:()=>iW,ERF_P:()=>tW,PARALLELIZE_THRESHOLD:()=>nw,RowPartitionType:()=>ar,SELU_SCALE:()=>rN,SELU_SCALEALPHA:()=>aN,applyActivation:()=>wf,assertAndGetBroadcastShape:()=>ut,assertAxesAreInnerMostDims:()=>jP,assertParamsConsistent:()=>Vz,assignToTypedArray:()=>dW,axesAreInnerMostDims:()=>Tv,calculateShapes:()=>OS,checkEinsumDimSizes:()=>bW,checkPadOnDimRoundingMode:()=>Nn,combineLocations:()=>iT,combineRaggedTensorToTensorShapes:()=>Gz,complexWithEvenIndex:()=>uW,complexWithOddIndex:()=>pW,computeConv2DInfo:()=>Pc,computeConv3DInfo:()=>QS,computeDefaultPad:()=>iv,computeDilation2DInfo:()=>qM,computeOptimalWindowSize:()=>Kz,computeOutAndReduceShapes:()=>oT,computeOutShape:()=>Uz,computePool2DInfo:()=>JS,computePool3DInfo:()=>KM,convertConv2DDataFormat:()=>eT,decodeEinsumEquation:()=>gW,eitherStridesOrDilationsAreOne:()=>hr,expandShapeToKeepDim:()=>ui,exponent:()=>mW,exponents:()=>hW,fromStringArrayToUint8:()=>zW,fromUint8ToStringArray:()=>LW,getAxesPermutation:()=>lT,getBroadcastDims:()=>RS,getComplexWithIndex:()=>cW,getEinsumComputePath:()=>xW,getEinsumPermutation:()=>yW,getFusedBiasGradient:()=>vf,getFusedDyActivation:()=>xf,getImageCenter:()=>Xz,getInnerMostAxes:()=>qP,getPermuted:()=>Zz,getRaggedRank:()=>jz,getReductionAxes:()=>Wt,getReshaped:()=>Yz,getReshapedPermuted:()=>Jz,getRowPartitionTypesHelper:()=>Hz,getSliceBeginCoords:()=>Qz,getSliceSize:()=>eW,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>IW,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>SW,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>TW,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>EW,getSparseReshapeInputOutputMismatchErrorMessage:()=>AW,getSparseReshapeInputOutputMultipleErrorMessage:()=>_W,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>NW,getSparseReshapeNegativeOutputDimErrorMessage:()=>CW,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>RW,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>$W,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>FW,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>DW,getUndoAxesPermutation:()=>Nv,isIdentityPermutation:()=>vW,log:()=>pD,mergeRealAndImagArrays:()=>oW,prepareAndValidate:()=>PS,prepareSplitSize:()=>kW,segment_util:()=>sN,shouldFuse:()=>kf,slice_util:()=>Kt,splitRealAndImagArrays:()=>lW,tupleValuesAreOne:()=>cs,upcastType:()=>fa,validateDefaultValueShape:()=>qz,validateInput:()=>Xx,validateUpdateShape:()=>Kx,warn:()=>ts});function Vz(e,t){let n=e[0].length;e.forEach((r,s)=>{A(r.length===n,()=>`Error in concat${n}D: rank of tensors[${s}] must be the same as the rank of the rest (${n})`)}),A(t>=0&&t`Error in concat${n}D: axis must be between 0 and ${n-1}.`);let a=e[0];e.forEach((r,s)=>{for(let i=0;i`Error in concat${n}D: Shape of tensors[${s}] (${r}) does not match the shape of the rest (${a}) along the non-concatenated axis ${s}.`)})}function Uz(e,t){let n=e[0].slice();for(let a=1;a=0)if(o>=0){if(o!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${r+e}] = ${s} but shape[${r+e}] = ${o}`)}else a[i]=s}return a}function Hz(e){let t={FIRST_DIM_SIZE:ar.FIRST_DIM_SIZE,VALUE_ROWIDS:ar.VALUE_ROWIDS,ROW_LENGTHS:ar.ROW_LENGTHS,ROW_SPLITS:ar.ROW_SPLITS,ROW_LIMITS:ar.ROW_LIMITS,ROW_STARTS:ar.ROW_STARTS},n=[];for(let a of e)if(a in t)n.push(t[a]);else break;return n}function jz(e){return e.length===0?0:e[0]===ar.FIRST_DIM_SIZE?e.length-1:e.length}function qz(e,t){if(e==null||t==null)return;let n=e.length,a=t.length;if(n>=a)throw new Error(`defaultValue.shape=${e} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${n} must be less than ragged tensor input flatValues.rank = ${a})`);for(let r=0;r=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${e}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${r-e.length}] = ${s} but ragged tensor input.flatValues.shape[${r-e.length}] = ${i}`)}}var nw=30;function Kz(e){return e<=nw?e:Ah(e,Math.floor(Math.sqrt(e)))}function Xz(e,t,n){let a=n*(typeof e=="number"?e:e[0]),r=t*(typeof e=="number"?e:e[1]);return[a,r]}function Yz(e,t,n,a=!0){let r=[];if(a)r=r.concat(t.slice(0)),r.push(e[0]/n),r=r.concat(e.slice(1));else{r=r.concat(e[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):r.push(i);a.push(...r),a.push(0),a.push(...s)}return a}function Jz(e,t,n,a=!0){let r=[];a?r.push(e[0]/n):r.push(e[0]*n);for(let s=1;s/g,Ik=",",Sk="...";function gW(e,t){e=e.replace(/\s/g,"");let n=(e.length-e.replace(fW,"").length)/vb.length;if(n<1)throw new Error("Equations without an arrow are not supported.");if(n>1)throw new Error(`Equation must contain exactly one arrow ("${vb}").`);let[a,r]=e.split(vb);A(a.indexOf(Sk)===-1,()=>`The ellipsis notation ("${Sk}") is not supported yet.`);let s=a.split(Ik),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let o=[];for(let c=0;cm.indexOf(h)!==-1))throw new Error(`Output subscripts contain the label ${h} not present in the input subscripts.`);o.indexOf(h)===-1&&o.push(h)}for(let c=0;cr!==-1),{permutationIndices:n,expandDims:a}}function bW(e,t,n){let a=new Array(e);for(let r=0;r`Expected dimension ${a[t[r][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function xW(e,t){let n=e,a=[],r=0;e.length===0&&n.push(-1),r=e.length+1;for(let i=0;it===n)}function wW(e,t){let n=[];for(let a=0;a"Number of splits must evenly divide the axis."),a=new Array(t).fill(e.shape[n]/t);else{let r=t.reduce((i,o)=>(o===-1&&(i+=1),i),0);A(r<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((o,l)=>l>0?o+l:o);t[s]=e.shape[n]-i}A(e.shape[n]===t.reduce((i,o)=>i+o),()=>"The sum of sizes must match the size of the axis dimension."),a=t}return a}function IW(e){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${e}`}function SW(e,t){return`indices(${e}, 0) is invalid: ${t} < 0`}function TW(e,t,n){return`indices(${e}, 0) is invalid: ${t} >= ${n}`}function NW(e,t){return`only one output dimension may be -1, not both ${e} and ${t}`}function CW(e,t){return`size ${e} must be non-negative, not ${t}`}function EW(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function _W(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a SparseTensor with ${n} + dense values, but the requested shape requires a multiple of ${a}. inputShape=${e} outputShape= ${t}`}function AW(e,t){let n=mt(e),a=mt(t);return`Input to reshape is a tensor with ${n} dense values, but the requested shape has ${a}. inputShape=${e} outputShape=${t}`}function $W(){return"segment ids must be >= 0"}function FW(){return"segment ids are not increasing"}function DW(e,t){return`Segment id ${e} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function RW(e,t,n){return`Bad: indices[${e}] == ${t} out of range [0, ${n})`}var sN={};Ae(sN,{collectGatherOpShapeInfo:()=>OW,computeOutShape:()=>PW,segOpComputeOptimalWindowSize:()=>MW});function MW(e,t){let n=!1,a;for(e<=nw?(a=e,n=!0):a=Ah(e,Math.floor(Math.sqrt(e)));!n;)a>t||a===e?n=!0:a=Ah(e,a+1);return a}function PW(e,t,n){let a=[],r=e.length;for(let s=0;sr))throw new Error(`Expect batchDims in the range of [-${r}, ${r}], but got ${a}`);if(a<0&&(a+=r),a>s)throw new Error(`batchDims (${a}) must be less than rank(x) ( + ${s}).`);if(nPh(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function zW(e){return e.map(t=>$c(t))}var fr={};Ae(fr,{nonMaxSuppressionV3Impl:()=>qT,nonMaxSuppressionV4Impl:()=>KT,nonMaxSuppressionV5Impl:()=>XT,whereImpl:()=>PT});var iN={kernelName:Pl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ko(le(n,"float32"),-1))}}},WW={kernelName:Ol,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=lt(le(n,"float32")),r=pn(pe(xe(1),a));return vt(me(e,r))}}}},BW={kernelName:Ll,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pn(pe(lt(le(n,"float32")),1));return me(e,a)}}}},VW={kernelName:vs,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}},UW={kernelName:xi,saveAllInputs:!0,gradFunc:(e,t)=>{let n={};return t.forEach((a,r)=>{n[r]=()=>e.clone()}),n}},GW={kernelName:vi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},HW={kernelName:dc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>qe(n)}}},jW={kernelName:Bl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,pn(pe(xe(1),lt(le(n,"float32")))))}}},qW={kernelName:Vl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=pn(Y(xe(1),lt(le(n,"float32"))));return me(e,a)}}}},KW={kernelName:Hl,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Y(lt(n),lt(a)),i=z(e,me(a,s)),o=Wt(n.shape,r);return o.length>0&&(i=fe(i,o)),W(i,n.shape)},b:()=>{let s=Y(lt(n),lt(a)),i=vt(z(e,me(n,s))),o=Wt(a.shape,r);return o.length>0&&(i=fe(i,o)),W(i,a.shape)}}}},XW={kernelName:Ul,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,Y(lt(le(n,"float32")),1))}}},YW={kernelName:Gl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,pe(xe(1),lt(le(n,"float32"))))}}};function ZW(e,t,n,a,r,s){let i=E(e,"dy","avgPool3dGrad"),o=E(t,"input","avgPool3dGrad"),l=i,u=o,p=!1;o.rank===4&&(p=!0,l=W(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),u=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]])),A(l.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${l.rank}.`),A(u.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${u.rank}.`),Nn("avgPool3dGrad",r,s);let d={dy:l,input:u},c={filterSize:n,strides:a,pad:r,dimRoundingMode:s},h=O.runKernel(dm,d,c);return p?W(h,[h.shape[1],h.shape[2],h.shape[3],h.shape[4]]):h}var JW=L({avgPool3dGrad_:ZW}),QW={kernelName:hc,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i,dimRoundingMode:o}=n;return{x:()=>JW(e,a,r,s,i,o)}}};function eB(e,t,n,a,r){let s=E(e,"dy","avgPoolGrad"),i=E(t,"input","avgPoolGrad");A(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let o=i,l=s,u=!1;i.rank===3&&(u=!0,o=W(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=W(s,[1,s.shape[0],s.shape[1],s.shape[2]])),A(l.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${l.rank}.`),A(o.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${o.rank}.`);let p={dy:l,input:o},d={filterSize:n,strides:a,pad:r},c=O.runKernel(cm,p,d);return u?W(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var tB=L({avgPoolGrad_:eB}),nB={kernelName:wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{filterSize:r,strides:s,pad:i}=n;return{x:()=>tB(e,a,r,s,i)}}},aB={kernelName:ki,inputsToSave:["a","b"],gradFunc:(e,t,n)=>{let[a,r]=t,{transposeA:s,transposeB:i}=n;return!s&&!i?{a:()=>Fe(e,r,!1,!0),b:()=>Fe(a,e,!0,!1)}:!s&&i?{a:()=>Fe(e,r,!1,!1),b:()=>Fe(e,a,!0,!1)}:s&&!i?{a:()=>Fe(r,e,!1,!0),b:()=>Fe(a,e,!1,!1)}:{a:()=>Fe(r,e,!0,!0),b:()=>Fe(e,a,!0,!0)}}},rB={kernelName:jl,gradFunc:(e,t,n)=>{let{blockShape:a,crops:r}=n;return{x:()=>Uc(e,a,r)}}},sB={kernelName:rS,gradFunc:(e,t,n)=>{let a=n,r=a.inputShape,s=a.shape,i=Array.from(s);for(let l=r.length-1;l>=0;l--)if(r[l]===s[l])i[l]=1;else if(r[l]!==1)throw new Error(`broadcastTo(): [${r}] cannot be broadcast to [${s}].`);let o=[];for(let l=0;l1&&o.push(l);return{x:()=>fe(e,o,!0)}}},iB={kernelName:Ii,gradFunc:e=>({x:()=>e.clone()})},oB={kernelName:Si,gradFunc:e=>({x:()=>qe(e)})},lB={kernelName:ws,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{clipValueMin:r,clipValueMax:s}=n;return{x:()=>fn(Da(Rr(a,r),Es(a,s)),e,qe(e))}}},uB={kernelName:mc,inputsToSave:["x"],gradFunc:iN.gradFunc},pB={kernelName:ql,saveAllInputs:!0,gradFunc:(e,t,n)=>{let a=t.map(o=>o.shape),{axis:r}=n,s=Ra(r,t[0].shape)[0],i=a.map(o=>o[s]);return zn(e,i,s).map(o=>()=>o)}},cB={kernelName:Ti,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{dilations:s,strides:i,pad:o,dataFormat:l}=n;return A(cs(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>yv(a.shape,e,r,i,o,l),filter:()=>Jv(a,e,r.shape,i,o,l)}}},dB={kernelName:Ni,inputsToSave:["dy","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,{strides:s,pad:i,dataFormat:o,dimRoundingMode:l}=n;return{dy:()=>Ft(e,r,s,i,o,1,l),filter:()=>Jv(e,a,r.shape,s,i,o,l)}}};function hB(e,t,n,a,r){let s=e;e.rank===4&&(s=W(e,[1,e.shape[0],e.shape[1],e.shape[2],e.shape[3]]));let i=t;i.rank===4&&(i=W(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),A(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),A(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),A(n.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${n}.`),A(s.shape[4]===n[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${n[3]}.`),A(i.shape[4]===n[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${n[4]}).`);let o={x:s,dy:i},l={strides:a,pad:r,filterShape:n};return O.runKernel(ym,o,l)}var mB=L({conv3DBackpropFilter_:hB}),fB={kernelName:fc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s}=n;A(cs(a),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${a}'`);let[i,o]=t;return{x:()=>aT(i.shape,e,o,r,s),filter:()=>mB(i,e,o.shape,r,s)}}},gB={kernelName:Ci,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(vt(cf(le(n,"float32"))),e)}}},yB={kernelName:Ei,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(df(le(n,"float32")),e)}}},bB={kernelName:_i,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r,exclusive:s,reverse:i}=n;return{x:()=>{let o=lT([r],a.rank),l=Zm(e,r,s,!i);return o!=null&&(l=_e(l,o)),l}}}},xB={kernelName:Ai,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let{dilations:a,strides:r,pad:s,dimRoundingMode:i}=n,o=a==null?[1,1]:a;A(cs(o),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${o}'`);let[l,u]=t;return A(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${l.rank}.`),A(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${u.rank}.`),A(l.shape[3]===u.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${l.shape[3]}) must match the inChannels dimension in filter ${u.shape[2]}.`),A(hr(r,o),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${r} and dilations '${o}'.`),Nn("depthwiseConv2d",s,i),{x:()=>GT(l.shape,e,u,r,s,o,i),filter:()=>UT(l,e,u.shape,r,s,o,i)}}},vB={kernelName:gc,inputsToSave:["x","filter"],gradFunc:(e,t,n)=>{let[a,r]=t,s={x:a,filter:r,dy:e},i={x:a,filter:r,dy:e};return{x:()=>O.runKernel($h,s,n),filter:()=>O.runKernel(Fh,i,n)}}},wB={kernelName:Fi,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t,a={dy:e,y:n};return{x:()=>O.runKernel(Sm,a)}}},kB={kernelName:Zl,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(gn(vt(lt(n))),2/Math.sqrt(Math.PI));return{x:()=>z(e,a)}}},IB={kernelName:Di,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,n)}}},SB={kernelName:Ql,inputsToSave:["input"],gradFunc:(e,t)=>{let[n]=t;return{input:()=>W(e,n.shape)}}},TB={kernelName:eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,gn(n))}}},NB={kernelName:Ri,gradFunc:e=>({x:()=>qe(e)})},CB={kernelName:Mi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=me(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(me(s,le(o,"float32")))}}}},EB={kernelName:Pi,inputsToSave:["x","mean","variance","scale"],gradFunc:(e,t,n)=>{let{varianceEpsilon:a}=n,[r,s,i,o]=t,l=o==null?xe(1):o,u=Wt(s.shape,r.shape),p=[];if(s.rank===1){for(let f=0;fs.rank===1?W(z(z(e,Ln(W(h,[1,1,1,s.shape[0]]),p)),l),r.shape):W(z(z(e,h),l),r.shape),mean:()=>{let f=z(z(h,xe(-1)),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},variance:()=>{let f=z(z(m,d),c);return s.rank===1&&(f=fe(f,u)),W(f,s.shape)},scale:()=>{let f=z(d,h),g=z(e,f);return s.rank===1&&(g=fe(g,u)),W(g,s.shape)},offset:()=>{let f=e;return s.rank===1&&(f=fe(f,u)),W(f,s.shape)}}}},_B={kernelName:nu,inputsToSave:["x","indices"],gradFunc:(e,t,n)=>{let[a,r]=t,{axis:s}=n,i=Ra(s,a.shape)[0];return{x:()=>{let o=a.shape,l=r.size,u=o.slice(0,i),p=u.length,d=o.slice(s,o.length).slice(1),c=d.length,h=Tk(0,p),m=Tk(p+1,p+1+c),f=Nk([u,[l],d]),g=W(e,f),y=W(r,[l]),b=Nk([[p],h,m]),x=_e(g,b),w=yf(x,y,a.shape[i]),I=Nv(b);return w=_e(w,I),w},indices:()=>r}}};function Tk(e,t){let n=[];for(let a=e;a{let[n,a]=t;return{a:()=>qe(n),b:()=>qe(a)}}},$B={kernelName:Li,gradFunc:e=>({x:()=>le(e,"float32")})},FB={kernelName:su,gradFunc:e=>({x:()=>qe(e)})},DB={kernelName:iu,gradFunc:e=>({x:()=>qe(e)})},RB={kernelName:zi,gradFunc:e=>({x:()=>qe(e)})},MB={kernelName:Wi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{alpha:r}=n,s=Cn(a,0);return{x:()=>fn(s,e,z(e,r))}}},PB={kernelName:uu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,Y(n,1))}}},OB={kernelName:Bi,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,le(n,"float32"))}}},LB={kernelName:iS,inputsToSave:[],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n;return{logits:()=>{let s=gn(a);return pe(e,z(fe(e,r,!0),s))}}}};function zB(e,t,n,a=5,r=1,s=1,i=.5){let o={x:e,y:t,dy:n},l={depthRadius:a,bias:r,alpha:s,beta:i};return O.runKernel(_m,o,l)}var WB=L({localResponseNormalizationBackprop_:zB}),BB={kernelName:bc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{depthRadius:s,bias:i,alpha:o,beta:l}=n;return{x:()=>WB(a,r,e,s,i,o,l)}}};function oN(e,t,n,a){return t.rankz(e,le(Qn(n,t),e.dtype))}}var Ck={kernelName:Vi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{reductionIndices:r}=a,s=t[0],i=t[1],o=Ra(r,s.shape),l=oN(e,i,s,o);return{x:()=>l.x()}}},VB={kernelName:Ui,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Rr(n,a),"float32")),b:()=>z(e,le(Qm(n,a),"float32"))}}};function UB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPool3dGrad"),l=E(t,"input","maxPool3dGrad"),u=E(n,"output","maxPool3dGrad"),p=o,d=l,c=u,h=!1;l.rank===4&&(h=!0,p=W(o,[1,o.shape[0],o.shape[1],o.shape[2],o.shape[3]]),d=W(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]]),c=W(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]])),A(p.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${p.rank}.`),A(d.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${d.rank}.`),A(c.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${c.rank}.`),Nn("maxPool3dGrad",s,i);let m={dy:p,input:d,output:c},f={filterSize:a,strides:r,pad:s,dimRoundingMode:i},g=O.runKernel($m,m,f);return h?W(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var GB=L({maxPool3dGrad_:UB}),HB={kernelName:xc,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=n;return{x:()=>GB(e,a,r,s,i,o,l)}}};function jB(e,t,n,a,r,s,i){let o=E(e,"dy","maxPoolGrad"),l=E(t,"input","maxPoolGrad"),u=E(n,"output","maxPoolGrad");A(l.rank===o.rank,()=>`Rank of input (${l.rank}) does not match rank of dy (${o.rank})`),A(o.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${o.rank}.`),A(l.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${l.rank}.`),Nn("maxPoolGrad",s,i);let p={dy:o,input:l,output:u},d={filterSize:a,strides:r,pad:s,dimRoundingMode:i};return O.runKernel(Am,p,d)}var qB=L({maxPoolGrad_:jB}),KB={kernelName:Gi,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a,r]=t,{filterSize:s,strides:i,pad:o}=n;return{x:()=>qB(e,a,r,s,i,o)}}},XB={kernelName:Hi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=Ra(r,a.shape),i=oT(a.shape,s)[1],o=mt(i);return{x:()=>{let l=a.shape.slice();s.forEach(p=>{l[p]=1});let u=W(e,l);return me(z(u,Jn(a.shape,"float32")),o)}}}},YB={kernelName:ji,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(e,t,n)=>{let a=n,{axis:r}=a,[s,i]=t,o=Ra(r,s.shape),l=oN(e,i,s,o);return{x:()=>l.x()}}},ZB={kernelName:qi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t;return{a:()=>z(e,le(Es(n,a),"float32")),b:()=>z(e,le(Cn(n,a),"float32"))}}},JB={kernelName:Ki,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},QB={kernelName:hu,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=Wt(n.shape,r);return s.length>0?W(fe(e,s),n.shape):e},b:()=>{let s=z(e,vt(Bu(me(n,a)))),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},e4={kernelName:Xi,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=z(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);return i.length>0?W(fe(s,i),a.shape):s}}}},t4={kernelName:mu,gradFunc:e=>({x:()=>vt(e)})},n4={kernelName:Yi,inputsToSave:["indices"],gradFunc:(e,t)=>{let n=t[0];return{indices:()=>It(n.shape,"float32")}}},a4={kernelName:xu,gradFunc:e=>({x:()=>qe(e)})},r4={kernelName:vu,saveAllInputs:!0,gradFunc:(e,t,n)=>{let{axis:a}=n;return pt(e,a).map(r=>()=>r)}},Ek={kernelName:Zi,inputsToSave:["x"],gradFunc:(e,t,n)=>{let a=t[0],{paddings:r}=n,s=r.map(i=>i[0]);return{x:()=>Be(e,s,a.shape)}}},s4={kernelName:Ji,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(e,t)=>{let[n,a,r]=t,s=n,i=a,o=ut(s.shape,i.shape);return{a:()=>{let l=le(i,"float32"),u=z(e,z(l,Dr(s,pe(l,xe(1))))),p=Wt(s.shape,o);return p.length>0&&(u=fe(u,p)),W(u,s.shape)},b:()=>{let l=Cn(s,0),u=fn(l,ea(s),qe(s)),p=z(e,z(r,u)),d=Wt(i.shape,o);return d.length>0&&(p=fe(p,d)),W(p,i.shape)}}}},i4={kernelName:Qi,inputsToSave:["x","alpha"],gradFunc:(e,t)=>{let[n,a]=t,r=Cn(n,0);return{x:()=>fn(r,e,z(e,a)),alpha:()=>{let s=fn(r,qe(e),z(e,n)),i=Wt(a.shape,e.shape);return i.length>0&&(s=fe(s,i)),W(s,a.shape)}}}};function o4(e,t,n){let a=e.shape.slice();a[n]=1;let r=W(t,a),s=tc(e,n,!0,!1),i=tc(e,n,!0,!0),o=z(s,i);return z(r,o)}function l4(e,t,n){let a=e.shape.length,r=a-n.length,s=N.getAxesPermutation(n,a),i=e;s!=null&&(i=_e(e,s));let o=i.shape.slice(),l=o.splice(a-n.length,n.length).reduce((d,c)=>d*c,1);o.push(l);let u=i.reshape(o),p=o4(u,t,r);if(p=p.reshape(i.shape),s!=null){let d=N.getUndoAxesPermutation(s);p=_e(p,d)}return p}var u4={kernelName:eo,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{axis:r}=n,s=[];return r==null?s=a.shape.map((i,o)=>o):typeof r=="number"?s=[r]:s=r,{x:()=>l4(a,e,s)}}},p4={kernelName:$i,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=me(e,le(a,"float32")),i=Wt(n.shape,r);return i.length>0?W(fe(s,i),n.shape):s},b:()=>{let s=z(e,le(n,"float32")),i=Wt(a.shape,r);i.length>0&&(s=W(fe(s,i),a.shape));let o=lt(a);return vt(me(s,le(o,"float32")))}}}},c4={kernelName:to,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,vt(lt(n)))}}},d4={kernelName:so,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t,a=z(Es(n,6),ko(n));return{x:()=>z(e,le(a,"float32"))}}},h4={kernelName:no,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,le(ko(n),"float32"))}}},m4={kernelName:wu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>W(e,n.shape)}}},f4={kernelName:ro,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(zm,r,n)}}},g4={kernelName:ao,inputsToSave:["images"],gradFunc:(e,t,n)=>{let[a]=t,r={dy:e,images:a};return{images:()=>O.runKernel(Lm,r,n)}}},y4={kernelName:io,gradFunc:(e,t,n)=>{let{dims:a}=n,r=Ra(a,e.shape);return{x:()=>ya(e,r)}}},b4={kernelName:oo,gradFunc:e=>({x:()=>qe(e)})},x4={kernelName:lo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>vt(me(e,z(Dr(n,1.5),2)))}}},v4={kernelName:Iu,inputsToSave:["condition"],gradFunc:(e,t)=>{let[n]=t;return{condition:()=>le(qe(n),"float32"),t:()=>z(e,le(n,e.dtype)),e:()=>z(e,le(Bc(n),e.dtype))}}},w4={kernelName:Su,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>{let a=Cn(n,xe(0)),r=xe(aN),s=xe(rN),i=z(e,s),o=z(z(e,r),gn(le(n,"float32")));return fn(a,i,o)}}}},k4={kernelName:po,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(n,pe(xe(1),n)))}}},I4={kernelName:Cu,gradFunc:e=>({x:()=>qe(e)})},S4={kernelName:uo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Lc(le(n,"float32")),e)}}},T4={kernelName:Nu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(Ym(le(n,"float32")),e)}}},N4={kernelName:Tu,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{begin:r,size:s}=n,i=a.shape,[o,l]=jS(a,r,s),u=[];for(let p=0;pxa(e,u)}}},C4={kernelName:mo,outputsToSave:[!0],gradFunc:(e,t,n)=>{let[a]=t,{dim:r}=n,s=!0,i=z(e,a);return{logits:()=>pe(i,z(fe(i,[r],s),a))}}},E4={kernelName:Eu,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,ha(n))}}},_k={kernelName:_u,gradFunc:(e,t,n)=>{let{blockShape:a,paddings:r}=n;return{x:()=>Oc(e,a,r)}}},Ak={kernelName:Au,gradFunc:(e,t,n)=>{let{axis:a}=n;return{x:()=>Ze(e,a)}}},_4={kernelName:co,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,z(pn(le(n,"float32")),2))}}},A4={kernelName:Sc,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(e,z(le(n,"float32"),2))}}},$4={kernelName:fo,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=xe(2);return{a:()=>z(e,z(r,pe(n,a))),b:()=>z(e,z(r,pe(a,n)))}}},F4={kernelName:Is,gradFunc:e=>({x:()=>qe(e)})},D4={kernelName:go,inputsToSave:["a","b"],gradFunc:(e,t)=>{let[n,a]=t,r=ut(n.shape,a.shape);return{a:()=>{let s=e,i=Wt(n.shape,r);return i.length>0&&(s=fe(s,i)),W(s,n.shape)},b:()=>{let s=e,i=Wt(a.shape,r);return i.length>0&&(s=fe(s,i)),W(vt(s),a.shape)}}}},R4={kernelName:ho,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,r=a.shape.slice(),{axis:s}=n;Ra(s,a.shape).forEach(l=>{r[l]=1});let i=W(e,r),o=z(i,Jn(a.shape,"float32"));return{x:()=>o}}},M4={kernelName:yo,inputsToSave:["x"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>me(e,lt(Lc(n)))}}},P4={kernelName:bo,outputsToSave:[!0],gradFunc:(e,t)=>{let[n]=t;return{x:()=>z(pe(xe(1),lt(n)),e)}}},O4={kernelName:ks,inputsToSave:["x"],gradFunc:(e,t,n)=>{let[a]=t,{reps:r}=n;return{x:()=>{let s=qe(a);if(a.rank===1)for(let i=0;i{let a=n,{perm:r}=a,s=Nv(r);return{x:()=>_e(e,s)}}},z4={kernelName:Mu,gradFunc:(e,t,n)=>{let a=n,{axis:r}=a;return{value:()=>$t(e,r)}}},W4={kernelName:Ec,inputsToSave:["segmentIds"],gradFunc:(e,t)=>{let[n]=t;return{x:()=>B4(e,n)}}};function B4(e,t){let n=mr(t,qe(t)),a=Vu(e,n),r=Rr(t,xe(0,"int32")),s=a.rank-r.rank;for(let o=0;o({x:()=>qe(e)})},U4=[iN,WW,BW,VW,UW,GW,HW,jW,qW,KW,XW,YW,QW,nB,aB,rB,sB,iB,oB,lB,uB,pB,dB,cB,fB,gB,yB,bB,xB,vB,p4,wB,kB,IB,SB,TB,CB,NB,EB,_B,AB,$B,FB,DB,RB,MB,PB,OB,LB,BB,Ck,Ck,VB,HB,KB,XB,YB,ZB,JB,QB,e4,t4,n4,a4,r4,Ek,Ek,s4,i4,u4,c4,d4,h4,m4,f4,g4,y4,b4,x4,v4,w4,k4,I4,S4,T4,N4,C4,E4,_k,_k,Ak,Ak,_4,$4,A4,F4,D4,R4,M4,P4,O4,L4,z4,W4,V4];for(let e of U4)oS(e);Q().prototype.abs=function(){return this.throwIfDisposed(),Lt(this)};Q().prototype.acos=function(){return this.throwIfDisposed(),Jx(this)};Q().prototype.acosh=function(){return this.throwIfDisposed(),Qx(this)};Q().prototype.add=function(e){return this.throwIfDisposed(),Y(this,e)};Q().prototype.all=function(e,t){return this.throwIfDisposed(),qm(this,e,t)};Q().prototype.any=function(e,t){return this.throwIfDisposed(),ec(this,e,t)};Q().prototype.argMax=function(e){return this.throwIfDisposed(),oi(this,e)};Q().prototype.argMin=function(e){return this.throwIfDisposed(),ev(this,e)};Q().prototype.asScalar=function(){return this.throwIfDisposed(),A(this.size===1,()=>"The array must have only 1 element."),W(this,[])};Q().prototype.asType=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.as1D=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.as2D=function(e,t){return this.throwIfDisposed(),W(this,[e,t])};Q().prototype.as3D=function(e,t,n){return this.throwIfDisposed(),W(this,[e,t,n])};Q().prototype.as4D=function(e,t,n,a){return this.throwIfDisposed(),W(this,[e,t,n,a])};Q().prototype.as5D=function(e,t,n,a,r){return this.throwIfDisposed(),W(this,[e,t,n,a,r])};Q().prototype.asin=function(){return this.throwIfDisposed(),tv(this)};Q().prototype.asinh=function(){return this.throwIfDisposed(),nv(this)};Q().prototype.atan=function(){return this.throwIfDisposed(),av(this)};Q().prototype.atan2=function(e){return this.throwIfDisposed(),rv(this,e)};Q().prototype.atanh=function(){return this.throwIfDisposed(),sv(this)};Q().prototype.avgPool=function(e,t,n,a){return this.throwIfDisposed(),ba(this,e,t,n,a)};Q().prototype.batchToSpaceND=function(e,t){return this.throwIfDisposed(),Oc(this,e,t)};Q().prototype.batchNorm=function(e,t,n,a,r){return this.throwIfDisposed(),Ns(this,e,t,n,a,r)};Q().prototype.broadcastTo=function(e){return this.throwIfDisposed(),Js(this,e)};Q().prototype.cast=function(e){return this.throwIfDisposed(),le(this,e)};Q().prototype.ceil=function(){return this.throwIfDisposed(),dv(this)};Q().prototype.clipByValue=function(e,t){return this.throwIfDisposed(),tn(this,e,t)};Q().prototype.concat=function(e,t){return this.throwIfDisposed(),e instanceof Te&&(e=[e]),Ze([this,...e],t)};Q().prototype.conv1d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Km(this,e,t,n,a,r,s)};Q().prototype.conv2dTranspose=function(e,t,n,a,r){return this.throwIfDisposed(),Xm(this,e,t,n,a,r)};Q().prototype.conv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Ft(this,e,t,n,a,r,s)};Q().prototype.cos=function(){return this.throwIfDisposed(),Lc(this)};Q().prototype.cosh=function(){return this.throwIfDisposed(),Ym(this)};Q().prototype.cumprod=function(e,t,n){return this.throwIfDisposed(),tc(this,e,t,n)};Q().prototype.cumsum=function(e,t,n){return this.throwIfDisposed(),Zm(this,e,t,n)};Q().prototype.depthToSpace=function(e,t){return this.throwIfDisposed(),vv(this,e,t)};Q().prototype.depthwiseConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),Cs(this,e,t,n,a,r,s)};Q().prototype.dilation2d=function(e,t,n,a,r){return this.throwIfDisposed(),wv(this,e,t,n,a,r)};Q().prototype.divNoNan=function(e){return this.throwIfDisposed(),kv(this,e)};Q().prototype.div=function(e){return this.throwIfDisposed(),me(this,e)};Q().prototype.dot=function(e){return this.throwIfDisposed(),Iv(this,e)};Q().prototype.elu=function(){return this.throwIfDisposed(),zu(this)};Q().prototype.equal=function(e){return this.throwIfDisposed(),Qn(this,e)};Q().prototype.erf=function(){return this.throwIfDisposed(),Sv(this)};Q().prototype.euclideanNorm=function(e,t){return this.throwIfDisposed(),Cv(this,e,t)};Q().prototype.exp=function(){return this.throwIfDisposed(),gn(this)};Q().prototype.expandDims=function(e){return this.throwIfDisposed(),Qt(this,e)};Q().prototype.expm1=function(){return this.throwIfDisposed(),Ev(this)};Q().prototype.fft=function(){return this.throwIfDisposed(),jc(this)};Q().prototype.flatten=function(){return this.throwIfDisposed(),W(this,[this.size])};Q().prototype.floor=function(){return this.throwIfDisposed(),Bu(this)};Q().prototype.floorDiv=function(e){return this.throwIfDisposed(),jm(this,e)};Q().prototype.gather=function(e,t){return this.throwIfDisposed(),Vu(this,e,t)};Q().prototype.greaterEqual=function(e){return this.throwIfDisposed(),Rr(this,e)};Q().prototype.greater=function(e){return this.throwIfDisposed(),Cn(this,e)};Q().prototype.ifft=function(){return this.throwIfDisposed(),Sl(this)};Q().prototype.irfft=function(){return this.throwIfDisposed(),mf(this)};Q().prototype.isFinite=function(){return this.throwIfDisposed(),_v(this)};Q().prototype.isInf=function(){return this.throwIfDisposed(),Av(this)};Q().prototype.isNaN=function(){return this.throwIfDisposed(),$v(this)};Q().prototype.leakyRelu=function(e){return this.throwIfDisposed(),zc(this,e)};Q().prototype.lessEqual=function(e){return this.throwIfDisposed(),Es(this,e)};Q().prototype.less=function(e){return this.throwIfDisposed(),Qm(this,e)};Q().prototype.localResponseNormalization=function(e,t,n,a){return this.throwIfDisposed(),Fv(this,e,t,n,a)};Q().prototype.logSigmoid=function(){return this.throwIfDisposed(),Dv(this)};Q().prototype.logSoftmax=function(e){return this.throwIfDisposed(),tf(this,e)};Q().prototype.logSumExp=function(e,t){return this.throwIfDisposed(),nf(this,e,t)};Q().prototype.log=function(){return this.throwIfDisposed(),ea(this)};Q().prototype.log1p=function(){return this.throwIfDisposed(),Wc(this)};Q().prototype.logicalAnd=function(e){return this.throwIfDisposed(),Da(this,e)};Q().prototype.logicalNot=function(){return this.throwIfDisposed(),Bc(this)};Q().prototype.logicalOr=function(e){return this.throwIfDisposed(),af(this,e)};Q().prototype.logicalXor=function(e){return this.throwIfDisposed(),Rv(this,e)};Q().prototype.matMul=function(e,t,n){return this.throwIfDisposed(),Fe(this,e,t,n)};Q().prototype.maxPool=function(e,t,n,a){return this.throwIfDisposed(),Dt(this,e,t,n,a)};Q().prototype.max=function(e,t){return this.throwIfDisposed(),ma(this,e,t)};Q().prototype.maximum=function(e){return this.throwIfDisposed(),mr(this,e)};Q().prototype.mean=function(e,t){return this.throwIfDisposed(),Nt(this,e,t)};Q().prototype.min=function(e,t){return this.throwIfDisposed(),kl(this,e,t)};Q().prototype.minimum=function(e){return this.throwIfDisposed(),Uu(this,e)};Q().prototype.mirrorPad=function(e,t){return this.throwIfDisposed(),Pv(this,e,t)};Q().prototype.mod=function(e){return this.throwIfDisposed(),Ov(this,e)};Q().prototype.mul=function(e){return this.throwIfDisposed(),z(this,e)};Q().prototype.neg=function(){return this.throwIfDisposed(),vt(this)};Q().prototype.norm=function(e,t,n){return this.throwIfDisposed(),Wu(this,e,t,n)};Q().prototype.notEqual=function(e){return this.throwIfDisposed(),pi(this,e)};Q().prototype.oneHot=function(e,t=1,n=0){return this.throwIfDisposed(),vl(this,e,t,n)};Q().prototype.onesLike=function(){return this.throwIfDisposed(),ta(this)};Q().prototype.pad=function(e,t){return this.throwIfDisposed(),xa(this,e,t)};Q().prototype.pool=function(e,t,n,a,r,s){return this.throwIfDisposed(),Lv(this,e,t,n,a,r,s)};Q().prototype.pow=function(e){return this.throwIfDisposed(),Dr(this,e)};Q().prototype.prelu=function(e){return this.throwIfDisposed(),Gc(this,e)};Q().prototype.prod=function(e,t){return this.throwIfDisposed(),zv(this,e,t)};Q().prototype.reciprocal=function(){return this.throwIfDisposed(),Vv(this)};Q().prototype.relu=function(){return this.throwIfDisposed(),Xe(this)};Q().prototype.relu6=function(){return this.throwIfDisposed(),of(this)};Q().prototype.reshapeAs=function(e){return this.throwIfDisposed(),W(this,e.shape)};Q().prototype.reshape=function(e){return this.throwIfDisposed(),W(this,e)};Q().prototype.resizeBilinear=function(e,t,n){return this.throwIfDisposed(),YT(this,e,t,n)};Q().prototype.resizeNearestNeighbor=function(e,t,n){return this.throwIfDisposed(),ZT(this,e,t,n)};Q().prototype.reverse=function(e){return this.throwIfDisposed(),ya(this,e)};Q().prototype.rfft=function(){return this.throwIfDisposed(),qc(this)};Q().prototype.round=function(){return this.throwIfDisposed(),lf(this)};Q().prototype.rsqrt=function(){return this.throwIfDisposed(),uf(this)};Q().prototype.selu=function(){return this.throwIfDisposed(),pf(this)};Q().prototype.separableConv2d=function(e,t,n,a,r,s){return this.throwIfDisposed(),_s(this,e,t,n,a,r,s)};Q().prototype.sigmoid=function(){return this.throwIfDisposed(),ha(this)};Q().prototype.sign=function(){return this.throwIfDisposed(),Uv(this)};Q().prototype.sin=function(){return this.throwIfDisposed(),cf(this)};Q().prototype.sinh=function(){return this.throwIfDisposed(),df(this)};Q().prototype.slice=function(e,t){return this.throwIfDisposed(),Be(this,e,t)};Q().prototype.softmax=function(e){return this.throwIfDisposed(),Xa(this,e)};Q().prototype.softplus=function(){return this.throwIfDisposed(),vo(this)};Q().prototype.spaceToBatchND=function(e,t){return this.throwIfDisposed(),Uc(this,e,t)};Q().prototype.split=function(e,t){return this.throwIfDisposed(),zn(this,e,t)};Q().prototype.sqrt=function(){return this.throwIfDisposed(),pn(this)};Q().prototype.square=function(){return this.throwIfDisposed(),lt(this)};Q().prototype.squaredDifference=function(e){return this.throwIfDisposed(),ff(this,e)};Q().prototype.squeeze=function(e){return this.throwIfDisposed(),As(this,e)};Q().prototype.stack=function(e,t){this.throwIfDisposed();let n=e instanceof Te?[this,e]:[this,...e];return $t(n,t)};Q().prototype.step=function(e){return this.throwIfDisposed(),ko(this,e)};Q().prototype.stridedSlice=function(e,t,n,a,r,s,i,o){return this.throwIfDisposed(),Gv(this,e,t,n,a,r,s,i,o)};Q().prototype.sub=function(e){return this.throwIfDisposed(),pe(this,e)};Q().prototype.sum=function(e,t){return this.throwIfDisposed(),fe(this,e,t)};Q().prototype.tan=function(){return this.throwIfDisposed(),Hv(this)};Q().prototype.tanh=function(){return this.throwIfDisposed(),li(this)};Q().prototype.tile=function(e){return this.throwIfDisposed(),Ln(this,e)};Q().prototype.toBool=function(){return this.throwIfDisposed(),le(this,"bool")};Q().prototype.toFloat=function(){return this.throwIfDisposed(),le(this,"float32")};Q().prototype.toInt=function(){return this.throwIfDisposed(),le(this,"int32")};Q().prototype.topk=function(e,t){return this.throwIfDisposed(),jv(this,e,t)};Q().prototype.transpose=function(e){return this.throwIfDisposed(),_e(this,e)};Q().prototype.unique=function(e){return this.throwIfDisposed(),qv(this,e)};Q().prototype.unsortedSegmentSum=function(e,t){return this.throwIfDisposed(),yf(this,e,t)};Q().prototype.unstack=function(e){return this.throwIfDisposed(),pt(this,e)};Q().prototype.where=function(e,t){return this.throwIfDisposed(),fn(e,this,t)};Q().prototype.zerosLike=function(){return this.throwIfDisposed(),qe(this)};var Tr=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Tr.prototype)}},Ba=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Ba.prototype)}},V=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,V.prototype)}},Me=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,Me.prototype)}},lN=class extends Error{constructor(e){super(e),Object.setPrototypeOf(this,lN.prototype)}},uN=class{constructor(e){this.maxEntries=e||100,this.cache=new Map}get(e){let t;return this.cache.has(e)&&(t=this.cache.get(e),this.cache.delete(e),this.cache.set(e,t)),t}put(e,t){if(this.cache.has(e))this.cache.delete(e);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(e,t)}getMaxEntries(){return this.maxEntries}setMaxEntries(e){if(e<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${e}.`);if(this.maxEntries>e)for(let t=0;tn.toUpperCase())}var Ta={};function aw(e){if(e==null)return null;let t={};return t.className=e.getClassName(),t.config=e.getConfig(),t}function Kb(e){if(!(e==null||typeof e!="object"))if(Array.isArray(e))e.forEach(t=>Kb(t));else{let t=Object.keys(e);for(let n of t){let a=e[n];a!=null&&typeof a=="object"&&(!Array.isArray(a)&&a.type==="ndarray"&&typeof a.value=="number"?e[n]=a.value:Kb(a))}}}function Xc(e,t={},n={},a="object",r=!1){if(typeof e=="string"){let s=e,i;if(s in n)i=n[s];else if(s in Ta)i=Ta[s];else if(i=t[s],i==null)throw new V(`Unknown ${a}: ${e}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. 2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=e;if(s.className==null||s.config==null)throw new V(`${a}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in Sa?[o,l]=Sa.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: +'className' and 'config' must set.`);let i=s.className,o,l;if(i in n?[o,l]=n[i]:i in Ta?[o,l]=Ta.className:i in t&&([o,l]=t[i]),o==null)throw new V(`Unknown ${a}: ${i}. This may be due to one of the following reasons: 1. The ${a} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Sa))u[h]=Sa[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Sa);for(let h of Object.keys(n))Sa[h]=n[h];Ub(s.config);let c=l(o,s.config,n,r);return Sa=Object.assign({},d),c}else{let u=Object.assign({},Sa);for(let d of Object.keys(n))Sa[d]=n[d];let p=new o(s.config);return Sa=Object.assign({},u),p}}}function B4(e,t){return et?1:0}function oh(e,t){return-1*B4(e,t)}function as(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function V4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function yo(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function tw(e,t,n=0,a=1/0){return ar(n>=0),ar(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function Qt(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>Qt(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${oN(e)}.`)}function oN(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>oN(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function U4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return al.set(n,1),n}else return e}var J4=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function hN(e){return!!e.match(J4)}function Q4(e){return e===parseInt(e.toString(),10)}function rs(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function Ha(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Xc(e,1);return Gb(n,[1,t,1])})}function tV(e){let t=[rs(e.shape)];return W(e,t)}function nV(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],rs(e.shape,1)];return W(e,t)}function Zs(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[t,0],[n,e.shape[1]]);case 3:return fo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return vl(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function xb(e,t,n){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:return df(e,[0,t],[e.shape[0],n]);case 3:return fo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return vl(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function uh(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Gc(e,t,n);case 2:switch(a){case 1:return Zs(e,t,n);case 2:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return Zs(e,t,n);case 2:return fo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return Zs(e,t,n);case 2:return vl(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return vl(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return xb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function nw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function $k(e,t){switch(e.rank){case 1:return pv([e,t]);case 2:return cv([e,t],0);case 3:return dv([e,t],0);case 4:return hv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Gb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function Ef(e,t=0,n=1,a,r){return rf(e,t,n,a,r)}function or(e,t,n,a){if(e.rank<2||t.rank<2)throw new Me(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Me(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2)return kl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Hb(e.rank,a,ja()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(Ee(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(kl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Hb(e.rank,a,ja()):null,activation:n}),d)}}function mN(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Bu(e,t,n)))}function Yc(e){return z(e,e)}function Hb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Xa(e,t,n){return P(()=>(n==null&&(n=ja()),Rt(n),Y(e,Hb(e.rank,t,n))))}function aV(e,t=1){if(t!==1)throw new Me(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Lu(e)}function rV(e){return P(()=>he(e,Y(Lt(e),1)))}function fN(e,t,n,a){return P(()=>qv(e,t,n,a))}function sV(e){return P(()=>{let t=Y(.5,z(.2,e));return en(t,0,1)})}function Zc(e,t,n=!1){return n?e():t()}var iV=["fanIn","fanOut","fanAvg"],oV=["normal","uniform","truncatedNormal"];function lV(e){yo(iV,"FanMode",e)}function uV(e){yo(oV,"Distribution",e)}var Ra=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},aw=class extends Ra{apply(e,t){return It(e,t)}};aw.className="Zeros";ne.registerClass(aw);var $f=class extends Ra{apply(e,t){return Jn(e,t)}};$f.className="Ones";ne.registerClass($f);var rw=class extends Ra{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};rw.className="Constant";ne.registerClass(rw);var sw=class extends Ra{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Uu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};sw.className="RandomUniform";ne.registerClass(sw);var iw=class extends Ra{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`randomNormal does not support dType ${t}.`);return Ef(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};iw.className="RandomNormal";ne.registerClass(iw);var ow=class extends Ra{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`truncatedNormal does not support dType ${t}.`);return ff(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};ow.className="TruncatedNormal";ne.registerClass(ow);var lw=class extends Ra{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Zm(e[0]))})}getConfig(){return{gain:this.gain}}};lw.className="Identity";ne.registerClass(lw);function pV(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=rs(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=rs(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=rs(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Ra{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,lV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,uV(this.distribution),this.seed=e.seed}apply(e,t){let n=pV(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`${this.getClassName()} does not support dType ${t}.`);return ff(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Uu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var Af=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Af.className="GlorotUniform";ne.registerClass(Af);var Ff=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ff.className="GlorotNormal";ne.registerClass(Ff);var Df=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="HeNormal";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="HeUniform";ne.registerClass(Rf);var Mf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Mf.className="LeCunNormal";ne.registerClass(Mf);var Pf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Pf.className="LeCunNormal";ne.registerClass(Pf);var uw=class extends Ra{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Me("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Me("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Ef(n,0,1,"float32"),r=Zv.gramSchmidt(a);return e[0]>e[1]&&(r=Ee(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};uw.className="Orthogonal";ne.registerClass(uw);var Ak={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Fk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return ew(e)}function St(e){if(typeof e=="string"){let t=e in Ak?Ak[e]:e;if(t==="GlorotNormal")return new Ff;if(t==="GlorotUniform")return new Af;if(t==="HeNormal")return new Df;if(t==="HeUniform")return new Rf;if(t==="LeCunNormal")return new Mf;if(t==="LeCunUniform")return new Pf;{let n={};return n.className=t,n.config={},Fk(n)}}else return e instanceof Ra?e:Fk(e)}function jb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Wh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function tt(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Bh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Dk="Variable",gN=class{constructor(e,t="float32",n=Dk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=uN(),n=n==null?Dk:n,this.originalName=cN(n),this.name=dN(this.originalName),this.trainable_=a,this.constraint=r,this.val=Hv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),cV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function cV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function qb(e){return e.map(t=>t.read())}function pw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Ba=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=uN(),s!=null&&(this.originalName=cN(s),this.name=dN(this.originalName)),this.rank=t.length}},dV=0,Of=class{constructor(e,t){this.callArgs=t,this.id=dV++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},hV=0,Ge=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=hV++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Sr(n)+"_"+_f(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Wa(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Ir(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Ir(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=xt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=xt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of xt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=xt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=mV(e),i=this.computeOutputShape(s),o,l=fV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Ba(l,u,this,xt(e),t,this.name,p)):o=new Ba(l,i,this,xt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Ir(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Ir(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Wa(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Bh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return qb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=qb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=xt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=xt(e);t=xt(t),n=xt(n),a=xt(a),r=Wh(r),s=Wh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Of({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function mV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function fV(e){return"float32"}function yN(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Vh.get(p),c;if(d==null){let m=bV(i,t);d=m.sorted,c=m.recipientCounts,Vh.put(p,d),Uh.put(p,c)}c={},r||Object.assign(c,Uh.get(p));let h=new js(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Rk(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Rk(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:xV(a)}}function xV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Rk(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function vV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,yV);var xN={};$e(xN,{maxNorm:()=>kV,minMaxNorm:()=>TV,nonNeg:()=>SV,unitNorm:()=>IV});function cw(e,t){return P(()=>un(fe(z(e,e),t,!0)))}var Jc=class extends ne.Serializable{getConfig(){return{}}},dw=class extends Jc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=en(t,0,this.maxValue);return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};dw.className="MaxNorm";ne.registerClass(dw);var hw=class extends Jc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>he(e,Y(Gt(),cw(e,this.axis))))}getConfig(){return{axis:this.axis}}};hw.className="UnitNorm";ne.registerClass(hw);var mw=class extends Jc{apply(e){return Xe(e)}};mw.className="NonNeg";ne.registerClass(mw);var fw=class extends Jc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=cw(e,this.axis),n=Y(z(this.rate,en(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,he(n,Y(Gt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};fw.className="MinMaxNorm";ne.registerClass(fw);var Mk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function qt(e){return ew(e)}function Pk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Kt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Mk?Mk[e]:e,config:{}};return Pk(t)}else return e instanceof Jc?e:Pk(e)}function kV(e){return new dw(e)}function IV(e){return new hw(e)}function SV(){return new mw}function TV(e){return new fw(e)}var vN={};$e(vN,{constant:()=>_V,glorotNormal:()=>MV,glorotUniform:()=>RV,heNormal:()=>PV,heUniform:()=>OV,identity:()=>FV,leCunNormal:()=>LV,leCunUniform:()=>zV,ones:()=>CV,orthogonal:()=>WV,randomNormal:()=>$V,randomUniform:()=>EV,truncatedNormal:()=>AV,varianceScaling:()=>DV,zeros:()=>NV});function NV(){return new aw}function CV(){return new $f}function _V(e){return new rw(e)}function EV(e){return new sw(e)}function $V(e){return new iw(e)}function AV(e){return new ow(e)}function FV(e){return new lw(e)}function DV(e){return new Bn(e)}function RV(e){return new Af(e)}function MV(e){return new Ff(e)}function PV(e){return new Df(e)}function OV(e){return new Rf(e)}function LV(e){return new Mf(e)}function zV(e){return new Pf(e)}function WV(e){return new uw(e)}var wN={};$e(wN,{Layer:()=>Ge,RNN:()=>mr,RNNCell:()=>ad,activation:()=>hG,add:()=>kG,alphaDropout:()=>sH,average:()=>IG,averagePooling1d:()=>T0,averagePooling2d:()=>N0,averagePooling3d:()=>C0,avgPool1d:()=>FG,avgPool2d:()=>RG,avgPool3d:()=>PG,avgPooling1d:()=>DG,avgPooling2d:()=>MG,avgPooling3d:()=>OG,batchNormalization:()=>EG,bidirectional:()=>ZG,categoryEncoding:()=>uH,concatenate:()=>SG,conv1d:()=>rG,conv2d:()=>sG,conv2dTranspose:()=>iG,conv3d:()=>oG,conv3dTranspose:()=>lG,convLstm2d:()=>qG,convLstm2dCell:()=>KG,cropping2D:()=>pG,dense:()=>mG,depthwiseConv2d:()=>dG,dot:()=>_G,dropout:()=>fG,elu:()=>JU,embedding:()=>wG,flatten:()=>yG,gaussianDropout:()=>rH,gaussianNoise:()=>aH,globalAveragePooling1d:()=>LG,globalAveragePooling2d:()=>zG,globalMaxPool1d:()=>QG,globalMaxPool2d:()=>eH,globalMaxPooling1d:()=>d2,globalMaxPooling2d:()=>h2,gru:()=>BG,gruCell:()=>VG,input:()=>zN,inputLayer:()=>ZU,layerNormalization:()=>$G,leakyReLU:()=>eG,lstm:()=>UG,lstmCell:()=>GG,masking:()=>iH,maxPool1d:()=>tH,maxPool2d:()=>nH,maxPooling1d:()=>m2,maxPooling2d:()=>f2,maxPooling3d:()=>WG,maximum:()=>TG,minimum:()=>NG,multiply:()=>CG,permute:()=>vG,prelu:()=>tG,reLU:()=>QU,repeatVector:()=>bG,rescaling:()=>oH,reshape:()=>xG,resizing:()=>lH,rnn:()=>XG,separableConv2d:()=>uG,simpleRNN:()=>HG,simpleRNNCell:()=>jG,softmax:()=>nG,spatialDropout1d:()=>gG,stackedRNNCells:()=>YG,thresholdedReLU:()=>aG,timeDistributed:()=>JG,upSampling2d:()=>cG,zeroPadding2d:()=>AG});async function Zr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(he(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Jt(t[n])}))}},SN=class extends Sl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew TN(n,t))}var Ca=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ca.checkForDuplicate(t),Ca.constructors[e]==null&&(Ca.constructors[e]=[]),Ca.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ca.constructors)Ca.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ca.constructors={}}static createCallbacks(e){let t=[];for(let n in Ca.constructors){let a=+n;e>=a&&t.push(...Ca.constructors[a])}return t.map(n=>new n)}};Ca.constructors={};function CN(e,t,n,a,r,s,i,o,l){let u=new SN,p=[new VV,...Ca.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new IN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ua(e,t={},n=!1){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Gh(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Yc(e),t,!0),a=gn(n.shape,Gt()),r=un(dr(n,a));return he(e,r)})}function xo(e,t){return P(()=>Nt(Yc(pe(t,e)),-1))}function Lf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function ju(e,t){return P(()=>{let n=pe(e,t),a=en(Lt(e),Gt(),Number.MAX_VALUE),r=Lt(he(n,a));return z(100,Nt(r,-1))})}function UV(e,t){return P(()=>{let n=en(t,Gt(),Number.MAX_VALUE),a=ta(Y(1,n)),r=en(e,Gt(),Number.MAX_VALUE),s=ta(Y(1,r));return Nt(Yc(pe(a,s)),-1)})}function GV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(Yc(n),-1)})}function HV(e,t){return P(()=>{let n=dr(0,pe(1,z(e,t)));return Nt(n,-1)})}function jV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return dr(0,Y(1,pe(a,n)))})}function qV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,mo(z(-2,a))),n);return Nt(r,-1)})}function tc(e,t,n=!1){return P(()=>{if(n)t=Ka(t);else{let a=fe(t,t.shape.length-1,!0);t=he(t,a)}return t=en(t,Gt(),1-Gt()),vt(fe(z(le(e,"float32"),ta(t)),t.shape.length-1))})}function Hh(e,t,n=!1){return P(()=>{let a=le(Wu(tV(e)),"int32");t=en(t,Gt(),1-Gt());let r=t.shape,s=W(gl(a,r[r.length-1]),r);return tc(s,t,n)})}function KV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=vt(Lt(t));return Y(pe(n,z(t,e)),zc(fn(a)))})}function zf(e,t){return P(()=>{let n;return n=en(t,Gt(),1-Gt()),n=ta(he(n,pe(1,n))),Nt(KV(e,n),-1)})}function XV(e,t){return P(()=>{let n=en(e,Gt(),1),a=en(t,Gt(),1);return fe(z(e,ta(he(n,a))),-1)})}function YV(e,t){return P(()=>{let n=ta(Y(Gt(),t));return Nt(pe(t,z(e,n)),-1)})}function gw(e,t){return P(()=>{let n=Gh(e,-1),a=Gh(t,-1),r=z(n,a);return vt(fe(r,-1))})}var jh={meanSquaredError:xo,meanAbsoluteError:Lf,meanAbsolutePercentageError:ju,meanSquaredLogarithmicError:UV,squaredHinge:GV,hinge:HV,categoricalHinge:jV,logcosh:qV,categoricalCrossentropy:tc,sparseCategoricalCrossentropy:Hh,binaryCrossentropy:zf,kullbackLeiblerDivergence:XV,poisson:YV,cosineProximity:gw};function vb(e){if(typeof e=="string"){if(e in jh)return jh[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function yw(e,t){return P(()=>{let n=z(.5,na(t)),a=bo(Cn(t,n),e.dtype);return Nt(ea(e,a),-1)})}function bw(e,t){return P(()=>bo(ea(ri(e,-1),ri(t,-1)),"float32"))}function _N(e,t){return P(()=>le(fe(Aa(ea(e,1),ea(t,1))),"float32"))}function ZV(e,t){return P(()=>le(fe(Aa(ea(e,1),ea(t,0))),"float32"))}function JV(e,t){return P(()=>le(fe(Aa(ea(e,0),ea(t,1))),"float32"))}function EN(e,t){return P(()=>{let n=_N(e,t),a=JV(e,t),r=Y(n,a);return le(mn(Cn(r,0),he(n,r),0),"float32")})}function QV(e,t){return P(()=>{let n=_N(e,t),a=ZV(e,t),r=Y(n,a);return le(mn(Cn(r,0),he(n,r),0),"float32")})}function $N(e,t){return zf(e,t)}function AN(e,t){return e.rank===t.rank&&(e=Ns(e,[e.rank-1])),t=ri(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(ea(e,t),"float32")}var eU=xo,tU=xo,nU=Lf,aU=Lf,rU=ju,sU=ju,xw=tc,iU=gw,FN=Hh,qh={binaryAccuracy:yw,categoricalAccuracy:bw,precision:EN,categoricalCrossentropy:xw,sparseCategoricalCrossentropy:FN,mse:eU,MSE:tU,mae:nU,MAE:aU,mape:rU,MAPE:sU,cosine:iU};function oU(e){if(typeof e=="string"&&e in qh)return qh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function ph(e){if(ar(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(jh))if(jh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(qh))if(qh[n]===e){t=n;break}return t!==void 0?t:e.name}}function lU(e){let t={Adagrad:()=>Ws.adagrad(.01),Adadelta:()=>Ws.adadelta(1,.95,Gt()),Adam:()=>Ws.adam(.001,.9,.999,Gt()),Adamax:()=>Ws.adamax(.002,.9,.999,Gt(),0),RMSProp:()=>Ws.rmsprop(.001,.9,0,Gt()),SGD:()=>Ws.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}function Lk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Kb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function Kb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Kb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Kb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function uU(e,t,n,a=console.log){let r=cU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Kh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Kh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function dU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Kh(o,t,n)}function hU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);as(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;ar(x===0,"input layer has >1 nodes"),ar(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Wa(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(tr.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let E=C.inboundLayers.length;for(let $=0;$=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(oh);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof tr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(oh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Wa(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Wa(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}pw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${vw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=Xb(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=xt(e);let n=new js;for(let a=0;a{e=xt(e);let n;return t==null?n=li(null,e.length):n=xt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Wh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(oh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(oh);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=xt(p.call(x,m)),b=xt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=xt(p.call(f,m)),b=xt(p.computeMask(f,g));if(p.activityRegularizer)throw new Me("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ua(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!V4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];ar(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function mU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function RN(e,t){return mU(e,t,"classWeight")}async function MN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return ir(e);if(e.shape.length===2){if(e.shape[1]>1)return ri(e,1);if(e.shape[1]===1)return W(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());_e(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function fU(e,t){return z(e,t)}var gU=32;function PN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=zk("input",e.inputNames,n),i=zk("output",e.outputNames,a),o=s[0].shape[0];v.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),v.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function zk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function yU(e){if(e.length===3)throw new Me("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function bU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(Wk(n.validationData))v.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=yU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=NN(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=CN(p,d,n.epochs,null,null,xU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;Wk(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?gU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Me("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=vU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=PN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(_e(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&_e(y)}_e(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function Pp(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>Zs(a,t,n-t)):Zs(e,t,n-t)}function ww(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>ww(n,t)):mN(e,t.dtype==="int32"?t:le(t,"int32")))}function Zb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}async function kU(e,t,n,a,r,s,i,o,l,u,p,d,c,h,m){r==null&&(r=32),s==null&&(s=1),p==null&&(p=!0),c==null&&(c=0);let f=!1;if(l!=null&&u!=null&&(f=!0),m!=null&&(f=!0,h==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=e.checkNumSamples(n,r,h,"steps_per_epoch"),y;g!=null&&(y=Ha(0,g)),i==null&&(i=1);let{callbackList:b,history:x}=CN(o,i,s,c,g,h,r,f,d);b.setModel(e),e.history=x,await b.onTrainBegin(),e.stopTraining_=!1;for(let w=c;w{let R=C[E][0],F=C[E][1],S=Zs(T,R,F-R);$.batch=E,$.size=F-R;let M=ww(n,S),B=t(M);for(let U=0;U0){if(g=!0,a.validationData.length===2)l=a.validationData[0],u=a.validationData[1];else throw a.validationData.length===3?new Me("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${a.validationData} is invalid.`);let E=!0,$=await e.standardizeUserData(l,u,null,null,E,h);p=$[0],d=$[1],y=p.concat(d)}else if(a.validationSplit!=null&&a.validationSplit>0&&a.validationSplit<1){g=!0;let E=Math.floor(r[0].shape[0]*(1-a.validationSplit)),$=r[0].shape[0];p=Pp(r,E,$),i=r,r=Pp(r,0,E),d=Pp(s,E,$),o=s,s=Pp(s,0,E),y=p.concat(d)}else a.validationSteps!=null&&(g=!0);let b=r.concat(s).concat(c);e.checkTrainableWeightsConsistency();let x=e.makeTrainFunction(),w=e.getDedupedMetricsNames(),I,T;g?(e.makeTestFunction(),I=e.testFunction,T=w.slice().concat(w.map(E=>"val_"+E))):(I=null,y=[],T=w.slice());let C=NN(a.callbacks,a.yieldEvery);return await kU(e,x,b,w,h,a.epochs,a.verbose,C,I,y,a.shuffle,T,a.initialEpoch,null,null)}finally{e.isTraining=!1,La(r,t),La(s,n),La(i,t),La(o,n),La(p,l),La(d,u),c!=null&&_e(c)}}function ON(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function SU(e){return e instanceof Te}function Jb(e){return Array.isArray(e)}function Bk(e){return!SU(e)&&!Jb(e)}function Vk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(Jb(e)&&e.length>0)i=!0;else if(Bk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Bk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(Jb(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=ON(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function TU(e,t,n){let a=as(e.map(s=>s.shape[0]));a.sort();let r=as(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function NU(e,t,n){let a=[xo,zf,tc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var _U="layers-model",Er=class extends tr{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");uU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=lU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Rr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(vb(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>vb(s))}else{let s=vb(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=CU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Ys("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===zf?["accuracy","acc"].indexOf(c)!==-1?p=yw:["crossentropy","ce"].indexOf(c)!==-1&&(p=$N):this.lossFunctions[s]===Hh?["accuracy","acc"].indexOf(c)!==-1?p=AN:["crossentropy","ce"].indexOf(c)!==-1&&(p=FN):["accuracy","acc"].indexOf(c)!==-1?p=bw:["crossentropy","ce"].indexOf(c)!==-1&&(p=xw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=oU(c),u=l+ph(c);let h;Ys(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Yb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{La(s[0],e),La(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),wU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new js;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Me("Verbose predictLoop() is not implemented yet.");let r=Zb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=Pp(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=ON(e);Uk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Yb(a),this.predictLoop(n,a)}finally{La(n,e)}}predictOnBatch(e){Uk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Wa("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=RN(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Me("Verbose mode is not implemented yet.");if(r!=null)throw new Me("steps mode in testLoop() is not implemented yet");{let o=Zb(s,n),l=Ke(Ha(0,s));for(let u=0;u1){let s=_k(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;lSr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Sr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Sr(ph(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Sr(ph(e)));{let e={};for(let t in this.metrics)e[t]=Sr(ph(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=nc(e.optimizer_config),n=Ua(t),a;if(typeof e.loss=="string")a=Us(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>Us(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=Us(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>Us(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=Us(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Ut.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Ut.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:_U,generatedBy:`TensorFlow.js tfjs-layers v${vw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Ut.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Ut.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(Lk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Lk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};Er.className="Model";ne.registerClass(Er);var LN=class extends Er{};LN.className="Functional";ne.registerClass(LN);async function EU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=nc(n),r=Ua(a,t);if(e.weightsManifest!=null){let s=await Ut.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),_e(s)}return r}async function $U(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Ut.getLoadHandlers(e,t);if(n.length===0)n.push(Ut.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return AU(e,void 0,t)}async function AU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ua(nc(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=FU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),_e(u),_e(p.map(d=>d.tensor))}return o}function FU(e,t){let n=Ut.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var Tl=class extends Er{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:_f("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof Tl||e instanceof Er,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=bN({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=yN(this.outputs[0])}this.inboundNodes=[],new Of({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:li(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(tt(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Er({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Wa("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof Tl))throw new Me(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ua(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};Tl.className="Sequential";ne.registerClass(Tl);function DU(e){return new Er(e)}function RU(e){return new Tl(e)}function zN(e){return bN(e)}function MU(e,t){Ca.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},WN=class extends Un{apply(e,t=1){return aV(e,t)}};WN.className="elu";ne.registerClass(WN);var BN=class extends Un{apply(e){return uf(e)}};BN.className="selu";ne.registerClass(BN);var VN=class extends Un{apply(e){return Xe(e)}};VN.className="relu";ne.registerClass(VN);var UN=class extends Un{apply(e){return P(()=>Vu(6,Xe(e)))}};UN.className="relu6";ne.registerClass(UN);var GN=class extends Un{apply(e){return e}};GN.className="linear";ne.registerClass(GN);var HN=class extends Un{apply(e){return ha(e)}};HN.className="sigmoid";ne.registerClass(HN);var jN=class extends Un{apply(e){return sV(e)}};jN.className="hardSigmoid";ne.registerClass(jN);var qN=class extends Un{apply(e){return mo(e)}};qN.className="softplus";ne.registerClass(qN);var KN=class extends Un{apply(e){return rV(e)}};KN.className="softsign";ne.registerClass(KN);var XN=class extends Un{apply(e){return si(e)}};XN.className="tanh";ne.registerClass(XN);var kw=class extends Un{apply(e,t=-1){return Ka(e,t)}};kw.className="softmax";ne.registerClass(kw);var YN=class extends Un{apply(e,t=-1){return ef(e,t)}};YN.className="logSoftmax";ne.registerClass(YN);var ZN=class extends Un{apply(e,t=1){return P(()=>z(ha(z(e,t)),e))}};ZN.className="swish";ne.registerClass(ZN);var JN=class extends Un{apply(e){return P(()=>z(e,si(mo(e))))}};JN.className="mish";ne.registerClass(JN);function us(e){return e.getClassName()}function wb(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ps(e){if(e==null){let t={};return t.className="linear",t.config={},wb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},wb(t)}else return e instanceof Un?e:wb(e)}function Iw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var QN=class extends ne.Serializable{},Qc=class extends QN{constructor(e){super(),Iw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Yc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};Qc.className="L1L2";ne.registerClass(Qc);function PU(e){return Iw(e),new Qc({l1:e!=null?e.l1:null,l2:0})}function OU(e){return Iw(e),new Qc({l2:e!=null?e.l2:null,l1:0})}var Gk={l1l2:"L1L2"};function pt(e){return ew(e)}function Hk(e,t={}){return Kc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Gk?Gk[e]:e,config:{}};return Hk(t)}else return e instanceof QN?e:Hk(e)}var Sw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=en(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Sw.className="ReLU";ne.registerClass(Sw);var Tw=class extends Ge{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return Lc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Tw.className="LeakyReLU";ne.registerClass(Tw);var Nw=class extends Ge{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Kt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=tt(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,1]):e))}function e2(e,t){return P(()=>(Rt(t),t==="channelsFirst"?Ee(e,[0,2,3,4,1]):e))}function LU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=Ee(e,[0,2,1])),r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=qm(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Xa(o,n)),o})}function jk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=$w(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=kl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=Ee(l,[0,3,1,2])),l})}function zU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=ja()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=e2(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=fv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Xa(o,n)),s==="channelsFirst"&&(o=Ee(o,[0,4,1,2,3])),o})}var Aw=class extends Ge{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Aw.verifyArgs(t),this.rank=e,Qt(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Me(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=dl(t.kernelSize,e,"kernelSize"),this.strides=dl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,xa(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ps(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Kt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=dl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(ar("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:us(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},ed=class extends Aw{constructor(e,t){super(e,t),this.kernel=null,ed.verifyArgs(t),this.filters=t.filters,Qt(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Kt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=lN(this.activation.getClassName());if(r!=null&&this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=LU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=jk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=zU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Me("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=tt(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},td=class extends ed{constructor(e){super(2,e),td.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};td.className="Conv2D";ne.registerClass(td);var nd=class extends ed{constructor(e){super(3,e),nd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};nd.className="Conv3D";ne.registerClass(nd);var Fw=class extends td{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=rr(o,d,u,this.padding),m=rr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,1]));let g=Km(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=Ee(g,[0,3,1,2])),this.bias!=null&&(g=Xa(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=rr(t[a],o,s,this.padding),t[r]=rr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Fw.className="Conv2DTranspose";ne.registerClass(Fw);var Dw=class extends nd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=tt(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=rr(l,m,d,this.padding),b=rr(u,f,c,this.padding),x=rr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=Ee(n,[0,2,3,4,1]));let I=gv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=Ee(I,[0,4,1,2,3])),this.bias!==null&&(I=Xa(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=tt(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=rr(t[a],u,i,this.padding),t[r]=rr(t[r],p,o,this.padding),t[s]=rr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Dw.className="Conv3DTranspose";ne.registerClass(Dw);var t2=class extends ed{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Kt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Kt(t.pointwiseConstraint)}build(e){if(e=tt(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Me("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=Ee(e,[0,2,3,1])),n=Ts(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ee(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.pointwiseRegularizer=pt(this.pointwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseConstraint),e.pointwiseConstraint=qt(this.pointwiseConstraint),e}};t2.className="SeparableConv";var Rw=class extends t2{constructor(e){super(2,e)}};Rw.className="SeparableConv2D";ne.registerClass(Rw);var Wf=class extends ed{constructor(e){super(1,e),Wf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!tw(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Wf.className="Conv1D";ne.registerClass(Wf);var Mw=class extends Ge{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=uh(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return uh(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=uh(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return uh(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Mw.className="Cropping2D";ne.registerClass(Mw);var Pw=class extends Ge{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Y4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=Ee(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s]);return Ee(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?za.resizeNearestNeighbor(n,[r,s]):za.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};Pw.className="UpSampling2D";ne.registerClass(Pw);function WU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=ja()),Rt(r);let i=$w(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Is(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}var Ow=class extends Aw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Kt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=tt(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n=WU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Xa(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ga(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ga(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=pt(this.depthwiseRegularizer),e.depthwiseConstraint=qt(this.depthwiseRegularizer),e}};Ow.className="DepthwiseConv2D";ne.registerClass(Ow);function n2(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function a2(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(Ha(2,l));if(t=Ee(t,u),s!=null)throw new Me("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Zt(r,-1)),r=Ee(r,u)),a&&(t=ga(t,0),r!=null&&(r=ga(r,0)));let p=[],d,c=n,h=t.shape[0],m=ct(t),f;r!=null&&(f=ct(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(na(I),I),C=Y(z(x[0],I),z(c[0],T)),E=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:E}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=Ft(p,1)),[d,g,c]})}var mr=class extends Ge{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Uf({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Ha(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){jb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let a=0;aJt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Ba){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=a2((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Xc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Gb(t,[1,n]):t):this.cell.stateSize>1?[Gb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===mr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ua(a,n);return new e(Object.assign(t,{cell:r}))}};mr.className="RNN";ne.registerClass(mr);var ad=class extends Ge{},Bf=class extends ad{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0na(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0na(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=or(z(e,s),this.kernel.read()):r=or(e,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,or(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),recurrentRegularizer:pt(this.recurrentRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),recurrentConstraint:qt(this.recurrentConstraint),biasConstraint:qt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Bf.className="SimpleRNNCell";ne.registerClass(Bf);var Lw=class extends mr{constructor(e){e.cell=new Bf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Lw.className="SimpleRNN";ne.registerClass(Lw);var Vf=class extends ad{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=tt(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0na(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};zw.className="GRU";ne.registerClass(zw);var rd=class extends ad{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ps(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Kt(e.kernelConstraint),this.recurrentConstraint=Kt(e.recurrentConstraint),this.biasConstraint=Kt(e.biasConstraint),this.dropout=Il([1,ls([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Il([1,ls([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=tt(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Ra{apply(i,o){let l=r.apply([s]),u=new $f().apply([s]),p=r.apply([s*2]);return $k($k(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0na(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0na(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Ww.className="LSTM";ne.registerClass(Ww);var Uf=class extends ad{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Ys(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ua(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return qb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):fN(t(),n),o=()=>Zc(i,t,a);return!r||r<=1?Jt(o().clone()):Array(r).fill(void 0).map(o).map(l=>Jt(l.clone()))}var BU=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(_e(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(_e(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Ir("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)_e(this.states_),this.keptStates!=null&&(_e(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):_e(this.states_);for(let s=0;sJt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ga(l,a[0],r,s[0],i[0]),d=Ga(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};r2.className="ConvRNN2D";var Gf=class extends rd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,Qt(this.filters,"filters"),this.kernelSize=dl(n,2,"kernelSize"),this.kernelSize.forEach(o=>Qt(o,"kernelSize")),this.strides=dl(a||1,2,"strides"),this.strides.forEach(o=>Qt(o,"strides")),this.padding=r||"valid",xa(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=dl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>Qt(o,"dilationRate"))}build(e){var t;e=tt(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Ra{apply(p,d){let c=l.apply([u]),h=Jn([u]),m=l.apply([u*2]);return nw([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0na(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0na(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,E,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,E,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=BU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=At(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Xa(r,n,this.dataFormat):r}recurrentConv(e,t){return At(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Gf.className="ConvLSTM2DCell";ne.registerClass(Gf);var Bw=class extends r2{constructor(e){let t=new Gf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Bw.className="ConvLSTM2D";ne.registerClass(Bw);var Hf=class extends Ge{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0fN(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};Hf.className="Dropout";ne.registerClass(Hf);var Vw=class extends Hf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Vw.className="SpatialDropout1D";ne.registerClass(Vw);var Uw=class extends Ge{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,Qt(this.units,"units"),this.activation=ps(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Kt(e.kernelConstraint),this.biasConstraint=Kt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=tt(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=tt(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=lN(this.activation.getClassName()),r;return a!=null?r=or(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=or(n,this.kernel.read()),this.bias!=null&&(r=Xa(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:us(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:pt(this.kernelRegularizer),biasRegularizer:pt(this.biasRegularizer),activityRegularizer:pt(this.activityRegularizer),kernelConstraint:qt(this.kernelConstraint),biasConstraint:qt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Uw.className="Dense";ne.registerClass(Uw);var Gw=class extends Ge{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=tt(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],rs(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:us(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};Hw.className="Activation";ne.registerClass(Hw);var jw=class extends Ge{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return P(()=>(e=Ne(e),eV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};jw.className="RepeatVector";ne.registerClass(jw);var qw=class extends Ge{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};qw.className="Reshape";ne.registerClass(qw);var Kw=class extends Ge{constructor(e){if(super(e),e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=Ha(1,e.dims.length+1);if(!v.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=tt(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return Ee(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Kw.className="Permute";ne.registerClass(Kw);var Xw=class extends Ge{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return Qp(oi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=Qp(oi(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Xw.className="Masking";ne.registerClass(Xw);var Yw=class extends Ge{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(xt(e.inputLength))}this.inputDim=e.inputDim,Qt(this.inputDim,"inputDim"),this.outputDim=e.outputDim,Qt(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Kt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return P(()=>this.maskZero?(e=Ne(e),oi(e,qe(e))):null)}computeOutputShape(e){if(e=tt(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=bo(n,"int32"));let a=mN(this.embeddings.read(),W(n,[n.size]));return W(a,tt(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:pt(this.embeddingsRegularizer),activityRegularizer:pt(this.activityRegularizer),embeddingsConstraint:qt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Yw.className="Embedding";ne.registerClass(Yw);var vo=class extends Ge{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Me}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&as(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ls(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=Ha(1,l).concat([0]);n.push(Ee(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(Ee(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(Ha(0,i-1));s=Ee(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Zt(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>nw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Me("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Me("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>$p(r,e[s].shape.length)):a=[$p(this.axes,t.shape.length),$p(this.axes,n.shape.length)],this.normalize&&(t=Gh(t,a[0]),n=Gh(n,a[1])),VU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[$p(this.axes,e.length),$p(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};a0.className="Dot";ne.registerClass(a0);var r0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Zc(()=>Y(Ef(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};r0.className="GaussianNoise";ne.registerClass(r0);var s0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Zc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Ef(n.shape,1,a))},()=>n,t.training||!1):n})}};s0.className="GaussianDropout";ne.registerClass(s0);var i0=class extends Ge{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Zc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Fr(Uu(n),this.rate);o=bo(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};i0.className="AlphaDropout";ne.registerClass(i0);function ac(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=sv(e,t,n,a,r,s);else if(e.rank===3)i=iv(e,t,n,a,r,s);else if(e.rank===4)i=ov(e,t,n,a,r,s);else throw new Me(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function UU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance;return[ac(e,i,o,n,t,r),i,o]})}function GU(e,t,n,a,r=.001){return P(()=>{let s=Bc(e,a),i=s.mean,o=s.variance,l=[];for(let h of Ha(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[ac(e,u,p,c,d,r),i,o]})}function HU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),Ha(0,e.rank-1))?UU(e,t,n,a,r):GU(e,t,n,a,r)}var o0=class extends Ge{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Kt(e.betaConstraint),this.gammaConstraint=Kt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=tt(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=Ha(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=li(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,Ha(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return ac(a,g,y,b,x,this.epsilon)}else return ac(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=HU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:pt(this.betaRegularizer),gammaRegularizer:pt(this.gammaRegularizer),betaConstraint:qt(this.betaConstraint),gammaConstraint:qt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};o0.className="BatchNormalization";ne.registerClass(o0);var l0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=tt(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==as(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Bc(n,this.axis,!0),o=li(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=ja()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],ba(e,a)})}var u0=class extends Ge{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?ja():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>jU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};u0.className="ZeroPadding2D";ne.registerClass(u0);function jf(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=$w(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ya(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,3,1,2])),i})}function s2(e,t,n,a,r,s){return P(()=>{Rt(r),pN(s),xa(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=ja()),s==null&&(s="max"),e=e2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Fv(e,t,n,o):i=rv(e,t,n,o),r==="channelsFirst"&&(i=Ee(i,[0,4,1,2,3])),i})}var i2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(Qt(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,xa(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=tt(e);let t=Ga(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Xc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Ns(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},p0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};p0.className="MaxPooling1D";ne.registerClass(p0);var c0=class extends i2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};c0.className="AveragePooling1D";ne.registerClass(c0);var o2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},d0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"max")}};d0.className="MaxPooling2D";ne.registerClass(d0);var h0=class extends o2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),jf(e,t,n,a,r,"avg")}};h0.className="AveragePooling2D";ne.registerClass(h0);var l2=class extends Ge{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];Qt(this.poolSize,"poolSize"),Qt(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),xa(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=tt(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ga(t,this.poolSize[0],this.padding,this.strides[0]),n=Ga(n,this.poolSize[1],this.padding,this.strides[1]),a=Ga(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},m0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"max")}};m0.className="MaxPooling3D";ne.registerClass(m0);var f0=class extends l2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),xa(a),s2(e,t,n,a,r,"avg")}};f0.className="AveragePooling3D";ne.registerClass(f0);var u2=class extends Ge{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Me}},g0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};g0.className="GlobalAveragePooling1D";ne.registerClass(g0);var y0=class extends u2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ma(n,1)})}};y0.className="GlobalMaxPooling1D";ne.registerClass(y0);var p2=class extends Ge{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Me}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},b0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};b0.className="GlobalAveragePooling2D";ne.registerClass(b0);var x0=class extends p2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};x0.className="GlobalMaxPooling2D";ne.registerClass(x0);var c2=class extends Ge{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ua(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},v0=class extends c2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=tt(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=tt(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),a2((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};v0.className="TimeDistributed";ne.registerClass(v0);function qU(e){yo(X4,"BidirectionalMergeMode",e)}var KU="concat",w0=class extends c2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ua(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ua(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?KU:e.mergeMode,qU(this.mergeMode),e.weights)throw new Me("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=n2(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Me("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Ba;for(let l of s)if(l instanceof Ba!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=ga(r,1));let i;return this.mergeMode==="concat"?i=nw([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Ys(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Ys(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ua(t.layer);if(delete t.layer,t.numConstants!=null)throw new Me("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};w0.className="Bidirectional";ne.registerClass(w0);var k0=class extends Ge{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=bo(e,"float32")),Y(z(e,this.scale),this.offset)))}};k0.className="Rescaling";ne.registerClass(k0);var XU=["bilinear","nearest"],qk=new Set(XU),I0=class extends Ge{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(qk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=tt(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return za.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return za.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...qk]} are supported`)})}};I0.className="Resizing";ne.registerClass(I0);function YU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=bo(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Zt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Zt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=zh(o,a,n,i):l=zh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var S0=class extends Ge{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=tt(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=bo(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. - Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ma(e),r=bl(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Fr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return YU(e,this.outputMode,this.numTokens,n)})}};S0.className="CategoryEncoding";ne.registerClass(S0);function ZU(e){return new Hu(e)}function JU(e){return new Cw(e)}function QU(e){return new Sw(e)}function eG(e){return new Tw(e)}function tG(e){return new Nw(e)}function nG(e){return new Ew(e)}function aG(e){return new _w(e)}function rG(e){return new Wf(e)}function sG(e){return new td(e)}function iG(e){return new Fw(e)}function oG(e){return new nd(e)}function lG(e){return new Dw(e)}function uG(e){return new Rw(e)}function pG(e){return new Mw(e)}function cG(e){return new Pw(e)}function dG(e){return new Ow(e)}function hG(e){return new Hw(e)}function mG(e){return new Uw(e)}function fG(e){return new Hf(e)}function gG(e){return new Vw(e)}function yG(e){return new Gw(e)}function bG(e){return new jw(e)}function xG(e){return new qw(e)}function vG(e){return new Kw(e)}function wG(e){return new Yw(e)}function kG(e){return new Zw(e)}function IG(e){return new Qw(e)}function SG(e){return new n0(e)}function TG(e){return new e0(e)}function NG(e){return new t0(e)}function CG(e){return new Jw(e)}function _G(e){return new a0(e)}function EG(e){return new o0(e)}function $G(e){return new l0(e)}function AG(e){return new u0(e)}function T0(e){return new c0(e)}function FG(e){return T0(e)}function DG(e){return T0(e)}function N0(e){return new h0(e)}function RG(e){return N0(e)}function MG(e){return N0(e)}function C0(e){return new f0(e)}function PG(e){return C0(e)}function OG(e){return C0(e)}function LG(e){return new g0(e)}function zG(e){return new b0(e)}function d2(e){return new y0(e)}function h2(e){return new x0(e)}function m2(e){return new p0(e)}function f2(e){return new d0(e)}function WG(e){return new m0(e)}function BG(e){return new zw(e)}function VG(e){return new Vf(e)}function UG(e){return new Ww(e)}function GG(e){return new rd(e)}function HG(e){return new Lw(e)}function jG(e){return new Bf(e)}function qG(e){return new Bw(e)}function KG(e){return new Gf(e)}function XG(e){return new mr(e)}function YG(e){return new Uf(e)}function ZG(e){return new w0(e)}function JG(e){return new v0(e)}var QG=d2,eH=h2,tH=m2,nH=f2;function aH(e){return new r0(e)}function rH(e){return new s0(e)}function sH(e){return new i0(e)}function iH(e){return new Xw(e)}function oH(e){return new k0(e)}function lH(e){return new I0(e)}function uH(e){return new S0(e)}var g2={};$e(g2,{MAPE:()=>vH,MSE:()=>IH,binaryAccuracy:()=>pH,binaryCrossentropy:()=>cH,categoricalAccuracy:()=>hH,categoricalCrossentropy:()=>mH,cosineProximity:()=>yH,mape:()=>wH,meanAbsoluteError:()=>bH,meanAbsolutePercentageError:()=>xH,meanSquaredError:()=>kH,mse:()=>SH,precision:()=>fH,recall:()=>gH,sparseCategoricalAccuracy:()=>dH});function pH(e,t){return yw(e,t)}function cH(e,t){return $N(e,t)}function dH(e,t){return AN(e,t)}function hH(e,t){return bw(e,t)}function mH(e,t){return xw(e,t)}function fH(e,t){return EN(e,t)}function gH(e,t){return QV(e,t)}function yH(e,t){return gw(e,t)}function bH(e,t){return Lf(e,t)}function xH(e,t){return ju(e,t)}function vH(e,t){return ju(e,t)}function wH(e,t){return ju(e,t)}function kH(e,t){return xo(e,t)}function IH(e,t){return xo(e,t)}function SH(e,t){return xo(e,t)}var y2={};$e(y2,{modelFromJSON:()=>EU});var b2={};$e(b2,{l1:()=>NH,l1l2:()=>TH,l2:()=>CH});function TH(e){return new Qc(e)}function NH(e){return PU(e)}function CH(e){return OU(e)}var x2=class extends Sl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof Er))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function ch(e,t){return et}var v2=class extends x2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Me("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=ch:this.mode==="max"?this.monitorFunc=Kk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Kk:this.monitorFunc=ch,this.monitorFunc===ch&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===ch?1/0:-1/0}async onEpochEnd(e,t){await Zr(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function _H(e){return new v2(e)}var EH={earlyStopping:_H},$H=H();$H.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Na;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Na||(Na={}));var Xk;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(Xk||(Xk={}));var _0={};function AH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};_0[e]=n}function w2(e){return _0[e]}function FH(e){delete _0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return wn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>wn(d,n,a,r));let u=wn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function wn(e,t,n,a){let[r,s]=Yn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Xh(r,o)]);return i!==void 0?t[Xh(r,i)][s]:void 0}function DH(e,t,n){return t[Xh(e,n.currentContextId)]}function sr(e,t){let[n,a,r]=Yn(e);return[Xh(n,t&&t.currentContextId),a,r]}function Xh(e,t){return t?`${e}-${t}`:e}function Yn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function vh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Tr(e){return e.kept?e:ir(e)}var k2={};$e(k2,{json:()=>RH});var RH=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],I2={};$e(I2,{json:()=>MH});var MH=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],S2={};$e(S2,{json:()=>PH});var PH=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],T2={};$e(T2,{json:()=>OH});var OH=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],N2={};$e(N2,{json:()=>LH});var LH=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],C2={};$e(C2,{json:()=>zH});var zH=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],_2={};$e(_2,{json:()=>WH});var WH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],E2={};$e(E2,{json:()=>BH});var BH=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],$2={};$e($2,{json:()=>VH});var VH=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}],A2={};$e(A2,{json:()=>UH});var UH=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],F2={};$e(F2,{json:()=>GH});var GH=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],D2={};$e(D2,{json:()=>HH});var HH=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],R2={};$e(R2,{json:()=>jH});var jH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],M2={};$e(M2,{json:()=>qH});var qH=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],P2={};$e(P2,{json:()=>KH});var KH=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],O2={};$e(O2,{json:()=>XH});var XH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],L2={};$e(L2,{json:()=>YH});var YH=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],z2={};$e(z2,{json:()=>ZH});var ZH=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],W2={};$e(W2,{json:()=>JH});var JH=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Yk=class{constructor(){let e=[k2,I2,S2,T2,N2,C2,_2,E2,$2,A2,F2,D2,R2,M2,P2,O2,L2,z2,W2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=sr(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=sr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=sr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=w2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=Qb(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Qb(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=tx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=tx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=sx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=ex(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ex(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=lx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=ox(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ox(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=nx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=nx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=Zk(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=Zk(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=sr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:E0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=sr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=sr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function QH(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function B2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):QH(e);return t?n:n.toLowerCase()}function Qb(e,t,n,a=!1){let r=e[t];return r!=null?B2(r.s,a):n}function ex(e,t,n){let a=e[t];return a?a.b:n}function tx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function E0(e){switch(typeof e=="string"&&(e=Na[e]),e){case Na.DT_FLOAT:case Na.DT_HALF:return"float32";case Na.DT_INT32:case Na.DT_INT64:case Na.DT_INT8:case Na.DT_UINT8:return"int32";case Na.DT_BOOL:return"bool";case Na.DT_DOUBLE:return"float32";case Na.DT_STRING:return"string";default:return null}}function Zk(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function nx(e,t,n){let a=e[t];return a&&a.type?E0(a.type):n}function ax(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>E0(r)):n}function V2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function rx(e,t,n){let a=e[t];return a&&a.shape?V2(a.shape):n}function sx(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function ix(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>B2(s,a)):n}function ox(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>V2(r)):n}function lx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var e6=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return wn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return wn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return tx(this.node.rawAttrs,e,t);if(n.s!=null)return Qb(this.node.rawAttrs,e,t);if(n.b!=null)return ex(this.node.rawAttrs,e,t);if(n.shape!=null)return rx(this.node.rawAttrs,e,t);if(n.type!=null)return nx(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return sx(this.node.rawAttrs,e,t);if(n.list.s!=null)return ix(this.node.rawAttrs,e,t);if(n.list.shape!=null)return ox(this.node.rawAttrs,e,t);if(n.list.b!=null)return lx(this.node.rawAttrs,e,t);if(n.list.type!=null)return ax(this.node.rawAttrs,e,t)}return t}},pn={};$e(pn,{OP_SCOPE_SUFFIX:()=>Mx,abs:()=>Lt,acos:()=>Xx,acosh:()=>Yx,add:()=>Y,addN:()=>KS,all:()=>jm,any:()=>Qp,argMax:()=>ri,argMin:()=>Zx,asin:()=>Jx,asinh:()=>Qx,atan:()=>ev,atan2:()=>tv,atanh:()=>nv,avgPool:()=>ya,avgPool3d:()=>rv,basicLSTMCell:()=>JS,batchNorm:()=>ks,batchNorm2d:()=>sv,batchNorm3d:()=>iv,batchNorm4d:()=>ov,batchToSpaceND:()=>Pc,bincount:()=>lv,booleanMaskAsync:()=>RT,broadcastArgs:()=>QS,broadcastTo:()=>Xs,buffer:()=>Oe,cast:()=>le,ceil:()=>uv,clipByValue:()=>en,clone:()=>ir,complex:()=>$r,concat:()=>Ze,concat1d:()=>pv,concat2d:()=>cv,concat3d:()=>dv,concat4d:()=>hv,conv1d:()=>qm,conv2d:()=>At,conv2dTranspose:()=>Km,conv3d:()=>fv,conv3dTranspose:()=>gv,cos:()=>Oc,cosh:()=>Xm,cosineWindow:()=>yf,cumprod:()=>ec,cumsum:()=>Ym,denseBincount:()=>zh,depthToSpace:()=>yv,depthwiseConv2d:()=>Is,diag:()=>tT,dilation2d:()=>bv,div:()=>he,divNoNan:()=>xv,dot:()=>vv,dropout:()=>qv,einsum:()=>nT,elu:()=>Lu,enclosingPowerOfTwo:()=>Kv,equal:()=>ea,erf:()=>wv,euclideanNorm:()=>Sv,exp:()=>fn,expandDims:()=>Zt,expm1:()=>Tv,eye:()=>Zm,fft:()=>Hc,fill:()=>gn,floor:()=>Wu,floorDiv:()=>Hm,fused:()=>kl,gather:()=>Bu,gatherND:()=>LT,greater:()=>Cn,greaterEqual:()=>Fr,ifft:()=>wl,imag:()=>Dc,image:()=>za,inTopKAsync:()=>zT,irfft:()=>hf,isFinite:()=>Nv,isInf:()=>Cv,isNaN:()=>_v,leakyRelu:()=>Lc,less:()=>Jm,lessEqual:()=>Ss,linalg:()=>Zv,linspace:()=>oT,localResponseNormalization:()=>Ev,log:()=>ta,log1p:()=>zc,logSigmoid:()=>$v,logSoftmax:()=>ef,logSumExp:()=>tf,logicalAnd:()=>Aa,logicalNot:()=>Wc,logicalOr:()=>nf,logicalXor:()=>Av,losses:()=>ZT,lowerBound:()=>uT,matMul:()=>Fe,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Fv,maxPoolWithArgmax:()=>pT,maximum:()=>dr,mean:()=>Nt,meshgrid:()=>cT,min:()=>bl,minimum:()=>Vu,mirrorPad:()=>Dv,mod:()=>Rv,moments:()=>Bc,movingAverage:()=>MT,mul:()=>z,multiRNNCell:()=>dT,multinomial:()=>hT,neg:()=>vt,norm:()=>zu,notEqual:()=>oi,oneHot:()=>gl,ones:()=>Jn,onesLike:()=>na,op:()=>L,outerProduct:()=>mT,pad:()=>ba,pad1d:()=>fT,pad2d:()=>gT,pad3d:()=>yT,pad4d:()=>bT,pool:()=>Mv,pow:()=>Ar,prelu:()=>Uc,print:()=>zx,prod:()=>Pv,raggedGather:()=>xT,raggedRange:()=>vT,raggedTensorToTensor:()=>wT,rand:()=>kT,randomGamma:()=>IT,randomNormal:()=>rf,randomStandardNormal:()=>ST,randomUniform:()=>Uu,range:()=>xl,real:()=>yl,reciprocal:()=>zv,relu:()=>Xe,relu6:()=>sf,reshape:()=>W,reverse:()=>ga,reverse1d:()=>TT,reverse2d:()=>NT,reverse3d:()=>CT,reverse4d:()=>_T,rfft:()=>jc,round:()=>of,rsqrt:()=>lf,scalar:()=>xe,scatterND:()=>PT,searchSorted:()=>af,selu:()=>uf,separableConv2d:()=>Ts,setdiff1dAsync:()=>ET,sigmoid:()=>ha,sign:()=>Wv,signal:()=>YT,sin:()=>pf,sinh:()=>cf,slice:()=>Be,slice1d:()=>Gc,slice2d:()=>df,slice3d:()=>fo,slice4d:()=>vl,softmax:()=>Ka,softplus:()=>mo,spaceToBatchND:()=>Vc,sparse:()=>JT,sparseToDense:()=>OT,spectral:()=>XT,split:()=>zn,sqrt:()=>un,square:()=>lt,squaredDifference:()=>mf,squeeze:()=>Ns,stack:()=>Ft,step:()=>go,stridedSlice:()=>Bv,string:()=>QT,sub:()=>pe,sum:()=>fe,tan:()=>Vv,tanh:()=>si,tensor:()=>In,tensor1d:()=>Ke,tensor2d:()=>$a,tensor3d:()=>Rc,tensor4d:()=>Da,tensor5d:()=>$T,tensor6d:()=>AT,tile:()=>Ln,topk:()=>Uv,transpose:()=>Ee,truncatedNormal:()=>ff,unique:()=>Gv,unsortedSegmentSum:()=>gf,unstack:()=>ct,upperBound:()=>FT,variable:()=>Hv,where:()=>mn,whereAsync:()=>jv,zeros:()=>It,zerosLike:()=>qe});var t6=(e,t,n,a=pn)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},n6=(e,t,n,a=pn)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(wn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(wn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Ea(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function Jk(e){return!(typeof e=="number"||e.some(t=>t<0))}function Ap(e,t,n){let a=ux(e,n),r=!Jk(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=ux(s.shape,a)}),!Jk(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function ux(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var a6=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Jt(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, - because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Ea(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,Jt(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,ct(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${a} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(l!=null){let u={};for(let h of Object.keys(Ta))u[h]=Ta[h];for(let h of Object.keys(n))u[h]=n[h];let p=s.config;p.customObjects=u;let d=Object.assign({},Ta);for(let h of Object.keys(n))Ta[h]=n[h];Kb(s.config);let c=l(o,s.config,n,r);return Ta=Object.assign({},d),c}else{let u=Object.assign({},Ta);for(let d of Object.keys(n))Ta[d]=n[d];let p=new o(s.config);return Ta=Object.assign({},u),p}}}function G4(e,t){return et?1:0}function lh(e,t){return-1*G4(e,t)}function os(e){if(e==null)return e;let t=[];for(let n of e)t.indexOf(n)===-1&&t.push(n);return t}function H4(e){if(e==null)throw new V(`Invalid value in obj: ${JSON.stringify(e)}`);for(let t in e)if(e.hasOwnProperty(t))return!1;return!0}function Io(e,t,n){if(n!=null&&e.indexOf(n)<0)throw new V(`${n} is not a valid ${t}. Valid values are ${e} or null/undefined.`)}function rw(e,t,n=0,a=1/0){return rr(n>=0),rr(a>=n),Array.isArray(e)&&e.length>=n&&e.length<=a&&e.every(r=>typeof r===t)}function en(e,t){Array.isArray(e)?(v.assert(e.length>0,()=>`${t} is unexpectedly an empty array.`),e.forEach((n,a)=>en(n,`element ${a+1} of ${t}`))):v.assert(Number.isInteger(e)&&e>0,()=>`Expected ${t} to be a positive integer, but got ${pN(e)}.`)}function pN(e){return e===null?"null":Array.isArray(e)?"["+e.map(t=>pN(t)).join(",")+"]":typeof e=="string"?`"${e}"`:`${e}`}function j4(e,t,n){let a=n!=null?n():v.now(),r;return(...s)=>{let i=n!=null?n():v.now();return i-a0){let n=`${e}_${t}`;return ll.set(n,1),n}else return e}var tV=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function gN(e){return!!e.match(tV)}function nV(e){return e===parseInt(e.toString(),10)}function ls(e,t,n){t==null&&(t=0),n==null&&(n=e.length);let a=1;for(let r=t;rt&&(t=a)}return t}function ja(e,t){if(t{if(e.shape.length!==2)throw new V(`repeat() expects a rank-2 tensor, but received a rank-${e.shape.length} tensor.`);let n=Yc(e,1);return Xb(n,[1,t,1])})}function rV(e){let t=[ls(e.shape)];return W(e,t)}function sV(e){if(e.rank<=1)throw new V(`batchFlatten requires a minimum rank of 2. Got rank: ${e.rank}.`);let t=[e.shape[0],ls(e.shape,1)];return W(e,t)}function ei(e,t,n){return P(()=>{switch(e.rank){case 1:return Hc(e,t,n);case 2:return hf(e,[t,0],[n,e.shape[1]]);case 3:return wo(e,[t,0,0],[n,e.shape[1],e.shape[2]]);case 4:return Il(e,[t,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3]]);case 5:return Be(e,[t,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4]]);case 6:return Be(e,[t,0,0,0,0,0],[n,e.shape[1],e.shape[2],e.shape[3],e.shape[4],e.shape[5]]);default:throw new V(`sliceAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}})}function kb(e,t,n){return P(()=>{switch(e.rank){case 1:return Hc(e,t,n);case 2:return hf(e,[0,t],[e.shape[0],n]);case 3:return wo(e,[0,0,t],[e.shape[0],e.shape[1],n]);case 4:return Il(e,[0,0,0,t],[e.shape[0],e.shape[1],e.shape[2],n]);default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function ph(e,t,n,a){return P(()=>{switch(e.rank){case 1:return Hc(e,t,n);case 2:switch(a){case 1:return ei(e,t,n);case 2:return kb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 3:switch(a){case 1:return ei(e,t,n);case 2:return wo(e,[0,t,0],[e.shape[0],n,e.shape[2]]);case 3:return kb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}case 4:switch(a){case 1:return ei(e,t,n);case 2:return Il(e,[0,t,0,0],[e.shape[0],n,e.shape[2],e.shape[3]]);case 3:return Il(e,[0,0,t,0],[e.shape[0],e.shape[1],n,e.shape[3]]);case 4:return kb(e,t,n);default:throw new V(`The axis is not within the rank of the tensor ${a}`)}default:throw new V(`sliceAlongLastAxis() received an unsupported tensor rank: ${e.rank}`)}})}function sw(e,t=-1){let n;return t<0&&(n=e[0].rank,n!==0?t=n:t=0),t===e[0].rank&&(t=-1),Ze(e,t)}function Dk(e,t){switch(e.rank){case 1:return hv([e,t]);case 2:return mv([e,t],0);case 3:return fv([e,t],0);case 4:return gv([e,t],0);default:throw new V(`concatAlongFirstAxis() received an unsupported tensor rank: ${e.rank}`)}}function Xb(e,t){if(Array.isArray(t)||(t=[t]),e.rank!==t.length)throw new V(`The length of input n (${t.length}) does not match the number of dimensions in input x (${e.rank})`);return Ln(e,t)}function Af(e,t=0,n=1,a,r){return sf(e,t,n,a,r)}function ur(e,t,n,a){if(e.rank<2||t.rank<2)throw new Me(`dot requires both inputs to be rank >= 2 but got x shape = ${e.shape} and y shape = ${t.shape}`);if(t.rank>=3){let r=e.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(r!==s)throw new Me(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${e.shape} and y shape = ${t.shape}`)}if(e.rank===2&&t.rank===2)return Tl.matMul({a:e,b:t,transposeA:!1,transposeB:!1,bias:a?Yb(e.rank,a,qa()):null,activation:n});{let r=e.shape.slice(),s=r.pop();e=W(e,[-1,s]);let i=t.shape.slice(),o=i.pop(),l=i.pop(),u=[...i,o],p=Array.from({length:t.rank},(m,f)=>f===0?t.rank-2:f<=t.rank-2?f-1:f);t=W(_e(t,p),[l,-1]);let d=[...r,...u],c=!1,h=!1;return W(Tl.matMul({a:e,b:t,transposeA:c,transposeB:h,bias:a?Yb(e.rank,a,qa()):null,activation:n}),d)}}function yN(e,t,n){return P(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=le(t,"int32"),Vu(e,t,n)))}function Zc(e){return z(e,e)}function Yb(e,t,n){let a=t.shape;if(t.rank!==1&&t.rank!==e)throw new V(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${e}`);if(e===5){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1,1]):W(t,[1,a[3],a[0],a[1],a[2]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===4){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1,1]):W(t,[1,a[2],a[0],a[1]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,1,a[0]]):W(t,[1].concat(a))}else if(e===3){if(n==="channelsFirst")return a.length===1?W(t,[1,a[0],1]):W(t,[1,a[1],a[0]]);if(n==="channelsLast")return a.length===1?W(t,[1,1,a[0]]):W(t,[1].concat(a))}else if(e<3)return t;throw new V(`Unsupported input rank by biasAdd: ${t.rank}`)}function Ya(e,t,n){return P(()=>(n==null&&(n=qa()),Rt(n),Y(e,Yb(e.rank,t,n))))}function iV(e,t=1){if(t!==1)throw new Me(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return zu(e)}function oV(e){return P(()=>me(e,Y(Lt(e),1)))}function bN(e,t,n,a){return P(()=>Yv(e,t,n,a))}function lV(e){return P(()=>{let t=Y(.5,z(.2,e));return tn(t,0,1)})}function Jc(e,t,n=!1){return n?e():t()}var uV=["fanIn","fanOut","fanAvg"],pV=["normal","uniform","truncatedNormal"];function cV(e){Io(uV,"FanMode",e)}function dV(e){Io(pV,"Distribution",e)}var Pa=class extends ne.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},iw=class extends Pa{apply(e,t){return It(e,t)}};iw.className="Zeros";ne.registerClass(iw);var $f=class extends Pa{apply(e,t){return Jn(e,t)}};$f.className="Ones";ne.registerClass($f);var ow=class extends Pa{constructor(e){if(super(),typeof e!="object")throw new V(`Expected argument of type ConstantConfig but got ${e}`);if(e.value===void 0)throw new V(`config must have value set but got ${e}`);this.value=e.value}apply(e,t){return P(()=>z(xe(this.value),Jn(e,t)))}getConfig(){return{value:this.value}}};ow.className="Constant";ne.registerClass(ow);var lw=class extends Pa{constructor(e){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=e.minval||this.DEFAULT_MINVAL,this.maxval=e.maxval||this.DEFAULT_MAXVAL,this.seed=e.seed}apply(e,t){return Gu(e,this.minval,this.maxval,t)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};lw.className="RandomUniform";ne.registerClass(lw);var uw=class extends Pa{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`randomNormal does not support dType ${t}.`);return Af(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};uw.className="RandomNormal";ne.registerClass(uw);var pw=class extends Pa{constructor(e){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=e.mean||this.DEFAULT_MEAN,this.stddev=e.stddev||this.DEFAULT_STDDEV,this.seed=e.seed}apply(e,t){if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`truncatedNormal does not support dType ${t}.`);return gf(e,this.mean,this.stddev,t,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};pw.className="TruncatedNormal";ne.registerClass(pw);var cw=class extends Pa{constructor(e){super(),this.gain=e.gain!=null?e.gain:1}apply(e,t){return P(()=>{if(e.length!==2||e[0]!==e[1])throw new V("Identity matrix initializer can only be used for 2D square matrices.");return z(this.gain,Jm(e[0]))})}getConfig(){return{gain:this.gain}}};cw.className="Identity";ne.registerClass(cw);function hV(e,t="channelsLast"){let n,a;if(Rt(t),e.length===2)n=e[0],a=e[1];else if([3,4,5].indexOf(e.length)!==-1){if(t==="channelsFirst"){let r=ls(e,2);n=e[1]*r,a=e[0]*r}else if(t==="channelsLast"){let r=ls(e,0,e.length-2);n=e[e.length-2]*r,a=e[e.length-1]*r}}else{let r=ls(e);n=Math.sqrt(r),a=Math.sqrt(r)}return[n,a]}var Bn=class extends Pa{constructor(e){if(super(),e.scale<0)throw new V(`scale must be a positive float. Got: ${e.scale}`);this.scale=e.scale==null?1:e.scale,this.mode=e.mode==null?"fanIn":e.mode,cV(this.mode),this.distribution=e.distribution==null?"normal":e.distribution,dV(this.distribution),this.seed=e.seed}apply(e,t){let n=hV(e),a=n[0],r=n[1],s=this.scale;if(this.mode==="fanIn"?s/=Math.max(1,a):this.mode==="fanOut"?s/=Math.max(1,r):s/=Math.max(1,(a+r)/2),this.distribution==="normal"){let i=Math.sqrt(s);if(t=t||"float32",t!=="float32"&&t!=="int32")throw new Me(`${this.getClassName()} does not support dType ${t}.`);return gf(e,0,i,t,this.seed)}else{let i=Math.sqrt(3*s);return Gu(e,-i,i,t)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};Bn.className="VarianceScaling";ne.registerClass(Bn);var Ff=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Ff.className="GlorotUniform";ne.registerClass(Ff);var Df=class extends Bn{constructor(e){super({scale:1,mode:"fanAvg",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Df.className="GlorotNormal";ne.registerClass(Df);var Rf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Rf.className="HeNormal";ne.registerClass(Rf);var Mf=class extends Bn{constructor(e){super({scale:2,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Mf.className="HeUniform";ne.registerClass(Mf);var Pf=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"normal",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Pf.className="LeCunNormal";ne.registerClass(Pf);var Of=class extends Bn{constructor(e){super({scale:1,mode:"fanIn",distribution:"uniform",seed:e==null?null:e.seed})}getClassName(){return Bn.className}};Of.className="LeCunNormal";ne.registerClass(Of);var dw=class extends Pa{constructor(e){if(super(),this.DEFAULT_GAIN=1,this.gain=e.gain==null?this.DEFAULT_GAIN:e.gain,this.seed=e.seed,this.seed!=null)throw new Me("Random seed is not implemented for Orthogonal Initializer yet.")}apply(e,t){return P(()=>{if(e.length<2)throw new Me("Shape must be at least 2D.");e[0]*e[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${e[0]*e[1]}) elements: Slowness may result.`);let n=e[0]>e[1]?[e[1],e[0]]:e,a=Af(n,0,1,"float32"),r=ew.gramSchmidt(a);return e[0]>e[1]&&(r=_e(r)),z(this.gain,r)})}getConfig(){return{gain:this.gain,seed:this.seed}}};dw.className="Orthogonal";ne.registerClass(dw);var Rk={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function Mk(e,t={}){return Xc(e,ne.SerializationMap.getMap().classNameMap,t,"initializer")}function Ct(e){return aw(e)}function St(e){if(typeof e=="string"){let t=e in Rk?Rk[e]:e;if(t==="GlorotNormal")return new Df;if(t==="GlorotUniform")return new Ff;if(t==="HeNormal")return new Rf;if(t==="HeUniform")return new Mf;if(t==="LeCunNormal")return new Pf;if(t==="LeCunUniform")return new Of;{let n={};return n.className=t,n.config={},Mk(n)}}else return e instanceof Pa?e:Mk(e)}function Zb(e){return Array.isArray(e)&&Array.isArray(e[0])}function Bh(e){return e.length===0?[]:Array.isArray(e[0])?e:[e]}function Ne(e){let t;if(Array.isArray(e)){if(e.length!==1)throw new V(`Expected Tensor length to be 1; got ${e.length}`);t=e[0]}else t=e;return t}function Je(e){if(Array.isArray(e)&&Array.isArray(e[0])){if(e.length===1)return e=e,e[0];throw new V(`Expected exactly 1 Shape; got ${e.length}`)}else return e}function Vh(e){let t=0;for(let n of e)n.shape.length===0?t+=1:t+=n.shape.reduce((a,r)=>a*r);return t}var Pk="Variable",xN=class{constructor(e,t="float32",n=Pk,a=!0,r=null){this.dtype=t==null?"float32":t,this.shape=e.shape,this.id=dN(),n=n==null?Pk:n,this.originalName=mN(n),this.name=fN(this.originalName),this.trainable_=a,this.constraint=r,this.val=Kv(e,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(e){return this.assertNotDisposed(),mV(this.val,e),this.val.id!==e.id&&(this.val.assign(e),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(e){this.trainable_=e,this.val.trainable=e}};function mV(e,t){if(e.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(e.shape)+" vs. "+JSON.stringify(t.shape))}function Jb(e){return e.map(t=>t.read())}function hw(e){e.forEach(t=>{t[0].write(t[1])})}var zt=class{constructor(e){this.dtype=e.dtype,this.shape=e.shape,e.shape!=null?this.ndim=e.shape.length:this.ndim=e.ndim,this.maxNDim=e.maxNDim,this.minNDim=e.minNDim,this.axes=e.axes||{}}},Va=class{constructor(e,t,n,a,r,s,i){this.dtype=e,this.shape=t,this.sourceLayer=n,this.inputs=a,this.callArgs=r,this.outputTensorIndex=i,this.id=dN(),s!=null&&(this.originalName=mN(s),this.name=fN(this.originalName)),this.rank=t.length}},fV=0,Lf=class{constructor(e,t){this.callArgs=t,this.id=fV++,this.outboundLayer=e.outboundLayer,this.inboundLayers=e.inboundLayers,this.nodeIndices=e.nodeIndices,this.tensorIndices=e.tensorIndices,this.inputTensors=e.inputTensors,this.outputTensors=e.outputTensors,this.inputMasks=e.inputMasks,this.outputMasks=e.outputMasks,this.inputShapes=e.inputShapes,this.outputShapes=e.outputShapes;for(let n of e.inboundLayers)n!=null&&n.outboundNodes.push(this);e.outboundLayer.inboundNodes.push(this)}getConfig(){let e=[];for(let t of this.inboundLayers)t!=null?e.push(t.name):e.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:e,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},gV=0,Ve=class extends ne.Serializable{constructor(e={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=gV++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let t=e.name;if(!t){let n=this.getClassName();t=Nr(n)+"_"+_f(n)}if(this.name=t,this.trainable_=e.trainable==null?!0:e.trainable,e.inputShape!=null||e.batchInputShape!=null){let n;if(e.batchInputShape!=null)n=e.batchInputShape;else if(e.inputShape!=null){let r=null;e.batchSize!=null&&(r=e.batchSize),n=[r].concat(e.inputShape)}this.batchInputShape=n;let a=e.dtype;a==null&&(a=e.inputDType),a==null&&(a="float32"),this.dtype=a}e.weights!=null?this.initialWeights=e.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(e,t){return e.name+"_ib-"+t.toString()}getNodeAtIndex(e,t){if(this.inboundNodes.length===0)throw new Ba(`The layer has never been called and thus has no defined ${t}.`);if(this.inboundNodes.length<=e)throw new V(`Asked to get ${t} at node ${e}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[e]}getInputAt(e){return On(this.getNodeAtIndex(e,"input").inputTensors)}getOutputAt(e){return On(this.getNodeAtIndex(e,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Tr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Tr(`Layer ${this.name} is not connected, no input to return.`);return On(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Tr(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Tr(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return On(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(e=>e())}get updates(){return this._updates}get built(){return this._built}set built(e){this._built=e}get trainable(){return this.trainable_}set trainable(e){this._trainableWeights.forEach(t=>t.trainable=e),this.trainable_=e}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(e=>e.trainable):[]}set trainableWeights(e){this._trainableWeights=e}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(e=>!e.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(e){this._nonTrainableWeights=e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(e){if(e=xt(e),this.inputSpec==null||this.inputSpec.length===0)return;let t=xt(this.inputSpec);if(e.length!==t.length)throw new V(`Layer ${this.name} expects ${t.length} inputs, but it received ${e.length} input tensors. Input received: ${e}`);for(let n=0;nr.maxNDim)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${r.maxNDim}, found ndim=${s}`);if(r.minNDim!=null&&s=0?i[l]:i[i.length+l];if(u!=null&&[u,null].indexOf(p)===-1)throw new V(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${u} but got shape ${i}.`)}}if(r.shape!=null)for(let i=0;i{if(!this.built){this.assertInputCompatibility(e);let s=[];for(let i of xt(e))s.push(i.shape);this.build(On(s)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&r&&(this._refCount=1)}if(this.assertInputCompatibility(e),r){let s=this.call(e,t),i=xt(s),o=[];for(let l of i)n.indexOf(l)!==-1&&(l=l.clone()),o.push(l);if(s=On(o),this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return s}else{let s=yV(e),i=this.computeOutputShape(s),o,l=bV(e);if(this.warnOnIncompatibleInputShape(Array.isArray(e)?s[0]:s),i!=null&&i.length>0&&Array.isArray(i[0])?o=i.map((u,p)=>new Va(l,u,this,xt(e),t,this.name,p)):o=new Va(l,i,this,xt(e),t,this.name),this.addInboundNode(e,o,null,null,s,i,t),this._refCount++,this.activityRegularizer!=null)throw new Me("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return o}})}warnOnIncompatibleInputShape(e){if(this.batchInputShape!=null)if(e.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(e)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let t=!1;this.batchInputShape.forEach((n,a)=>{n!=null&&e[a]!=null&&e[a]!==n&&(t=!0)}),t&&console.warn(`The shape of the input tensor (${JSON.stringify(e)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Tr(`The layer ${this.name} has never been called and thus has no defined output shape.`);let e=[];for(let t of this.inboundNodes){let n=JSON.stringify(t.outputShapes);e.indexOf(n)===-1&&e.push(n)}if(e.length===1){let t=this.inboundNodes[0].outputShapes;return Array.isArray(t)&&Array.isArray(t[0])&&t.length===1?t[0]:t}else throw new Tr(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Ba(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Vh(this.weights)}build(e){this.built=!0}getWeights(e=!1){return Jb(e?this.trainableWeights:this.weights)}setWeights(e){P(()=>{let t=this.weights;if(t.length!==e.length)throw new V(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${e.length}, but the layer was expecting ${t.length} weights. Provided weights: ${e}...`);if(t.length===0)return;let n=[],a=Jb(t);for(let r=0;rr.apply(u.read())),s==null&&(s=!0),s?this._trainableWeights.push(u):this._nonTrainableWeights.push(u),u}setFastWeightInitDuringBuild(e){this.fastWeightInitDuringBuild=e}addLoss(e){e==null||Array.isArray(e)&&e.length===0||(e=xt(e),this._losses!==void 0&&this._losses!==null&&this.losses.push(...e))}computeOutputShape(e){return e}computeMask(e,t){if(!this.supportsMasking){if(t!=null)if(Array.isArray(t))t.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return t}addInboundNode(e,t,n,a,r,s,i=null){let o=xt(e);t=xt(t),n=xt(n),a=xt(a),r=Bh(r),s=Bh(s);let l=[],u=[],p=[];for(let d of o)l.push(d.sourceLayer),u.push(d.nodeIndex),p.push(d.tensorIndex);new Lf({outboundLayer:this,inboundLayers:l,nodeIndices:u,tensorIndices:p,inputTensors:o,outputTensors:t,inputMasks:n,outputMasks:a,inputShapes:r,outputShapes:s},i);for(let d=0;de.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let e=0;return--this._refCount===0&&(e=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:e}}};function yV(e){e=xt(e);let t=[];for(let n of e)t.push(n.shape);return On(t)}function bV(e){return"float32"}function vN(e,t,n){if((t==null||n!=null&&n>0)&&(t=e.sourceLayer,n=e.nodeIndex),t.inboundNodes.length===0)return[e];{let a=t.inboundNodes[n];if(a.inboundLayers.length===0)return a.inputTensors;{let r=[];for(let s=0;sm.name),l=[],u=t.names();for(let m of o)u.indexOf(m)!==-1?l.push(t.getValue(m)):l.push(null);a!=null&&(a.maxNumTensors=-1/0,a.minNumTensors=1/0);let p=o.join(",")+"|"+t.names().sort().join(","),d=Uh.get(p),c;if(d==null){let m=wV(i,t);d=m.sorted,c=m.recipientCounts,Uh.put(p,d),Gh.put(p,c)}c={},r||Object.assign(c,Gh.get(p));let h=new Ys(t);for(let m=0;ma.maxNumTensors&&(a.maxNumTensors=$),$0,()=>"Expected at least one fetch, got none");let n=[],a={};if(e.length===1){let r=Ok(e[0],t);n=r.sorted,a=r.recipientMap}else{let r=new Set;for(let s of e){let{sorted:i,recipientMap:o}=Ok(s,t);for(let l of i)r.has(l.name)||(n.push(l),r.add(l.name));for(let l in o)a[l]==null&&(a[l]=new Set),o[l].forEach(u=>a[l].add(u))}}return{sorted:n,recipientCounts:kV(a)}}function kV(e){let t={};for(let n in e)t[n]=e[n].size;return t}function Ok(e,t){let n=new Set,a=[],r={};for(let o of t.names())n.add(o);let s=[],i=[];for(s.push(e);s.length>0;){let o=s[s.length-1];if(n.has(o.name)){s.pop();continue}let l=i[i.length-1]===s.length-1;if(o.inputs.length===0||l)s.pop(),a.push(o),n.add(o.name),l&&i.pop();else{i.push(s.length-1);for(let u of o.inputs)r[u.name]==null&&(r[u.name]=new Set),r[u.name].add(o.name),!n.has(u.name)&&s.push(u)}}return{sorted:a,recipientMap:r}}function IV(e){let t;if(e.sourceLayer.inboundNodes.length===1)t=e.sourceLayer.output;else{let n=null;for(let a=0;a100,vV);var kN={};Ae(kN,{maxNorm:()=>TV,minMaxNorm:()=>EV,nonNeg:()=>CV,unitNorm:()=>NV});function mw(e,t){return P(()=>pn(fe(z(e,e),t,!0)))}var Qc=class extends ne.Serializable{getConfig(){return{}}},fw=class extends Qc{constructor(e){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=mw(e,this.axis),n=tn(t,0,this.maxValue);return z(e,me(n,Y(jt(),t)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};fw.className="MaxNorm";ne.registerClass(fw);var gw=class extends Qc{constructor(e){super(),this.defaultAxis=0,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>me(e,Y(jt(),mw(e,this.axis))))}getConfig(){return{axis:this.axis}}};gw.className="UnitNorm";ne.registerClass(gw);var yw=class extends Qc{apply(e){return Xe(e)}};yw.className="NonNeg";ne.registerClass(yw);var bw=class extends Qc{constructor(e){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=e.minValue!=null?e.minValue:this.defaultMinValue,this.maxValue=e.maxValue!=null?e.maxValue:this.defaultMaxValue,this.rate=e.rate!=null?e.rate:this.defaultRate,this.axis=e.axis!=null?e.axis:this.defaultAxis}apply(e){return P(()=>{let t=mw(e,this.axis),n=Y(z(this.rate,tn(t,this.minValue,this.maxValue)),z(1-this.rate,t));return z(e,me(n,Y(jt(),t)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};bw.className="MinMaxNorm";ne.registerClass(bw);var Lk={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function Xt(e){return aw(e)}function zk(e,t={}){return Xc(e,ne.SerializationMap.getMap().classNameMap,t,"constraint")}function Yt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in Lk?Lk[e]:e,config:{}};return zk(t)}else return e instanceof Qc?e:zk(e)}function TV(e){return new fw(e)}function NV(e){return new gw(e)}function CV(){return new yw}function EV(e){return new bw(e)}var IN={};Ae(IN,{constant:()=>$V,glorotNormal:()=>LV,glorotUniform:()=>OV,heNormal:()=>zV,heUniform:()=>WV,identity:()=>MV,leCunNormal:()=>BV,leCunUniform:()=>VV,ones:()=>AV,orthogonal:()=>UV,randomNormal:()=>DV,randomUniform:()=>FV,truncatedNormal:()=>RV,varianceScaling:()=>PV,zeros:()=>_V});function _V(){return new iw}function AV(){return new $f}function $V(e){return new ow(e)}function FV(e){return new lw(e)}function DV(e){return new uw(e)}function RV(e){return new pw(e)}function MV(e){return new cw(e)}function PV(e){return new Bn(e)}function OV(e){return new Ff(e)}function LV(e){return new Df(e)}function zV(e){return new Rf(e)}function WV(e){return new Mf(e)}function BV(e){return new Pf(e)}function VV(e){return new Of(e)}function UV(e){return new dw(e)}var SN={};Ae(SN,{Layer:()=>Ve,RNN:()=>gr,RNNCell:()=>rd,activation:()=>gG,add:()=>TG,alphaDropout:()=>lH,average:()=>NG,averagePooling1d:()=>E0,averagePooling2d:()=>_0,averagePooling3d:()=>A0,avgPool1d:()=>MG,avgPool2d:()=>OG,avgPool3d:()=>zG,avgPooling1d:()=>PG,avgPooling2d:()=>LG,avgPooling3d:()=>WG,batchNormalization:()=>FG,bidirectional:()=>eH,categoryEncoding:()=>hH,centerCrop:()=>cH,concatenate:()=>CG,conv1d:()=>oG,conv2d:()=>lG,conv2dTranspose:()=>uG,conv3d:()=>pG,conv3dTranspose:()=>cG,convLstm2d:()=>YG,convLstm2dCell:()=>ZG,cropping2D:()=>hG,dense:()=>yG,depthwiseConv2d:()=>fG,dot:()=>$G,dropout:()=>bG,elu:()=>tG,embedding:()=>SG,flatten:()=>vG,gaussianDropout:()=>oH,gaussianNoise:()=>iH,globalAveragePooling1d:()=>BG,globalAveragePooling2d:()=>VG,globalMaxPool1d:()=>nH,globalMaxPool2d:()=>aH,globalMaxPooling1d:()=>f2,globalMaxPooling2d:()=>g2,gru:()=>GG,gruCell:()=>HG,input:()=>VN,inputLayer:()=>eG,layerNormalization:()=>DG,leakyReLU:()=>aG,lstm:()=>jG,lstmCell:()=>qG,masking:()=>uH,maxPool1d:()=>rH,maxPool2d:()=>sH,maxPooling1d:()=>y2,maxPooling2d:()=>b2,maxPooling3d:()=>UG,maximum:()=>EG,minimum:()=>_G,multiply:()=>AG,permute:()=>IG,prelu:()=>rG,reLU:()=>nG,repeatVector:()=>wG,rescaling:()=>pH,reshape:()=>kG,resizing:()=>dH,rnn:()=>JG,separableConv2d:()=>dG,simpleRNN:()=>KG,simpleRNNCell:()=>XG,softmax:()=>sG,spatialDropout1d:()=>xG,stackedRNNCells:()=>QG,thresholdedReLU:()=>iG,timeDistributed:()=>tH,upSampling2d:()=>mG,zeroPadding2d:()=>RG});async function Qr(e){if(e==null)return;let t=[],n=[],a=[];for(let r in e){let s=e[r];if(typeof s!="number"){let i=s;t.push(i.data()),n.push(r),a.push(i)}}if(t.length>0){let r=await Promise.all(t);for(let s=0;sY(this.totals[a],z(r,n)));this.totals[a]=i,s!=null&&s.dispose()}}}async onEpochEnd(e,t){if(t!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?t[n]=this.totals[n]/this.seen:P(()=>{let a=z(me(1,this.seen),this.totals[n]);t[n]=a,this.totals[n].dispose(),Ht(t[n])}))}},CN=class extends Cl{async onTrainBegin(e){this.epoch=[],this.history={}}async onEpochEnd(e,t){t==null&&(t={}),this.epoch.push(e);for(let n in t)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(t[n])}async syncData(){let e=[],t=[],n=[];for(let r in this.history){let s=this.history[r];for(let i=0;inew EN(n,t))}var Ea=class{constructor(){}static registerCallbackConstructor(e,t){v.assert(e>=0&&Number.isInteger(e),()=>`Verbosity level is expected to be an integer >= 0, but got ${e}`),Ea.checkForDuplicate(t),Ea.constructors[e]==null&&(Ea.constructors[e]=[]),Ea.constructors[e].push(t)}static checkForDuplicate(e){for(let t in Ea.constructors)Ea.constructors[+t].forEach(n=>{if(n===e)throw new V("Duplicate callback constructor.")})}static clear(){Ea.constructors={}}static createCallbacks(e){let t=[];for(let n in Ea.constructors){let a=+n;e>=a&&t.push(...Ea.constructors[a])}return t.map(n=>new n)}};Ea.constructors={};function AN(e,t,n,a,r,s,i,o,l){let u=new CN,p=[new HV,...Ea.createCallbacks(t)];e!=null&&p.push(...e),p.push(u);let d=new NN(p);return d.setParams({epochs:n,initialEpoch:a,samples:r,steps:s,batchSize:i,verbose:t,doValidation:o,metrics:l}),{callbackList:d,history:u}}function Ga(e,t={},n=!1){return Xc(e,ne.SerializationMap.getMap().classNameMap,t,"layer",n)}function Hh(e,t){return P(()=>{e.dtype!=="float32"&&(e=le(e,"float32"));let n=fe(Zc(e),t,!0),a=yn(n.shape,jt()),r=pn(mr(n,a));return me(e,r)})}function So(e,t){return P(()=>Nt(Zc(pe(t,e)),-1))}function zf(e,t){return P(()=>Nt(Lt(pe(t,e)),-1))}function qu(e,t){return P(()=>{let n=pe(e,t),a=tn(Lt(e),jt(),Number.MAX_VALUE),r=Lt(me(n,a));return z(100,Nt(r,-1))})}function jV(e,t){return P(()=>{let n=tn(t,jt(),Number.MAX_VALUE),a=ea(Y(1,n)),r=tn(e,jt(),Number.MAX_VALUE),s=ea(Y(1,r));return Nt(Zc(pe(a,s)),-1)})}function qV(e,t){return P(()=>{let n=mr(0,pe(1,z(e,t)));return Nt(Zc(n),-1)})}function KV(e,t){return P(()=>{let n=mr(0,pe(1,z(e,t)));return Nt(n,-1)})}function XV(e,t){return P(()=>{let n=fe(z(e,t),-1),a=ma(z(pe(1,e),t),-1);return mr(0,Y(1,pe(a,n)))})}function YV(e,t){return P(()=>{let n=Math.log(2),a=pe(t,e),r=pe(Y(a,vo(z(-2,a))),n);return Nt(r,-1)})}function nc(e,t,n=!1){return P(()=>{if(n)t=Xa(t);else{let a=fe(t,t.shape.length-1,!0);t=me(t,a)}return t=tn(t,jt(),1-jt()),vt(fe(z(le(e,"float32"),ea(t)),t.shape.length-1))})}function jh(e,t,n=!1){return P(()=>{let a=le(Bu(rV(e)),"int32");t=tn(t,jt(),1-jt());let r=t.shape,s=W(vl(a,r[r.length-1]),r);return nc(s,t,n)})}function ZV(e,t){if(!v.arraysEqual(e.shape,t.shape))throw new V(`logits and labels must have the same shape, but got shapes ${JSON.stringify(e.shape)} and ${JSON.stringify(t.shape)}`);return P(()=>{let n=Xe(t),a=vt(Lt(t));return Y(pe(n,z(t,e)),Wc(gn(a)))})}function Wf(e,t){return P(()=>{let n;return n=tn(t,jt(),1-jt()),n=ea(me(n,pe(1,n))),Nt(ZV(e,n),-1)})}function JV(e,t){return P(()=>{let n=tn(e,jt(),1),a=tn(t,jt(),1);return fe(z(e,ea(me(n,a))),-1)})}function QV(e,t){return P(()=>{let n=ea(Y(jt(),t));return Nt(pe(t,z(e,n)),-1)})}function xw(e,t){return P(()=>{let n=Hh(e,-1),a=Hh(t,-1),r=z(n,a);return vt(fe(r,-1))})}var qh={meanSquaredError:So,meanAbsoluteError:zf,meanAbsolutePercentageError:qu,meanSquaredLogarithmicError:jV,squaredHinge:qV,hinge:KV,categoricalHinge:XV,logcosh:YV,categoricalCrossentropy:nc,sparseCategoricalCrossentropy:jh,binaryCrossentropy:Wf,kullbackLeiblerDivergence:JV,poisson:QV,cosineProximity:xw};function Ib(e){if(typeof e=="string"){if(e in qh)return qh[e];let t=`Unknown loss ${e}`;throw e.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${e}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new V(t)}else return e}function vw(e,t){return P(()=>{let n=z(.5,ta(t)),a=lr(Cn(t,n),e.dtype);return Nt(Qn(e,a),-1)})}function ww(e,t){return P(()=>lr(Qn(oi(e,-1),oi(t,-1)),"float32"))}function $N(e,t){return P(()=>le(fe(Da(Qn(e,1),Qn(t,1))),"float32"))}function eU(e,t){return P(()=>le(fe(Da(Qn(e,1),Qn(t,0))),"float32"))}function tU(e,t){return P(()=>le(fe(Da(Qn(e,0),Qn(t,1))),"float32"))}function FN(e,t){return P(()=>{let n=$N(e,t),a=tU(e,t),r=Y(n,a);return le(fn(Cn(r,0),me(n,r),0),"float32")})}function nU(e,t){return P(()=>{let n=$N(e,t),a=eU(e,t),r=Y(n,a);return le(fn(Cn(r,0),me(n,r),0),"float32")})}function DN(e,t){return Wf(e,t)}function RN(e,t){return e.rank===t.rank&&(e=As(e,[e.rank-1])),t=oi(t,-1),t.dtype!==e.dtype&&(t=le(t,e.dtype)),le(Qn(e,t),"float32")}var aU=So,rU=So,sU=zf,iU=zf,oU=qu,lU=qu,kw=nc,uU=xw,MN=jh,Kh={binaryAccuracy:vw,categoricalAccuracy:ww,precision:FN,categoricalCrossentropy:kw,sparseCategoricalCrossentropy:MN,mse:aU,MSE:rU,mae:sU,MAE:iU,mape:oU,MAPE:lU,cosine:uU};function pU(e){if(typeof e=="string"&&e in Kh)return Kh[e];if(typeof e!="string"&&e!=null)return e;throw new V(`Unknown metric ${e}`)}function ch(e){if(rr(e!==null,`Unknown LossOrMetricFn ${e}`),typeof e=="string")return e;{let t;for(let n of Object.keys(qh))if(qh[n]===e){t=n;break}if(t!==void 0)return t;for(let n of Object.keys(Kh))if(Kh[n]===e){t=n;break}return t!==void 0?t:e.name}}function cU(e){let t={Adagrad:()=>Gs.adagrad(.01),Adadelta:()=>Gs.adadelta(1,.95,jt()),Adam:()=>Gs.adam(.001,.9,.999,jt()),Adamax:()=>Gs.adamax(.002,.9,.999,jt(),0),RMSProp:()=>Gs.rmsprop(.001,.9,0,jt()),SGD:()=>Gs.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,e in t)return t[e]();throw new V(`Unknown Optimizer ${e}`)}function Bk(e,t,n=!1){if(e==null||typeof e!="object"||Object.getPrototypeOf(e)!==Object.prototype||!Qb(e))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(n){let a=JSON.stringify(e);a.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${a.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function Qb(e){if(e===null)return!0;if(typeof e=="object")if(Object.getPrototypeOf(e)===Object.prototype){let t=Object.keys(e);for(let n of t)if(typeof n!="string"||!Qb(e[n]))return!1;return!0}else if(Array.isArray(e)){for(let t of e)if(!Qb(t))return!1;return!0}else return!1;else{let t=typeof e;return t==="string"||t==="number"||t==="boolean"}}function dU(e,t,n,a=console.log){let r=mU(e),s=["Layer (type)","Input Shape","Output shape","Param #"];r?(t=t||90,n=n||[.32,.61,.89,1]):(t=t||115,n=n||[.24,.48,.7,.8,1]),n[n.length-1]<=1&&(n=n.map(p=>Math.floor(t*p)));let i;if(!r){s.push("Receives inputs"),i=[];for(let p in e.nodesByDepth)i.push(...e.nodesByDepth[p])}a("_".repeat(t)),Xh(s,n,a),a("=".repeat(t));let o=e.layers;for(let p=0;p1||r.length===1&&r[0].inboundLayers.length>1){t=!1;break}a.push(...r)}if(t)for(let r of e.layers){let s=!1;for(let i of r.inboundNodes)if(a.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Xh(e,t,n=console.log){let a="";for(let r=0;r0&&(a=a.slice(0,a.length-1)+" "),a+=e[r],a=a.slice(0,t[r]),a+=" ".repeat(t[r]-a.length);n(a)}function fU(e,t,n){let a,r;try{r=e.inboundNodes.map(l=>JSON.stringify(l.inputShapes)).join(",")}catch(l){r="multiple"}try{a=JSON.stringify(e.outputShape)}catch(l){a="multiple"}let s=e.name,i=e.getClassName(),o=[`${s} (${i})`,r,a,e.countParams().toString()];Xh(o,t,n)}function gU(e,t,n,a){let r,s;try{s=e.inboundNodes.map(d=>JSON.stringify(d.inputShapes)).join(",")}catch(d){s="multiple"}try{r=JSON.stringify(e.outputShape)}catch(d){r="multiple"}let i=[];for(let d of e.inboundNodes)if(!(n!=null&&n.length>0&&n.indexOf(d)===-1))for(let c=0;cy.name)}`);os(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(y=>y.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let y of this.outputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;this.outputLayers.push(b),this.outputLayersNodeIndices.push(x),this.outputLayersTensorIndices.push(w)}for(let y of this.inputs){let b=y.sourceLayer,x=y.nodeIndex,w=y.tensorIndex;rr(x===0,"input layer has >1 nodes"),rr(w===0,"input layer has >1 tensors"),this.inputLayers.push(b),this.inputLayersNodeIndices.push(x),this.inputLayersTensorIndices.push(w)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let y=0;yy.shape),this.internalOutputShapes=this.outputs.map(y=>y.shape);let t={},n={},a={},r={},s={},i=[],o=(y,b,x,w,I,T)=>{(w==null||I==null||T==null)&&(w=y.sourceLayer,I=y.nodeIndex,T=y.tensorIndex);let C=w.inboundNodes[I];if(x.indexOf(C)!==-1)throw new Ba(`The tensor ${y.name} at layer "${w.name}" is part of a cycle.`);if(b.indexOf(C)!==-1)return;this.containerNodes.add(nr.nodeKey(w,I)),w.id in s||(s[w.id]=Object.keys(s).length),x.indexOf(C)===-1&&x.push(C);let _=C.inboundLayers.length;for(let $=0;$<_;$++){let R=C.inputTensors[$],F=C.inboundLayers[$],S=C.nodeIndices[$],M=C.tensorIndices[$];o(R,b,x,F,S,M)}for(b.push(C);x.indexOf(C)>=0;)x.splice(x.indexOf(C),1);i.push(C)},l=[],u=[];for(let y of this.outputs)o(y,l,u);let p=i.slice().reverse();for(let y of p){n[y.id]=y,y.id in t||(t[y.id]=0);let b=t[y.id],x=a[y.outboundLayer.id]==null?0:a[y.outboundLayer.id];b=Math.max(b,x),a[y.outboundLayer.id]=b,r[y.outboundLayer.id]=y.outboundLayer,t[y.id]=b;for(let w=0;wparseInt(y,10)).sort(lh);this.layers=[];for(let y of h){let b=c[y];b.sort((x,w)=>{let I=s[x.id],T=s[w.id];return IT?1:0});for(let x of b)x instanceof nr&&this.internalContainerRefs.push(x),this.layers.push(x)}this.layersByDepth=c,h=Object.keys(d).map(y=>parseInt(y,10)).sort(lh);let m=this.inputs.slice(),f=[];for(let y of h)for(let b of d[y]){let x=b.outboundLayer;if(x!=null){for(let w of b.inputTensors)if(m.indexOf(w)===-1)throw new Ba(`Graph disconnected: cannot obtain value for tensor ${w} at layer "${x.name}". The following previous layers were accessed without issue: ${f}`);for(let w of b.outputTensors)m.push(w);f.push(x.name)}}this.nodesByDepth=d;let g=this.layers.map(y=>y.name);for(let y of g){let b=g.filter(x=>x===y).length;if(b!==1)throw new Ba(`The name "${y}" is used ${b} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(g))}this.outboundNodes=[],this.inboundNodes=[],new Lf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(y=>null),outputMasks:this.outputs.map(y=>null),inputShapes:this.inputs.map(y=>y.shape),outputShapes:this.outputs.map(y=>y.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let e={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let t of this.layers)e.numDisposedVariables+=t.dispose().numDisposedVariables;for(let t of this.internalContainerRefs)e.numDisposedVariables+=t.dispose().numDisposedVariables}return e.refCountAfterDispose=this._refCount,e}get trainable(){return this.trainable_}set trainable(e){this.layers.forEach(t=>{t._trainableWeights.forEach(n=>n.trainable=e)}),this.trainable_=e}get trainableWeights(){if(this._trainableWeights.length>0)throw new V("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let e=[];for(let t of this.layers)e=e.concat(t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.layers)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.layers)t.push(...n.trainableWeights);return t.concat(e)}return e}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(e,t=!0){let n={},a=0;for(let s of this.layers)for(let i of s.weights){if(n[i.originalName]!=null)throw new V(`Duplicate weight name: ${i.originalName}`);n[i.originalName]=i,a++}let r=[];for(let s in e){let i=s;if(n[s]==null){let o=s.split("/");i=o.slice(0,-2).concat([o[o.length-1]]).join("/")}if(n[i]!=null)r.push([n[i],e[s]]);else if(t)throw new V(`Provided weight data has no target variable: ${s}`);delete n[i]}if(t){let s=[];for(let i in n)s.push(i);if(s.length>0)throw new V(`${s.length} of ${a} weights are not set: ${s}`)}hw(r)}updatedConfig(){let e=this.getConfig(),t={};return t.className=this.getClassName(),t.config=e,t.kerasVersion=`tfjs-layers ${Iw}`,t.backend="TensorFlow.js",t}toJSON(e,t=!0){let n=ex(this.updatedConfig());return t?JSON.stringify(n):n}call(e,t){return P(()=>{e=xt(e);let n=new Ys;for(let a=0;a{e=xt(e);let n;return t==null?n=di(null,e.length):n=xt(t),this.runInternalGraph(e,n)[1]})}computeOutputShape(e){let t=Bh(e);if(t.length!==this.inputLayers.length)throw new V(`Invalid inputShape argument ${e}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let i=0;iparseInt(i,10)).sort(lh);if(a.length>1)for(let i of a){let o=this.nodesByDepth[i];for(let l of o){let u=l.outboundLayer;if(this.inputLayers.map(m=>m.id).indexOf(u.id)!==-1)continue;let p=[];for(let m=0;mparseInt(o,10)).sort(lh);for(let o of a){let l=this.nodesByDepth[o];for(let u of l){let p=u.outboundLayer,d=u.inputTensors,c=u.outputTensors,h=new Array;for(let m of d)m.id in n&&h.push(n[m.id]);if(h.length===d.length){let m={},f,g,y,b;if(u.callArgs!=null&&(m=u.callArgs),h.length===1){let[x,w]=h[0];m.mask==null&&(m.mask=w),y=xt(p.call(x,m)),b=xt(p.computeMask(x,w)),f=[x],g=[w]}else f=h.map(x=>x[0]),g=h.map(x=>x[1]),m.mask==null&&(m.mask=g),y=xt(p.call(f,m)),b=xt(p.computeMask(f,g));if(p.activityRegularizer)throw new Me("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let x=0;x{let e=[];for(let t of this.layers)for(let n=0;n0){let m=[];for(let f=0;f0&&f.apply(On(y),b)}function l(f){let g=f.name,y=Ga(f,t.customObjects!=null?t.customObjects:{});y.setFastWeightInitDuringBuild(a),r[g]=y,f.inboundNodes.forEach(b=>{if(!(b instanceof Array))throw new V(`Corrupted configuration, expected array for nodeData: ${b}`);i(y,b)})}let u=t.name,p=t.layers;for(let f of p)l(f);for(;!H4(s);)for(let f of p){let g=r[f.name];if(g.name in s){let y=s[g.name];delete s[g.name];for(let b of y)o(g,b)}}let d=[],c=[],h=t.inputLayers;for(let f of h){let g=f[0],y=f[1],b=f[2];rr(g in r);let x=r[g].inboundNodes[y].outputTensors;d.push(x[b])}let m=t.outputLayers;for(let f of m){let g=f[0],y=f[1],b=f[2];rr(g in r);let x=r[g].inboundNodes[y].outputTensors;c.push(x[b])}return new e({inputs:d,outputs:c,name:u})}get stateful(){if(this._stateful)throw new V("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let e of this.layers)if(e.stateful)return!0;return!1}resetStates(){P(()=>{this.layers.forEach(e=>{e.stateful&&e.resetStates()})})}};function yU(e,t,n){let a=t.length;if(e==null||Array.isArray(e)&&e.length===0)return t.map(r=>null);if(a===1)return Array.isArray(e)&&e.length===1?e:typeof e=="object"&&t[0]in e?[e[t[0]]]:[e];if(Array.isArray(e)){if(e.length!==a)throw new Error(`Provided ${n} is an array of ${e.length} element(s), but the model has ${a} outputs. Make sure a set of weights is provided for each model output.`);return e}else if(typeof e=="object"&&Object.keys(e).length>0&&typeof e[Object.keys(e)[0]]=="object"){let r=[];return t.forEach(s=>{s in e?r.push(e[s]):r.push(null)}),r}else throw new Error(`The model has multiple (${a}) outputs, so ${n} must be either an array with ${a} elements or an object with ${t} keys. Provided ${n} not understood: ${JSON.stringify(e)}`)}function ON(e,t){return yU(e,t,"classWeight")}async function LN(e,t,n,a){if(t!=null||a!=null)throw new Error("Support sampleWeight is not implemented yet");if(n!=null){let r=P(()=>{if(e.shape.length===1)return or(e);if(e.shape.length===2){if(e.shape[1]>1)return oi(e,1);if(e.shape[1]===1)return W(e,[e.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${e.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${e.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await r.data());Ee(r);let i=[];return s.forEach(o=>{if(n[o]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${o} exists in the data but not in classWeight`);i.push(n[o])}),Ke(i,"float32")}else return null}function bU(e,t){return z(e,t)}var xU=32;function zN(e,t){let n,a,r=t;n=r.xs,a=r.ys,v.assert(n!=null&&a!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=Vk("input",e.inputNames,n),i=Vk("output",e.outputNames,a),o=s[0].shape[0];v.assert(s.length===e.inputs.length,()=>`LayersModel has ${e.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(e.inputNames)})`),v.assert(i.length===e.outputs.length,()=>`LayersModel has ${e.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(e.outputNames)})`);for(let l=0;l`Batch size mismatch: input ${e.inputNames[l]} has ${s[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);for(let l=0;l`Batch size mismatch: output ${e.outputNames[l]} has ${i[l].shape[0]}; expected ${o} based on input ${e.inputNames[0]}.`);return{xs:s,ys:i}}function Vk(e,t,n){if(n instanceof Te)return[n];if(Array.isArray(n))return v.assert(n.length===t.length,()=>`Received an array of ${n.length} Tensors, but expected ${t.length} to match the ${e} keys ${t}.`),n;{let a=[];for(let r of t){if(n[r]==null)throw new V(`The feature data generated by the dataset lacks the required ${e} key '${r}'.`);a.push(n[r])}return a}}function vU(e){if(e.length===3)throw new Me("Validation with sample weights is not implemented yet.");return{xs:e[0],ys:e[1]}}async function wU(e,t,n){let a=n.batchesPerEpoch!=null;if(v.assert(e.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),v.assert(n!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),v.assert(n.epochs!=null&&n.epochs>0&&Number.isInteger(n.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${n.epochs}`),v.assert(!a||n.batchesPerEpoch>0&&Number.isInteger(n.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${n.batchesPerEpoch}`),v.assert(n.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),e.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");e.isTraining=!0;try{let r=n.validationData!=null,s,i;if(r)if(Uk(n.validationData))v.assert(n.validationBatches==null||n.validationBatches>0&&Number.isInteger(n.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${n.validationBatches}`);else{let g=vU(n.validationData);s=g.xs,i=g.ys}let o=e.makeTrainFunction(),l=e.getDedupedMetricsNames(),u;r?u=l.slice().concat(l.map(g=>"val_"+g)):u=l.slice();let p=_N(n.callbacks,n.yieldEvery),d=n.verbose==null?1:n.verbose,{callbackList:c,history:h}=AN(p,d,n.epochs,null,null,kU(t,n),null,r,u);c.setModel(e),e.history=h,await c.onTrainBegin(),e.stopTraining_=!1;let m=n.initialEpoch==null?0:n.initialEpoch,f=await t.iterator();for(;m=n.batchesPerEpoch:x.done){if(r){let w;Uk(n.validationData)?w=xt(await e.evaluateDataset(n.validationData,{batches:n.validationBatches})):w=xt(e.evaluate(s,i,{batchSize:n.validationBatchSize==null?xU:n.validationBatchSize,verbose:0}));for(let I=0;I0)throw new Me("Verbose mode is not implemented yet.");v.assert(!a||n.batches>0&&Number.isInteger(n.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(n.batches)}`);let i=IU(t)?t:await t.iterator(),o=0,l=0;for(;!a||l{if(u.value){let{xs:p,ys:d}=zN(e,u.value),c=p.concat(d),h=P(()=>r(c));if(Ee(c),l===0)for(let f=0;fY(s[f],z(m,g))),l>0&&Ee(y)}Ee(h),o+=m,++l}return s}),u.done){a&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${n.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let u=0;u0&&Number.isInteger(e),()=>`batchSize is required to be a positive integer, but got ${e}`)}function $p(e,t,n){return e==null?[null]:Array.isArray(e)?e.map(a=>ei(a,t,n-t)):ei(e,t,n-t)}function tx(e,t){return P(()=>e==null?null:Array.isArray(e)?e.map(n=>tx(n,t)):yN(e,t.dtype==="int32"?t:le(t,"int32")))}function Tb(e,t){let n=[],a=0,r=null;for(;a=e&&(r=e),n.push([a,r]),a=r;return n}function WN(e){let t=[];e instanceof Te&&(e=[e]);for(let n=0;nn.push(r.id));else if(t!=null)for(let r in t){let s=t[r];n.push(s.id)}let a=[];if(e instanceof Te)n.indexOf(e.id)===-1&&a.push(e);else if(Array.isArray(e))e.forEach(r=>{n.indexOf(r.id)===-1&&a.push(r)});else if(e!=null)for(let r in e){let s=e[r];n.indexOf(s.id)===-1&&a.push(s)}a.forEach(r=>{r.isDisposed||r.dispose()})}function TU(e){return e instanceof Te}function nx(e){return Array.isArray(e)}function Gk(e){return!TU(e)&&!nx(e)}function Hk(e,t,n,a=!0,r=""){if(t==null||t.length===0){if(e!=null){let i=!1;if(nx(e)&&e.length>0)i=!0;else if(Gk(e)){for(let o in e)if(e.hasOwnProperty(o)){i=!0;break}}else i=!0;if(i)throw new V(`Error when checking model ${r} expected no data, but got ${e}`)}return[]}if(e==null)return t.map(i=>null);let s;if(Gk(e)){e=e,s=[];for(let i of t){if(e[i]==null)throw new V(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(e[i])}}else if(nx(e)){if(e=e,e.length!==t.length)throw new V(`Error when checking model ${r}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${e}`);s=e}else{if(e=e,t.length>1)throw new V(`The model ${r} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${e.shape}`);s=[e]}if(s=WN(s),n!=null)for(let i=0;i=0&&u!==p)throw new V(`${r} expected a batch of elements where each example has shape [${n[i].slice(1,n[i].length)}] (i.e.,tensor shape [*,${n[i].slice(1,n[i].length)}]) but the ${r} received an input with ${o.shape[0]} examples, each with shape [${o.shape.slice(1,o.shape.length)}] (tensor shape [${o.shape}])`)}}return s}function NU(e,t,n){let a=os(e.map(s=>s.shape[0]));a.sort();let r=os(t.map(s=>s.shape[0]));if(r.sort(),a.length>1)throw new V(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(e.map(s=>s.shape))}`);if(r.length>1)throw new V(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(a.length>0&&r.length>0&&!v.arraysEqual(a,r))throw new V(`Input Tensors should have the same number of samples as target Tensors. Found ${a[0]} input sample(s) and ${r[0]} target sample(s).`)}function CU(e,t,n){let a=[So,Wf,nc];for(let r=0;r1)throw new V(`The model expects ${t.length} ${r} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(e.shape)}.`);s=[e]}if(n!=null)for(let i=0;i[]);let n;if(typeof e=="string"||typeof e=="function")n=[e];else if(Array.isArray(e)||typeof e=="object")n=e;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${e}`);if(Array.isArray(n))return t.map(a=>n);{let a=[];for(let r of t){let s=n.hasOwnProperty(r)?n[r]:[];Array.isArray(s)||(s=[s]),a.push(s)}return a}}var _U="layers-model",$r=class extends nr{constructor(e){super(e),this.isTraining=!1}summary(e,t,n=console.log){if(!this.built)throw new V("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");dU(this,e,t,n)}compile(e){if(e.loss==null&&(e.loss=[]),this.loss=e.loss,typeof e.optimizer=="string")this.optimizer_=cU(e.optimizer),this.isOptimizerOwned=!0;else{if(!(e.optimizer instanceof Pr))throw new V("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=e.optimizer,this.isOptimizerOwned=!1}let t=[];if(!Array.isArray(e.loss)&&typeof e.loss!="string"&&typeof e.loss!="function"){e.loss=e.loss;for(let s in e.loss)if(this.outputNames.indexOf(s)===-1)throw new V(`Unknown entry in loss dictionary: "${s}". Only expected the following keys: ${this.outputNames}`);for(let s of this.outputNames)e.loss[s]==null&&console.warn(`Output "${s}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${s} during training`),t.push(Ib(e.loss[s]))}else if(Array.isArray(e.loss)){if(e.loss.length!==this.outputs.length)throw new V(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${e.loss}.`);t=e.loss.map(s=>Ib(s))}else{let s=Ib(e.loss);this.outputs.forEach(i=>{t.push(s)})}this.lossFunctions=t,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let s=0;s{for(let s=0;s1&&(this.metricsTensors.push([i,s]),this.metricsNames.push(this.outputNames[s]+"_loss"))}});let a=EU(e.metrics,this.outputNames),r=(s,i,o)=>{this.outputNames.length>1&&(i=this.outputNames[s]+"_"+i),this.metricsNames.push(i),this.metricsTensors.push([o,s])};Qs("metric",()=>{for(let s=0;s{let l="",u,p,d;for(let c of o){if(typeof c=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(c)!==-1){let m=this.internalOutputShapes[s];m[m.length-1]===1||this.lossFunctions[s]===Wf?["accuracy","acc"].indexOf(c)!==-1?p=vw:["crossentropy","ce"].indexOf(c)!==-1&&(p=DN):this.lossFunctions[s]===jh?["accuracy","acc"].indexOf(c)!==-1?p=RN:["crossentropy","ce"].indexOf(c)!==-1&&(p=MN):["accuracy","acc"].indexOf(c)!==-1?p=ww:["crossentropy","ce"].indexOf(c)!==-1&&(p=kw);let f;["accuracy","acc"].indexOf(c)!==-1?f="acc":["crossentropy","ce"].indexOf(c)!==-1&&(f="ce"),d=p,u=l+f}else d=pU(c),u=l+ch(c);let h;Qs(u,()=>{h=d}),r(s,u,h)}})(i)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(e,t,n={}){let a=n.batchSize==null?32:n.batchSize;Sb(a);let r=!0,s=this.standardizeUserDataXY(e,t,r,a);try{let i=s[0].concat(s[1]);this.makeTestFunction();let o=this.testFunction,l=this.testLoop(o,i,a,n.verbose,n.steps);return On(l)}finally{za(s[0],e),za(s[1],t)}}async evaluateDataset(e,t){return this.makeTestFunction(),SU(this,e,t)}checkNumSamples(e,t,n,a="steps"){let r;if(n!=null){if(r=null,t!=null)throw new V(`If ${a} is set, batchSize must be null or undefined.Got batchSize = ${t}`)}else if(e!=null)Array.isArray(e)?r=e[0].shape[0]:r=e.shape[0];else throw new V(`Either the input data should have a defined shape, or ${a} shoud be specified.`);return r}execute(e,t){if(Array.isArray(t)&&t.length===0)throw new V("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(t),a=n?t:[t],r=this.retrieveSymbolicTensors(a),s=new Ys;if(e instanceof Te&&(e=[e]),Array.isArray(e)){if(e.length!==this.inputs.length)throw new V(`The number of inputs provided (${e.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let o=0;oi.name);for(let i=0;i0){let a=[];throw t.forEach((r,s)=>{r==null&&a.push(e[s])}),new V(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(a)}`)}return t}predictLoop(e,t=32,n=!1){return P(()=>{let a=this.checkNumSamples(e);if(n)throw new Me("Verbose predictLoop() is not implemented yet.");let r=Tb(a,t),s=this.outputs.map(i=>[]);for(let i=0;i{let o=r[i][0],l=r[i][1],u=$p(e,o,l),p=[];if(Array.isArray(u))for(let c=0;cs[l].push(o));return On(s.map(i=>Ze(i,0)))})}predict(e,t={}){let n=WN(e);jk(n,this.inputNames,this.feedInputShapes,!1);try{let a=t.batchSize==null?32:t.batchSize;return Sb(a),this.predictLoop(n,a)}finally{za(n,e)}}predictOnBatch(e){jk(e,this.inputNames,this.feedInputShapes,!0);let t=(Array.isArray(e)?e[0]:e).shape[0];return this.predictLoop(e,t)}standardizeUserDataXY(e,t,n=!0,a){if(this.optimizer_==null)throw new Ba("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let r=[];for(let s=0;s0&&e[0].shape[0]%a!==0)throw new V(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${a}. Found: ${e[0].shape[0]} sample(s).`);return[e,t]}async standardizeUserData(e,t,n,a,r=!0,s){let[i,o]=this.standardizeUserDataXY(e,t,r,s);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(a!=null){let u=ON(a,this.outputNames);l=[];for(let p=0;p{let s=this.checkNumSamples(t,n,r,"steps"),i=[];if(a>0)throw new Me("Verbose mode is not implemented yet.");if(r!=null)throw new Me("steps mode in testLoop() is not implemented yet");{let o=Tb(s,n),l=Ke(ja(0,s));for(let u=0;u1){let s=$k(e.slice(0,n),a);r+=`_${s}`}t.push(r)}return t}makeTrainFunction(){return e=>{let t=[],n=e.slice(0,this.inputs.length),a=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),r=e.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),s=[],i=()=>{let u=[];for(let h=0;h1&&h{c=Y(c,h)}),c},o=this.collectedTrainableWeights.map(u=>u.read()),l=!0;return[this.optimizer_.minimize(i,l,o)].concat(s)}}makeTestFunction(){this.testFunction=e=>P(()=>{let t=[],n,a=e.slice(0,this.inputs.length),r=e.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=[];for(let l=0;l0){if(f=!0,n.validationData.length===2)o=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new Me("validationData including sample weights is not supported yet."):new V(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let C=!0,_=await this.standardizeUserData(o,l,null,null,C,c);u=_[0],p=_[1],g=u.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){f=!0;let C=Math.floor(a[0].shape[0]*(1-n.validationSplit)),_=a[0].shape[0];u=$p(a,C,_),s=a,a=$p(a,0,C),p=$p(r,C,_),i=r,r=$p(r,0,C),g=u.concat(p)}else n.validationSteps!=null&&(f=!0);let y=a.concat(r).concat(d);this.checkTrainableWeightsConsistency();let b=this.makeTrainFunction(),x=this.getDedupedMetricsNames(),w,I;f?(this.makeTestFunction(),w=this.testFunction,I=x.slice().concat(x.map(C=>"val_"+C))):(w=null,g=[],I=x.slice());let T=_N(n.callbacks,n.yieldEvery);return await this.fitLoop(b,y,x,c,n.epochs,n.verbose,T,w,g,n.shuffle,I,n.initialEpoch,null,null)}finally{this.isTraining=!1,za(a,e),za(r,t),za(s,e),za(i,t),za(u,o),za(p,l),d!=null&&Ee(d)}}async fitLoop(e,t,n,a,r,s,i,o,l,u,p,d,c,h){a==null&&(a=32),r==null&&(r=1),u==null&&(u=!0),d==null&&(d=0);let m=!1;if(o!=null&&l!=null&&(m=!0),h!=null&&(m=!0,c==null))throw new V("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let f=this.checkNumSamples(t,a,c,"steps_per_epoch"),g;f!=null&&(g=ja(0,f)),s==null&&(s=1);let{callbackList:y,history:b}=AN(i,s,r,d,f,c,a,m,p);y.setModel(this),this.history=b,await y.onTrainBegin(),this.stopTraining_=!1;for(let x=d;x{let $=T[C][0],R=T[C][1],F=ei(I,$,R-$);_.batch=C,_.size=R-$;let S=tx(t,F),M=e(S);for(let B=0;BNr(t))}else{let t=Object.keys(this.loss);e={};let n=this.loss;for(let a of t)if(typeof n[a]=="string")e[a]=Nr(n[a]);else throw new Error("Serialization of non-string loss is not supported.")}return e}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[Nr(ch(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(e=>Nr(ch(e)));{let e={};for(let t in this.metrics)e[t]=Nr(ch(this.metrics[t]));return e}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(e){if(e.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(e.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(e.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let t=ac(e.optimizer_config),n=Ga(t),a;if(typeof e.loss=="string")a=qs(e.loss);else if(Array.isArray(e.loss))a=e.loss.map(s=>qs(s));else if(e.loss!=null){a={};for(let s in e.loss)a[s]=qs(e.loss[s])}let r;if(Array.isArray(e.metrics))r=e.metrics.map(s=>qs(s));else if(e.metrics!=null){r={};for(let s in e.metrics)r[s]=qs(e.metrics[s])}this.compile({loss:a,metrics:r,optimizer:n})}async save(e,t){if(typeof e=="string"){let i=Gt.getSaveHandlers(e);if(i.length===0)throw new V(`Cannot find any save handlers for URL '${e}'`);if(i.length>1)throw new V(`Found more than one (${i.length}) save handlers for URL '${e}'`);e=i[0]}if(e.save==null)throw new V("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await Gt.encodeWeights(this.getNamedWeights(t)),a=!1,r=null,s={modelTopology:this.toJSON(r,a),format:_U,generatedBy:`TensorFlow.js tfjs-layers v${Iw}`,convertedBy:null};if((t==null?!1:t.includeOptimizer)&&this.optimizer!=null){s.trainingConfig=this.getTrainingConfig();let i="optimizer",{data:o,specs:l}=await Gt.encodeWeights(await this.optimizer.getWeights(),i);n.specs.push(...l),n.data=Gt.concatenateArrayBuffers([n.data,o])}return this.userDefinedMetadata!=null&&(Bk(this.userDefinedMetadata,this.name,!0),s.userDefinedMetadata=this.userDefinedMetadata),s.weightData=n.data,s.weightSpecs=n.specs,e.save(s)}setUserDefinedMetadata(e){Bk(e,this.name),this.userDefinedMetadata=e}getUserDefinedMetadata(){return this.userDefinedMetadata}};$r.className="Model";ne.registerClass($r);var BN=class extends $r{};BN.className="Functional";ne.registerClass(BN);async function AU(e,t){"modelTopology"in e||(e={modelTopology:e}),e=e;let n=e.modelTopology;n.model_config!=null&&(n=n.model_config);let a=ac(n),r=Ga(a,t);if(e.weightsManifest!=null){let s=await Gt.loadWeights(e.weightsManifest,e.pathPrefix,r.weights.map(o=>o.originalName)),i={};for(let o of r.weights)i[o.originalName]=s[o.originalName];r.loadWeights(i),Ee(s)}return r}async function $U(e,t){if(t==null&&(t={}),typeof e=="string"){let n=Gt.getLoadHandlers(e,t);if(n.length===0)n.push(Gt.browserHTTPRequest(e,t));else if(n.length>1)throw new V(`Found more than one (${n.length}) load handlers for URL '${e}'`);e=n[0]}return FU(e,void 0,t)}async function FU(e,t,n){if(n==null&&(n={}),e.load==null)throw new V("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let a=await e.load(),r=a.modelTopology;r.model_config!=null&&(r=r.model_config);let s=n.strict==null?!0:n.strict,i=a.weightData!=null&&a.weightSpecs!=null&&s,o=Ga(ac(r),t,i),l=a.trainingConfig;if(l!=null&&o.loadTrainingConfig(l),a.userDefinedMetadata!=null&&o.setUserDefinedMetadata(a.userDefinedMetadata),a.weightData!=null){if(a.weightSpecs==null)throw new V("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:u,optimizerWeights:p}=DU(a.weightData,a.weightSpecs);o.loadWeights(u,s),o.optimizer!=null&&p.length>0&&await o.optimizer.setWeights(p),Ee(u),Ee(p.map(d=>d.tensor))}return o}function DU(e,t){let n=Gt.decodeWeights(e,t),a={},r=[];return t.forEach(s=>{s.group==="optimizer"?r.push({name:s.name,tensor:n[s.name]}):a[s.name]=n[s.name]}),{modelWeights:a,optimizerWeights:r}}var El=class extends $r{constructor(e){if(super({inputs:[],outputs:[]}),e=e||{},this.trainable=!0,this.built=!1,this.name=e.name!=null?e.name:_f("sequential_"),e.layers!=null)for(let t of e.layers)this.add(t)}checkShape(e){if(e.inboundNodes[0].outputTensors[0].shape.some(t=>t<0))throw new V(`Negative dimension size caused by adding layer ${e.name} with input shape [${e.inboundNodes[0].inputTensors[0].shape}]`)}add(e){let t=e instanceof El||e instanceof $r,n;if(t){if(n=e,n.outputs.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new V("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(e.inboundNodes.length===0){if(e.batchInputShape==null)throw new V("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let a=wN({batchShape:e.batchInputShape,dtype:e.dtype,name:e.name+"_input"});e.apply(a)}if(t)this.outputs=n.outputs,this.inputs=n.inputs;else{if(e.inboundNodes.length!==1)throw new V(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${e.name} which has ${e.inboundNodes.length} pre-existing inbound connections.`);if(e.inboundNodes[0].outputTensors.length!==1)throw new V("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[e.inboundNodes[0].outputTensors[0]],this.inputs=vN(this.outputs[0])}this.inboundNodes=[],new Lf({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:di(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(a=>a.shape),outputShapes:this.outputs[0].shape})}else{let a=e.apply(this.outputs[0]);if(Array.isArray(a))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(e),this.outputs=[a],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(e),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let e=this.layers.length-1;this.layers[e].outboundNodes=[],this.outputs=[this.layers[e].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(e,t){return this.model==null&&this.build(),this.model.call(e,t)}build(e){if(Je(e),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new $r({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(e,t,n=console.log){this.built||this.build(),super.summary(e,t,n)}setWeights(e){this.model==null&&this.build(),this.model.setWeights(e)}evaluate(e,t,n={}){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.evaluate(e,t,n)}async evaluateDataset(e,t){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.evaluateDataset(e,t)}predict(e,t={}){return this.model==null&&this.build(),this.model.predict(e,t)}predictOnBatch(e){return this.model==null&&this.build(),this.model.predictOnBatch(e)}compile(e){this.build(),this.model.compile(e),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(e){this.model.optimizer=e}async fit(e,t,n={}){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.fit(e,t,n)}async fitDataset(e,t){if(!this.built)throw new Ba("The model needs to be compiled before being used.");return this.model.fitDataset(e,t)}async trainOnBatch(e,t){return this.model.trainOnBatch(e,t)}static fromConfig(e,t,n={},a=!1){let r,s={};if(t instanceof Array){if(t[0].className==null||t[0].className==="Merge")throw new V("Legacy serialization format not supported yet.");r=t}else v.assert(t.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),r=t.layers,delete t.layers,s=t;let i=new e(s);if(!(i instanceof El))throw new Me(`Sequential.fromConfig called on non-Sequential input: ${i}`);for(let o of r){let l=Ga(o,void 0,a);a&&l.setFastWeightInitDuringBuild(!0),i.add(l)}return i}set stopTraining(e){if(this.model==null)throw new V("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=e}get stopTraining(){if(this.model==null)throw new V("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let e=[];for(let t of this.layers){let n={};n.className=t.getClassName(),n.config=t.getConfig(),e.push(n)}return{name:this.name,layers:e}}};El.className="Sequential";ne.registerClass(El);function RU(e){return new $r(e)}function MU(e){return new El(e)}function VN(e){return wN(e)}function PU(e,t){Ea.registerCallbackConstructor(e,t)}var Un=class extends ne.Serializable{getConfig(){return{}}},UN=class extends Un{apply(e,t=1){return iV(e,t)}};UN.className="elu";ne.registerClass(UN);var GN=class extends Un{apply(e){return pf(e)}};GN.className="selu";ne.registerClass(GN);var HN=class extends Un{apply(e){return Xe(e)}};HN.className="relu";ne.registerClass(HN);var jN=class extends Un{apply(e){return P(()=>Uu(6,Xe(e)))}};jN.className="relu6";ne.registerClass(jN);var qN=class extends Un{apply(e){return e}};qN.className="linear";ne.registerClass(qN);var KN=class extends Un{apply(e){return ha(e)}};KN.className="sigmoid";ne.registerClass(KN);var XN=class extends Un{apply(e){return lV(e)}};XN.className="hardSigmoid";ne.registerClass(XN);var YN=class extends Un{apply(e){return vo(e)}};YN.className="softplus";ne.registerClass(YN);var ZN=class extends Un{apply(e){return oV(e)}};ZN.className="softsign";ne.registerClass(ZN);var JN=class extends Un{apply(e){return li(e)}};JN.className="tanh";ne.registerClass(JN);var Sw=class extends Un{apply(e,t=-1){return Xa(e,t)}};Sw.className="softmax";ne.registerClass(Sw);var QN=class extends Un{apply(e,t=-1){return tf(e,t)}};QN.className="logSoftmax";ne.registerClass(QN);var e2=class extends Un{apply(e,t=1){return P(()=>z(ha(z(e,t)),e))}};e2.className="swish";ne.registerClass(e2);var t2=class extends Un{apply(e){return P(()=>z(e,li(vo(e))))}};t2.className="mish";ne.registerClass(t2);function hs(e){return e.getClassName()}function Nb(e,t={}){return Xc(e,ne.SerializationMap.getMap().classNameMap,t,"activation")}function ms(e){if(e==null){let t={};return t.className="linear",t.config={},Nb(t)}if(typeof e=="string"){let t={};return t.className=e,t.config={},Nb(t)}else return e instanceof Un?e:Nb(e)}function Tw(e){if(e!=null&&typeof e!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${e}`)}var n2=class extends ne.Serializable{},ed=class extends n2{constructor(e){super(),Tw(e),this.l1=e==null||e.l1==null?.01:e.l1,this.l2=e==null||e.l2==null?.01:e.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(e){return P(()=>{let t=It([1]);return this.hasL1&&(t=Y(t,fe(z(this.l1,Lt(e))))),this.hasL2&&(t=Y(t,fe(z(this.l2,Zc(e))))),W(t,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(e,t){return new e({l1:t.l1,l2:t.l2})}};ed.className="L1L2";ne.registerClass(ed);function OU(e){return Tw(e),new ed({l1:e!=null?e.l1:null,l2:0})}function LU(e){return Tw(e),new ed({l2:e!=null?e.l2:null,l1:0})}var qk={l1l2:"L1L2"};function ct(e){return aw(e)}function Kk(e,t={}){return Xc(e,ne.SerializationMap.getMap().classNameMap,t,"regularizer")}function Tt(e){if(e==null)return null;if(typeof e=="string"){let t={className:e in qk?qk[e]:e,config:{}};return Kk(t)}else return e instanceof n2?e:Kk(e)}var Nw=class extends Ve{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null&&(this.maxValue=e.maxValue)}call(e,t){e=Ne(e);let n=Xe(e);return this.maxValue!=null&&(n=tn(n,0,this.maxValue)),n}computeOutputShape(e){return e}getConfig(){let e={maxValue:this.maxValue},t=super.getConfig();return Object.assign(e,t),e}};Nw.className="ReLU";ne.registerClass(Nw);var Cw=class extends Ve{constructor(e){super(e==null?{}:e),this.DEFAULT_ALPHA=.3,e==null&&(e={}),this.alpha=e.alpha==null?this.DEFAULT_ALPHA:e.alpha}call(e,t){let n=Ne(e);return zc(n,this.alpha)}computeOutputShape(e){return e}getConfig(){let e={alpha:this.alpha},t=super.getConfig();return Object.assign(e,t),e}};Cw.className="LeakyReLU";ne.registerClass(Cw);var Ew=class extends Ve{constructor(e){if(super(e==null?{}:e),this.DEFAULT_ALPHA_INITIALIZER="zeros",e==null&&(e={}),this.supportsMasking=!0,this.alphaInitializer=St(e.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=Tt(e.alphaRegularizer),this.alphaConstraint=Yt(e.alphaConstraint),e.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(e.sharedAxes))this.sharedAxes=e.sharedAxes;else if(typeof e.sharedAxes=="number")this.sharedAxes=[e.sharedAxes];else throw new V(`Expected sharedAxes to be a number or an array of numbers, but got ${e.sharedAxes}`)}build(e){e=Je(e);let t=e.slice(1);if(this.sharedAxes!=null)for(let a of this.sharedAxes)t[a-1]=1;this.alpha=this.addWeight("alpha",t,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let a=1;a(Rt(t),t==="channelsFirst"?_e(e,[0,2,3,1]):e))}function a2(e,t){return P(()=>(Rt(t),t==="channelsFirst"?_e(e,[0,2,3,4,1]):e))}function zU(e,t,n,a=1,r="valid",s,i=1){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.shape.length!==3)throw new V(`The input of a conv1dWithBias operation should be 3, but is ${e.shape.length} instead.`);if(t.shape.length!==3)throw new V(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(n!=null&&n.shape.length!==1)throw new V(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(e=_e(e,[0,2,1])),r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let o=Km(e,t,a,r==="same"?"same":"valid","NWC",i);return n!=null&&(o=Ya(o,n)),o})}function Xk(e,t,n,a=[1,1],r="valid",s,i,o=null){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.rank!==3&&e.rank!==4)throw new V(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${e.rank}.`);if(t.rank!==3&&t.rank!==4)throw new V(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${e.rank}.`);let l=Fw(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return l=Tl.conv2d({x:l,filter:t,strides:a,pad:r==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:n,activation:o}),s==="channelsFirst"&&(l=_e(l,[0,3,1,2])),l})}function WU(e,t,n,a=[1,1,1],r="valid",s,i){return P(()=>{if(s==null&&(s=qa()),Rt(s),e.rank!==4&&e.rank!==5)throw new V(`conv3dWithBias expects input to be of rank 4 or 5, but received ${e.rank}.`);if(t.rank!==4&&t.rank!==5)throw new V(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${e.rank}.`);let o=a2(e,s);if(r==="causal")throw new Me("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return o=bv(o,t,a,r==="same"?"same":"valid","NDHWC",i),n!=null&&(o=Ya(o,n)),s==="channelsFirst"&&(o=_e(o,[0,4,1,2,3])),o})}var Dw=class extends Ve{constructor(e,t){if(super(t),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Dw.verifyArgs(t),this.rank=e,en(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new Me(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=gl(t.kernelSize,e,"kernelSize"),this.strides=gl(t.strides==null?1:t.strides,e,"strides"),this.padding=t.padding==null?"valid":t.padding,va(this.padding),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Rt(this.dataFormat),this.activation=ms(t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.biasInitializer=St(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Yt(t.biasConstraint),this.biasRegularizer=Tt(t.biasRegularizer),this.activityRegularizer=Tt(t.activityRegularizer),this.dilationRate=gl(t.dilationRate==null?1:t.dilationRate,e,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new V(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new V(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new V(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(e){if(rr("kernelSize"in e,"required key 'kernelSize' not in config"),typeof e.kernelSize!="number"&&!rw(e.kernelSize,"number",1,3))throw new V(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(e.kernelSize)}.`)}getConfig(){let e={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:hs(this.activation),useBias:this.useBias,biasInitializer:Ct(this.biasInitializer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}},td=class extends Dw{constructor(e,t){super(e,t),this.kernel=null,td.verifyArgs(t),this.filters=t.filters,en(this.filters,"filters"),this.kernelInitializer=St(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Yt(t.kernelConstraint),this.kernelRegularizer=Tt(t.kernelRegularizer)}build(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[t]}`);let n=e[t],a=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",a,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[t]:n}}],this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n,a=this.bias==null?null:this.bias.read(),r=cN(this.activation.getClassName());if(r!=null&&this.rank===2)n=Xk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate,r);else{if(this.rank===1)n=zU(e,this.kernel.read(),a,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=Xk(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=WU(e,this.kernel.read(),a,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new Me("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(e){e=Je(e);let t=[],n=this.dataFormat==="channelsLast"?e.slice(1,e.length-1):e.slice(2);for(let r=0;r 0 but got ${JSON.stringify(e.filters)}`)}},nd=class extends td{constructor(e){super(2,e),nd.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!rw(e.kernelSize,"number",1,2))throw new V(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(e.kernelSize)}.`)}};nd.className="Conv2D";ne.registerClass(nd);var ad=class extends td{constructor(e){super(3,e),ad.verifyArgs(e)}getConfig(){let e=super.getConfig();return delete e.rank,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!(Array.isArray(e.kernelSize)&&(e.kernelSize.length===1||e.kernelSize.length===3)))throw new V(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(e.kernelSize)}.`)}};ad.className="Conv3D";ne.registerClass(ad);var Rw=class extends nd{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==4)throw new V("Input should have rank 4; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:4,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==4)throw new V(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i;this.dataFormat==="channelsFirst"?(s=2,i=3):(s=1,i=2);let o=a[s],l=a[i],u=this.kernelSize[0],p=this.kernelSize[1],d=this.strides[0],c=this.strides[1],h=sr(o,d,u,this.padding),m=sr(l,c,p,this.padding),f=[r,h,m,this.filters];this.dataFormat!=="channelsLast"&&(n=_e(n,[0,2,3,1]));let g=Xm(n,this.kernel.read(),f,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(g=_e(g,[0,3,1,2])),this.bias!=null&&(g=Ya(g,this.bias.read(),this.dataFormat)),this.activation!=null&&(g=this.activation.apply(g)),g})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3):(n=3,a=1,r=2);let s=this.kernelSize[0],i=this.kernelSize[1],o=this.strides[0],l=this.strides[1];return t[n]=this.filters,t[a]=sr(t[a],o,s,this.padding),t[r]=sr(t[r],l,i,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Rw.className="Conv2DTranspose";ne.registerClass(Rw);var Mw=class extends ad{constructor(e){if(super(e),this.inputSpec=[new zt({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new V(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(e){if(e=Je(e),e.length!==5)throw new V("Input should have rank 5; Received input shape: "+JSON.stringify(e));let t=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[t]==null)throw new V("The channel dimension of the inputs should be defined. Found `None`.");let n=e[t],a=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",a,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new zt({ndim:5,axes:{[t]:n}})],this.built=!0}call(e,t){return P(()=>{let n=Ne(e);if(n.shape.length!==5)throw new V(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let a=n.shape,r=a[0],s,i,o;this.dataFormat==="channelsFirst"?(o=2,s=3,i=4):(o=1,s=2,i=3);let l=a[o],u=a[s],p=a[i],d=this.kernelSize[0],c=this.kernelSize[1],h=this.kernelSize[2],m=this.strides[0],f=this.strides[1],g=this.strides[2],y=sr(l,m,d,this.padding),b=sr(u,f,c,this.padding),x=sr(p,g,h,this.padding),w=[r,y,b,x,this.filters];this.dataFormat!=="channelsLast"&&(n=_e(n,[0,2,3,4,1]));let I=xv(n,this.kernel.read(),w,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(I=_e(I,[0,4,1,2,3])),this.bias!==null&&(I=Ya(I,this.bias.read(),this.dataFormat)),this.activation!==null&&(I=this.activation.apply(I)),I})}computeOutputShape(e){e=Je(e);let t=e.slice(),n,a,r,s;this.dataFormat==="channelsFirst"?(n=1,a=2,r=3,s=4):(n=4,a=1,r=2,s=3);let i=this.kernelSize[0],o=this.kernelSize[1],l=this.kernelSize[2],u=this.strides[0],p=this.strides[1],d=this.strides[2];return t[n]=this.filters,t[a]=sr(t[a],u,i,this.padding),t[r]=sr(t[r],p,o,this.padding),t[s]=sr(t[s],d,l,this.padding),t}getConfig(){let e=super.getConfig();return delete e.dilationRate,e}};Mw.className="Conv3DTranspose";ne.registerClass(Mw);var r2=class extends td{constructor(e,t){if(super(e,t),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,t.filters==null)throw new V("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(t.kernelInitializer!=null||t.kernelRegularizer!=null||t.kernelConstraint!=null)throw new V("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(t.padding!=null&&t.padding!=="same"&&t.padding!=="valid")throw new V(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(t.padding)}`);this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=Tt(t.depthwiseRegularizer),this.depthwiseConstraint=Yt(t.depthwiseConstraint),this.pointwiseInitializer=St(t.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=Tt(t.pointwiseRegularizer),this.pointwiseConstraint=Yt(t.pointwiseConstraint)}build(e){if(e=Je(e),e.length{e=Ne(e);let n;if(this.rank===1)throw new Me("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(e=_e(e,[0,2,3,1])),n=_s(e,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=Ya(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=_e(n,[0,3,1,2])),n})}getConfig(){let e=super.getConfig();return delete e.rank,delete e.kernelInitializer,delete e.kernelRegularizer,delete e.kernelConstraint,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.pointwiseInitializer=Ct(this.pointwiseInitializer),e.depthwiseRegularizer=ct(this.depthwiseRegularizer),e.pointwiseRegularizer=ct(this.pointwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseConstraint),e.pointwiseConstraint=Xt(this.pointwiseConstraint),e}};r2.className="SeparableConv";var Pw=class extends r2{constructor(e){super(2,e)}};Pw.className="SeparableConv2D";ne.registerClass(Pw);var Bf=class extends td{constructor(e){super(1,e),Bf.verifyArgs(e),this.inputSpec=[{ndim:3}]}getConfig(){let e=super.getConfig();return delete e.rank,delete e.dataFormat,e}static verifyArgs(e){if(typeof e.kernelSize!="number"&&!rw(e.kernelSize,"number",1,1))throw new V(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(e.kernelSize)}.`)}};Bf.className="Conv1D";ne.registerClass(Bf);var Ow=class extends Ve{constructor(e){super(e),typeof e.cropping=="number"?this.cropping=[[e.cropping,e.cropping],[e.cropping,e.cropping]]:typeof e.cropping[0]=="number"?this.cropping=[[e.cropping[0],e.cropping[0]],[e.cropping[1],e.cropping[1]]]:this.cropping=e.cropping,this.dataFormat=e.dataFormat===void 0?"channelsLast":e.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(e){return this.dataFormat==="channelsFirst"?[e[0],e[1],e[2]-this.cropping[0][0]-this.cropping[0][1],e[3]-this.cropping[1][0]-this.cropping[1][1]]:[e[0],e[1]-this.cropping[0][0]-this.cropping[0][1],e[2]-this.cropping[1][0]-this.cropping[1][1],e[3]]}call(e,t){return P(()=>{if(e=Ne(e),this.dataFormat==="channelsLast"){let n=ph(e,this.cropping[0][0],e.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return ph(n,this.cropping[1][0],e.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=ph(e,this.cropping[0][0],e.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return ph(n,this.cropping[1][0],e.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let e={cropping:this.cropping,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};Ow.className="Cropping2D";ne.registerClass(Ow);var Lw=class extends Ve{constructor(e){super(e),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=e.size==null?this.DEFAULT_SIZE:e.size,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.interpolation=e.interpolation==null?"nearest":e.interpolation,Q4(this.interpolation)}computeOutputShape(e){if(this.dataFormat==="channelsFirst"){let t=e[2]==null?null:this.size[0]*e[2],n=e[3]==null?null:this.size[1]*e[3];return[e[0],e[1],t,n]}else{let t=e[1]==null?null:this.size[0]*e[1],n=e[2]==null?null:this.size[1]*e[2];return[e[0],t,n,e[3]]}}call(e,t){return P(()=>{let n=Ne(e),a=n.shape;if(this.dataFormat==="channelsFirst"){n=_e(n,[0,2,3,1]);let r=this.size[0]*a[2],s=this.size[1]*a[3],i=this.interpolation==="nearest"?$a.resizeNearestNeighbor(n,[r,s]):$a.resizeBilinear(n,[r,s]);return _e(i,[0,3,1,2])}else{let r=this.size[0]*a[1],s=this.size[1]*a[2];return this.interpolation==="nearest"?$a.resizeNearestNeighbor(n,[r,s]):$a.resizeBilinear(n,[r,s])}})}getConfig(){let e={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},t=super.getConfig();return Object.assign(e,t),e}};Lw.className="UpSampling2D";ne.registerClass(Lw);function BU(e,t,n=[1,1],a="valid",r,s){return P(()=>{r==null&&(r=qa()),Rt(r);let i=Fw(e,r);if(e.rank!==4)throw new V(`Input for depthwiseConv2d is required to be 4-D, but is instead ${e.rank}-D`);if(t.rank!==4)throw new V(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Cs(i,t,n,a==="same"?"same":"valid","NHWC",s),r==="channelsFirst"&&(i=_e(i,[0,3,1,2])),i})}var zw=class extends Dw{constructor(e){super(2,e),this.depthwiseKernel=null,this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=St(e.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Yt(e.depthwiseConstraint),this.depthwiseRegularizer=Tt(e.depthwiseRegularizer)}build(e){if(e=Je(e),e.length<4)throw new V(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(e)}.`);let t=this.dataFormat==="channelsFirst"?1:3;if(e[t]==null||e[t]<0)throw new V(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${e[t]}).`);let n=e[t],a=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",a,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{e=Ne(e);let n=BU(e,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=Ya(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[1]*this.depthMultiplier:e[3]*this.depthMultiplier,r=Ha(t,this.kernelSize[0],this.padding,this.strides[0]),s=Ha(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[e[0],a,r,s]:[e[0],r,s,a]}getConfig(){let e=super.getConfig();return e.depthMultiplier=this.depthMultiplier,e.depthwiseInitializer=Ct(this.depthwiseInitializer),e.depthwiseRegularizer=ct(this.depthwiseRegularizer),e.depthwiseConstraint=Xt(this.depthwiseRegularizer),e}};zw.className="DepthwiseConv2D";ne.registerClass(zw);function s2(e,t,n,a){if(Array.isArray(e)){if(t!=null||n!=null)throw new V("When inputs is an array, neither initialState or constants should be provided");a!=null&&(n=e.slice(e.length-a,e.length),e=e.slice(0,e.length-a)),e.length>1&&(t=e.slice(1,e.length)),e=e[0]}function r(s){return s==null||Array.isArray(s)?s:[s]}return t=r(t),n=r(n),{inputs:e,initialState:t,constants:n}}function i2(e,t,n,a=!1,r,s,i=!1,o=!1){return P(()=>{let l=t.shape.length;if(l<3)throw new V(`Input should be at least 3D, but is ${l}D.`);let u=[1,0].concat(ja(2,l));if(t=_e(t,u),s!=null)throw new Me("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),r!=null&&(r=le(le(r,"bool"),"float32"),r.rank===l-1&&(r=Qt(r,-1)),r=_e(r,u)),a&&(t=ya(t,0),r!=null&&(r=ya(r,0)));let p=[],d,c=n,h=t.shape[0],m=pt(t),f;r!=null&&(f=pt(r));for(let y=0;ye(b,c));if(r==null)d=x[0],c=x[1];else{let w=P(()=>{let I=f[y],T=pe(ta(I),I),C=Y(z(x[0],I),z(c[0],T)),_=c.map(($,R)=>Y(z(x[1][R],I),z($,T)));return{output:C,newStates:_}});d=w.output,c=w.newStates}o&&p.push(d)}let g;return o&&(g=$t(p,1)),[d,g,c]})}var gr=class extends Ve{constructor(e){super(e);let t;if(e.cell==null)throw new V("cell property is missing for the constructor of RNN.");if(Array.isArray(e.cell)?t=new Gf({cells:e.cell}):t=e.cell,t.stateSize==null)throw new V("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=t,this.returnSequences=e.returnSequences==null?!1:e.returnSequences,this.returnState=e.returnState==null?!1:e.returnState,this.goBackwards=e.goBackwards==null?!1:e.goBackwards,this._stateful=e.stateful==null?!1:e.stateful,this.unroll=e.unroll==null?!1:e.unroll,this.supportsMasking=!0,this.inputSpec=[new zt({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return ja(0,e).map(t=>null)}else return this.states_}setStates(e){this.states_=e}computeOutputShape(e){Zb(e)&&(e=e[0]),e=e;let t=this.cell.stateSize;Array.isArray(t)||(t=[t]);let n=t[0],a;if(this.returnSequences?a=[e[0],e[1],n]:a=[e[0],n],this.returnState){let r=[];for(let s of t)r.push([e[0],s]);return[a].concat(r)}else return a}computeMask(e,t){return P(()=>{Array.isArray(t)&&(t=t[0]);let n=this.returnSequences?t:null;if(this.returnState){let a=this.states.map(r=>null);return[n].concat(a)}else return n})}get states(){if(this.states_==null){let e=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,t=[];for(let n=0;ns.shape[s.shape.length-1]),r))throw new V(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=r.map(s=>new zt({shape:[null,s]}));this.stateful&&this.resetStates()}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Tr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_=[It([n,this.cell.stateSize])];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(a=>It([n,a])):this.states_[0]=It([n,this.cell.stateSize]);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t===!0?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let a=0;aHt(a.clone()))})}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=s2(e,n,a,this.numConstants);e=r.inputs,n=r.initialState,a=r.constants;let s=[],i=[];if(n!=null){t.initialState=n,s=s.concat(n),this.stateSpec=[];for(let o of n)this.stateSpec.push(new zt({shape:o.shape}));i=i.concat(this.stateSpec)}if(a!=null&&(t.constants=a,s=s.concat(a),this.numConstants=a.length),s[0]instanceof Va){let o=[e].concat(s),l=this.inputSpec.concat(i),u=this.inputSpec;this.inputSpec=l;let p=super.apply(o,t);return this.inputSpec=u,p}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;e=Ne(e),r==null&&(this.stateful?r=this.states_:r=this.getInitialState(e));let s=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(r.length!==s)throw new V(`RNN Layer has ${s} state(s) but was passed ${r.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let i={training:a},o=i2((c,h)=>{let m=this.cell.call([c].concat(h),i);return[m[0],m.slice(1)]},e,r,this.goBackwards,n,null,this.unroll,this.returnSequences),l=o[0],u=o[1],p=o[2];this.stateful&&this.resetStates(p,a);let d=this.returnSequences?u:l;return this.returnState?[d].concat(p):d})}getInitialState(e){return P(()=>{let t=It(e.shape);return t=fe(t,[1,2]),t=Yc(t),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Xb(t,[1,n]):t):this.cell.stateSize>1?[Xb(t,[1,this.cell.stateSize])]:[t]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(e)}getConfig(){let e=super.getConfig(),t={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(t.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===gr.className&&(t.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),e),t)}static fromConfig(e,t,n={}){let a=t.cell,r=Ga(a,n);return new e(Object.assign(t,{cell:r}))}};gr.className="RNN";ne.registerClass(gr);var rd=class extends Ve{},Vf=class extends rd{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,en(this.units,"units"),this.activation=ms(e.activation==null?this.DEFAULT_ACTIVATION:e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Nl([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Nl([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(e),this.kernel=this.addWeight("kernel",[e[e.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`SimpleRNNCell expects 2 input Tensors, got ${e.length}.`);let n=e[1];e=e[0];let a=t.training==null?!1:t.training;0ta(e),rate:this.dropout,training:a,dropoutFunc:this.dropoutFunc})),0ta(n),rate:this.recurrentDropout,training:a,dropoutFunc:this.dropoutFunc}));let r,s=this.dropoutMask,i=this.recurrentDropoutMask;s!=null?r=ur(z(e,s),this.kernel.read()):r=ur(e,this.kernel.read()),this.bias!=null&&(r=Ya(r,this.bias.read())),i!=null&&(n=z(n,i));let o=Y(r,ur(n,this.recurrentKernel.read()));return this.activation!=null&&(o=this.activation.apply(o)),[o,o]})}getConfig(){let e=super.getConfig(),t={units:this.units,activation:hs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),recurrentInitializer:Ct(this.recurrentInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:ct(this.kernelRegularizer),recurrentRegularizer:ct(this.recurrentRegularizer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),recurrentConstraint:Xt(this.recurrentConstraint),biasConstraint:Xt(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},e),t)}};Vf.className="SimpleRNNCell";ne.registerClass(Vf);var Ww=class extends gr{constructor(e){e.cell=new Vf(e),super(e)}call(e,t){return P(()=>{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return new e(t)}};Ww.className="SimpleRNN";ne.registerClass(Ww);var Uf=class extends rd{constructor(e){if(super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.resetAfter)throw new V("GRUCell does not support reset_after parameter set to true.");this.units=e.units,en(this.units,"units"),this.activation=ms(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ms(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Nl([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Nl([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){e=Je(e);let t=e[e.length-1];this.kernel=this.addWeight("kernel",[t,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(e,t){return P(()=>{if(e=e,e.length!==2)throw new V(`GRUCell expects 2 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training==null?!1:t.training,a=e[1];e=e[0],0ta(e),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let r=this.dropoutMask,s=this.recurrentDropoutMask,i,o,l;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Bw.className="GRU";ne.registerClass(Bw);var sd=class extends rd{constructor(e){super(e),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=e.units,en(this.units,"units"),this.activation=ms(e.activation===void 0?this.DEFAULT_ACTIVATION:e.activation),this.recurrentActivation=ms(e.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:e.recurrentActivation),this.useBias=e.useBias==null?!0:e.useBias,this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=St(e.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=e.unitForgetBias,this.kernelRegularizer=Tt(e.kernelRegularizer),this.recurrentRegularizer=Tt(e.recurrentRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.kernelConstraint=Yt(e.kernelConstraint),this.recurrentConstraint=Yt(e.recurrentConstraint),this.biasConstraint=Yt(e.biasConstraint),this.dropout=Nl([1,ds([0,e.dropout==null?0:e.dropout])]),this.recurrentDropout=Nl([1,ds([0,e.recurrentDropout==null?0:e.recurrentDropout])]),this.dropoutFunc=e.dropoutFunc,this.implementation=e.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(e){var t;e=Je(e);let n=e[e.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let a;if(this.useBias){if(this.unitForgetBias){let r=this.biasInitializer,s=this.units;a=new(t=class extends Pa{apply(i,o){let l=r.apply([s]),u=new $f().apply([s]),p=r.apply([s*2]);return Dk(Dk(l,u),p)}},t.className="CustomInit",t)}else a=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,a,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training;if(e=e,e.length!==3)throw new V(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let a=e[1],r=e[2];e=e[0],0ta(e),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0ta(a),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,o,l,u,p;0{this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}static fromConfig(e,t){return t.implmentation===0&&(t.implementation=1),new e(t)}};Vw.className="LSTM";ne.registerClass(Vw);var Gf=class extends rd{constructor(e){super(e),this.cells=e.cells}get stateSize(){let e=[];for(let t of this.cells.slice().reverse())Array.isArray(t.stateSize)?e.push(...t.stateSize):e.push(t.stateSize);return e}call(e,t){return P(()=>{e=e;let n=e.slice(1),a=[];for(let i of this.cells.slice().reverse())Array.isArray(i.stateSize)?a.push(n.splice(0,i.stateSize.length)):a.push(n.splice(0,1));a.reverse();let r=[],s;for(let i=0;i{Qs(`RNNCell_${a}`,()=>{n.build(e),Array.isArray(n.stateSize)?t=n.stateSize[0]:t=n.stateSize,e=[e[0],t]})}),this.built=!0}getConfig(){let e=super.getConfig(),t=a=>({className:a.getClassName(),config:a.getConfig()}),n={cells:this.cells.map(t)};return Object.assign(Object.assign({},e),n)}static fromConfig(e,t,n={}){let a=[];for(let r of t.cells)a.push(Ga(r,n));return new e({cells:a})}get trainableWeights(){if(!this.trainable)return[];let e=[];for(let t of this.cells)e.push(...t.trainableWeights);return e}get nonTrainableWeights(){let e=[];for(let t of this.cells)e.push(...t.nonTrainableWeights);if(!this.trainable){let t=[];for(let n of this.cells)t.push(...n.trainableWeights);return t.concat(e)}return e}getWeights(){let e=[];for(let t of this.cells)e.push(...t.weights);return Jb(e)}setWeights(e){let t=[];for(let n of this.cells){let a=n.weights.length,r=e.splice(a);for(let s=0;ss!=null?s(t(),n):bN(t(),n),o=()=>Jc(i,t,a);return!r||r<=1?Ht(o().clone()):Array(r).fill(void 0).map(o).map(l=>Ht(l.clone()))}var VU=function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,a=Object.getOwnPropertySymbols(e);r{if(this.cell.dropoutMask!=null&&(Ee(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Ee(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),t&&t.constants)throw new V("ConvRNN2D cell does not support constants");let n=t==null?null:t.mask,a=t==null?null:t.training,r=t==null?null:t.initialState;return super.call(e,{mask:n,training:a,initialState:r})})}computeOutputShape(e){let t=this.computeSingleOutputShape(e);return this.returnSequences||(t=[t[0],...t.slice(2)]),this.returnState&&(t=[t,...Array(2).fill([e[0],...t.slice(-3)])]),t}getInitialState(e){return P(()=>{let{stateSize:t}=this.cell,n=e.shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)],s=It(r);return Array.isArray(t)?Array(t.length).fill(s):[s]})}resetStates(e,t=!1){P(()=>{if(!this.stateful)throw new Tr("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,a=this.computeSingleOutputShape(n),r=[a[0],...a.slice(2)];if(n[0]==null)throw new V("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_=[It(r)];else if(e==null)Ee(this.states_),this.keptStates!=null&&(Ee(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>It(r)):this.states_[0]=It(r);else{if(Array.isArray(e)||(e=[e]),e.length!==this.states_.length)throw new V(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${e.length} state value(s). Input received: ${e}`);t?this.keptStates.push(this.states_.slice()):Ee(this.states_);for(let s=0;sHt(s.clone()))})}computeSingleOutputShape(e){let{dataFormat:t,filters:n,kernelSize:a,padding:r,strides:s,dilationRate:i}=this.cell,o=t==="channelsFirst",l=e[o?3:2],u=e[o?4:3],p=Ha(l,a[0],r,s[0],i[0]),d=Ha(u,a[1],r,s[1],i[1]);return[...e.slice(0,2),...o?[n,p,d]:[p,d,n]]}};o2.className="ConvRNN2D";var Hf=class extends sd{constructor(e){let{filters:t,kernelSize:n,strides:a,padding:r,dataFormat:s,dilationRate:i}=e;super(Object.assign(Object.assign({},e),{units:t})),this.filters=t,en(this.filters,"filters"),this.kernelSize=gl(n,2,"kernelSize"),this.kernelSize.forEach(o=>en(o,"kernelSize")),this.strides=gl(a||1,2,"strides"),this.strides.forEach(o=>en(o,"strides")),this.padding=r||"valid",va(this.padding),this.dataFormat=s||"channelsLast",Rt(this.dataFormat),this.dilationRate=gl(i||1,2,"dilationRate"),this.dilationRate.forEach(o=>en(o,"dilationRate"))}build(e){var t;e=Je(e);let n=this.dataFormat==="channelsFirst"?1:e.length-1;if(e[n]==null)throw new V(`The channel dimension of the input should be defined. Found ${e[n]}`);let a=e[n],r=4,s=this.kernelSize.concat([a,this.filters*r]);this.kernel=this.addWeight("kernel",s,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let i=this.kernelSize.concat([this.filters,this.filters*r]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",i,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let o;if(this.unitForgetBias){let l=this.biasInitializer,u=this.filters;o=new(t=class extends Pa{apply(p,d){let c=l.apply([u]),h=Jn([u]),m=l.apply([u*2]);return sw([c,h,m])}},t.className="CustomInit",t)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*r],null,o,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(e,t){return P(()=>{if(e.length!==3)throw new V(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${e.length}.`);let n=t.training||!1,a=e[0],r=e[1],s=e[2],i=4;0ta(a),rate:this.dropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let o=this.dropoutMask,l=(Z,J,ee)=>!J||!J[ee]?Z:z(J[ee],Z),u=l(a,o,0),p=l(a,o,1),d=l(a,o,2),c=l(a,o,3);0ta(r),rate:this.recurrentDropout,training:n,count:i,dropoutFunc:this.dropoutFunc}));let h=this.recurrentDropoutMask,m=l(r,h,0),f=l(r,h,1),g=l(r,h,2),y=l(r,h,3),b=3,[x,w,I,T]=zn(this.kernel.read(),i,b),[C,_,$,R]=this.useBias?zn(this.bias.read(),i):[null,null,null,null];u=this.inputConv(u,x,C,this.padding),p=this.inputConv(p,w,_,this.padding),d=this.inputConv(d,I,$,this.padding),c=this.inputConv(c,T,R,this.padding);let[F,S,M,B]=zn(this.recurrentKernel.read(),i,b);m=this.recurrentConv(m,F),f=this.recurrentConv(f,S),g=this.recurrentConv(g,M),y=this.recurrentConv(y,B);let U=this.recurrentActivation.apply(Y(u,m)),G=this.recurrentActivation.apply(Y(p,f)),q=Y(z(G,s),z(U,this.activation.apply(Y(d,g)))),K=z(this.recurrentActivation.apply(Y(c,y)),this.activation.apply(q));return[K,K,q]})}getConfig(){let e=super.getConfig(),{units:t}=e,n=VU(e,["units"]),a={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),a)}inputConv(e,t,n,a){let r=Ft(e,t,this.strides,a||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?Ya(r,n,this.dataFormat):r}recurrentConv(e,t){return Ft(e,t,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Hf.className="ConvLSTM2DCell";ne.registerClass(Hf);var Uw=class extends o2{constructor(e){let t=new Hf(e);super(Object.assign(Object.assign({},e),{cell:t}))}static fromConfig(e,t){return new e(t)}};Uw.className="ConvLSTM2D";ne.registerClass(Uw);var jf=class extends Ve{constructor(e){super(e),this.rate=Math.max(Math.min(e.rate,1),0),this.noiseShape=e.noiseShape,this.seed=e.seed,this.supportsMasking=!0}getNoiseShape(e){if(this.noiseShape==null)return this.noiseShape;let t=e.shape,n=[];for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);if(0bN(n,this.rate,r,this.seed),()=>n,a)}return e})}getConfig(){let e={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},t=super.getConfig();return Object.assign(e,t),e}dispose(){return super.dispose()}};jf.className="Dropout";ne.registerClass(jf);var Gw=class extends jf{constructor(e){super(e),this.inputSpec=[{ndim:3}]}getNoiseShape(e){let t=e.shape;return[t[0],1,t[2]]}};Gw.className="SpatialDropout1D";ne.registerClass(Gw);var Hw=class extends Ve{constructor(e){if(super(e),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",e.batchInputShape==null&&e.inputShape==null&&e.inputDim!=null){let t=null;e.batchSize!=null&&(t=e.batchSize),this.batchInputShape=[t,e.inputDim]}this.units=e.units,en(this.units,"units"),this.activation=ms(e.activation),e.useBias!=null&&(this.useBias=e.useBias),this.kernelInitializer=St(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=St(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Yt(e.kernelConstraint),this.biasConstraint=Yt(e.biasConstraint),this.kernelRegularizer=Tt(e.kernelRegularizer),this.biasRegularizer=Tt(e.biasRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(e){e=Je(e);let t=e[e.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[t,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:t}}],this.built=!0}computeOutputShape(e){e=Je(e);let t=e.slice();return t[t.length-1]=this.units,t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=cN(this.activation.getClassName()),r;return a!=null?r=ur(n,this.kernel.read(),a,this.bias?this.bias.read():null):(r=ur(n,this.kernel.read()),this.bias!=null&&(r=Ya(r,this.bias.read())),this.activation!=null&&(r=this.activation.apply(r))),r})}getConfig(){let e={units:this.units,activation:hs(this.activation),useBias:this.useBias,kernelInitializer:Ct(this.kernelInitializer),biasInitializer:Ct(this.biasInitializer),kernelRegularizer:ct(this.kernelRegularizer),biasRegularizer:ct(this.biasRegularizer),activityRegularizer:ct(this.activityRegularizer),kernelConstraint:Xt(this.kernelConstraint),biasConstraint:Xt(this.biasConstraint)},t=super.getConfig();return Object.assign(e,t),e}};Hw.className="Dense";ne.registerClass(Hw);var jw=class extends Ve{constructor(e){e=e||{},super(e),this.inputSpec=[{minNDim:3}],this.dataFormat=e.dataFormat}computeOutputShape(e){e=Je(e);for(let t of e.slice(1))if(t==null)throw new V(`The shape of the input to "Flatten" is not fully defined (got ${e.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[e[0],ls(e,1)]}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);if(this.dataFormat==="channelsFirst"&&n.rank>1){let a=[0];for(let r=2;r{this.invokeCallHook(e,t);let n=Ne(e);return this.activation.apply(n)})}getConfig(){let e={activation:hs(this.activation)},t=super.getConfig();return Object.assign(e,t),e}};qw.className="Activation";ne.registerClass(qw);var Kw=class extends Ve{constructor(e){super(e),this.n=e.n,this.inputSpec=[{ndim:2}]}computeOutputShape(e){return[e[0],this.n,e[1]]}call(e,t){return P(()=>(e=Ne(e),aV(e,this.n)))}getConfig(){let e={n:this.n},t=super.getConfig();return Object.assign(e,t),e}};Kw.className="RepeatVector";ne.registerClass(Kw);var Xw=class extends Ve{constructor(e){super(e),this.targetShape=e.targetShape;for(let t=0;t{this.invokeCallHook(e,t);let n=Ne(e),a=n.shape,r=a.slice(0,1).concat(this.fixUnknownDimension(a.slice(1),this.targetShape));return W(n,r)})}getConfig(){let e={targetShape:this.targetShape},t=super.getConfig();return Object.assign(e,t),e}};Xw.className="Reshape";ne.registerClass(Xw);var Yw=class extends Ve{constructor(e){if(super(e),e.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(e.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${e.dims} instead.`);let t=ja(1,e.dims.length+1);if(!v.arraysEqual(e.dims.slice().sort(),t))throw new Error("Invalid permutation `dims`: "+JSON.stringify(e.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=e.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new zt({ndim:this.dims.length+1})]}computeOutputShape(e){e=Je(e);let t=e.slice();return this.dims.forEach((n,a)=>{t[a+1]=e[n]}),t}call(e,t){return _e(Ne(e),this.dimsIncludingBatch)}getConfig(){let e={dims:this.dims},t=super.getConfig();return Object.assign(e,t),e}};Yw.className="Permute";ne.registerClass(Yw);var Zw=class extends Ve{constructor(e){super(e==null?{}:e),this.supportsMasking=!0,e!=null?this.maskValue=e.maskValue==null?0:e.maskValue:this.maskValue=0}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={maskValue:this.maskValue};return Object.assign(t,e),t}computeMask(e,t){let n=Ne(e),a=-1;return ec(pi(n,this.maskValue),a)}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e),a=-1,r=!0,s=ec(pi(n,this.maskValue),a,r);return z(n,le(s,n.dtype))})}};Zw.className="Masking";ne.registerClass(Zw);var Jw=class extends Ve{constructor(e){if(super(e),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",e.batchInputShape==null&&e.inputShape==null){let t=null;e.batchSize!=null&&(t=e.batchSize),e.inputLength==null?this.batchInputShape=[t,null]:this.batchInputShape=[t].concat(xt(e.inputLength))}this.inputDim=e.inputDim,en(this.inputDim,"inputDim"),this.outputDim=e.outputDim,en(this.outputDim,"outputDim"),this.embeddingsInitializer=St(e.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=Tt(e.embeddingsRegularizer),this.activityRegularizer=Tt(e.activityRegularizer),this.embeddingsConstraint=Yt(e.embeddingsConstraint),this.maskZero=e.maskZero,this.supportsMasking=e.maskZero,this.inputLength=e.inputLength}build(e){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(e){}computeMask(e,t){return P(()=>this.maskZero?(e=Ne(e),pi(e,qe(e))):null)}computeOutputShape(e){if(e=Je(e),this.inputLength==null)return[...e,this.outputDim];let t=xt(this.inputLength);if(t.length!==e.length-1)throw new V(`"inputLength" is ${this.inputLength}, but received input shape has shape ${e}`);{let n=0;for(let a=0;a{this.invokeCallHook(e,t);let n=Ne(e);n.dtype!=="int32"&&(n=lr(n,"int32"));let a=yN(this.embeddings.read(),W(n,[n.size]));return W(a,Je(this.computeOutputShape(n.shape)))})}getConfig(){let e={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Ct(this.embeddingsInitializer),embeddingsRegularizer:ct(this.embeddingsRegularizer),activityRegularizer:ct(this.activityRegularizer),embeddingsConstraint:Xt(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},t=super.getConfig();return Object.assign(e,t),e}};Jw.className="Embedding";ne.registerClass(Jw);var To=class extends Ve{constructor(e){super(e||{}),this.supportsMasking=!0}mergeFunction(e){throw new Me}computeElementwiseOpOutputShape(e,t){if(e==null||t==null)return null;if(e.length1)throw new V(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(e)}.`);let n=e[0]==null?null:e[0].slice(1);for(let r=1;rr.length);e.indexOf(null)===-1&&os(a).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(e,t){return P(()=>{if(e=e,this.reshapeRequired){let n=[],a=e.map(r=>r.rank);if(a.indexOf(null)===-1){let r=ds(a);for(let s of e){let i=s.rank;for(let o=0;o1){let u=ja(1,l).concat([0]);n.push(_e(o,u)),r=!0}else n.push(o)}let s=this.mergeFunction(n),i=s.rank;if(r){if(i==null){let o=s.shape,l=o.length,u=o[l-1],p=[u].concat(o.slice(0,o.length-1));s=W(_e(W(s,[-1,u]),[1,0]),p)}else if(i>1){let o=[i-1].concat(ja(0,i-1));s=_e(s,o)}}return s}}else return this.mergeFunction(e)})}computeOutputShape(e){e=e;let t;e[0]==null?t=null:t=e[0].slice(1);for(let a=1;a{if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an Array");if(!Array.isArray(e))throw new V("`inputs` should be an Array");if(t.length!==e.length)throw new V(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${e.length} vs ${t.length})`);if(t.every(a=>a==null))return null;t=t.map(a=>a==null?a:Qt(a,0));let n=t[0];for(let a=1;a{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0].clone();for(let n=1;n{let t=e[0];for(let n=1;n{let t=e[0];for(let n=1;n1)throw new V("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(e))}mergeFunction(e){return P(()=>sw(e,this.axis))}computeOutputShape(e){if(!(Array.isArray(e)&&Array.isArray(e[0])))throw new V("A `Concatenate` layer should be called on a list of inputs.");let t=e,n=t[0].slice(),a=this.axis<0?n.length+this.axis:this.axis;for(let r of t.slice(1)){if(n[a]==null||r[a]==null){n[a]=null;break}n[a]+=r[a]}return n}computeMask(e,t){if(t==null)return null;if(!Array.isArray(t))throw new V("`mask` should be an array for Concatenate");if(!Array.isArray(e))throw new V("`inputs` should be an array for Concatenate");if(t.length!==e.length)throw new V(`Mismatch in the length of mask (${t.length}) and the legnth of inputs (${e.length})`);return P(()=>{let n=!0;if(t.forEach(s=>{if(s!=null){n=!1;return}}),n)return null;let a=[];for(let s=0;s3||t.shape.length>3)throw new Me("batchDot is not implemented for tensors of 4D or higher rank yet");if(v.assert(e.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${e.shape.length}`),v.assert(e.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof n=="number"&&(n=[n,n]),e.dtype==="complex64"||t.dtype==="complex64")throw new Me("batchDot is not implemented for complex64-type Tensors yet.");let a=e.shape.length,r=t.shape.length;n==null&&(n=[a-1,r-2]);let s=n;return P(()=>{let i;if(a>r){i=a-r;let l=[];for(let u=0;ua){i=r-a;let l=[];for(let u=0;u0){let l;a>r?l=a+r-3:l=a-1;let u=[];for(let p=l;p"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0],n=e[1];if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);if(t[a[0]]!==n[a[1]])throw new V(`Dimension incompatibility: ${t[a[0]]} !== ${n[a[1]]}`)}mergeFunction(e){if(e.length!==2)throw new V(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${e.length} input(s).`);let t=e[0],n=e[1],a;return Array.isArray(this.axes)?a=this.axes.map((r,s)=>Fp(r,e[s].shape.length)):a=[Fp(this.axes,t.shape.length),Fp(this.axes,n.shape.length)],this.normalize&&(t=Hh(t,a[0]),n=Hh(n,a[1])),UU(t,n,a)}interpretAxes(e,t){let n;return Array.isArray(this.axes)?n=this.axes:n=[Fp(this.axes,e.length),Fp(this.axes,t.length)],n}computeOutputShape(e){v.assert(Array.isArray(e)&&e.length===2&&Array.isArray(e[0])&&Array.isArray(e[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let t=e[0].slice(),n=e[1].slice();if(t.length>3||n.length>3)throw new Me("Dot layer does not support tensors of 4D or higher rank yet.");let a=this.interpretAxes(t,n);t.splice(a[0],1),n.splice(a[1],1),n.splice(0,1);let r=t.concat(n);return r.length===1&&r.push(1),r}computeMask(e,t){return null}getConfig(){let e={axes:this.axes,normalize:this.normalize},t=super.getConfig();return Object.assign(e,t),e}};s0.className="Dot";ne.registerClass(s0);var i0=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.stddev=e.stddev}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={stddev:this.stddev};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return Jc(()=>Y(Af(n.shape,0,this.stddev),n),()=>n,t.training||!1)})}};i0.className="GaussianNoise";ne.registerClass(i0);var o0=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{this.invokeCallHook(e,t);let n=Ne(e);return this.rate>0&&this.rate<1?Jc(()=>{let a=Math.sqrt(this.rate/(1-this.rate));return z(n,Af(n.shape,1,a))},()=>n,t.training||!1):n})}};o0.className="GaussianDropout";ne.registerClass(o0);var l0=class extends Ve{constructor(e){super(e),this.supportsMasking=!0,this.rate=e.rate,this.noiseShape=e.noiseShape}_getNoiseShape(e){return this.noiseShape||Ne(e).shape}computeOutputShape(e){return e}getConfig(){let e=super.getConfig(),t={rate:this.rate};return Object.assign(t,e),t}call(e,t){return P(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(e);return Jc(()=>{let a=Ne(e),r=1.6732632423543772,s=1.0507009873554805,i=-r*s,o=Rr(Gu(n),this.rate);o=lr(o,"float32");let l=((1-this.rate)*(1+this.rate*i**2))**-.5,u=-l*i*this.rate,p=Y(z(a,o),z(Y(o,-1),i));return Y(z(p,l),u)},()=>Ne(e),t.training||!1)}return e})}};l0.className="AlphaDropout";ne.registerClass(l0);function rc(e,t,n,a,r,s=.001){let i;if(e.rank===2)i=lv(e,t,n,a,r,s);else if(e.rank===3)i=uv(e,t,n,a,r,s);else if(e.rank===4)i=pv(e,t,n,a,r,s);else throw new Me(`batchNormalization is not implemented for array of rank ${e.rank} yet`);return i}function GU(e,t,n,a,r=.001){return P(()=>{let s=Vc(e,a),i=s.mean,o=s.variance;return[rc(e,i,o,n,t,r),i,o]})}function HU(e,t,n,a,r=.001){return P(()=>{let s=Vc(e,a),i=s.mean,o=s.variance,l=[];for(let h of ja(0,e.rank))a.indexOf(h)!==-1?l.push(1):l.push(e.shape[h]);let u=W(i,l),p=W(o,l),d=t==null?null:W(t,l),c=n==null?null:W(n,l);return[rc(e,u,p,c,d,r),i,o]})}function jU(e,t,n,a,r=.001){return v.arraysEqual(a.slice().sort(),ja(0,e.rank-1))?GU(e,t,n,a,r):HU(e,t,n,a,r)}var u0=class extends Ve{constructor(e){e==null&&(e={}),super(e),this.supportsMasking=!0,this.axis=e.axis==null?-1:e.axis,this.momentum=e.momentum==null?.99:e.momentum,this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.movingMeanInitializer=St(e.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=St(e.movingVarianceInitializer||"ones"),this.betaConstraint=Yt(e.betaConstraint),this.gammaConstraint=Yt(e.gammaConstraint),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer)}build(e){e=Je(e);let t=this.axis>=0?this.axis:this.axis+e.length,n=e[t];if(n==null)throw new V(`Axis ${t} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(e)}.`);this.inputSpec=[new zt({ndim:e.length,axes:{[t]:n}})];let a=[n];this.scale&&(this.gamma=this.addWeight("gamma",a,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",a,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",a,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",a,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(e,t){return P(()=>{let n=t.training==null?!1:t.training,a=Ne(e),r=a.shape,s=r.length,i=ja(0,s),o=this.axis>=0?this.axis:this.axis+s;i.splice(o,1);let l=di(1,s);l[o]=r[o];let u=i.slice();u.sort();let p=!v.arraysEqual(u,ja(0,s).slice(0,s-1)),d=()=>{if(p){let g=W(this.movingMean.read(),l),y=W(this.movingVariance.read(),l),b=this.center?W(this.beta.read(),l):null,x=this.scale?W(this.gamma.read(),l):null;return rc(a,g,y,b,x,this.epsilon)}else return rc(a,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return d();let[c,h,m]=jU(a,this.gamma.read(),this.beta.read(),i,this.epsilon),f=(g,y,b)=>{P(()=>{let x=1-b,w=g.read(),I=z(pe(w,y),x);g.write(pe(w,I))})};return f(this.movingMean,h,this.momentum),f(this.movingVariance,m,this.momentum),c})}getConfig(){let e={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Ct(this.betaInitializer),gammaInitializer:Ct(this.gammaInitializer),movingMeanInitializer:Ct(this.movingMeanInitializer),movingVarianceInitializer:Ct(this.movingVarianceInitializer),betaRegularizer:ct(this.betaRegularizer),gammaRegularizer:ct(this.gammaRegularizer),betaConstraint:Xt(this.betaConstraint),gammaConstraint:Xt(this.gammaConstraint)},t=super.getConfig();return Object.assign(e,t),e}};u0.className="BatchNormalization";ne.registerClass(u0);var p0=class extends Ve{constructor(e){if(e==null&&(e={}),super(e),this.axis=e.axis==null?-1:e.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let t of this.axis)if(!Number.isInteger(t))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=e.epsilon==null?.001:e.epsilon,this.center=e.center==null?!0:e.center,this.scale=e.scale==null?!0:e.scale,this.betaInitializer=St(e.betaInitializer||"zeros"),this.gammaInitializer=St(e.gammaInitializer||"ones"),this.betaRegularizer=Tt(e.betaRegularizer),this.gammaRegularizer=Tt(e.gammaRegularizer),this.supportsMasking=!0}build(e){e=Je(e);let t=e.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let r=0;r=t)throw new Error(`Invalid axis: ${r}`);if(this.axis.length!==os(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(r=>e[r]),a=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,a):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,a):this.beta=null,this.built=!0}call(e,t){let n=Ne(e),a=n.shape,r=a.length;return P(()=>{let{mean:s,variance:i}=Vc(n,this.axis,!0),o=di(1,r);for(let h of this.axis)o[h]=a[h];let l=h=>h!=null&&h.shape.length!==r?W(h,o):h,u=this.scale?l(this.gamma.read()):null,p=this.center?l(this.beta.read()):null,d=[],c=[];for(let h=0;h{if(e.rank!==4)throw new V(`temporalPadding expects input tensor to be 4-D, but received a ${e.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new V("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(n==null&&(n=qa()),n!=="channelsLast"&&n!=="channelsFirst")throw new V(`Unknown data format: ${n}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let a;return n==="channelsFirst"?a=[[0,0],[0,0],t[0],t[1]]:a=[[0,0],t[0],t[1],[0,0]],xa(e,a)})}var c0=class extends Ve{constructor(e){if(e==null&&(e={}),super(e),this.dataFormat=e.dataFormat==null?qa():e.dataFormat,e.padding==null)this.padding=[[1,1],[1,1]];else if(typeof e.padding=="number")this.padding=[[e.padding,e.padding],[e.padding,e.padding]];else{if(e.padding=e.padding,e.padding.length!==2)throw new V(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${e.padding.length} array.`);let t,n;if(typeof e.padding[0]=="number")t=[e.padding[0],e.padding[0]],n=[e.padding[1],e.padding[1]];else{if(e.padding=e.padding,e.padding[0].length!==2)throw new V(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${e.padding[0].length} array.`);if(t=e.padding[0],e.padding[1].length!==2)throw new V(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${e.padding[1].length} array.`);n=e.padding[1]}this.padding=[t,n]}this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t,n;return this.dataFormat==="channelsFirst"?(e[2]!=null&&e[2]>=0?t=e[2]+this.padding[0][0]+this.padding[0][1]:t=null,e[3]!=null&&e[3]>=0?n=e[3]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],e[1],t,n]):(e[1]!=null&&e[1]>=0?t=e[1]+this.padding[0][0]+this.padding[0][1]:t=null,e[2]!=null&&e[2]>=0?n=e[2]+this.padding[1][0]+this.padding[1][1]:n=null,[e[0],t,n,e[3]])}call(e,t){return P(()=>qU(Ne(e),this.padding,this.dataFormat))}getConfig(){let e={padding:this.padding,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}};c0.className="ZeroPadding2D";ne.registerClass(c0);function qf(e,t,n,a,r,s){return P(()=>{Rt(r),hN(s),va(a),n==null&&(n=[1,1]),a==null&&(a="valid"),r==null&&(r=qa()),s==null&&(s="max"),e=Fw(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Dt(e,t,n,o):i=ba(e,t,n,o),r==="channelsFirst"&&(i=_e(i,[0,3,1,2])),i})}function l2(e,t,n,a,r,s){return P(()=>{Rt(r),hN(s),va(a),n==null&&(n=[1,1,1]),a==null&&(a="valid"),r==null&&(r=qa()),s==null&&(s="max"),e=a2(e,r);let i,o=a==="same"?"same":"valid";return s==="max"?i=Mv(e,t,n,o):i=ov(e,t,n,o),r==="channelsFirst"&&(i=_e(i,[0,4,1,2,3])),i})}var u2=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=2),super(e),typeof e.poolSize=="number")this.poolSize=[e.poolSize];else if(Array.isArray(e.poolSize)&&e.poolSize.length===1&&typeof e.poolSize[0]=="number")this.poolSize=e.poolSize;else throw new V(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.poolSize)}`);if(en(this.poolSize,"poolSize"),e.strides==null)this.strides=this.poolSize;else if(typeof e.strides=="number")this.strides=[e.strides];else if(Array.isArray(e.strides)&&e.strides.length===1&&typeof e.strides[0]=="number")this.strides=e.strides;else throw new V(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(e.strides)}`);en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,va(this.padding),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){e=Je(e);let t=Ha(e[1],this.poolSize[0],this.padding,this.strides[0]);return[e[0],t,e[2]]}call(e,t){return P(()=>{this.invokeCallHook(e,t),e=Yc(Ne(e),2);let n=this.poolingFunction(Ne(e),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return As(n,[2])})}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides},t=super.getConfig();return Object.assign(e,t),e}},d0=class extends u2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),qf(e,t,n,a,r,"max")}};d0.className="MaxPooling1D";ne.registerClass(d0);var h0=class extends u2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),qf(e,t,n,a,r,"avg")}};h0.className="AveragePooling1D";ne.registerClass(h0);var p2=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==2)throw new V(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2];return t=Ha(t,this.poolSize[0],this.padding,this.strides[0]),n=Ha(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n]:[e[0],t,n,e[3]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},m0=class extends p2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),qf(e,t,n,a,r,"max")}};m0.className="MaxPooling2D";ne.registerClass(m0);var f0=class extends p2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),qf(e,t,n,a,r,"avg")}};f0.className="AveragePooling2D";ne.registerClass(f0);var c2=class extends Ve{constructor(e){if(e.poolSize==null&&(e.poolSize=[2,2,2]),super(e),this.poolSize=Array.isArray(e.poolSize)?e.poolSize:[e.poolSize,e.poolSize,e.poolSize],e.strides==null)this.strides=this.poolSize;else if(Array.isArray(e.strides)){if(e.strides.length!==3)throw new V(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${e.strides.length}.`);this.strides=e.strides}else this.strides=[e.strides,e.strides,e.strides];en(this.poolSize,"poolSize"),en(this.strides,"strides"),this.padding=e.padding==null?"valid":e.padding,this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),va(this.padding),this.inputSpec=[new zt({ndim:5})]}computeOutputShape(e){e=Je(e);let t=this.dataFormat==="channelsFirst"?e[2]:e[1],n=this.dataFormat==="channelsFirst"?e[3]:e[2],a=this.dataFormat==="channelsFirst"?e[4]:e[3];return t=Ha(t,this.poolSize[0],this.padding,this.strides[0]),n=Ha(n,this.poolSize[1],this.padding,this.strides[1]),a=Ha(a,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[e[0],e[1],t,n,a]:[e[0],t,n,a,e[4]]}call(e,t){return P(()=>(this.invokeCallHook(e,t),this.poolingFunction(Ne(e),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let e={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},g0=class extends c2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),l2(e,t,n,a,r,"max")}};g0.className="MaxPooling3D";ne.registerClass(g0);var y0=class extends c2{constructor(e){super(e)}poolingFunction(e,t,n,a,r){return Rt(r),va(a),l2(e,t,n,a,r,"avg")}};y0.className="AveragePooling3D";ne.registerClass(y0);var d2=class extends Ve{constructor(e){super(e),this.inputSpec=[new zt({ndim:3})]}computeOutputShape(e){return[e[0],e[2]]}call(e,t){throw new Me}},b0=class extends d2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return Nt(n,1)})}};b0.className="GlobalAveragePooling1D";ne.registerClass(b0);var x0=class extends d2{constructor(e){super(e||{})}call(e,t){return P(()=>{let n=Ne(e);return ma(n,1)})}};x0.className="GlobalMaxPooling1D";ne.registerClass(x0);var h2=class extends Ve{constructor(e){super(e),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Rt(this.dataFormat),this.inputSpec=[new zt({ndim:4})]}computeOutputShape(e){return e=e,this.dataFormat==="channelsLast"?[e[0],e[3]]:[e[0],e[1]]}call(e,t){throw new Me}getConfig(){let e={dataFormat:this.dataFormat},t=super.getConfig();return Object.assign(e,t),e}},v0=class extends h2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?Nt(n,[1,2]):Nt(n,[2,3])})}};v0.className="GlobalAveragePooling2D";ne.registerClass(v0);var w0=class extends h2{call(e,t){return P(()=>{let n=Ne(e);return this.dataFormat==="channelsLast"?ma(n,[1,2]):ma(n,[2,3])})}};w0.className="GlobalMaxPooling2D";ne.registerClass(w0);var m2=class extends Ve{constructor(e){super(e),this.layer=e.layer}build(e){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(e){this.layer!=null&&(this.layer.trainable=e)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(e){this.layer.setWeights(e)}getConfig(){let e={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},t=super.getConfig();return Object.assign(e,t),e}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(e)}static fromConfig(e,t,n={}){let a=t.layer,r=Ga(a,n);delete t.layer;let s={layer:r};return Object.assign(s,t),new e(s)}},k0=class extends m2{constructor(e){super(e),this.supportsMasking=!0}build(e){if(e=Je(e),e.length<3)throw new V(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(e)}`);this.inputSpec=[{shape:e}];let t=[e[0]].concat(e.slice(2));this.layer.built||(this.layer.build(t),this.layer.built=!0),super.build(e)}computeOutputShape(e){e=Je(e);let t=[e[0]].concat(e.slice(2)),n=this.layer.computeOutputShape(t),a=e[1];return[n[0],a].concat(n.slice(1))}call(e,t){return P(()=>(e=Ne(e),i2((n,a)=>[Ne(this.layer.call(n,t)),[]],e,[],!1,null,null,!1,!0)[1]))}};k0.className="TimeDistributed";ne.registerClass(k0);function KU(e){Io(J4,"BidirectionalMergeMode",e)}var XU="concat",I0=class extends m2{constructor(e){super(e);let t=e.layer.getConfig(),n={};n.className=e.layer.getClassName(),n.config=t,this.forwardLayer=Ga(n),t.goBackwards=t.goBackwards!==!0;let a={};if(a.className=e.layer.getClassName(),a.config=t,this.backwardLayer=Ga(a),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=e.mergeMode===void 0?XU:e.mergeMode,KU(this.mergeMode),e.weights)throw new Me("weights support is not implemented for Bidirectional layer yet.");this._stateful=e.layer.stateful,this.returnSequences=e.layer.returnSequences,this.returnState=e.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=e.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(e){this._trainable=e,this.forwardLayer!=null&&(this.forwardLayer.trainable=e),this.backwardLayer!=null&&(this.backwardLayer.trainable=e)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(e){let t=e.length,n=Math.floor(t/2);this.forwardLayer.setWeights(e.slice(0,n)),this.backwardLayer.setWeights(e.slice(n))}computeOutputShape(e){let t=this.forwardLayer.computeOutputShape(e);Array.isArray(t)&&Array.isArray(t[0])||(t=[t]),t=t;let n,a,r;return this.returnState&&(r=t.slice(1)),n=t[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,a=[n]):this.mergeMode==null?a=[n,n.slice()]:a=[n],this.returnState?this.mergeMode==null?a.concat(r).concat(r.slice()):[n].concat(r).concat(r.slice()):On(a)}apply(e,t){let n=t==null?null:t.initialState,a=t==null?null:t.constants;t==null&&(t={});let r=s2(e,n,a,this.numConstants);if(e=r.inputs,n=r.initialState,a=r.constants,Array.isArray(e)&&(n=e.slice(1),e=e[0]),(n==null||n.length===0)&&a==null)return super.apply(e,t);let s=[],i=[];if(n!=null){let l=n.length;if(l%2>0)throw new V("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");t.initialState=n,s.push(...n);let u=n.map(p=>new zt({shape:p.shape}));this.forwardLayer.stateSpec=u.slice(0,l/2),this.backwardLayer.stateSpec=u.slice(l/2),i.push(...u)}if(a!=null)throw new Me("Support for constants in Bidirectional layers is not implemented yet.");let o=s[0]instanceof Va;for(let l of s)if(l instanceof Va!==o)throw new V("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(o){let l=[e].concat(s),u=this.inputSpec.concat(i),p=this.inputSpec;this.inputSpec=u;let d=super.apply(l,t);return this.inputSpec=p,d}else return super.apply(e,t)}call(e,t){return P(()=>{let n=t.initialState,a,r;if(n==null)a=this.forwardLayer.call(e,t),r=this.backwardLayer.call(e,t);else{let o=n.slice(0,n.length/2),l=n.slice(n.length/2);a=this.forwardLayer.call(e,Object.assign(t,{initialState:o})),r=this.backwardLayer.call(e,Object.assign(t,{initialState:l}))}let s;this.returnState&&(Array.isArray(a)&&(s=a.slice(1).concat(r.slice(1))),a=a[0],r=r[0]),this.returnSequences&&(r=ya(r,1));let i;return this.mergeMode==="concat"?i=sw([a,r]):this.mergeMode==="sum"?i=Y(a,r):this.mergeMode==="ave"?i=z(.5,Y(a,r)):this.mergeMode==="mul"?i=z(a,r):this.mergeMode==null&&(i=[a,r]),this.returnState?this.mergeMode==null?i.concat(s):[i].concat(s):i})}resetStates(e){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(e){Qs(this.forwardLayer.name,()=>{this.forwardLayer.build(e)}),Qs(this.backwardLayer.name,()=>{this.backwardLayer.build(e)}),this.built=!0}computeMask(e,t){Array.isArray(t)&&(t=t[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[t,t]:n=t:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let a=this.forwardLayer.states.map(r=>null);return Array.isArray(n)?n.concat(a).concat(a):[n].concat(a).concat(a)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(e){super.setFastWeightInitDuringBuild(e),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(e),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(e)}getConfig(){let e={mergeMode:this.mergeMode},t=super.getConfig();return Object.assign(e,t),e}static fromConfig(e,t){let n=Ga(t.layer);if(delete t.layer,t.numConstants!=null)throw new Me("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let a=t;return a.layer=n,new e(a)}};I0.className="Bidirectional";ne.registerClass(I0);var S0=class extends Ve{constructor(e){super(e),this.scale=e.scale,e.offset?this.offset=e.offset:this.offset=0}getConfig(){let e={scale:this.scale,offset:this.offset},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>(e=Ne(e),e.dtype!=="float32"&&(e=lr(e,"float32")),Y(z(e,this.scale),this.offset)))}};S0.className="Rescaling";ne.registerClass(S0);var{resizeBilinear:YU,cropAndResize:ZU}=$a,T0=class extends Ve{constructor(e){super(e),this.height=e.height,this.width=e.width}centerCrop(e,t,n,a,r,s,i,o){return P(()=>{let l,u=!1,p=t/s,d=n/i,c=(a+t)/s,h=(r+n)/i,m=[p,d,c,h],f=[];e.rank===3?(u=!0,l=$t([e])):l=e;for(let x=0;x{let r=YU(e,[t,n]);return lr(r,a)})}call(e,t){return P(()=>{let n=Ne(e),a=n.dtype,r=n.shape,s=r[r.length-3],i=r[r.length-2],o=0;s!==this.height&&(o=Math.floor((s-this.height)/2));let l=0;return i!==this.width&&(l=Math.floor((i-this.width)/2),l===0&&(l=1)),o>=0&&l>=0?this.centerCrop(n,o,l,this.height,this.width,s,i,a):this.upsize(e,this.height,this.width,a)})}getConfig(){let e={height:this.height,width:this.width},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){e=Je(e);let t=e.length-3,n=e.length-2;return e[t]=this.height,e[n]=this.width,e}};T0.className="CenterCrop";ne.registerClass(T0);function JU(e,t,n,a){let r=Ne(e);if(r.dtype!=="int32"&&(r=lr(r,"int32")),t==="int")return r;let s=r.shape;if(r.rank===0&&(r=Qt(r,-1)),t==="oneHot"&&r.shape[r.shape.length-1]!==1&&(r=Qt(r,-1)),r.rank>2)throw new V(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${r.rank}.`);let i=["multiHot","oneHot"].includes(t),o=r,l;if(typeof a!="undefined"&&t==="count"?l=Wh(o,a,n,i):l=Wh(o,[],n,i),t!=="tfIdf")return l;if(a)return z(l,a);throw new V("When outputMode is 'tfIdf', weights must be provided.")}var N0=class extends Ve{constructor(e){super(e),this.numTokens=e.numTokens,e.outputMode?this.outputMode=e.outputMode:this.outputMode="multiHot"}getConfig(){let e={numTokens:this.numTokens,outputMode:this.outputMode},t=super.getConfig();return Object.assign(e,t),e}computeOutputShape(e){return e=Je(e),e==null?[this.numTokens]:this.outputMode==="oneHot"&&e[e.length-1]!==1?(e.push(this.numTokens),e):(e[e.length-1]=this.numTokens,e)}call(e,t){return P(()=>{e=Ne(e),e.dtype!=="int32"&&(e=lr(e,"int32"));let n;if(typeof t.countWeights!="undefined"){if(this.outputMode!=="count")throw new V(`countWeights is not used when outputMode !== count. + Received countWeights=${t.countWeights}`);n=Ne(t.countWeights)}let a=ma(e),r=kl(e),s=Cn(this.numTokens,a).bufferSync().get(0),i=Rr(r,0).bufferSync().get(0);if(!(s&&i))throw new V(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return JU(e,this.outputMode,this.numTokens,n)})}};N0.className="CategoryEncoding";ne.registerClass(N0);var QU=["bilinear","nearest"],Yk=new Set(QU),C0=class extends Ve{constructor(e){if(super(e),this.height=e.height,this.width=e.width,e.interpolation)if(Yk.has(e.interpolation))this.interpolation=e.interpolation;else throw new V(`Invalid interpolation parameter: ${e.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(e.cropToAspectRatio)}computeOutputShape(e){e=Je(e);let t=e[2];return[this.height,this.width,t]}getConfig(){let e={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},t=super.getConfig();return Object.assign(e,t),e}call(e,t){return P(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return $a.resizeBilinear(e,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return $a.resizeNearestNeighbor(e,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...Yk]} are supported`)})}};C0.className="Resizing";ne.registerClass(C0);function eG(e){return new ju(e)}function tG(e){return new _w(e)}function nG(e){return new Nw(e)}function aG(e){return new Cw(e)}function rG(e){return new Ew(e)}function sG(e){return new $w(e)}function iG(e){return new Aw(e)}function oG(e){return new Bf(e)}function lG(e){return new nd(e)}function uG(e){return new Rw(e)}function pG(e){return new ad(e)}function cG(e){return new Mw(e)}function dG(e){return new Pw(e)}function hG(e){return new Ow(e)}function mG(e){return new Lw(e)}function fG(e){return new zw(e)}function gG(e){return new qw(e)}function yG(e){return new Hw(e)}function bG(e){return new jf(e)}function xG(e){return new Gw(e)}function vG(e){return new jw(e)}function wG(e){return new Kw(e)}function kG(e){return new Xw(e)}function IG(e){return new Yw(e)}function SG(e){return new Jw(e)}function TG(e){return new Qw(e)}function NG(e){return new t0(e)}function CG(e){return new r0(e)}function EG(e){return new n0(e)}function _G(e){return new a0(e)}function AG(e){return new e0(e)}function $G(e){return new s0(e)}function FG(e){return new u0(e)}function DG(e){return new p0(e)}function RG(e){return new c0(e)}function E0(e){return new h0(e)}function MG(e){return E0(e)}function PG(e){return E0(e)}function _0(e){return new f0(e)}function OG(e){return _0(e)}function LG(e){return _0(e)}function A0(e){return new y0(e)}function zG(e){return A0(e)}function WG(e){return A0(e)}function BG(e){return new b0(e)}function VG(e){return new v0(e)}function f2(e){return new x0(e)}function g2(e){return new w0(e)}function y2(e){return new d0(e)}function b2(e){return new m0(e)}function UG(e){return new g0(e)}function GG(e){return new Bw(e)}function HG(e){return new Uf(e)}function jG(e){return new Vw(e)}function qG(e){return new sd(e)}function KG(e){return new Ww(e)}function XG(e){return new Vf(e)}function YG(e){return new Uw(e)}function ZG(e){return new Hf(e)}function JG(e){return new gr(e)}function QG(e){return new Gf(e)}function eH(e){return new I0(e)}function tH(e){return new k0(e)}var nH=f2,aH=g2,rH=y2,sH=b2;function iH(e){return new i0(e)}function oH(e){return new o0(e)}function lH(e){return new l0(e)}function uH(e){return new Zw(e)}function pH(e){return new S0(e)}function cH(e){return new T0(e)}function dH(e){return new C0(e)}function hH(e){return new N0(e)}var x2={};Ae(x2,{MAPE:()=>SH,MSE:()=>CH,binaryAccuracy:()=>mH,binaryCrossentropy:()=>fH,categoricalAccuracy:()=>yH,categoricalCrossentropy:()=>bH,cosineProximity:()=>wH,mape:()=>TH,meanAbsoluteError:()=>kH,meanAbsolutePercentageError:()=>IH,meanSquaredError:()=>NH,mse:()=>EH,precision:()=>xH,recall:()=>vH,sparseCategoricalAccuracy:()=>gH});function mH(e,t){return vw(e,t)}function fH(e,t){return DN(e,t)}function gH(e,t){return RN(e,t)}function yH(e,t){return ww(e,t)}function bH(e,t){return kw(e,t)}function xH(e,t){return FN(e,t)}function vH(e,t){return nU(e,t)}function wH(e,t){return xw(e,t)}function kH(e,t){return zf(e,t)}function IH(e,t){return qu(e,t)}function SH(e,t){return qu(e,t)}function TH(e,t){return qu(e,t)}function NH(e,t){return So(e,t)}function CH(e,t){return So(e,t)}function EH(e,t){return So(e,t)}var v2={};Ae(v2,{modelFromJSON:()=>AU});var w2={};Ae(w2,{l1:()=>AH,l1l2:()=>_H,l2:()=>$H});function _H(e){return new ed(e)}function AH(e){return OU(e)}function $H(e){return LU(e)}var k2=class extends Cl{constructor(){super(...arguments),this.model=null}setModel(e){if(!(e instanceof $r))throw new Error("model must be a LayersModel, not some other Container");this.model=e}};function dh(e,t){return et}var I2=class extends k2{constructor(e){if(super(),e==null&&(e={}),e.restoreBestWeights)throw new Me("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=e.monitor||"val_loss",this.minDelta=Math.abs(e.minDelta||0),this.patience=e.patience||0,this.verbose=e.verbose||0,this.mode=e.mode||"auto",this.baseline=e.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=dh:this.mode==="max"?this.monitorFunc=Zk:this.monitor.indexOf("acc")!==-1?this.monitorFunc=Zk:this.monitorFunc=dh,this.monitorFunc===dh&&(this.minDelta*=-1)}async onTrainBegin(e){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===dh?1/0:-1/0}async onEpochEnd(e,t){await Qr(t);let n=this.getMonitorValue(t);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=e,this.model.stopTraining=!0)))}async onTrainEnd(e){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(e){e==null&&(e={});let t=e[this.monitor];return t==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(e)}`),t}};function FH(e){return new I2(e)}var DH={earlyStopping:FH},RH=H();RH.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,e=>{e&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var Ca;(function(e){e[e.DT_INVALID=0]="DT_INVALID",e[e.DT_FLOAT=1]="DT_FLOAT",e[e.DT_DOUBLE=2]="DT_DOUBLE",e[e.DT_INT32=3]="DT_INT32",e[e.DT_UINT8=4]="DT_UINT8",e[e.DT_INT16=5]="DT_INT16",e[e.DT_INT8=6]="DT_INT8",e[e.DT_STRING=7]="DT_STRING",e[e.DT_COMPLEX64=8]="DT_COMPLEX64",e[e.DT_INT64=9]="DT_INT64",e[e.DT_BOOL=10]="DT_BOOL",e[e.DT_QINT8=11]="DT_QINT8",e[e.DT_QUINT8=12]="DT_QUINT8",e[e.DT_QINT32=13]="DT_QINT32",e[e.DT_BFLOAT16=14]="DT_BFLOAT16",e[e.DT_QINT16=15]="DT_QINT16",e[e.DT_QUINT16=16]="DT_QUINT16",e[e.DT_UINT16=17]="DT_UINT16",e[e.DT_COMPLEX128=18]="DT_COMPLEX128",e[e.DT_HALF=19]="DT_HALF",e[e.DT_RESOURCE=20]="DT_RESOURCE",e[e.DT_VARIANT=21]="DT_VARIANT",e[e.DT_UINT32=22]="DT_UINT32",e[e.DT_UINT64=23]="DT_UINT64",e[e.DT_FLOAT_REF=101]="DT_FLOAT_REF",e[e.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",e[e.DT_INT32_REF=103]="DT_INT32_REF",e[e.DT_UINT8_REF=104]="DT_UINT8_REF",e[e.DT_INT16_REF=105]="DT_INT16_REF",e[e.DT_INT8_REF=106]="DT_INT8_REF",e[e.DT_STRING_REF=107]="DT_STRING_REF",e[e.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",e[e.DT_INT64_REF=109]="DT_INT64_REF",e[e.DT_BOOL_REF=110]="DT_BOOL_REF",e[e.DT_QINT8_REF=111]="DT_QINT8_REF",e[e.DT_QUINT8_REF=112]="DT_QUINT8_REF",e[e.DT_QINT32_REF=113]="DT_QINT32_REF",e[e.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",e[e.DT_QINT16_REF=115]="DT_QINT16_REF",e[e.DT_QUINT16_REF=116]="DT_QUINT16_REF",e[e.DT_UINT16_REF=117]="DT_UINT16_REF",e[e.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",e[e.DT_HALF_REF=119]="DT_HALF_REF",e[e.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",e[e.DT_VARIANT_REF=121]="DT_VARIANT_REF",e[e.DT_UINT32_REF=122]="DT_UINT32_REF",e[e.DT_UINT64_REF=123]="DT_UINT64_REF"})(Ca||(Ca={}));var Jk;(function(e){let t;(function(n){n[n.LEGACY=0]="LEGACY",n[n.V1=1]="V1",n[n.V2=2]="V2"})(t=e.CheckpointFormatVersion||(e.CheckpointFormatVersion={}))})(Jk||(Jk={}));var $0={};function MH(e,t){let n={tfOpName:e,category:"custom",inputs:[],attrs:[],customExecutor:t};$0[e]=n}function S2(e){return $0[e]}function PH(e){delete $0[e]}function k(e,t,n,a,r){let s=t.inputParams[e];if(s&&s.inputIndexStart!==void 0){let o=s.inputIndexStart,l=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?o+1:s.inputIndexEnd;if(s.type==="tensor")return kn(t.inputNames[s.inputIndexStart],n,a,r);if(s.type==="tensors")return t.inputNames.slice(o,l).map(d=>kn(d,n,a,r));let u=kn(t.inputNames.slice(o)[0],n,a,r),p=u.dataSync();return s.type==="number"?p[0]:v.toNestedArray(u.shape,p)}let i=t.attrParams[e];return i&&i.value}function kn(e,t,n,a){let[r,s]=Yn(e);if(a!=null){let o=a.getHashTableHandleByName(r);if(o!=null)return o}let i=n.currentContextIds.find(o=>!!t[Yh(r,o)]);return i!==void 0?t[Yh(r,i)][s]:void 0}function OH(e,t,n){return t[Yh(e,n.currentContextId)]}function Cr(e,t){let[n,a,r]=Yn(e);return[Yh(n,t&&t.currentContextId),a,r]}function Yh(e,t){return t?`${e}-${t}`:e}function Yn(e){let t=e.split(":");if(t.length===1)return[e,0,void 0];let n=t[0],a=t.length===3?t[1]:void 0,r=Number(t[t.length-1]);return[n,r,a]}function wh(e,t,n){let a=k("pad",e,t,n);if(a==="explicit"){a=k("explicitPaddings",e,t,n);let r=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)r[s][0]=a[s*2],r[s][1]=a[s*2+1];return r}return a}function Er(e){return e.kept?e:or(e)}var T2={};Ae(T2,{json:()=>LH});var LH=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],N2={};Ae(N2,{json:()=>zH});var zH=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],C2={};Ae(C2,{json:()=>WH});var WH=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}],E2={};Ae(E2,{json:()=>BH});var BH=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}],_2={};Ae(_2,{json:()=>VH});var VH=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}],A2={};Ae(A2,{json:()=>UH});var UH=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],$2={};Ae($2,{json:()=>GH});var GH=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}],F2={};Ae(F2,{json:()=>HH});var HH=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}],D2={};Ae(D2,{json:()=>jH});var jH=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}],R2={};Ae(R2,{json:()=>qH});var qH=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}],M2={};Ae(M2,{json:()=>KH});var KH=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}],P2={};Ae(P2,{json:()=>XH});var XH=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}],O2={};Ae(O2,{json:()=>YH});var YH=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}],L2={};Ae(L2,{json:()=>ZH});var ZH=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}],z2={};Ae(z2,{json:()=>JH});var JH=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}],W2={};Ae(W2,{json:()=>QH});var QH=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}],B2={};Ae(B2,{json:()=>e6});var e6=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}],V2={};Ae(V2,{json:()=>t6});var t6=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}],U2={};Ae(U2,{json:()=>n6});var n6=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}],Qk=class{constructor(){let e=[T2,N2,C2,E2,_2,A2,$2,F2,D2,R2,M2,P2,O2,L2,z2,W2,B2,V2,U2],t=[].concat(...e.map(n=>n.json));this.opMappers=t.reduce((n,a)=>(n[a.tfOpName]=a,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(e,t={}){let n=e.node,a=[],r=[],s=[],i=n.reduce((m,f)=>(m[f.name]=this.mapNode(f),f.op.startsWith("Placeholder")?a.push(m[f.name]):f.op==="Const"?r.push(m[f.name]):(f.input==null||f.input.length===0)&&s.push(m[f.name]),m),{}),o=[],l=[],u={},p={};t!=null&&(u=this.mapSignatureEntries(t.inputs),p=this.mapSignatureEntries(t.outputs));let d=Object.keys(i);d.forEach(m=>{let f=i[m];f.inputNames.forEach((g,y)=>{let[b,,x]=Cr(g),w=i[b];if(w.outputs!=null){let I=w.outputs.indexOf(x);if(I!==-1){let T=`${b}:${I}`;f.inputNames[y]=T}}f.inputs.push(w),w.children.push(f)})}),Object.keys(p).length===0?d.forEach(m=>{let f=i[m];f.children.length===0&&l.push(f)}):Object.keys(p).forEach(m=>{let[f]=Cr(m),g=i[f];g!=null&&(g.signatureKey=p[m],l.push(g))}),Object.keys(u).length>0?Object.keys(u).forEach(m=>{let[f]=Cr(m),g=i[f];g&&(g.signatureKey=u[m],o.push(g))}):o=a;let c={};e.library!=null&&e.library.function!=null&&(c=e.library.function.reduce((m,f)=>(m[f.signature.name]=this.mapFunction(f),m),{}));let h={nodes:i,inputs:o,outputs:l,weights:r,placeholders:a,signature:t,functions:c};return s.length>0&&(h.initNodes=s),h}mapSignatureEntries(e){return Object.keys(e||{}).reduce((t,n)=>(t[e[n].name]=n,t),{})}mapNode(e){let t=S2(e.op)||this.opMappers[e.op]||{};e.attr==null&&(e.attr={});let n={name:e.name,op:e.op,category:t.category,inputNames:(e.input||[]).map(a=>a.startsWith("^")?a.slice(1):a),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:e.attr,outputs:t.outputs};return t.inputs!=null&&(n.inputParams=t.inputs.reduce((a,r)=>(a[r.name]={type:r.type,inputIndexStart:r.start,inputIndexEnd:r.end},a),{})),t.attrs!=null&&(n.attrParams=t.attrs.reduce((a,r)=>{let s=r.type,i;switch(r.type){case"string":i=ax(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ax(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"string[]":i=px(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=px(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number":i=sx(e.attr,r.tfName,r.defaultValue||0),i===void 0&&!!r.tfDeprecatedName&&(i=sx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"number[]":i=ux(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ux(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool":i=rx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=rx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"bool[]":i=dx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=dx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape":i=lx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=lx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"shape[]":i=cx(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=cx(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype":i=ix(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ix(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"dtype[]":i=ox(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=ox(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"func":i=eI(e.attr,r.tfName,r.defaultValue),i===void 0&&!!r.tfDeprecatedName&&(i=eI(e.attr,r.tfDeprecatedName,r.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${r.type} for op: ${e.op}`)}return a[r.name]={value:i,type:s},a},{})),n}mapFunction(e){let t=e.nodeDef,n=[],a=[],r={};t!=null&&(r=t.reduce((u,p)=>(u[p.name]=this.mapNode(p),p.op==="Const"&&a.push(u[p.name]),u),{}));let s=[],i=[];e.signature.inputArg.forEach(u=>{let[p]=Cr(u.name),d={name:p,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:F0(u.type),type:"dtype"}},children:[]};d.signatureKey=u.name,s.push(d),r[p]=d}),Object.keys(r).forEach(u=>{let p=r[u];p.inputNames.forEach((d,c)=>{let[h,,m]=Cr(d),f=r[h];if(f.outputs!=null){let g=f.outputs.indexOf(m);if(g!==-1){let y=`${h}:${g}`;p.inputNames[c]=y}}p.inputs.push(f),f.children.push(p)})});let o=e.ret;e.signature.outputArg.forEach(u=>{let[p,d]=Cr(o[u.name]),c=r[p];c!=null&&(c.defaultOutput=d,i.push(c))});let l=this.mapArgsToSignature(e);return{nodes:r,inputs:s,outputs:i,weights:a,placeholders:n,signature:l}}mapArgsToSignature(e){return{methodName:e.signature.name,inputs:e.signature.inputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n),t),{}),outputs:e.signature.outputArg.reduce((t,n)=>(t[n.name]=this.mapArgToTensorInfo(n,e.ret),t),{})}}mapArgToTensorInfo(e,t){let n=e.name;return t!=null&&(n=t[n]),{name:n,dtype:e.type}}};function a6(e){let t=H().global;if(typeof t.atob!="undefined")return t.atob(e);if(typeof Buffer!="undefined")return new Buffer(e,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function G2(e,t){let n=Array.isArray(e)?String.fromCharCode.apply(null,e):a6(e);return t?n:n.toLowerCase()}function ax(e,t,n,a=!1){let r=e[t];return r!=null?G2(r.s,a):n}function rx(e,t,n){let a=e[t];return a?a.b:n}function sx(e,t,n){let a=e[t]||{},r=a.i!=null?a.i:a.f!=null?a.f:n;return typeof r=="number"?r:parseInt(r,10)}function F0(e){switch(typeof e=="string"&&(e=Ca[e]),e){case Ca.DT_FLOAT:case Ca.DT_HALF:return"float32";case Ca.DT_INT32:case Ca.DT_INT64:case Ca.DT_INT8:case Ca.DT_UINT8:return"int32";case Ca.DT_BOOL:return"bool";case Ca.DT_DOUBLE:return"float32";case Ca.DT_STRING:return"string";default:return null}}function eI(e,t,n){let a=e[t];return a&&a.func?a.func.name:n}function ix(e,t,n){let a=e[t];return a&&a.type?F0(a.type):n}function ox(e,t,n){let a=e[t];return a&&a.list&&a.list.type?a.list.type.map(r=>F0(r)):n}function H2(e){if(!e.unknownRank)return e.dim!=null?e.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function lx(e,t,n){let a=e[t];return a&&a.shape?H2(a.shape):n}function ux(e,t,n){let a=e[t];return a?((a.list.f&&a.list.f.length?a.list.f:a.list.i)||[]).map(r=>typeof r=="number"?r:parseInt(r,10)):n}function px(e,t,n,a=!1){let r=e[t];return r&&r.list&&r.list.s?r.list.s.map(s=>G2(s,a)):n}function cx(e,t,n){let a=e[t];return a&&a.list&&a.list.shape?a.list.shape.map(r=>H2(r)):n}function dx(e,t,n){let a=e[t];return a&&a.list&&a.list.b?a.list.b:n}var r6=class{constructor(e,t,n){this.node=e,this.tensorMap=t,this.context=n,this.inputs=[],this.attrs={},this.inputs=e.inputNames.map(a=>this.getInput(a)),e.rawAttrs!=null&&(this.attrs=Object.keys(e.rawAttrs).reduce((a,r)=>(a[r]=this.getAttr(r),a),{}))}getInput(e){return kn(e,this.tensorMap,this.context)}getAttr(e,t){let n=this.node.rawAttrs[e];if(n.tensor!=null)return kn(e,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return sx(this.node.rawAttrs,e,t);if(n.s!=null)return ax(this.node.rawAttrs,e,t);if(n.b!=null)return rx(this.node.rawAttrs,e,t);if(n.shape!=null)return lx(this.node.rawAttrs,e,t);if(n.type!=null)return ix(this.node.rawAttrs,e,t);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return ux(this.node.rawAttrs,e,t);if(n.list.s!=null)return px(this.node.rawAttrs,e,t);if(n.list.shape!=null)return cx(this.node.rawAttrs,e,t);if(n.list.b!=null)return dx(this.node.rawAttrs,e,t);if(n.list.type!=null)return ox(this.node.rawAttrs,e,t)}return t}},an={};Ae(an,{OP_SCOPE_SUFFIX:()=>Lx,abs:()=>Lt,acos:()=>Jx,acosh:()=>Qx,add:()=>Y,addN:()=>ZS,all:()=>qm,any:()=>ec,argMax:()=>oi,argMin:()=>ev,asin:()=>tv,asinh:()=>nv,atan:()=>av,atan2:()=>rv,atanh:()=>sv,avgPool:()=>ba,avgPool3d:()=>ov,basicLSTMCell:()=>tT,batchNorm:()=>Ns,batchNorm2d:()=>lv,batchNorm3d:()=>uv,batchNorm4d:()=>pv,batchToSpaceND:()=>Oc,bincount:()=>cv,booleanMaskAsync:()=>OT,broadcastArgs:()=>nT,broadcastTo:()=>Js,buffer:()=>Oe,cast:()=>le,ceil:()=>dv,clipByValue:()=>tn,clone:()=>or,complex:()=>Fr,concat:()=>Ze,concat1d:()=>hv,concat2d:()=>mv,concat3d:()=>fv,concat4d:()=>gv,conv1d:()=>Km,conv2d:()=>Ft,conv2dTranspose:()=>Xm,conv3d:()=>bv,conv3dTranspose:()=>xv,cos:()=>Lc,cosh:()=>Ym,cosineWindow:()=>bf,cumprod:()=>tc,cumsum:()=>Zm,denseBincount:()=>Wh,depthToSpace:()=>vv,depthwiseConv2d:()=>Cs,diag:()=>rT,dilation2d:()=>wv,div:()=>me,divNoNan:()=>kv,dot:()=>Iv,dropout:()=>Yv,einsum:()=>sT,elu:()=>zu,enclosingPowerOfTwo:()=>Zv,equal:()=>Qn,erf:()=>Sv,euclideanNorm:()=>Cv,exp:()=>gn,expandDims:()=>Qt,expm1:()=>Ev,eye:()=>Jm,fft:()=>jc,fill:()=>yn,floor:()=>Bu,floorDiv:()=>jm,fused:()=>Tl,gather:()=>Vu,gatherND:()=>BT,greater:()=>Cn,greaterEqual:()=>Rr,ifft:()=>Sl,imag:()=>Rc,image:()=>$a,inTopKAsync:()=>VT,irfft:()=>mf,isFinite:()=>_v,isInf:()=>Av,isNaN:()=>$v,leakyRelu:()=>zc,less:()=>Qm,lessEqual:()=>Es,linalg:()=>ew,linspace:()=>pT,localResponseNormalization:()=>Fv,log:()=>ea,log1p:()=>Wc,logSigmoid:()=>Dv,logSoftmax:()=>tf,logSumExp:()=>nf,logicalAnd:()=>Da,logicalNot:()=>Bc,logicalOr:()=>af,logicalXor:()=>Rv,losses:()=>eN,lowerBound:()=>dT,matMul:()=>Fe,max:()=>ma,maxPool:()=>Dt,maxPool3d:()=>Mv,maxPoolWithArgmax:()=>hT,maximum:()=>mr,mean:()=>Nt,meshgrid:()=>mT,min:()=>kl,minimum:()=>Uu,mirrorPad:()=>Pv,mod:()=>Ov,moments:()=>Vc,movingAverage:()=>LT,mul:()=>z,multiRNNCell:()=>fT,multinomial:()=>gT,neg:()=>vt,norm:()=>Wu,notEqual:()=>pi,oneHot:()=>vl,ones:()=>Jn,onesLike:()=>ta,op:()=>L,outerProduct:()=>yT,pad:()=>xa,pad1d:()=>bT,pad2d:()=>xT,pad3d:()=>vT,pad4d:()=>wT,pool:()=>Lv,pow:()=>Dr,prelu:()=>Gc,print:()=>Vx,prod:()=>zv,raggedGather:()=>kT,raggedRange:()=>IT,raggedTensorToTensor:()=>ST,rand:()=>TT,randomGamma:()=>NT,randomNormal:()=>sf,randomStandardNormal:()=>CT,randomUniform:()=>Gu,range:()=>ci,real:()=>wl,reciprocal:()=>Vv,relu:()=>Xe,relu6:()=>of,reshape:()=>W,reverse:()=>ya,reverse1d:()=>ET,reverse2d:()=>_T,reverse3d:()=>AT,reverse4d:()=>$T,rfft:()=>qc,round:()=>lf,rsqrt:()=>uf,scalar:()=>xe,scatterND:()=>zT,searchSorted:()=>rf,selu:()=>pf,separableConv2d:()=>_s,setdiff1dAsync:()=>FT,sigmoid:()=>ha,sign:()=>Uv,signal:()=>QT,sin:()=>cf,sinh:()=>df,slice:()=>Be,slice1d:()=>Hc,slice2d:()=>hf,slice3d:()=>wo,slice4d:()=>Il,softmax:()=>Xa,softplus:()=>vo,spaceToBatchND:()=>Uc,sparse:()=>tN,sparseToDense:()=>WT,spectral:()=>JT,split:()=>zn,sqrt:()=>pn,square:()=>lt,squaredDifference:()=>ff,squeeze:()=>As,stack:()=>$t,step:()=>ko,stridedSlice:()=>Gv,string:()=>nN,sub:()=>pe,sum:()=>fe,tan:()=>Hv,tanh:()=>li,tensor:()=>mn,tensor1d:()=>Ke,tensor2d:()=>Fa,tensor3d:()=>Mc,tensor4d:()=>Ma,tensor5d:()=>DT,tensor6d:()=>RT,tile:()=>Ln,topk:()=>jv,transpose:()=>_e,truncatedNormal:()=>gf,unique:()=>qv,unsortedSegmentSum:()=>yf,unstack:()=>pt,upperBound:()=>MT,variable:()=>Kv,where:()=>fn,whereAsync:()=>Xv,zeros:()=>It,zerosLike:()=>qe});var s6=(e,t,n,a=an)=>{switch(e.op){case"BiasAdd":case"AddV2":case"Add":return[a.add(k("a",e,t,n),k("b",e,t,n))];case"AddN":return[a.addN(k("tensors",e,t,n))];case"FloorMod":case"Mod":return[a.mod(k("a",e,t,n),k("b",e,t,n))];case"Mul":return[a.mul(k("a",e,t,n),k("b",e,t,n))];case"RealDiv":case"Div":return[a.div(k("a",e,t,n),k("b",e,t,n))];case"DivNoNan":return[a.divNoNan(k("a",e,t,n),k("b",e,t,n))];case"FloorDiv":return[a.floorDiv(k("a",e,t,n),k("b",e,t,n))];case"Sub":return[a.sub(k("a",e,t,n),k("b",e,t,n))];case"Minimum":return[a.minimum(k("a",e,t,n),k("b",e,t,n))];case"Maximum":return[a.maximum(k("a",e,t,n),k("b",e,t,n))];case"Pow":return[a.pow(k("a",e,t,n),k("b",e,t,n))];case"SquaredDifference":return[a.squaredDifference(k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},i6=(e,t,n,a=an)=>{switch(e.op){case"Abs":case"ComplexAbs":return[a.abs(k("x",e,t,n))];case"Acos":return[a.acos(k("x",e,t,n))];case"Acosh":return[a.acosh(k("x",e,t,n))];case"Asin":return[a.asin(k("x",e,t,n))];case"Asinh":return[a.asinh(k("x",e,t,n))];case"Atan":return[a.atan(k("x",e,t,n))];case"Atan2":return[a.atan2(k("x",e,t,n),k("y",e,t,n))];case"Atanh":return[a.atanh(k("x",e,t,n))];case"Ceil":return[a.ceil(k("x",e,t,n))];case"Complex":return[a.complex(k("real",e,t,n),k("imag",e,t,n))];case"Cos":return[a.cos(k("x",e,t,n))];case"Cosh":return[a.cosh(k("x",e,t,n))];case"Elu":return[a.elu(k("x",e,t,n))];case"Erf":return[a.erf(k("x",e,t,n))];case"Exp":return[a.exp(k("x",e,t,n))];case"Expm1":return[a.expm1(k("x",e,t,n))];case"Floor":return[a.floor(k("x",e,t,n))];case"Log":return[a.log(k("x",e,t,n))];case"Log1p":return[a.log1p(k("x",e,t,n))];case"Imag":return[a.imag(k("x",e,t,n))];case"Neg":return[a.neg(k("x",e,t,n))];case"Reciprocal":return[a.reciprocal(k("x",e,t,n))];case"Real":return[a.real(k("x",e,t,n))];case"Relu":return[a.relu(k("x",e,t,n))];case"Round":return[a.round(k("x",e,t,n))];case"Selu":return[a.selu(k("x",e,t,n))];case"Sigmoid":return[a.sigmoid(k("x",e,t,n))];case"Sin":return[a.sin(k("x",e,t,n))];case"Sign":return[a.sign(k("x",e,t,n))];case"Sinh":return[a.sinh(k("x",e,t,n))];case"Softplus":return[a.softplus(k("x",e,t,n))];case"Sqrt":return[a.sqrt(k("x",e,t,n))];case"Square":return[a.square(k("x",e,t,n))];case"Tanh":return[a.tanh(k("x",e,t,n))];case"Tan":return[a.tan(k("x",e,t,n))];case"ClipByValue":return[a.clipByValue(k("x",e,t,n),k("clipValueMin",e,t,n),k("clipValueMax",e,t,n))];case"Relu6":return[a.relu6(k("x",e,t,n))];case"Rsqrt":return[a.rsqrt(kn(e.inputNames[0],t,n))];case"Prod":return[a.prod(k("x",e,t,n),k("axes",e,t,n))];case"LeakyRelu":return[a.leakyRelu(k("x",e,t,n),k("alpha",e,t,n))];case"Prelu":return[a.prelu(k("x",e,t,n),k("alpha",e,t,n))];case"IsNan":return[a.isNaN(kn(e.inputNames[0],t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Aa(e,t,n=""){if(!(typeof e=="number"||typeof t=="number")){v.assert(e.length===t.length,()=>n+` Shapes ${e} and ${t} must match`);for(let a=0;an+` Shapes ${e} and ${t} must match`)}}}function tI(e){return!(typeof e=="number"||e.some(t=>t<0))}function Dp(e,t,n){let a=hx(e,n),r=!tI(a);if(r&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${a}`);if(r&&t.forEach(s=>{a=hx(s.shape,a)}),!tI(a))throw new Error(`Non-fully-defined elementShape: ${a}`);return a}function hx(e,t){if(typeof e=="number")return t;if(typeof t=="number")return e;if(e.length!==t.length)throw new Error(`Incompatible ranks during merge: ${e} vs. ${t}`);let n=[];for(let a=0;a=0&&s>=0&&r!==s)throw new Error(`Incompatible shape during merge: ${e} vs. ${t}`);n[a]=r>=0?r:s}return n}var o6=class{constructor(e,t,n,a,r,s,i){this.name=e,this.dtype=t,this.maxSize=n,this.elementShape=a,this.identicalElementShapes=r,this.dynamicSize=s,this.clearAfterRead=i,this.tensors=[],this.closed_=!1,this.idTensor=xe(0),Ht(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.tensor.id))&&t.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||e>=this.size())throw new Error(`Tried to read from index ${e}, but array size is: ${this.size()}`);let t=this.tensors[e];if(t.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${e} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(t.cleared=!0),t.read=!0,t.tensor}readMany(e){return e.map(t=>this.read(t))}write(e,t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(e<0||!this.dynamicSize&&e>=this.maxSize)throw new Error(`Tried to write to index ${e}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[e]||{};if(t.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, + because the value dtype is ${t.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=t.shape),Aa(this.elementShape,t.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${e}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${e}, because it has already been written.`);n.tensor=t,Ht(t),n.written=!0,this.tensors[e]=n}writeMany(e,t){if(e.length!==t.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${e.length} is not the same as tensors size: ${t.length}.`);e.forEach((n,a)=>this.write(n,t[a]))}gather(e,t){if(!!t&&t!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${t}`);if(e)e=e.slice(0,this.size());else{e=[];for(let a=0;a=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(e,pt(t,0))}split(e,t){if(t.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${t.dtype}`);let n=0,a=e.map(o=>(n+=o,n));if(n!==t.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Ea(t,r.shape,"TensorList shape mismatch: "),Jt(r)}),this.idTensor=xe(0),this.maxNumElements=a,Jt(this.idTensor)}get id(){return this.idTensor.id}copy(){return new Nl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Ea(e,this.elementShape,"TensorList shape mismatch: ");let a=Ap(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return Ft(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Ap(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Ea(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Ea(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Jt(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new Nl([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Ea(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Ap(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Ea(this.elementShape,t.shape,"TensorList shape mismatch: "),Jt(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Ea(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Ap(this.elementShape,this.tensors,n);return e.length===0?In([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return Ft(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Ea(this.elementShape,t,"TensorList shape mismatch: ");let n=Ap(this.elementShape,this.tensors,t);return this.size()===0?In([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function r6(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);Ea(r,t,"TensorList shape mismatch: ");let s=ct(e);return new Nl(s,t,a)}function s6(e,t,n,a){return new Nl([],e,t,a)}function i6(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new Nl([],n,e.dtype,a),i=ct(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function o6(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${t.shape}`);if(!this.dynamicSize&&e.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${e.length}), and the TensorArray is not marked as dynamically resizeable`);let r=n===0?0:t.size/n,s=[];P(()=>{t=W(t,[1,n,r]);for(let o=0;o{if(n!==r.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${r.dtype}`);Aa(t,r.shape,"TensorList shape mismatch: "),Ht(r)}),this.idTensor=xe(0),this.maxNumElements=a,Ht(this.idTensor)}get id(){return this.idTensor.id}copy(){return new _l([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(e){this.tensors.forEach(t=>{(e==null||!e.has(t.id))&&t.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(e,t,n=-1){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Aa(e,this.elementShape,"TensorList shape mismatch: ");let a=Dp(this.elementShape,this.tensors,e);return P(()=>{let r=this.tensors.map(s=>W(s,a));return $t(r,0)})}popBack(e,t){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Dp(this.elementShape,this.tensors,e),a=this.tensors.pop();return a.kept=!1,Aa(a.shape,e,"TensorList shape mismatch: "),W(a,n)}pushBack(e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(Aa(e.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ht(e),this.tensors.push(e)}resize(e){if(e<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${e}`);if(this.maxNumElements!==-1&&e>this.maxNumElements)throw new Error(`TensorListResize input size ${e} is greater maxNumElement ${this.maxNumElements}.`);let t=new _l([],this.elementShape,this.elementDtype,this.maxNumElements);t.tensors.length=e;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${e} in a list with ${this.tensors.length} elements.`);if(this.tensors[e]==null)throw new Error(`element at index ${e} is null.`);Aa(this.tensors[e].shape,t,"TensorList shape mismatch: ");let a=Dp(this.elementShape,this.tensors,t);return W(this.tensors[e],a)}setItem(e,t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(e<0||this.maxNumElements!==-1&&e>=this.maxNumElements)throw new Error(`Trying to set element ${e} in a list with max ${this.maxNumElements} elements.`);Aa(this.elementShape,t.shape,"TensorList shape mismatch: "),Ht(t),this.tensors[e]!=null&&(this.tensors[e].kept=!1),this.tensors[e]=t}gather(e,t,n){if(t!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t}, but list elements ${this.elementDtype}`);Aa(this.elementShape,n,"TensorList shape mismatch: "),e=e.slice(0,this.size());let a=Dp(this.elementShape,this.tensors,n);return e.length===0?mn([],[0].concat(a)):P(()=>{let r=e.map(s=>W(this.tensors[s],a));return $t(r,0)})}concat(e,t){if(!!e&&e!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${e}`);Aa(this.elementShape,t,"TensorList shape mismatch: ");let n=Dp(this.elementShape,this.tensors,t);return this.size()===0?mn([],[0].concat(n)):P(()=>{let a=this.tensors.map(r=>W(r,n));return Ze(a,0)})}};function l6(e,t,n){let a=e.dtype;if(e.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${e.shape}`);if(e.dtype!==n)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${n}`);let r=e.shape.slice(1);Aa(r,t,"TensorList shape mismatch: ");let s=pt(e);return new _l(s,t,a)}function u6(e,t,n,a){return new _l([],e,t,a)}function p6(e,t,n,a){if(t.length!==e.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${e.shape[0]}`);let r=Math.max(...t);if(a!=null&&a!==-1&&r>=a)throw new Error(`Max index must be < array size (${r} vs. ${a})`);let s=new _l([],n,e.dtype,a),i=pt(e,0);return t.forEach((o,l)=>{s.setItem(o,i[l])}),s}function c6(e,t,n){let a=0,r=t.map(p=>(a+=p,a));if(a!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=ux(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Tr(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Tr(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>wn(r,t,n)!==void 0);if(a){let r=wn(a,t,n);return[Tr(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Tr(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Tr(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Tr(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new a6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=i6(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=s6(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=r6(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=o6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Qk(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=vh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var u6=(e,t,n,a=pn)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=Qk(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=vh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=vh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},p6=(e,t,n,a=pn)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function kb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var c6=async(e,t,n,a,r=pn)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=kb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=kb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},d6=(e,t,n,a=pn)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},h6=(e,t,n,a=pn)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[wn(e.name,t,n)||r];case"Placeholder":return[wn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Tr(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Tr(p));case"Snapshot":let s=k("x",e,t,n);return[Tr(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=ct(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new m6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},g6=(e,t,n,a=pn)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},y6=(e,t,n,a=pn)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},b6=(e,t,n,a=pn)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},x6=(e,t,n,a=pn)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},v6=(e,t,n,a=pn)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},w6=(e,t,n,a=pn)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},k6=(e,t,n,a=pn)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},I6=(e,t,n,a=pn)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},S6=(e,t,n,a=pn)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},T6=(e,t,n,a=pn)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function eI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>t6(i,o,l));case"basic_math":return r(()=>n6(i,o,l));case"control":return l6(i,o,l);case"convolution":return r(()=>u6(i,o,l));case"creation":return r(()=>p6(i,o,l));case"dynamic":return c6(i,o,l);case"evaluation":return r(()=>d6(i,o,l));case"image":return r(()=>g6(i,o,l));case"graph":return r(()=>h6(i,o,l));case"logical":return r(()=>y6(i,o,l));case"matrices":return r(()=>b6(i,o,l));case"normalization":return r(()=>x6(i,o,l));case"reduction":return r(()=>v6(i,o,l));case"slice_join":return r(()=>w6(i,o,l));case"sparse":return r(()=>k6(i,o,l));case"spectral":return r(()=>I6(i,o,l));case"string":return r(()=>S6(i,o,l));case"transformation":return r(()=>T6(i,o,l));case"hash_table":return f6(i,o,l,a);case"custom":let u=w2(i.op);if(u&&u.customExecutor)return u.customExecutor(new e6(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var tI=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function nI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Yn(c)[0]),p=[];a!=null&&(p=a.map(c=>Yn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((U2(c)||$6(c)||A6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function N6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Yn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var C6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],_6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],E6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function U2(e){return C6.indexOf(e.op)>=0}function $6(e){return _6.indexOf(e.op)>=0}function A6(e){return E6.indexOf(e.op)>=0}var px=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new px(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=nI(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return N6(this.graph,this.weightMap,n)}execute(e,t){e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Yn(p)[0]]),r=t.map(p=>Yn(p)[0]),s=r.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));let l={},u={};return P(()=>{let p=new tI(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);Object.keys(e).forEach(m=>{let[f,g]=Yn(m),y=[];y[g]=e[m],d[f]=y});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mwn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=DH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];if(p===1){if(!this.keepTensorForDebug)u.dispose();else{let[d,c]=sr(t.name,a);this.intermediateTensors[d]?this.intermediateTensors[d][c]=u:(this.intermediateTensors[d]=[],this.intermediateTensors[d][c]=u)}delete i[u.id]}else p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(e=>this.intermediateTensors[e].forEach(t=>t.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(e=>{this.tensorsMap[e].forEach(t=>{t&&!t.kept&&!t.isDisposed&&!this.keepIds.has(t.id)&&t.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let e in this.intermediateTensors)this.intermediateTensors[e].forEach(t=>t.dispose()),delete this.intermediateTensors[e]}async _executeAsync(e,t,n=!1,a={},r={}){n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepTensorForDebug=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(u){console.warn(u.message)}this.resetIntermediateTensors();let s=new tI(this.weightMap,a,r,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(e,s,t,n);let i=t.map(u=>wn(u,this.tensorsMap,s)),o=i.map(u=>u.id),l=Object.keys(e).map(u=>e[u].id);return this.keepIds=new Set([...o,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&s.dispose(this.keepIds),i}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Yn(b)[0]]),i=n.map(b=>Yn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=nI(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Yn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!U2(b)&&!wn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=sr(p.node.name,n)),a[p.node.name]==null){let c=eI(p.node,a,n,this._resourceManager);d||([d]=sr(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=sr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!wn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Yn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){let t={};for(let n in e)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let a=this._signature.inputs[n];t[a.name]=e[n]}else t[n]=e[n];return t}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Yn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[t]!=null?this._signature.outputs[t].name:t,{})}checkOutputs(e){e.forEach(t=>{let[n]=Yn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},F6=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},D6="?tfjs-format=file",R6="model.json",$0=class{constructor(e,t={},n=Ut){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new F6}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new px(Yk.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Yk.Instance.transformGraph(e.modelInitializer);this.initializer=new px(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}predict(e,t){let n=this.execute(e,this.outputNodes);if(this.structuredOutputKeys){let a=n instanceof Te?[n]:n,r={};return a.forEach((s,i)=>r[this.structuredOutputKeys[i]]=s),r}return n}normalizeInputs(e){if(!(e instanceof Te)&&!Array.isArray(e)){if(this.signature!=null&&this.signature.inputs!=null)for(let a in this.signature.inputs){let r=this.signature.inputs[a];r.resourceId!=null&&(e[a]=this.resourceIdToCapturedInput[r.resourceId])}return e}e=Array.isArray(e)?e:[e];let t=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+t!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-t} non-resource placeholders, while there are ${e.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((a,r)=>{let s=this.signature?this.signature.inputs[r]:null;return s!=null&&s.resourceId!=null?a[r]=this.resourceIdToCapturedInput[s.resourceId]:a[r]=e[n++],a},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&_e(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M6(e,t={},n=Ut){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=O6(e));let a=new $0(e,t,n);return await a.load(),a}function P6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Ut.getWeightSpecs(a.weightsManifest),i=Ut.getModelArtifactsForJSONSync(a,s,r);t=Ut.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Ut.fromMemorySync(e);else throw new Error("Unknown model format");let n=new $0(t);return n.load(),n}function O6(e){return e.endsWith("/")||(e=e+"/"),`${e}${R6}${D6}`}var L6="4.0.0",G2={};$e(G2,{CSVDataset:()=>Q2,Dataset:()=>qu,FileDataSource:()=>iC,TextLineDataset:()=>J2,URLDataSource:()=>oC,array:()=>oj,csv:()=>bj,func:()=>xj,generator:()=>vj,microphone:()=>kj,version_data:()=>Ij,webcam:()=>wj,zip:()=>lj});var z6=ms(im()),W6=ms(im());function B6(e,t){return Yh(e,t)}function Yh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Cl(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Yh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function V6(e,t=j2){return H2(e,t)}function H2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Cl(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=H2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function j2(e){return e===null?null:Cl(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function q2(e,t){let n=new Map;Yh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Yh(e,t,n)}function Cl(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=VI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function U6(e){return e==null||G6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function G6(e){return e===null||typeof e!="object"&&typeof e!="function"}function H6(e){return B6(e,j6)}function j6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Cl(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var K2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},A0=class extends K2{constructor(){super(A0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new ej(this,e,t)}columnMajorBatch(e,t=!0,n=j2){return this.rowMajorBatch(e,t).map(a=>V6(a,n))}concatenate(e,t){return new Y2(X2([this,e]),t)}take(e){return e<0||e==null?this:new Q6(this,e)}skip(e){return e<0||e==null?this:new J6(this,e)}prefetch(e){return new Z2(this,e)}shuffle(e,t){return new ij(this,e,t)}serial(){return new Z6(this)}},X6=class extends tn{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:H6(e),done:!1}}},Y6=class extends tn{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},Z6=class extends tn{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},J6=class extends tn{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},ej=class extends tn{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},tj=class extends tn{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;_e(e.value)}}},nj=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},aj=class extends tn{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},aI=class extends tn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Va.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Va.getTensorsInContainer(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},D0=class extends tn{constructor(){super(),this.outputQueue=new A0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},rj=class extends D0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Va.getTensorsInContainer(e.value),n=this.transform(e.value),a=Va.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Va.isTensorInList(r,a)||r.dispose();return!0}},Y2=class extends tn{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},ts;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(ts||(ts={}));var sj=class extends tn{constructor(e,t=ts.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof tn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await q2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case ts.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case ts.SHORTEST:return{value:null,done:!0};case ts.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Z2=class extends tn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new K2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},ij=class extends Z2{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=W6.alea(n||v.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},qu=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is - ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Xn(async()=>(await n.iterator()).columnMajorBatch(e,t,uj),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Xn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Xn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Xn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Xn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Xn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Xn(async()=>{let a=F0(async()=>({value:await t.iterator(),done:!1}));return q6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=z6.alea(t||v.now().toString());return Xn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Xn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};qu.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends qu{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function oj(e){return Xn(async()=>X2(e),e.length)}function lj(e){if(!Cl(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await q2(e,a=>{if(a instanceof qu)return{value:a.iterator(),recurse:!1};if(Cl(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return K6(n,ts.SHORTEST)},t)}function uj(e){if(e===null)return null;let t=e[0];return U6(t)?{value:pj(e),recurse:!1}:{value:null,recurse:!0}}function pj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?Ft(e):In(e)}var J2=class extends qu{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},dh='"',Fp=Symbol("out"),rI=Symbol("field"),hh=Symbol("quote"),Ib=Symbol("quoteafterquote"),sI=Symbol("quoteinquote"),Q2=class extends qu{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new J2(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&v.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new eC(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),In(n,t)}},tC=class extends tn{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=$a([s,r,o,i],[1,4])}else this.cropBox=$a([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new tC(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=ho.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Zt(le(e,"float32"),0),n;n=za.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},nC=class{},aC=class extends tn{split(e){return new cj(this,e)}},cj=class extends aC{constructor(e,t){super(),this.upstream=e,this.impl=new dj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},dj=class extends D0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},hj=class extends tn{decodeUTF8(){return new mj(this)}},mj=class extends aC{constructor(e){super(),this.upstream=e,this.impl=new fj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},fj=class extends D0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=VI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},rC=class extends hj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function gj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=yj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new rC(i,t)}else throw new Error(s.statusText)}var yj=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function sC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var iC=class extends nC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(sC(this.input)&&H().get("IS_NODE")){let e=Cx();this.input=e.readFileSync(this.input.slice(7))}return new rC(this.input,this.options)}},oC=class extends nC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return sC(this.url)?new iC(this.url,this.fileOptions).iterator():gj(this.url,this.fileOptions)}};function bj(e,t={}){return new Q2(new oC(e),t)}function xj(e){let t=F0(e);return Xn(async()=>t)}function vj(e){return Xn(async()=>{let t=await e();return F0(()=>t.next())})}async function wj(e,t){return tC.create(e,t)}async function kj(e){return eC.create(e)}var Ij="4.0.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var Sj=hr.whereImpl,R0=class extends pc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new om(this,_a())}nextDataId(){return R0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` + ${a}, and tensor's shape is: ${e.shape}`);let s=e.shape.slice(1),i=hx(s,n),o=a===0?0:e.size/a,l=P(()=>{let p=[];e=W(e,[1,a,o]);for(let d=0;d{switch(e.op){case"If":case"StatelessIf":{let a=k("thenBranch",e,t,n),r=k("elseBranch",e,t,n),s=k("cond",e,t,n),i=k("args",e,t,n);return(await s.data())[0]?n.functionMap[a].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap):n.functionMap[r].executeFunctionAsync(i,n.tensorArrayMap,n.tensorListMap)}case"While":case"StatelessWhile":{let a=k("body",e,t,n),r=k("cond",e,t,n),s=k("args",e,t,n),i=await n.functionMap[r].executeFunctionAsync(s,n.tensorArrayMap,n.tensorListMap),o=s.map(p=>p.id),l=await i[0].data();i.forEach(p=>{!p.kept&&o.indexOf(p.id)===-1&&p.dispose()});let u=s;for(;l[0];){let p=u;u=await n.functionMap[a].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);let d=u.map(h=>h.id);p.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()});let c=await n.functionMap[r].executeFunctionAsync(u,n.tensorArrayMap,n.tensorListMap);l=await c[0].data(),c.forEach(h=>{!h.kept&&o.indexOf(h.id)===-1&&d.indexOf(h.id)===-1&&h.dispose()})}return u}case"LoopCond":{let a=k("pred",e,t,n);return[Er(a)]}case"Switch":{let a=k("pred",e,t,n),r=k("data",e,t,n);return r.kept||(r=Er(r)),(await a.data())[0]?[void 0,r]:[r,void 0]}case"Merge":{let a=e.inputNames.find(r=>kn(r,t,n)!==void 0);if(a){let r=kn(a,t,n);return[Er(r)]}return}case"Enter":{let a=k("frameName",e,t,n),r=k("tensor",e,t,n);return n.enterFrame(a),[Er(r)]}case"Exit":{let a=k("tensor",e,t,n);return n.exitFrame(),[Er(a)]}case"NextIteration":{let a=k("tensor",e,t,n);return n.nextIteration(),[Er(a)]}case"TensorArrayV3":{let a=k("size",e,t,n),r=k("dtype",e,t,n),s=k("elementShape",e,t,n),i=k("dynamicSize",e,t,n),o=k("clearAfterRead",e,t,n),l=k("identicalElementShapes",e,t,n),u=k("name",e,t,n),p=new o6(u,r,a,s,l,i,o);return n.addTensorArray(p),[p.idTensor,xe(1)]}case"TensorArrayWriteV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.write(r,s),[i.idTensor]}case"TensorArrayReadV3":{let a=k("tensorArrayId",e,t,n),r=k("index",e,t,n);return[n.getTensorArray(a.id).read(r)]}case"TensorArrayGatherV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("dtype",e,t,n);return[n.getTensorArray(a.id).gather(r,s)]}case"TensorArrayScatterV3":{let a=k("tensorArrayId",e,t,n),r=k("indices",e,t,n),s=k("tensor",e,t,n),i=n.getTensorArray(a.id);return i.scatter(r,s),[i.idTensor]}case"TensorArrayConcatV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id),s=k("dtype",e,t,n);return[r.concat(s)]}case"TensorArraySplitV3":{let a=k("tensorArrayId",e,t,n),r=k("tensor",e,t,n),s=k("lengths",e,t,n),i=n.getTensorArray(a.id);return i.split(s,r),[i.idTensor]}case"TensorArraySizeV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return[xe(r.size(),"int32")]}case"TensorArrayCloseV3":{let a=k("tensorArrayId",e,t,n),r=n.getTensorArray(a.id);return r.clearAndClose(),[r.idTensor]}case"TensorListSetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("tensor",e,t,n),i=n.getTensorList(a.id);return i.setItem(r,s),[i.idTensor]}case"TensorListGetItem":{let a=k("tensorListId",e,t,n),r=k("index",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).getItem(r,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let a=k("indices",e,t,n),r=k("tensor",e,t,n),s=k("elementShape",e,t,n),i=k("numElements",e,t,n),o=p6(r,a,s,i);return n.addTensorList(o),[o.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let a=k("elementShape",e,t,n),r=k("elementDType",e,t,n),s;e.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=k(s,e,t,n),o=e.op==="TensorListReserve"?-1:i,l=u6(a,r,i,o);return n.addTensorList(l),[l.idTensor]}case"TensorListGather":{let a=k("tensorListId",e,t,n),r=k("indices",e,t,n),s=k("elementShape",e,t,n),i=k("elementDType",e,t,n);return[n.getTensorList(a.id).gather(r,i,s)]}case"TensorListStack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=k("numElements",e,t,n);return[n.getTensorList(a.id).stack(r,s,i)]}case"TensorListFromTensor":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n),i=l6(a,r,s);return n.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id),s=k("dtype",e,t,n),i=k("elementShape",e,t,n);return[r.concat(s,i)]}case"TensorListPushBack":{let a=k("tensorListId",e,t,n),r=k("tensor",e,t,n),s=n.getTensorList(a.id);return s.pushBack(r),[s.idTensor]}case"TensorListPopBack":{let a=k("tensorListId",e,t,n),r=k("elementShape",e,t,n),s=k("elementDType",e,t,n);return[n.getTensorList(a.id).popBack(r,s)]}case"TensorListSplit":{let a=k("tensor",e,t,n),r=k("elementShape",e,t,n),s=k("lengths",e,t,n),i=c6(a,s,r);return n.addTensorList(i),[i.idTensor]}case"TensorListLength":{let a=k("tensorListId",e,t,n),r=n.getTensorList(a.id);return[xe(r.size(),"int32")]}case"TensorListResize":{let a=k("tensorListId",e,t,n),r=k("size",e,t,n),s=n.getTensorList(a.id).resize(r);return n.addTensorList(s),[s.idTensor]}default:throw TypeError(`Node type ${e.op} is not implemented`)}};function nI(e,t,n){let[a,r]=k("fusedOps",e,t,n),s=a==="biasadd",i=!s,o=r==="prelu",l=a==="fusedbatchnorm",u=k("numArgs",e,t,n);if(s){if(o&&u!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&s&&u!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(l)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let p=k("strides",e,t,n),d=wh(e,t,n),c=k("dataFormat",e,t,n).toUpperCase(),h=k("dilations",e,t,n),[m,f]=k("args",e,t,n);i&&(f=m,m=void 0);let g=k("leakyreluAlpha",e,t,n);return{stride:p,pad:d,dataFormat:c,dilations:h,biasArg:m,preluArg:f,activationFunc:r,leakyreluAlpha:g}}var h6=(e,t,n,a=an)=>{switch(e.op){case"Conv1D":{let r=k("stride",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilation",e,t,n);return[a.conv1d(k("x",e,t,n),k("filter",e,t,n),r,s,i,o)]}case"Conv2D":{let r=k("strides",e,t,n),s=wh(e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv2d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,i,[o[1],o[2]])]}case"_FusedConv2D":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=nI(e,t,n);return[a.fused.conv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"FusedDepthwiseConv2dNative":{let{stride:r,pad:s,dataFormat:i,dilations:o,biasArg:l,preluArg:u,activationFunc:p,leakyreluAlpha:d}=nI(e,t,n);return[a.fused.depthwiseConv2d({x:k("x",e,t,n),filter:k("filter",e,t,n),strides:[r[1],r[2]],pad:s,dataFormat:i,dilations:[o[1],o[2]],bias:l,activation:p,preluActivationWeights:u,leakyreluAlpha:d})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let r=k("outputShape",e,t,n),s=k("strides",e,t,n),i=wh(e,t,n);return[a.conv2dTranspose(k("x",e,t,n),k("filter",e,t,n),r,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let r=k("strides",e,t,n),s=wh(e,t,n),i=k("dilations",e,t,n),o=k("dataFormat",e,t,n).toUpperCase();return[a.depthwiseConv2d(k("input",e,t,n),k("filter",e,t,n),[r[1],r[2]],s,o,[i[1],i[2]])]}case"Conv3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dataFormat",e,t,n).toUpperCase(),o=k("dilations",e,t,n);return[a.conv3d(k("x",e,t,n),k("filter",e,t,n),[r[1],r[2],r[3]],s,i,[o[1],o[2],o[3]])]}case"AvgPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPool":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s)]}case"MaxPoolWithArgmax":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n),o=k("includeBatchInIndex",e,t,n),{result:l,indexes:u}=a.maxPoolWithArgmax(k("x",e,t,n),[i[1],i[2]],[r[1],r[2]],s,o);return[l,u]}case"AvgPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.avgPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"MaxPool3D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("kernelSize",e,t,n);return[a.maxPool3d(k("x",e,t,n),[i[1],i[2],i[3]],[r[1],r[2],r[3]],s)]}case"Dilation2D":{let r=k("strides",e,t,n),s=k("pad",e,t,n),i=k("dilations",e,t,n),o=r[1],l=r[2],u=i[1],p=i[2];return[a.dilation2d(k("x",e,t,n),k("filter",e,t,n),[o,l],s,[u,p],"NHWC")]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},m6=(e,t,n,a=an)=>{switch(e.op){case"Fill":{let r=k("shape",e,t,n),s=k("dtype",e,t,n),i=k("value",e,t,n);return[a.fill(r,i,s)]}case"LinSpace":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("num",e,t,n);return[a.linspace(r,s,i)]}case"Multinomial":{let r=k("logits",e,t,n),s=k("numSamples",e,t,n),i=k("seed",e,t,n);return[a.multinomial(r,s,i)]}case"OneHot":{let r=k("indices",e,t,n),s=k("depth",e,t,n),i=k("onValue",e,t,n),o=k("offValue",e,t,n),l=k("dtype",e,t,n);return[a.oneHot(r,s,i,o,l)]}case"Ones":return[a.ones(k("shape",e,t,n),k("dtype",e,t,n))];case"OnesLike":return[a.onesLike(k("x",e,t,n))];case"RandomStandardNormal":return[a.randomStandardNormal(k("shape",e,t,n),k("dtype",e,t,n),k("seed",e,t,n))];case"RandomUniform":return[a.randomUniform(k("shape",e,t,n),k("minval",e,t,n),k("maxval",e,t,n),k("dtype",e,t,n))];case"Range":{let r=k("start",e,t,n),s=k("stop",e,t,n),i=k("step",e,t,n);return[a.range(r,s,i,k("dtype",e,t,n))]}case"TruncatedNormal":{let r=k("shape",e,t,n),s=k("mean",e,t,n),i=k("stdDev",e,t,n),o=k("seed",e,t,n);return[a.truncatedNormal(r,s,i,k("dtype",e,t,n),o)]}case"Zeros":return[a.zeros(k("shape",e,t,n),k("dtype",e,t,n))];case"ZerosLike":return[a.zerosLike(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function Cb(e,t,n){let a=k("boxes",e,t,n),r=k("scores",e,t,n),s=k("maxOutputSize",e,t,n),i=k("iouThreshold",e,t,n),o=k("scoreThreshold",e,t,n),l=k("softNmsSigma",e,t,n);return{boxes:a,scores:r,maxOutputSize:s,iouThreshold:i,scoreThreshold:o,softNmsSigma:l}}var f6=async(e,t,n,a,r=an)=>{switch(e.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u,softNmsSigma:p}=Cb(e,t,n),d=await r.image.nonMaxSuppressionWithScoreAsync(s,i,o,l,u,p);return[d.selectedIndices,d.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Cb(e,t,n),p=k("padToMaxOutputSize",e,t,n),d=await r.image.nonMaxSuppressionPaddedAsync(s,i,o,l,u,p);return[d.selectedIndices,d.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:o,iouThreshold:l,scoreThreshold:u}=Cb(e,t,n);return[await r.image.nonMaxSuppressionAsync(s,i,o,l,u)]}case"Where":{let s=r.cast(k("condition",e,t,n),"bool"),i=[await r.whereAsync(s)];return s.dispose(),i}case"ListDiff":return r.setdiff1dAsync(k("x",e,t,n),k("y",e,t,n));default:throw TypeError(`Node type ${e.op} is not implemented`)}},g6=(e,t,n,a=an)=>{switch(e.op){case"LowerBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.lowerBound(r,s)]}case"TopKV2":{let r=k("x",e,t,n),s=k("k",e,t,n),i=k("sorted",e,t,n),o=a.topk(r,s,i);return[o.values,o.indices]}case"UpperBound":{let r=k("sortedSequence",e,t,n),s=k("values",e,t,n);return[a.upperBound(r,s)]}case"Unique":{let r=k("x",e,t,n),s=a.unique(r);return[s.values,s.indices]}case"UniqueV2":{let r=k("x",e,t,n),s=k("axis",e,t,n),i=a.unique(r,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},y6=(e,t,n,a=an)=>{switch(e.op){case"Const":return t[e.name];case"PlaceholderWithDefault":let r=k("default",e,t,n);return[kn(e.name,t,n)||r];case"Placeholder":return[kn(e.name,t,n)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let p=k("x",e,t,n);return[Er(p)]}case"IdentityN":return k("x",e,t,n).map(p=>Er(p));case"Snapshot":let s=k("x",e,t,n);return[Er(s)];case"Shape":return[a.tensor1d(k("x",e,t,n).shape,"int32")];case"ShapeN":return k("x",e,t,n).map(p=>a.tensor1d(p.shape));case"Size":return[a.scalar(k("x",e,t,n).size,"int32")];case"Rank":return[a.scalar(k("x",e,t,n).rank,"int32")];case"NoOp":return[a.scalar(1)];case"Print":let i=k("x",e,t,n),o=k("data",e,t,n),l=k("message",e,t,n),u=k("summarize",e,t,n);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(l);for(let p=0;pe.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return xe(this.size(),"int32")}async import(e,t){this.checkKeyAndValueTensor(e,t);let n=await e.data();return this.tensorMap.forEach(a=>a.dispose()),this.tensorMap.clear(),P(()=>{let a=pt(t),r=n.length,s=a.length;v.assert(r===s,()=>`The number of elements doesn't match, keys has ${r} elements, the values has ${s} elements.`);for(let i=0;i{let a=[];for(let r=0;r{switch(e.op){case"HashTable":case"HashTableV2":{let r=a.getHashTableHandleByName(e.name);if(r!=null)return[r];{let s=k("keyDType",e,t,n),i=k("valueDType",e,t,n),o=new b6(s,i);return a.addHashTable(e.name,o),[o.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("values",e,t,n);return[await a.getHashTableById(r.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let r=k("tableHandle",e,t,n,a),s=k("keys",e,t,n),i=k("defaultValue",e,t,n);return[await a.getHashTableById(r.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let r=k("tableHandle",e,t,n,a);return[a.getHashTableById(r.id).tensorSize()]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},v6=(e,t,n,a=an)=>{switch(e.op){case"ResizeBilinear":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeBilinear(r,[s[0],s[1]],i,o)]}case"ResizeNearestNeighbor":{let r=k("images",e,t,n),s=k("size",e,t,n),i=k("alignCorners",e,t,n),o=k("halfPixelCenters",e,t,n);return[a.image.resizeNearestNeighbor(r,[s[0],s[1]],i,o)]}case"CropAndResize":{let r=k("image",e,t,n),s=k("boxes",e,t,n),i=k("boxInd",e,t,n),o=k("cropSize",e,t,n),l=k("method",e,t,n),u=k("extrapolationValue",e,t,n);return[a.image.cropAndResize(r,s,i,o,l,u)]}case"ImageProjectiveTransformV3":{let r=k("images",e,t,n),s=k("transforms",e,t,n),i=k("outputShape",e,t,n),o=k("fillValue",e,t,n),l=k("interpolation",e,t,n),u=k("fillMode",e,t,n);return[a.image.transform(r,s,l.toLowerCase(),u.toLowerCase(),o,i)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},w6=(e,t,n,a=an)=>{switch(e.op){case"Equal":return[a.equal(k("a",e,t,n),k("b",e,t,n))];case"NotEqual":return[a.notEqual(k("a",e,t,n),k("b",e,t,n))];case"Greater":return[a.greater(k("a",e,t,n),k("b",e,t,n))];case"GreaterEqual":return[a.greaterEqual(k("a",e,t,n),k("b",e,t,n))];case"Less":return[a.less(k("a",e,t,n),k("b",e,t,n))];case"LessEqual":return[a.lessEqual(k("a",e,t,n),k("b",e,t,n))];case"LogicalAnd":return[a.logicalAnd(k("a",e,t,n),k("b",e,t,n))];case"LogicalNot":return[a.logicalNot(k("a",e,t,n))];case"LogicalOr":return[a.logicalOr(k("a",e,t,n),k("b",e,t,n))];case"Select":case"SelectV2":return[a.where(k("condition",e,t,n),k("a",e,t,n),k("b",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},k6=(e,t,n,a=an)=>{switch(e.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[a.matMul(k("a",e,t,n),k("b",e,t,n),k("transposeA",e,t,n),k("transposeB",e,t,n))];case"Einsum":return[a.einsum(k("equation",e,t,n),...k("tensors",e,t,n))];case"Transpose":return[a.transpose(k("x",e,t,n),k("perm",e,t,n))];case"_FusedMatMul":let[r,s]=k("fusedOps",e,t,n),i=r==="biasadd",o=s==="prelu",l=k("numArgs",e,t,n),u=k("leakyreluAlpha",e,t,n);if(i){if(o&&l!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!o&&l!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[p,d]=k("args",e,t,n);return[a.fused.matMul({a:k("a",e,t,n),b:k("b",e,t,n),transposeA:k("transposeA",e,t,n),transposeB:k("transposeB",e,t,n),bias:p,activation:s,preluActivationWeights:d,leakyreluAlpha:u})];default:throw TypeError(`Node type ${e.op} is not implemented`)}},I6=(e,t,n,a=an)=>{switch(e.op){case"EuclideanNorm":return[a.euclideanNorm(k("x",e,t,n),k("axis",e,t,n),k("keepDims",e,t,n))];case"FusedBatchNorm":case"FusedBatchNormV2":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"FusedBatchNormV3":return[a.batchNorm(k("x",e,t,n),k("mean",e,t,n),k("variance",e,t,n),k("offset",e,t,n),k("scale",e,t,n),k("epsilon",e,t,n))];case"LRN":return[a.localResponseNormalization(k("x",e,t,n),k("radius",e,t,n),k("bias",e,t,n),k("alpha",e,t,n),k("beta",e,t,n))];case"Softmax":return[a.softmax(k("x",e,t,n))];case"LogSoftmax":return[a.logSoftmax(k("x",e,t,n))];case"SparseToDense":return[a.sparseToDense(k("sparseIndices",e,t,n),k("outputShape",e,t,n),k("sparseValues",e,t,n),k("defaultValue",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},S6=(e,t,n,a=an)=>{switch(e.op){case"RaggedGather":{let{outputNestedSplits:r,outputDenseValues:s}=a.raggedGather(k("paramsNestedSplits",e,t,n),k("paramsDenseValues",e,t,n),k("indices",e,t,n),k("outputRaggedRank",e,t,n));return r.concat(s)}case"RaggedRange":{let{rtNestedSplits:r,rtDenseValues:s}=a.raggedRange(k("starts",e,t,n),k("limits",e,t,n),k("splits",e,t,n));return[r,s]}case"RaggedTensorToTensor":return[a.raggedTensorToTensor(k("shape",e,t,n),k("values",e,t,n),k("defaultValue",e,t,n),k("rowPartitionTensors",e,t,n),k("rowPartitionTypes",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},T6=(e,t,n,a=an)=>{switch(e.op){case"Max":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.max(k("x",e,t,n),o,l)]}case"Mean":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.mean(k("x",e,t,n),o,l)]}case"Min":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.min(k("x",e,t,n),o,l)]}case"Sum":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.sum(k("x",e,t,n),o,l)]}case"All":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.all(k("x",e,t,n),o,l)]}case"Any":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.any(k("x",e,t,n),o,l)]}case"ArgMax":{let o=k("axis",e,t,n);return[a.argMax(k("x",e,t,n),o)]}case"ArgMin":{let o=k("axis",e,t,n);return[a.argMin(k("x",e,t,n),o)]}case"Prod":{let o=k("axis",e,t,n),l=k("keepDims",e,t,n);return[a.prod(k("x",e,t,n),o,l)]}case"Cumprod":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumprod(k("x",e,t,n),o,l,u)]}case"Cumsum":{let o=k("axis",e,t,n),l=k("exclusive",e,t,n),u=k("reverse",e,t,n);return[a.cumsum(k("x",e,t,n),o,l,u)]}case"Bincount":let r=k("x",e,t,n),s=k("weights",e,t,n),i=k("size",e,t,n);return[a.bincount(r,s,i)];case"DenseBincount":{let o=k("x",e,t,n),l=k("weights",e,t,n),u=k("size",e,t,n),p=k("binaryOutput",e,t,n);return[a.denseBincount(o,l,u,p)]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},N6=(e,t,n,a=an)=>{switch(e.op){case"ConcatV2":case"Concat":{let r=k("n",e,t,n),s=k("axis",e,t,n),i=k("tensors",e,t,n);return i=i.slice(0,r),[a.concat(i,s)]}case"Gather":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gather(r,a.cast(s,"int32"),0)]}case"GatherV2":{let r=k("axis",e,t,n),s=k("batchDims",e,t,n),i=k("x",e,t,n),o=k("indices",e,t,n);return[a.gather(i,a.cast(o,"int32"),r,s)]}case"Reverse":{let r=k("dims",e,t,n),s=[];for(let o=0;o{let r=k("axis",e,t,n),s=k("tensors",e,t,n),i=s[0].shape,o=a.squeeze(s[0]).shape,l=s.map(u=>{let p=v.arraysEqual(u.shape,i);if(!p&&!v.arraysEqual(a.squeeze(u).shape,o))throw new Error("the input tensors shape does not match");return p?u:a.reshape(u,i)});return[a.stack(l,r)]});case"Unpack":{let r=k("axis",e,t,n),s=k("tensor",e,t,n);return a.unstack(s,r)}case"Tile":{let r=k("reps",e,t,n);return[a.tile(k("x",e,t,n),r)]}case"Split":case"SplitV":{let r=k("axis",e,t,n),s=k("numOrSizeSplits",e,t,n),i=k("x",e,t,n);return a.split(i,s,r)}case"ScatterNd":{let r=k("indices",e,t,n),s=k("values",e,t,n),i=k("shape",e,t,n);return[a.scatterND(r,s,i)]}case"GatherNd":{let r=k("x",e,t,n),s=k("indices",e,t,n);return[a.gatherND(r,s)]}case"SparseToDense":{let r=k("sparseIndices",e,t,n),s=k("outputShape",e,t,n),i=k("sparseValues",e,t,n),o=k("defaultValue",e,t,n);return[a.sparseToDense(r,i,s,i.dtype===o.dtype?o:a.cast(o,i.dtype))]}default:throw TypeError(`Node type ${e.op} is not implemented`)}},C6=(e,t,n,a=an)=>{switch(e.op){case"SparseFillEmptyRows":{let{outputIndices:r,outputValues:s,emptyRowIndicator:i,reverseIndexMap:o}=a.sparse.sparseFillEmptyRows(k("indices",e,t,n),k("values",e,t,n),k("denseShape",e,t,n),k("defaultValue",e,t,n));return[r,s,i,o]}case"SparseReshape":{let{outputIndices:r,outputShape:s}=a.sparse.sparseReshape(k("inputIndices",e,t,n),k("inputShape",e,t,n),k("newShape",e,t,n));return[r,s]}case"SparseSegmentMean":return[a.sparse.sparseSegmentMean(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];case"SparseSegmentSum":return[a.sparse.sparseSegmentSum(k("data",e,t,n),k("indices",e,t,n),k("segmentIds",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},E6=(e,t,n,a=an)=>{switch(e.op){case"FFT":return[a.fft(k("x",e,t,n))];case"IFFT":return[a.ifft(k("x",e,t,n))];case"RFFT":return[a.rfft(k("x",e,t,n))];case"IRFFT":return[a.irfft(k("x",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},_6=(e,t,n,a=an)=>{switch(e.op){case"StringNGrams":{let{nGrams:r,nGramsSplits:s}=a.string.stringNGrams(k("data",e,t,n),k("dataSplits",e,t,n),k("separator",e,t,n),k("nGramWidths",e,t,n),k("leftPad",e,t,n),k("rightPad",e,t,n),k("padWidth",e,t,n),k("preserveShortSequences",e,t,n));return[r,s]}case"StringSplit":{let{indices:r,values:s,shape:i}=a.string.stringSplit(k("input",e,t,n),k("delimiter",e,t,n),k("skipEmpty",e,t,n));return[r,s,i]}case"StringToHashBucketFast":return[a.string.stringToHashBucketFast(k("input",e,t,n),k("numBuckets",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}},A6=(e,t,n,a=an)=>{switch(e.op){case"Cast":return[a.cast(k("x",e,t,n),k("dtype",e,t,n))];case"ExpandDims":{let r=k("axis",e,t,n);return[a.expandDims(k("x",e,t,n),r)]}case"Squeeze":{let r=k("axis",e,t,n);return[a.squeeze(k("x",e,t,n),r)]}case"Reshape":return[a.reshape(k("x",e,t,n),k("shape",e,t,n))];case"MirrorPad":return[a.mirrorPad(k("x",e,t,n),k("padding",e,t,n),k("mode",e,t,n))];case"PadV2":case"Pad":return[a.pad(k("x",e,t,n),k("padding",e,t,n),k("constantValue",e,t,n))];case"SpaceToBatchND":{let r=k("blockShape",e,t,n),s=k("paddings",e,t,n);return[a.spaceToBatchND(k("x",e,t,n),r,s)]}case"BatchToSpaceND":{let r=k("blockShape",e,t,n),s=k("crops",e,t,n);return[a.batchToSpaceND(k("x",e,t,n),r,s)]}case"DepthToSpace":{let r=k("blockSize",e,t,n),s=k("dataFormat",e,t,n).toUpperCase();return[a.depthToSpace(k("x",e,t,n),r,s)]}case"BroadcastTo":return[a.broadcastTo(k("x",e,t,n),k("shape",e,t,n))];case"BroadcastArgs":return[a.broadcastArgs(k("s0",e,t,n),k("s1",e,t,n))];default:throw TypeError(`Node type ${e.op} is not implemented`)}};function aI(e,t,n,a,r=P){let s=((i,o,l)=>{switch(i.category){case"arithmetic":return r(()=>s6(i,o,l));case"basic_math":return r(()=>i6(i,o,l));case"control":return d6(i,o,l);case"convolution":return r(()=>h6(i,o,l));case"creation":return r(()=>m6(i,o,l));case"dynamic":return f6(i,o,l);case"evaluation":return r(()=>g6(i,o,l));case"image":return r(()=>v6(i,o,l));case"graph":return r(()=>y6(i,o,l));case"logical":return r(()=>w6(i,o,l));case"matrices":return r(()=>k6(i,o,l));case"normalization":return r(()=>I6(i,o,l));case"ragged":return r(()=>S6(i,o,l));case"reduction":return r(()=>T6(i,o,l));case"slice_join":return r(()=>N6(i,o,l));case"sparse":return r(()=>C6(i,o,l));case"spectral":return r(()=>E6(i,o,l));case"string":return r(()=>_6(i,o,l));case"transformation":return r(()=>A6(i,o,l));case"hash_table":return x6(i,o,l,a);case"custom":let u=S2(i.op);if(u&&u.customExecutor)return u.customExecutor(new r6(i,o,l));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(e,t,n);return v.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var rI=class{constructor(e={},t={},n={},a={}){this.weightMap=e,this.tensorArrayMap=t,this.tensorListMap=n,this.functionMap=a,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(e,t){return{id:e,frameName:t,iterationId:0}}set currentContext(e){this.contexts!==e&&(this.contexts=e,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let e=[];for(let t=0;tt.id===0&&t.iterationId===0?"":`${t.frameName}-${t.iterationId}`).join("/"):""}enterFrame(e){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,e)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let e=Object.assign({},this.contexts[this.contexts.length-1]);e.iterationId+=1,e.id=this.lastId,this.contexts.splice(-1,1,e),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(e){return this.weightMap[e]}addTensorArray(e){this.tensorArrayMap[e.id]=e}getTensorArray(e){return this.tensorArrayMap[e]}addTensorList(e){this.tensorListMap[e.id]=e}getTensorList(e){return this.tensorListMap[e]}dispose(e){for(let t in this.tensorArrayMap)this.tensorArrayMap[t].clearAndClose(e);for(let t in this.tensorListMap)this.tensorListMap[t].clearAndClose(e)}};function sI(e,t,n,a){let r=new Set,s=[],i=null,o=null,l=new Set,u=Object.keys(e).map(c=>Yn(c)[0]),p=[];a!=null&&(p=a.map(c=>Yn(c.name)[0]));let d=[...t];for(;d.length>0;){let c=d.pop();if((j2(c)||M6(c)||P6(c))&&i==null&&(i=c,o=i.children.map(h=>h.name).filter(h=>r.has(h))),r.add(c.name),n[c.name]==null&&u.indexOf(c.name)===-1&&p.indexOf(c.name)===-1){if(c.inputs.length===0){s.push(c.name);continue}c.inputs.forEach(h=>{l.has(h.name)||(l.add(h.name),d.push(h))})}}return{inputs:e,outputs:t,usedNodes:r,missingInputs:s,dynamicNode:i,syncInputs:o}}function $6(e,t,n){let{usedNodes:a,inputs:r}=n,s=[],i=Object.keys(r).map(p=>Yn(p)[0]).map(p=>e.nodes[p]),o=e.initNodes;i.forEach(p=>{a.has(p.name)&&s.push(p)}),e.weights.forEach(p=>{a.has(p.name)&&s.push(p)}),o!=null&&o.forEach(p=>{a.has(p.name)&&s.push(p)});let l=new Set,u=[];for(;s.length>0;){let p=s.pop();l.add(p.name),t[p.name]||u.push(p),p.children.forEach(d=>{!l.has(d.name)&&a.has(d.name)&&d.inputs.every(c=>l.has(c.name))&&s.push(d)})}return u}var F6=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],D6=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],R6=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function j2(e){return F6.indexOf(e.op)>=0}function M6(e){return D6.indexOf(e.op)>=0}function P6(e){return R6.indexOf(e.op)>=0}var mx=class{constructor(e,t){this.graph=e,this.parent=t,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=e.outputs,this._inputs=e.inputs,this._initNodes=e.initNodes,this._signature=e.signature,this._functions=e.functions,e.functions!=null&&Object.keys(e.functions).forEach(n=>{this._functionExecutorMap[n]=new mx(e.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(e){let t=Object.keys(e).map(n=>e[n].map(a=>a.id));this._weightIds=[].concat(...t),this._weightMap=e}set resourceManager(e){this._resourceManager=e}get inputs(){return this._inputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(e=>({name:e.name,shape:e.attrParams.shape?e.attrParams.shape.value:void 0,dtype:e.attrParams.dtype?e.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(e=>e.signatureKey||e.name)}get outputNodes(){return this._outputs.map(e=>{let t=e.signatureKey||e.name;return e.defaultOutput?`${t}:${e.defaultOutput}`:t})}get functions(){return Object.keys(this._functions).reduce((e,t)=>(e[t]=this._functions[t].signature,e),{})}getCompilationKey(e,t){let n=e.map(r=>r.name).sort(),a=t.map(r=>r.name).sort();return n.join(this.SEPERATOR)+"--"+a.join(this.SEPERATOR)}compile(e,t){let n=sI(e,t,this.weightMap,this._initNodes),{missingInputs:a,dynamicNode:r,syncInputs:s}=n;if(r!=null)throw new Error(`This execution contains the node '${r.name}', which has the dynamic op '${r.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${s}]`);if(a.length>0){let i=t.map(l=>l.name),o=Object.keys(e);throw new Error(`Cannot compute the outputs [${i}] from the provided inputs [${o}]. Missing the following inputs: [${a}]`)}return $6(this.graph,this.weightMap,n)}cloneAndKeepTensor(e){if(e==null)return null;let t=e.clone();return Ht(t),t}cloneTensorList(e){return e?e.map(t=>this.cloneAndKeepTensor(t)):null}cloneTensorMap(e){return Object.fromEntries(Object.entries(e).map(([t,n])=>[t,this.cloneTensorList(n)]))}execute(e,t){this.disposeIntermediateTensors(),e=this.mapInputs(e);let n=Object.keys(e).sort();this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t);let a=n.map(p=>this.graph.nodes[Yn(p)[0]]),r=t.map(p=>Yn(p)[0]),s=r.map(p=>this.graph.nodes[p]);s.length===0&&(s=this._outputs);let i=this.getCompilationKey(a,s),o=this.compiledMap.get(i);o==null&&(o=this.compile(e,s),this.compiledMap.set(i,o));try{this.keepIntermediateTensors=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(p){this.keepIntermediateTensors=!1,console.warn(p.message)}let l={},u={};return P(()=>{let p=new rI(this.weightMap,l,u,this.functionExecutorMap),d=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(e).forEach(m=>{let[f,g]=Yn(m),y=[];y[g]=e[m],d[f]=y,this.keepIntermediateTensors&&(this.clonedTensorsMap[f]=this.cloneTensorList(y))});let c=this.getFrozenTensorIds(d),h={};for(let m=0;mkn(m,d,p))})}getFrozenTensorIds(e){let t=[].concat.apply([],Object.keys(e).map(n=>e[n]).map(n=>n.map(a=>a.id)));return new Set(t)}checkTensorForDisposal(e,t,n,a,r,s,i){t.category==="control"||s.indexOf(e)!==-1||(n[e].forEach(o=>{o!=null&&(i[o.id]=(i[o.id]||0)+t.children.length)}),t.inputs.forEach(o=>{if(o.category!=="control"){let l=OH(o.name,n,a);l!=null&&l.forEach(u=>{if(u&&!u.kept&&!r.has(u.id)){let p=i[u.id];p===1?(u.dispose(),delete i[u.id]):p!=null&&i[u.id]--}})}}))}async executeAsync(e,t){return this._executeAsync(e,t)}disposeIntermediateTensors(){!this.clonedTensorsMap||(Object.values(this.clonedTensorsMap).forEach(e=>{for(let t of e)t&&!t.isDisposed&&t.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(e,t,n=!1,a={},r={}){this.disposeIntermediateTensors(),n||(e=this.mapInputs(e),this.checkInputs(e),this.checkInputShapeAndType(e),t=this.mapOutputs(t),this.checkOutputs(t));try{this.keepIntermediateTensors=H().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(d){this.keepIntermediateTensors=!1,console.warn(d.message)}let s=new rI(this.weightMap,a,r,this.functionExecutorMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let i=await this.executeWithControlFlow(e,s,t,n),o=t.map(d=>kn(d,i,s)),l=o.map(d=>d.id),u=Object.keys(e).map(d=>e[d].id),p=new Set([...l,...u,...this.weightIds]);return Object.values(i).forEach(d=>{d.forEach(c=>{c&&!c.isDisposed&&!p.has(c.id)&&c.dispose()})}),this.parent==null&&s.dispose(p),o}async executeFunctionAsync(e,t,n){let a=e.reduce((r,s,i)=>(r[this.inputs[i].name]=s,r),{});return this._executeAsync(a,this.outputNodes,!0,t,n)}async executeWithControlFlow(e,t,n,a){let r=Object.keys(e),s=r.map(b=>this.graph.nodes[Yn(b)[0]]),i=n.map(b=>Yn(b)[0]),o=i.map(b=>this.graph.nodes[b]);o.length===0&&(o=this._outputs);let{usedNodes:l,missingInputs:u,dynamicNode:p,syncInputs:d}=sI(e,o,this.weightMap,this._initNodes),c=[...s,...this.graph.weights,...this._initNodes||[]].map(b=>({node:b,contexts:t.currentContext})),h=Object.assign({},this.weightMap);Object.keys(e).forEach(b=>{let[x,w]=Yn(b),I=[];I[w]=e[b],h[x]=I});let m={},f=this.getFrozenTensorIds(h),g={};for(;c.length>0;){let b=this.processStack(s,c,t,h,g,f,i,m,l);await Promise.all(b)}p==null&&!a&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let y=o.filter(b=>!j2(b)&&!kn(b.name,h,t)).map(b=>b.name);if(y.length>0){let b="";throw p!=null&&(b=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${d}]`),new Error(`Cannot compute the outputs [${y}] from the provided inputs [${r}]. Consider providing the following inputs: [${u}]. ${b}`)}return h}processStack(e,t,n,a,r,s,i,o,l){let u=[];for(;t.length>0;){let p=t.pop();n.currentContext=p.contexts;let d="";if(p.node.op==="Enter"&&k("isConstant",p.node,a,n)&&([d]=Cr(p.node.name,n)),a[p.node.name]==null){let c=aI(p.node,a,n,this._resourceManager);d||([d]=Cr(p.node.name,n));let h=n.currentContext;v.isPromise(c)?u.push(c.then(m=>(a[d]=m,this.keepIntermediateTensors&&(this.clonedTensorsMap[d]=this.cloneTensorList(m)),n.currentContext=h,this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l),m))):(a[d]=c,this.keepIntermediateTensors&&(this.clonedTensorsMap[d]=this.cloneTensorList(c)),this.checkTensorForDisposal(d,p.node,a,n,s,i,o),this.processChildNodes(p.node,t,n,a,r,l))}else this.processChildNodes(p.node,t,n,a,r,l)}return u}processChildNodes(e,t,n,a,r,s){e.children.forEach(i=>{let[o]=Cr(i.name,n);r[o]||!s.has(i.name)||(i.op==="Merge"?i.inputNames.some(l=>!!kn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})):i.inputNames.every(l=>!!kn(l,a,n))&&(r[o]=!0,t.push({contexts:n.currentContext,node:i})))})}dispose(){Object.keys(this.weightMap).forEach(e=>this.weightMap[e].forEach(t=>t.dispose()))}checkInputShapeAndType(e){Object.keys(e).forEach(t=>{let n=e[t],[a]=Yn(t),r=this.graph.nodes[a];if(r.attrParams.shape&&r.attrParams.shape.value){let s=r.attrParams.shape.value,i=s.length===n.shape.length&&n.shape.every((o,l)=>s[l]===-1||s[l]===o);v.assert(i,()=>`The shape of dict['${r.name}'] provided in model.execute(dict) must be [${s}], but was [${n.shape}]`)}r.attrParams.dtype&&r.attrParams.dtype.value&&v.assert(n.dtype===r.attrParams.dtype.value,()=>`The dtype of dict['${r.name}'] provided in model.execute(dict) must be ${r.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(e){var t,n;let a={};for(let r in e){let s=(n=(t=this._signature)===null||t===void 0?void 0:t.inputs)===null||n===void 0?void 0:n[r];s!=null?a[s.name]=e[r]:a[r]=e[r]}return a}checkInputs(e){let t=Object.keys(e).filter(n=>{let[a]=Yn(n);return this.graph.nodes[a]==null});if(t.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${t}] that are not part of graph`)}mapOutputs(e){return e.map(t=>{var n,a;let r=(a=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||a===void 0?void 0:a[t];return r!=null?r.name:t},{})}checkOutputs(e){e.forEach(t=>{let[n]=Yn(t);if(!this.graph.nodes[n])throw new Error(`The output '${t}' is not found in the graph`)})}},O6=class{constructor(e={},t={}){this.hashTableNameToHandle=e,this.hashTableMap=t}addHashTable(e,t){this.hashTableNameToHandle[e]=t.handle,this.hashTableMap[t.id]=t}getHashTableHandleByName(e){return this.hashTableNameToHandle[e]}getHashTableById(e){return this.hashTableMap[e]}dispose(){for(let e in this.hashTableMap)this.hashTableMap[e].clearAndClose(),delete this.hashTableMap[e];for(let e in this.hashTableNameToHandle)this.hashTableNameToHandle[e].dispose(),delete this.hashTableNameToHandle[e]}},L6="?tfjs-format=file",z6="model.json",D0=class{constructor(e,t={},n=Gt){this.modelUrl=e,this.loadOptions=t,this.version="n/a",this.io=n,t==null&&(this.loadOptions={}),this.resourceManager=new O6}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let e=this.modelUrl;if(e.load!=null)this.handler=e;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(e,this.loadOptions);else{let t=this.io.getLoadHandlers(e,this.loadOptions);if(t.length===0)t.push(this.io.browserHTTPRequest(e,this.loadOptions));else if(t.length>1)throw new Error(`Found more than one (${t.length}) load handlers for URL '${[e]}'`);this.handler=t[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let e=this.handler.load();return v.isPromise(e)?e.then(t=>this.loadSync(t)):this.loadSync(e)}loadSync(e){this.artifacts=e;let t=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let r=this.artifacts.userDefinedMetadata;r.signature!=null&&(n=r.signature),r.structuredOutputKeys!=null&&(this.structuredOutputKeys=r.structuredOutputKeys)}this.signature=n,this.version=`${t.versions.producer}.${t.versions.minConsumer}`;let a=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new mx(Qk.Instance.transformGraph(t,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(a),this.executor.resourceManager=this.resourceManager,e.modelInitializer!=null&&e.modelInitializer.node!=null){let r=Qk.Instance.transformGraph(e.modelInitializer);this.initializer=new mx(r),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=e.initializerSignature}return!0}async save(e,t){if(typeof e=="string"){let n=this.io.getSaveHandlers(e);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${e}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${e}'`);e=n[0]}if(e.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return e.save(this.artifacts)}addStructuredOutputNames(e){if(this.structuredOutputKeys){let t=e instanceof Te?[e]:e,n={};return t.forEach((a,r)=>n[this.structuredOutputKeys[r]]=a),n}return e}predict(e,t){let n=this.execute(e,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(e,t){let n=await this.executeAsync(e,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(e){var t;if(!(e instanceof Te)&&!Array.isArray(e)){let r=(t=this.signature)===null||t===void 0?void 0:t.inputs;if(r!=null)for(let s in r){let i=r[s];i.resourceId!=null&&(e[s]=this.resourceIdToCapturedInput[i.resourceId])}return e}e=Array.isArray(e)?e:[e];let n=Object.keys(this.resourceIdToCapturedInput).length;if(e.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${e.length} input tensors provided.`);let a=0;return this.inputNodes.reduce((r,s)=>{var i,o,l;let u=(l=(o=(i=this.signature)===null||i===void 0?void 0:i.inputs)===null||o===void 0?void 0:o[s])===null||l===void 0?void 0:l.resourceId;return u!=null?r[s]=this.resourceIdToCapturedInput[u]:r[s]=e[a++],r},{})}normalizeOutputs(e){return e=e||this.outputNodes,Array.isArray(e)?e:[e]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(e){if(this.resourceIdToCapturedInput={},this.initializerSignature){let t=this.initializerSignature.outputs,n=Object.keys(t);for(let a=0;a1?n:n[0]}async executeAsync(e,t){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),e=this.normalizeInputs(e),t=this.normalizeOutputs(t);let n=await this.executor.executeAsync(e,t);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(e){return Object.keys(e).reduce((t,n)=>(t[n]=[e[n]],t),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Ee(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function W6(e,t={},n=Gt){if(e==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof e=="string"&&(e=V6(e));let a=new D0(e,t,n);return await a.load(),a}function B6(e){if(e==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(e instanceof Array){let[a,r]=e;if(!a)throw new Error("modelJSON must be the first element of the array");if(!r||!(r instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in a))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in a))throw new Error("Model JSON is missing 'weightsManifest'");let s=Gt.getWeightSpecs(a.weightsManifest),i=Gt.getModelArtifactsForJSONSync(a,s,r);t=Gt.fromMemorySync(i)}else if("load"in e)t=e;else if("modelTopology"in e&&"weightSpecs"in e&&"weightData"in e)t=Gt.fromMemorySync(e);else throw new Error("Unknown model format");let n=new D0(t);return n.load(),n}function V6(e){return e.endsWith("/")||(e=e+"/"),`${e}${z6}${L6}`}var U6="4.1.0",q2={};Ae(q2,{CSVDataset:()=>nC,Dataset:()=>Ku,FileDataSource:()=>uC,TextLineDataset:()=>tC,URLDataSource:()=>pC,array:()=>dj,csv:()=>Ij,func:()=>Sj,generator:()=>Tj,microphone:()=>Cj,version_data:()=>Ej,webcam:()=>Nj,zip:()=>hj});var G6=bs(om()),H6=bs(om());function j6(e,t){return Zh(e,t)}function Zh(e,t,n=new Map,a=new Set){if(e==null)return null;if(typeof Blob=="function"&&e instanceof Blob)return e.slice();if(a.has(e))throw new Error("Circular references are not supported.");if(n.has(e))return n.get(e);let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(r.recurse)if(Al(e)){let s=Array.isArray(e)?[]:{};a.add(e);for(let i in e){let o=e[i],l=Zh(o,t,n,a);s[i]=l}return a.delete(e),e.__proto__&&(s.__proto__=e.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${e}`);else return n.set(e,r.value),r.value}function q6(e,t=X2){return K2(e,t)}function K2(e,t,n=new Set){let a=e[0];if(n.has(a))throw new Error("Circular references are not supported.");let r=t(e);if(r.recurse&&r.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(r.recurse)if(Al(a)){let s=Array.isArray(a)?[]:{};n.add(a);for(let i in a){let o=e.map(u=>u[i]),l=K2(o,t,n);s[i]=l}return n.delete(a),s}else throw new Error(`Can't recurse into non-iterable type: ${a}`);else return r.value}function X2(e){return e===null?null:Al(e[0])?{value:null,recurse:!0}:{value:e,recurse:!1}}async function Y2(e,t){let n=new Map;Zh(e,t,n);for(let a of Array.from(n.keys())){let r=n.get(a);if(v.isPromise(r)){let s=await r;n.set(a,s)}}return Zh(e,t,n)}function Al(e){let t=!1;if(H().get("IS_BROWSER"))t=e instanceof TextDecoder;else{let{StringDecoder:n}=HI();t=e instanceof n}return e!=null&&!ArrayBuffer.isView(e)&&(Array.isArray(e)||typeof e=="object"&&!(e instanceof Te)&&!(e instanceof Promise)&&!t)}function K6(e){return e==null||X6(e)||Array.isArray(e)||typeof e=="object"&&e instanceof Te||v.isTypedArray(e)}function X6(e){return e===null||typeof e!="object"&&typeof e!="function"}function Y6(e){return j6(e,Z6)}function Z6(e){return e instanceof Te?{value:e.clone(),recurse:!1}:Al(e)?{value:null,recurse:!0}:{value:e,recurse:!1}}var Z2=class{constructor(e){if(this.capacity=e,this.begin=0,this.end=0,e==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(e<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(e),this.doubledCapacity=2*e}wrap(e){for(;e<0;)e+=this.doubledCapacity;return e%this.doubledCapacity}get(e){if(e<0)throw new RangeError("Can't get item at a negative index.");return this.data[e%this.capacity]}set(e,t){if(e<0)throw new RangeError("Can't set item at a negative index.");this.data[e%this.capacity]=t}length(){let e=this.end-this.begin;return e<0&&(e=this.doubledCapacity+e),e}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,e),this.end=this.wrap(this.end+1)}pushAll(e){for(let t of e)this.push(t)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let e=this.get(this.end);return this.set(this.end,void 0),e}unshift(e){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,e)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),e}shuffleExcise(e){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.wrap(this.begin+e),n=this.get(t);return this.set(t,this.pop()),n}},R0=class extends Z2{constructor(){super(R0.INITIAL_CAPACITY)}isFull(){return!1}push(e){super.isFull()&&this.expand(),super.push(e)}unshift(e){super.isFull()&&this.expand(),super.unshift(e)}expand(){let e=this.capacity*2,t=new Array(e),n=this.length();for(let a=0;at===!0)}rowMajorBatch(e,t=!0){return new sj(this,e,t)}columnMajorBatch(e,t=!0,n=X2){return this.rowMajorBatch(e,t).map(a=>q6(a,n))}concatenate(e,t){return new Q2(J2([this,e]),t)}take(e){return e<0||e==null?this:new rj(this,e)}skip(e){return e<0||e==null?this:new aj(this,e)}prefetch(e){return new eC(this,e)}shuffle(e,t){return new cj(this,e,t)}serial(){return new nj(this)}},ej=class extends nn{constructor(e){super(),this.items=e,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let e=this.items[this.trav];return this.trav++,{value:Y6(e),done:!1}}},tj=class extends nn{constructor(e){super(),this.nextFn=e}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(e){throw e.message=`Error thrown while iterating through a dataset: ${e.message}`,e}}},nj=class extends nn{constructor(e){super(),this.upstream=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},aj=class extends nn{constructor(e,t){super(),this.upstream=e,this.maxCount=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},sj=class extends nn{constructor(e,t,n=!0){super(),this.upstream=e,this.batchSize=t,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let e=[];for(;e.length0?{value:e,done:!1}:{value:null,done:!0};e.push(t.value)}return{value:e,done:!1}}},ij=class extends nn{constructor(e,t){super(),this.upstream=e,this.predicate=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let e=await this.upstream.next();if(e.done||this.predicate(e.value))return e;Ee(e.value)}}},oj=class extends nn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Map`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ua.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ua.getTensorsInContainer(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},lj=class extends nn{constructor(e,t){super(),this.upstream=e,this.handler=t,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(e){if(!this.handler(e))return{value:null,done:!0}}}},iI=class extends nn{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let e=await this.upstream.next();if(e.done)return{value:null,done:!0};let t=Ua.getTensorsInContainer(e.value),n=await this.transform(e.value),a=Ua.getTensorsInContainer(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return{value:n,done:!1}}},P0=class extends nn{constructor(){super(),this.outputQueue=new R0,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},uj=class extends P0{constructor(e,t){super(),this.upstream=e,this.transform=t}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let e=await this.upstream.next();if(e.done)return!1;let t=Ua.getTensorsInContainer(e.value),n=this.transform(e.value),a=Ua.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let r of t)Ua.isTensorInList(r,a)||r.dispose();return!0}},Q2=class extends nn{constructor(e,t){super(),this.baseErrorHandler=t,this.lastRead=null,this.iterator=null,this.moreIterators=e}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(e){if(await e,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let t=await this.iterator.next();return t.done?(this.iterator=null,this.readFromChain(e)):t}},rs;(function(e){e[e.FAIL=0]="FAIL",e[e.SHORTEST=1]="SHORTEST",e[e.LONGEST=2]="LONGEST"})(rs||(rs={}));var pj=class extends nn{constructor(e,t=rs.FAIL){super(),this.iterators=e,this.mismatchMode=t,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(e){await e;let t=0,n=0;function a(s){return s instanceof nn?{value:s.next().then(i=>(t++,i.done&&n++,i.value)),recurse:!1}:{value:null,recurse:!0}}let r=await Y2(this.iterators,a);if(t===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case rs.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case rs.SHORTEST:return{value:null,done:!0};case rs.LONGEST:default:}return this.count++,{value:r,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},eC=class extends nn{constructor(e,t){super(),this.upstream=e,this.bufferSize=t,this.buffer=new Z2(t)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let e=this.upstream.next();this.buffer.push(e)}}next(){return this.refill(),this.buffer.shift()}},cj=class extends eC{constructor(e,t,n){super(e,t),this.upstream=e,this.windowSize=t,this.upstreamExhausted=!1,this.random=H6.alea(n||v.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(e){return Math.floor(this.random()*e)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let e=this.chooseIndex(),t=await this.buffer.shuffleExcise(e);if(t.done)this.upstreamExhausted=!0;else return this.refill(),t}return{value:null,done:!0}}},Ku=class{constructor(){this.size=null}batch(e,t=!0){let n=this;v.assert(e>0,()=>`batchSize needs to be positive, but it is + ${e}`);let a;return this.size===1/0||this.size==null?a=this.size:t?a=Math.ceil(this.size/e):a=Math.floor(this.size/e),Xn(async()=>(await n.iterator()).columnMajorBatch(e,t,mj),a)}concatenate(e){let t=this,n;return this.size===1/0||e.size===1/0?n=1/0:this.size!=null&&e.size!=null?n=this.size+e.size:n=null,Xn(async()=>(await t.iterator()).concatenate(await e.iterator()),n)}filter(e){let t=this,n;return this.size===1/0?n=1/0:n=null,Xn(async()=>(await t.iterator()).filter(a=>P(()=>e(a))),n)}async forEachAsync(e){return(await this.iterator()).forEachAsync(e)}map(e){let t=this;return Xn(async()=>(await t.iterator()).map(n=>P(()=>e(n))),this.size)}mapAsync(e){let t=this;return Xn(async()=>(await t.iterator()).mapAsync(e),this.size)}prefetch(e){if(e==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let t=this;return Xn(async()=>(await t.iterator()).prefetch(e),this.size)}repeat(e){let t=this,n;return this.size!=null&&e>0?n=this.size*e:e===0?n=0:this.size!=null&&(e===void 0||e<0)?n=1/0:n=null,Xn(async()=>{let a=M0(async()=>({value:await t.iterator(),done:!1}));return J6(a.take(e))},n)}skip(e){let t=this,n;return this.size!=null&&e>=0&&this.size>=e?n=this.size-e:this.size!=null&&(this.size(await t.iterator()).skip(e),n)}shuffle(e,t,n=!0){if(e==null||e<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let a=this,r=G6.alea(t||v.now().toString());return Xn(async()=>{let s=r.int32();return n&&(s+=r.int32()),(await a.iterator()).shuffle(e,s.toString())},this.size)}take(e){let t=this,n;return this.size!=null&&this.size>e?n=e:this.size!=null&&this.size<=e?n=this.size:n=null,Xn(async()=>(await t.iterator()).take(e),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Ku.MAX_BUFFER_SIZE=1e4;function Xn(e,t=null){return new class extends Ku{constructor(){super(...arguments),this.size=t}async iterator(){return e()}}}function dj(e){return Xn(async()=>J2(e),e.length)}function hj(e){if(!Al(e))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(e))for(let n=0;n{let n=await Y2(e,a=>{if(a instanceof Ku)return{value:a.iterator(),recurse:!1};if(Al(a))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return Q6(n,rs.SHORTEST)},t)}function mj(e){if(e===null)return null;let t=e[0];return K6(t)?{value:fj(e),recurse:!1}:{value:null,recurse:!0}}function fj(e){if(e.length===0)throw new Error("Can't make a batch of zero elements.");return e[0]instanceof Te?$t(e):mn(e)}var tC=class extends Ku{constructor(e){super(),this.input=e}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(e=>(e.endsWith("\r")&&(e=e.slice(0,-1)),e))}},hh='"',Rp=Symbol("out"),oI=Symbol("field"),mh=Symbol("quote"),Eb=Symbol("quoteafterquote"),lI=Symbol("quoteinquote"),nC=class extends Ku{constructor(e,t){super(),this.input=e,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new tC(e),t||(t={}),this.hasHeader=t.hasHeader!==!1,this.fullColumnNames=t.columnNames,this.columnConfigs=t.columnConfigs,this.configuredColumnsOnly=t.configuredColumnsOnly,t.delimWhitespace?(v.assert(t.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=t.delimiter?t.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let e=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!e)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&e&&v.assert(e.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+e.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=e);let t=this.fullColumnNames.reduce((a,r)=>(a[r]=a[r]+1||1,a),{}),n=Object.keys(t).filter(a=>t[a]>1);if(v.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let a of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(a)===-1)throw new Error('The key "'+a+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let t=e.value;return this.parseRow(t,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let e=await this.base.iterator();return this.hasHeader&&(e=e.skip(1)),e.map(t=>this.makeDataElement(t))}makeDataElement(e){let t=this.parseRow(e),n={},a={};for(let r=0;r14||!Number.isInteger(t))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=e.numFramesPerSpectrogram||43,this.sampleRateHz=e.sampleRateHz,this.columnTruncateLength=e.columnTruncateLength||this.fftSize,this.audioTrackConstraints=e.audioTrackConstraints,this.smoothingTimeConstant=e.smoothingTimeConstant||0,this.includeSpectrogram=e.includeSpectrogram!==!1,this.includeWaveform=e.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(e={}){if(!H().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let t=new aC(e);return await t.start(),t}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let e=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new e,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let t=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,t.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let e,t,n=await this.getAudioData();if(this.includeSpectrogram){let a=this.flattenQueue(n.freqDataQueue);e=this.getTensorFromAudioDataArray(a,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let a=this.flattenQueue(n.timeDataQueue);t=this.getTensorFromAudioDataArray(a,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:e,waveform:t},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let e=[],t=[],n=0;return new Promise(a=>{let r=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&a({freqDataQueue:e,timeDataQueue:t}),e.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),t.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(r),a({freqDataQueue:e,timeDataQueue:t}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(e){let t=e[0].length,n=new Float32Array(e.length*t);return e.forEach((a,r)=>n.set(a,r*t)),n}getTensorFromAudioDataArray(e,t){let n=new Float32Array(v.sizeFromShape(t));return n.set(e,n.length-e.length),mn(n,t)}},rC=class extends nn{constructor(e,t){if(super(),this.webcamVideoElement=e,this.webcamConfig=t,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,a=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,r=(1-n)/2,s=(1-a)/2,i=r+n,o=a+s;this.cropBox=Fa([s,r,o,i],[1,4])}else this.cropBox=Fa([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(e,t={}){if(!H().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!e){if(e=document.createElement("video"),!t.resizeWidth||!t.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");e.width=t.resizeWidth,e.height=t.resizeHeight}let n=new rC(e,t);return await n.start(),n}async start(){this.webcamConfig.facingMode&&v.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(e){throw e.message=`Error thrown while initializing video stream: ${e.message}`,e}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(e){console.log(e),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(e=>{this.webcamVideoElement.onloadedmetadata=()=>{e()}})}async next(){if(this.isClosed)return{value:null,done:!0};let e;try{e=xo.fromPixels(this.webcamVideoElement)}catch(t){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(t)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(e),done:!1}}catch(t){throw new Error(`Error thrown cropping the video: ${t.message}`)}finally{e.dispose()}else return{value:e,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(e){return P(()=>{let t=Qt(le(e,"float32"),0),n;n=$a.cropAndResize(t,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let a=n.shape;return W(n,a.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}},sC=class{},iC=class extends nn{split(e){return new gj(this,e)}},gj=class extends iC{constructor(e,t){super(),this.upstream=e,this.impl=new yj(e,t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},yj=class extends P0{constructor(e,t){super(),this.upstream=e,this.separator=t,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let e=await this.upstream.next();if(e.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let t=e.value.split(this.separator);t[0]=this.carryover+t[0];for(let n of t.slice(0,-1))this.outputQueue.push(n);return this.carryover=t[t.length-1],!0}},bj=class extends nn{decodeUTF8(){return new xj(this)}},xj=class extends iC{constructor(e){super(),this.upstream=e,this.impl=new vj(e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},vj=class extends P0{constructor(e){if(super(),this.upstream=e,H().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:t}=HI();this.decoder=new t("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let e=await this.upstream.next(),t;if(e.done)return!1;t=e.value;let n;return H().get("IS_BROWSER")?n=this.decoder.decode(t,{stream:!0}):n=this.decoder.write(Buffer.from(t.buffer)),this.outputQueue.push(n),!0}},oC=class extends bj{constructor(e,t={}){super(),this.file=e,this.options=t,v.assert(e instanceof Uint8Array||(H().get("IS_BROWSER")?e instanceof File||e instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=t.offset||0,this.chunkSize=t.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,t)=>{let n=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,n)));else{let a=new FileReader;a.onload=s=>{let i=a.result;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))return t(new TypeError("FileReader returned unknown type."));e(i)},a.onabort=s=>t(new Error("Aborted")),a.onerror=s=>t(new Error(s.type));let r=this.file.slice(this.offset,n);a.readAsArrayBuffer(r)}this.offset=n}),done:!1}}};async function wj(e,t={},n){let a,r;typeof e=="string"?a=e:(a=e.url,r=kj(e));let s=await(n||v.fetch)(a,r);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new oC(i,t)}else throw new Error(s.statusText)}var kj=e=>({method:e.method,headers:e.headers,body:e.body,mode:e.mode,credentials:e.credentials,cache:e.cache,redirect:e.redirect,referrer:e.referrer,integrity:e.integrity});function lC(e){return typeof e=="string"&&e.slice(0,7)==="file://"}var uC=class extends sC{constructor(e,t={}){super(),this.input=e,this.options=t}async iterator(){if(lC(this.input)&&H().get("IS_NODE")){let e=$x();this.input=e.readFileSync(this.input.slice(7))}return new oC(this.input,this.options)}},pC=class extends sC{constructor(e,t={}){super(),this.url=e,this.fileOptions=t}async iterator(){return lC(this.url)?new uC(this.url,this.fileOptions).iterator():wj(this.url,this.fileOptions)}};function Ij(e,t={}){return new nC(new pC(e),t)}function Sj(e){let t=M0(e);return Xn(async()=>t)}function Tj(e){return Xn(async()=>{let t=await e();return M0(()=>t.next())})}async function Nj(e,t){return rC.create(e,t)}async function Cj(e){return aC.create(e)}var Ej="4.1.0";function ge(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var _j=fr.whereImpl,O0=class extends cc{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new lm(this,_a())}nextDataId(){return O0.nextDataId++}write(e,t,n){this.firstUse&&(this.firstUse=!1,H().get("IS_NODE")&&N.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let a={id:this.nextDataId()};return this.data.set(a,{values:e,dtype:n,refCount:1}),a}makeTensorInfo(e,t,n){let a;if(t==="string"&&n!=null&&n.length>0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ge([e],"where");let t=this.readSync(e.dataId);return Sj(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};R0.nextDataId=0;var lC={};$e(lC,{addImpl:()=>cC,bincountImpl:()=>P0,bincountReduceImpl:()=>dC,castImpl:()=>pC,ceilImpl:()=>hC,concatImpl:()=>O0,equalImpl:()=>mC,expImpl:()=>gC,expm1Impl:()=>bC,floorImpl:()=>xC,gatherNdImpl:()=>vC,gatherV2Impl:()=>wC,greaterEqualImpl:()=>IC,greaterImpl:()=>kC,lessEqualImpl:()=>TC,lessImpl:()=>SC,linSpaceImpl:()=>NC,logImpl:()=>CC,maxImpl:()=>_C,maximumImpl:()=>EC,minimumImpl:()=>$C,multiplyImpl:()=>L0,negImpl:()=>AC,notEqualImpl:()=>FC,prodImpl:()=>DC,raggedGatherImpl:()=>RC,raggedRangeImpl:()=>MC,raggedTensorToTensorImpl:()=>PC,rangeImpl:()=>W0,rsqrtImpl:()=>OC,scatterImpl:()=>ll,sigmoidImpl:()=>bq,simpleAbsImpl:()=>uC,sliceImpl:()=>Jh,sparseFillEmptyRowsImpl:()=>zC,sparseReshapeImpl:()=>WC,sparseSegmentReductionImpl:()=>B0,sqrtImpl:()=>wq,squaredDifferenceImpl:()=>BC,stridedSliceImpl:()=>VC,stringNGramsImpl:()=>V0,stringSplitImpl:()=>U0,stringToHashBucketFastImpl:()=>G0,subImpl:()=>UC,tileImpl:()=>GC,topKImpl:()=>jC,transposeImpl:()=>z0,uniqueImpl:()=>qC});function uC(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=uC(r),n.makeOutput(a,t.shape,t.dtype)},Nj={kernelName:Dl,backendName:"cpu",kernelFunc:Tj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var Cj={kernelName:mm,backendName:"cpu",kernelFunc:Zn};function Zh(e,t,n="float32"){if(n==="complex64"){let r=Zh(e,t,"float32"),s=Zh(e,t,"float32");return Zn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function pr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var _j={kernelName:Ri,backendName:"cpu",kernelFunc:pr};function ui(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var Ej={kernelName:Pm,backendName:"cpu",kernelFunc:ui};function pC(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function ds(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return pr({inputs:{x:r},backend:n});let p=Zh(n,r.shape,r.dtype),d=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Zn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=ui({inputs:{input:r},backend:n}),d=ds({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=pr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=pC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var $j={kernelName:xi,backendName:"cpu",kernelFunc:ds};function nn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=ds({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=ds({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),E=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Zn({inputs:{real:E,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(E),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function M0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let E=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[E*2],f[E*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var cC=Vt((e,t)=>e+t),Aj=M0((e,t,n,a)=>({real:e+n,imag:t+a})),_l=nn(gs,cC,Aj),Fj={kernelName:gs,backendName:"cpu",kernelFunc:_l};function P0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function dC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function Cs(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var hC=Cs(e=>Math.ceil(e)),Dj=Ku(vi,hC),Rj={kernelName:vi,backendName:"cpu",kernelFunc:Dj};function O0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),fC=nn(Xl,mC,null,"bool"),Mj={kernelName:Xl,backendName:"cpu",kernelFunc:fC},gC=Cs(e=>Math.exp(e)),yC=Ku(Ei,gC,"float32"),Pj={kernelName:Ei,backendName:"cpu",kernelFunc:yC},bC=Cs(e=>Math.expm1(e)),Oj=Ku(Zl,bC),Lj={kernelName:Zl,backendName:"cpu",kernelFunc:Oj},xC=Cs(e=>Math.floor(e)),zj=Ku($i,xC),Wj={kernelName:$i,backendName:"cpu",kernelFunc:zj};function vC(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),Bj=nn(tu,kC,null,"bool"),Vj={kernelName:tu,backendName:"cpu",kernelFunc:Bj},IC=Vt((e,t)=>e>=t?1:0),Uj=nn(Di,IC,null,"bool"),Gj={kernelName:Di,backendName:"cpu",kernelFunc:Uj},SC=Vt((e,t)=>ee<=t?1:0),qj=nn(iu,TC,null,"bool"),Kj={kernelName:iu,backendName:"cpu",kernelFunc:qj};function NC(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),Xj=Ku(Pi,CC),Yj={kernelName:Pi,backendName:"cpu",kernelFunc:Xj};function _C(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var EC=Vt((e,t)=>Math.max(e,t)),Zj=nn(Li,EC),Jj={kernelName:Li,backendName:"cpu",kernelFunc:Zj},$C=Vt((e,t)=>Math.min(e,t)),Qj=nn(Vi,$C),eq={kernelName:Vi,backendName:"cpu",kernelFunc:Qj},L0=Vt((e,t)=>e*t),tq=M0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),qf=nn(Gi,L0,tq),nq={kernelName:Gi,backendName:"cpu",kernelFunc:qf};function AC(e,t,n){let a=v.createScalarValue(-1,n);return L0([],t,a,e,n)}function aq(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=AC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var rq={kernelName:du,backendName:"cpu",kernelFunc:aq},FC=Vt((e,t)=>e!==t?1:0),sq=nn(hu,FC,null,"bool"),iq={kernelName:hu,backendName:"cpu",kernelFunc:sq};function z0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var uq={kernelName:Xi,backendName:"cpu",kernelFunc:lq};function pq(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function cq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function dq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);cq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function iI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>oI)throw new Error(`Requires ((limit - start) / delta) <= ${oI}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Ta.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Ta.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Ta[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Ta.FIRST_DIM_SIZE:return e[0];case Ta.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ta.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ta[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=uI(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Xs(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);lI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function lI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function PC(e,t,n,a,r,s,i,o,l,u){return new cx(e,t,n,a,r,s,i,o,l,u).compute()}function W0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),gq=Ku(no,OC),yq={kernelName:no,backendName:"cpu",kernelFunc:gq};function ll(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),LC=rt(ro,e=>1/(1+Math.exp(-e))),xq={kernelName:ro,backendName:"cpu",kernelFunc:LC};function Jh(e,t,n,a,r){let s=jt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=jt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function pi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=jt.parseSliceParams(r,s,i);jt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Jh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var vq={kernelName:Su,backendName:"cpu",kernelFunc:pi};function zC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),kq=rt(so,e=>Math.sqrt(e)),Iq={kernelName:so,backendName:"cpu",kernelFunc:kq},BC=Vt((e,t)=>{let n=e-t;return n*n}),Sq=nn(lo,BC),Tq={kernelName:lo,backendName:"cpu",kernelFunc:Sq};function VC(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function V0(e,t,n,a,r,s,i,o){return new Nq(n,a,r,s,i,o).compute(e,t)}function Cq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),_q=M0((e,t,n,a)=>({real:e-n,imag:t-a})),H0=nn(uo,UC,_q),Eq={kernelName:uo,backendName:"cpu",kernelFunc:H0};function GC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function HC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));HC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Op(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Op(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function jC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew R0,1);var KC=rt(_i,e=>e>=0?e:Math.exp(e)-1),$q={kernelName:_i,backendName:"cpu",kernelFunc:KC};function XC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function YC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Fq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Dq={kernelName:Ki,backendName:"cpu",kernelFunc:YC},ZC=rt(Yi,e=>Math.max(0,e)),Rq={kernelName:Yi,backendName:"cpu",kernelFunc:ZC},JC=rt(Qi,e=>Math.min(Math.max(0,e),6)),Mq={kernelName:Qi,backendName:"cpu",kernelFunc:JC};function Qh(e,t,n,a,r){if(n==="linear")return pr({inputs:{x:t},backend:e});if(n==="relu")return ZC({inputs:{x:t},backend:e});if(n==="elu")return KC({inputs:{x:t},backend:e});if(n==="relu6")return JC({inputs:{x:t},backend:e});if(n==="prelu")return YC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return XC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return LC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Pq={kernelName:vu,backendName:"cpu",kernelFunc:ft};function QC(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],E=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=E*$,ae=Oe([R,E,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),Bq={kernelName:Rl,backendName:"cpu",kernelFunc:Wq},Vq=rt(Ml,e=>Math.acosh(e)),Uq={kernelName:Ml,backendName:"cpu",kernelFunc:Vq};function Gq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Zq={kernelName:gi,backendName:"cpu",kernelFunc:Yq};function Jq(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var Qq={kernelName:cc,backendName:"cpu",kernelFunc:Jq},e5=rt(Ll,e=>Math.asin(e)),t5={kernelName:Ll,backendName:"cpu",kernelFunc:e5},n5=rt(zl,e=>Math.asinh(e)),a5={kernelName:zl,backendName:"cpu",kernelFunc:n5},r5=rt(Wl,e=>Math.atan(e)),s5={kernelName:Wl,backendName:"cpu",kernelFunc:r5},i5=Vt((e,t)=>Math.atan2(e,t)),o5=nn(Vl,i5),l5={kernelName:Vl,backendName:"cpu",kernelFunc:o5},u5=rt(Bl,e=>Math.atanh(e)),p5={kernelName:Bl,backendName:"cpu",kernelFunc:u5};function j0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function e_(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function t_(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],E=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function c5(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function d5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var h5={kernelName:yi,backendName:"cpu",kernelFunc:d5};function m5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var f5={kernelName:dc,backendName:"cpu",kernelFunc:m5};function g5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,E=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Oe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var y5={kernelName:cm,backendName:"cpu",kernelFunc:g5};function b5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Oe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,E=Oe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=E.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var x5={kernelName:pm,backendName:"cpu",kernelFunc:b5};function v5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let E=0;E=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var w5={kernelName:Fi,backendName:"cpu",kernelFunc:v5};function k5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=pi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var I5={kernelName:Ul,backendName:"cpu",kernelFunc:k5};function S5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=P0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var T5={kernelName:dm,backendName:"cpu",kernelFunc:S5};function N5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var C5={kernelName:hm,backendName:"cpu",kernelFunc:N5},_5=rt(ys,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return pr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>ui({inputs:{input:w},backend:n})),g=l.map(w=>El({inputs:{input:w},backend:n})),y=$l({inputs:f,backend:n,attrs:{axis:s}}),b=$l({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=O0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var D5={kernelName:Gl,backendName:"cpu",kernelFunc:$l};function n_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new Ht(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],E=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*E;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],it=ue+Ve*$,et=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*E[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*E[2];for(let ue=0;ue=u.inWidth)continue;let Ve=oe+Se*$[2],nt=ye+Le*u.inChannels,it=Ve;for(let et=0;etMath.cos(e)),j5={kernelName:Ii,backendName:"cpu",kernelFunc:H5},q5=rt(Si,e=>Math.cosh(e)),K5={kernelName:Si,backendName:"cpu",kernelFunc:q5};function X5(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Oe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new Ht(h.outShape,r.dtype),C=n.data.get(r.dataId).values,E=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:E,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},h8={kernelName:Ah,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${Ah}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},m8={kernelName:$h,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:E,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${$h}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function sd(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=ds({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=pr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Zh(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=sd({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var y8={kernelName:km,backendName:"cpu",kernelFunc:g8};function b8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var x8={kernelName:Im,backendName:"cpu",kernelFunc:b8},v8=N.ERF_P,w8=N.ERF_A1,k8=N.ERF_A2,I8=N.ERF_A3,S8=N.ERF_A4,T8=N.ERF_A5,N8=rt(Kl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+v8*n);return t*(1-((((T8*a+S8)*a+I8)*a+k8)*a+w8)*a*Math.exp(-n*n))}),C8={kernelName:Kl,backendName:"cpu",kernelFunc:N8};function em(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var _8={kernelName:Yl,backendName:"cpu",kernelFunc:em},E8=Vt((e,t)=>e/t),q0=nn(Ci,E8),dx={kernelName:Ci,backendName:"cpu",kernelFunc:q0};function r_(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),z8=nn(Ai,L8,null,"int32"),W8={kernelName:Ai,backendName:"cpu",kernelFunc:z8};function B8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=n_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=_l({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=_l({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=Qh(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=Qh(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var V8={kernelName:ei,backendName:"cpu",kernelFunc:B8};function U8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=a_({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=_l({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=Qh(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var G8={kernelName:ti,backendName:"cpu",kernelFunc:U8};function H8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=vC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var j8={kernelName:eu,backendName:"cpu",kernelFunc:H8};function q8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=wC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var K8={kernelName:Ql,backendName:"cpu",kernelFunc:q8};function X8(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=r_(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var Y8={kernelName:Tm,backendName:"cpu",kernelFunc:X8},Z8=rt(nu,e=>Number.isFinite(e)?1:0,"bool"),J8={kernelName:nu,backendName:"cpu",kernelFunc:Z8},Q8=rt(au,e=>Math.abs(e)===1/0?1:0,"bool"),eK={kernelName:au,backendName:"cpu",kernelFunc:Q8},tK=rt(ru,e=>Number.isNaN(e)?1:0,"bool"),nK={kernelName:ru,backendName:"cpu",kernelFunc:tK};function aK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=NC(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var rK={kernelName:Cm,backendName:"cpu",kernelFunc:aK},sK=rt(ou,e=>Math.log1p(e)),iK={kernelName:ou,backendName:"cpu",kernelFunc:sK},oK=Vt((e,t)=>e&&t),lK=nn(lu,oK,null,"bool"),uK={kernelName:lu,backendName:"cpu",kernelFunc:lK},pK=rt(uu,e=>e?0:1,"bool"),cK={kernelName:uu,backendName:"cpu",kernelFunc:pK},dK=Vt((e,t)=>e||t),hK=nn(pu,dK,null,"bool"),mK={kernelName:pu,backendName:"cpu",kernelFunc:hK};function fK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=pr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=j0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var wK={kernelName:zi,backendName:"cpu",kernelFunc:vK};function kK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=t_(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var IK={kernelName:bc,backendName:"cpu",kernelFunc:kK};function SK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=c5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,E=w-1-p.padInfo.top,$=Oe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var TK={kernelName:$m,backendName:"cpu",kernelFunc:SK};function NK(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,e_(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),E=n.data.get(r.dataId).values,$=Oe(r.shape,"float32",E);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var CK={kernelName:Em,backendName:"cpu",kernelFunc:NK};function _K(e,t,n,a,r){let s=v.computeStrides(t),i=j0(e,t,n,s,r,"max"),o=e_(e,t,n,r,!0,a);return[i.values,o.values]}var EK={kernelName:Am,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=_K(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=ds({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=q0({inputs:{a:c,b:d},backend:n});p.push(h);let m=sd({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var AK={kernelName:Wi,backendName:"cpu",kernelFunc:$K};function FK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var MK={kernelName:Ui,backendName:"cpu",kernelFunc:RK},PK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),OK=nn(cu,PK),LK={kernelName:cu,backendName:"cpu",kernelFunc:OK},zK=ms(im());function i_(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=v.parseAxisParam([o],r.shape),u=s_({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=H0({inputs:{a:r,b:d},backend:n}),h=yC({inputs:{x:c},backend:n}),m=sd({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=q0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var WK={kernelName:oo,backendName:"cpu",kernelFunc:i_};function BK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:i_({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=em({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=$l({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var nX={kernelName:bu,backendName:"cpu",kernelFunc:l_};function aX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var u_={kernelName:ji,backendName:"cpu",kernelFunc:aX},rX=Vt((e,t)=>Math.pow(e,t)),sX=nn(qi,rX),iX={kernelName:qi,backendName:"cpu",kernelFunc:sX};function oX(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=RC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var lX={kernelName:Dm,backendName:"cpu",kernelFunc:oX};function uX(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=MC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var pX={kernelName:Rm,backendName:"cpu",kernelFunc:uX};function cX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=PC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var dX={kernelName:Mm,backendName:"cpu",kernelFunc:cX};function hX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=W0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var mX={kernelName:xc,backendName:"cpu",kernelFunc:hX},fX=rt(xu,e=>1/e),gX={kernelName:xu,backendName:"cpu",kernelFunc:fX};function yX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,E=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var SX={kernelName:Om,backendName:"cpu",kernelFunc:IX};function TX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return pr({inputs:{x:r},backend:n});let l=new Ht(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var NX={kernelName:eo,backendName:"cpu",kernelFunc:TX},CX={kernelName:Pu,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),EX={kernelName:to,backendName:"cpu",kernelFunc:_X};function $X(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=ll(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var AX={kernelName:wu,backendName:"cpu",kernelFunc:$X};function FX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?WX*e:zX*(Math.exp(e)-1)),VX={kernelName:Iu,backendName:"cpu",kernelFunc:BX},UX=rt(Nu,e=>e<0?-1:e>0?1:0),GX={kernelName:Nu,backendName:"cpu",kernelFunc:UX},HX=rt(ao,e=>Math.sin(e)),jX={kernelName:ao,backendName:"cpu",kernelFunc:HX},qX=rt(Tu,e=>Math.sinh(e)),KX={kernelName:Tu,backendName:"cpu",kernelFunc:qX},XX=11920928955078125e-23,pI=Math.log(XX)+2,YX=rt(Cu,e=>{let t=e>-pI,n=e0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return{dataId:a,shape:e,dtype:t}}refCount(e){return this.data.has(e)?this.data.get(e).refCount:0}incRef(e){let t=this.data.get(e);t.refCount++}decRef(e){if(this.data.has(e)){let t=this.data.get(e);t.refCount--}}move(e,t,n,a,r){this.data.set(e,{values:t,dtype:a,refCount:r})}numDataIds(){return this.data.numDataIds()}async read(e){return this.readSync(e)}readSync(e){let{dtype:t,complexTensorInfos:n}=this.data.get(e);if(t==="complex64"){let a=this.readSync(n.real.dataId),r=this.readSync(n.imag.dataId);return N.mergeRealAndImagArrays(a,r)}return this.data.get(e).values}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(t,n,e),this)}disposeData(e,t=!1){if(this.data.has(e)){if(this.data.get(e).refCount--,!t&&this.data.get(e).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(e);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(e)}return!0}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(e){ge([e],"where");let t=this.readSync(e.dataId);return _j(e.shape,t)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};O0.nextDataId=0;var cC={};Ae(cC,{addImpl:()=>mC,bincountImpl:()=>z0,bincountReduceImpl:()=>fC,castImpl:()=>hC,ceilImpl:()=>gC,concatImpl:()=>W0,equalImpl:()=>yC,expImpl:()=>xC,expm1Impl:()=>wC,floorImpl:()=>kC,gatherNdImpl:()=>IC,gatherV2Impl:()=>SC,greaterEqualImpl:()=>NC,greaterImpl:()=>TC,lessEqualImpl:()=>EC,lessImpl:()=>CC,linSpaceImpl:()=>_C,logImpl:()=>AC,maxImpl:()=>$C,maximumImpl:()=>FC,minimumImpl:()=>DC,multiplyImpl:()=>B0,negImpl:()=>RC,notEqualImpl:()=>MC,prodImpl:()=>PC,raggedGatherImpl:()=>OC,raggedRangeImpl:()=>LC,raggedTensorToTensorImpl:()=>zC,rangeImpl:()=>U0,rsqrtImpl:()=>WC,scatterImpl:()=>dl,sigmoidImpl:()=>Iq,simpleAbsImpl:()=>dC,sliceImpl:()=>Qh,sparseFillEmptyRowsImpl:()=>VC,sparseReshapeImpl:()=>UC,sparseSegmentReductionImpl:()=>G0,sqrtImpl:()=>Nq,squaredDifferenceImpl:()=>GC,stridedSliceImpl:()=>HC,stringNGramsImpl:()=>H0,stringSplitImpl:()=>j0,stringToHashBucketFastImpl:()=>q0,subImpl:()=>jC,tileImpl:()=>qC,topKImpl:()=>XC,transposeImpl:()=>V0,uniqueImpl:()=>YC});function dC(e){let t=new Float32Array(e.length);for(let n=0;n{let{x:t}=e.inputs,n=e.backend;ge(t,"abs");let a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId).values;return a=dC(r),n.makeOutput(a,t.shape,t.dtype)},$j={kernelName:Pl,backendName:"cpu",kernelFunc:Aj};function Vt(e){return(t,n,a,r,s)=>{let i=N.assertAndGetBroadcastShape(t,n),o=i.length,l=v.computeStrides(i),u=v.sizeFromShape(i),p=v.getTypedArrayFromDType(s,u),d=t.length,c=n.length,h=v.computeStrides(t),m=v.computeStrides(n),f=N.getBroadcastDims(t,i),g=N.getBroadcastDims(n,i);if(f.length+g.length===0)for(let y=0;yx[C]=0);let w=v.locToIndex(x,d,h),I=b.slice(-c);g.forEach(C=>I[C]=0);let T=v.locToIndex(I,c,m);p[y]=e(a[w],r[T])}return[p,i]}}function Zn(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=n.makeTensorInfo(a.shape,"complex64"),l=n.data.get(o.dataId);return l.complexTensorInfos={real:n.makeTensorInfo(a.shape,"float32",s),imag:n.makeTensorInfo(r.shape,"float32",i)},o}var Fj={kernelName:fm,backendName:"cpu",kernelFunc:Zn};function Jh(e,t,n="float32"){if(n==="complex64"){let r=Jh(e,t,"float32"),s=Jh(e,t,"float32");return Zn({inputs:{real:r,imag:s},backend:e})}let a=v.makeZerosTypedArray(v.sizeFromShape(t),n);return e.makeTensorInfo(t,n,a)}function dr(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var Dj={kernelName:Li,backendName:"cpu",kernelFunc:dr};function hi(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.data.get(a.dataId).complexTensorInfos.real,s=n.data.get(r.dataId).values;return n.makeTensorInfo(r.shape,r.dtype,s)}var Rj={kernelName:Om,backendName:"cpu",kernelFunc:hi};function hC(e,t,n,a){if(a==="int32"){let r=Int32Array.from(e);return[t,"int32",r]}if(a==="bool"){let r=v.toTypedArray([0],n),[s,i]=Vt((o,l)=>o!==l?1:0)(t,[],e,r,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${n} to ${a}`)}function gs(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return dr({inputs:{x:r},backend:n});let p=Jh(n,r.shape,r.dtype),d=gs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),c=Zn({inputs:{real:d,imag:p},backend:n});return n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),c}if(r.dtype==="complex64"){let p=hi({inputs:{input:r},backend:n}),d=gs({inputs:{x:p},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(p),d}if(!v.hasEncodingLoss(r.dtype,s)){let p=dr({inputs:{x:r},backend:n});return{dataId:p.dataId,shape:p.shape,dtype:s}}let i=n.data.get(r.dataId).values,[o,l,u]=hC(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}var Mj={kernelName:Ii,backendName:"cpu",kernelFunc:gs};function rn(e,t,n,a){return n==null?({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;ge([i,o],e);let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=i.dtype==="string"?N.fromUint8ToStringArray(u):u,c=i.dtype==="string"?N.fromUint8ToStringArray(p):p,h=a||i.dtype,[m,f]=t(i.shape,o.shape,d,c,h);return l.makeTensorInfo(f,h,m)}:({inputs:r,backend:s})=>{let{a:i,b:o}=r,l=s;if(i.dtype==="complex64"||o.dtype==="complex64"){let u=gs({inputs:{x:i},backend:l,attrs:{dtype:"complex64"}}),p=l.data.get(u.dataId),d=p.complexTensorInfos.real,c=p.complexTensorInfos.imag,h=l.data.get(d.dataId).values,m=l.data.get(c.dataId).values,f=gs({inputs:{x:o},backend:l,attrs:{dtype:"complex64"}}),g=l.data.get(f.dataId),y=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,x=l.data.get(y.dataId).values,w=l.data.get(b.dataId).values,[I,T,C]=n(i.shape,o.shape,h,m,x,w),_=l.makeTensorInfo(C,"float32",I),$=l.makeTensorInfo(C,"float32",T),R=Zn({inputs:{real:_,imag:$},backend:l});return l.disposeIntermediateTensorInfo(u),l.disposeIntermediateTensorInfo(f),l.disposeIntermediateTensorInfo(_),l.disposeIntermediateTensorInfo($),R}else{let u=l.data.get(i.dataId).values,p=l.data.get(o.dataId).values,d=a||i.dtype,[c,h]=t(i.shape,o.shape,u,p,d);return l.makeTensorInfo(h,d,c)}}}function L0(e){return(t,n,a,r,s,i)=>{let o=N.assertAndGetBroadcastShape(t,n),l=v.sizeFromShape(o),u=o.length,p=v.computeStrides(o),d=v.getTypedArrayFromDType("float32",l),c=v.getTypedArrayFromDType("float32",l),h=N.getBroadcastDims(t,o),m=N.getBroadcastDims(n,o),f=N.mergeRealAndImagArrays(a,r),g=N.mergeRealAndImagArrays(s,i),y=t.length,b=v.computeStrides(t),x=n.length,w=v.computeStrides(n);if(h.length+m.length===0)for(let I=0;IC[S]=0);let _=v.locToIndex(C,y,b),$=T.slice(-x);m.forEach(S=>$[S]=0);let R=v.locToIndex($,x,w),F=e(f[_*2],f[_*2+1],g[R*2],g[R*2+1]);d[I]=F.real,c[I]=F.imag}return[d,c,o]}}var mC=Vt((e,t)=>e+t),Pj=L0((e,t,n,a)=>({real:e+n,imag:t+a})),$l=rn(vs,mC,Pj),Oj={kernelName:vs,backendName:"cpu",kernelFunc:$l};function z0(e,t,n,a,r){let s=v.sizeFromShape(a),i=v.makeZerosTypedArray(r,n);for(let o=0;o=r||(s>0?i[l]+=t[o]:i[l]+=1)}return i}function fC(e,t,n,a=!1){let r=e.shape[0],s=e.shape[1],i=Oe([r,n],t.dtype);for(let o=0;o=n||(a?i.set(1,o,u):t.size>0?i.set(i.get(o,u)+t.get(o,l),o,u):i.set(i.get(o,u)+1,o,u))}return i}function $s(e){return(t,n,a)=>{let r=v.getTypedArrayFromDType(n,t.length);for(let s=0;s{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=v.sizeFromShape(i.shape),p=n||i.dtype,d=v.getArrayFromDType(p,u);for(let c=0;c{let{x:i}=a;if(ge(i,e),i.dtype==="string"||n==="string")throw new Error("unaryKernelFunc does not support string input/output");let o=s,l=o.data.get(i.dataId).values,u=n||i.dtype,p=t(l,u,r);return o.makeTensorInfo(i.shape,u,p)}}var gC=$s(e=>Math.ceil(e)),Lj=Xu(Si,gC),zj={kernelName:Si,backendName:"cpu",kernelFunc:Lj};function W0(e,t,n,a){let r=v.getArrayFromDType(n,v.sizeFromShape(t));if(a&&n!=="string"){let s=0;e.forEach(i=>{let o=v.sizeFromShape(i.shape);r.set(i.vals,s),s+=o})}else{let s=0;e.forEach(i=>{let o=n==="string"?N.fromUint8ToStringArray(i.vals):i.vals,l=0;for(let u=0;ue===t?1:0),bC=rn(Jl,yC,null,"bool"),Wj={kernelName:Jl,backendName:"cpu",kernelFunc:bC},xC=$s(e=>Math.exp(e)),vC=Xu(Di,xC,"float32"),Bj={kernelName:Di,backendName:"cpu",kernelFunc:vC},wC=$s(e=>Math.expm1(e)),Vj=Xu(eu,wC),Uj={kernelName:eu,backendName:"cpu",kernelFunc:Vj},kC=$s(e=>Math.floor(e)),Gj=Xu(Ri,kC),Hj={kernelName:Ri,backendName:"cpu",kernelFunc:Gj};function IC(e,t,n,a,r,s,i,o,l){let u=Oe([a,s],n);for(let p=0;p=l/s)throw new Error(`Invalid indices: ${d} does not index into ${o}`);for(let h=0;he>t?1:0),jj=rn(ru,TC,null,"bool"),qj={kernelName:ru,backendName:"cpu",kernelFunc:jj},NC=Vt((e,t)=>e>=t?1:0),Kj=rn(Oi,NC,null,"bool"),Xj={kernelName:Oi,backendName:"cpu",kernelFunc:Kj},CC=Vt((e,t)=>ee<=t?1:0),Jj=rn(lu,EC,null,"bool"),Qj={kernelName:lu,backendName:"cpu",kernelFunc:Jj};function _C(e,t,n){let a=(t-e)/(n-1),r=v.makeZerosTypedArray(n,"float32");r[0]=e;for(let s=1;sMath.log(e)),eq=Xu(Bi,AC),tq={kernelName:Bi,backendName:"cpu",kernelFunc:eq};function $C(e,t,n,a){let r=v.getTypedArrayFromDType(a,v.sizeFromShape(n));for(let s=0;so)&&(o=u)}r[s]=o}return r}var FC=Vt((e,t)=>Math.max(e,t)),nq=rn(Ui,FC),aq={kernelName:Ui,backendName:"cpu",kernelFunc:nq},DC=Vt((e,t)=>Math.min(e,t)),rq=rn(qi,DC),sq={kernelName:qi,backendName:"cpu",kernelFunc:rq},B0=Vt((e,t)=>e*t),iq=L0((e,t,n,a)=>({real:e*n-t*a,imag:e*a+t*n})),Kf=rn(Xi,B0,iq),oq={kernelName:Xi,backendName:"cpu",kernelFunc:Kf};function RC(e,t,n){let a=v.createScalarValue(-1,n);return B0([],t,a,e,n)}function lq(e){let{inputs:t,backend:n}=e,{x:a}=t;ge(a,"neg");let r=n.data.get(a.dataId).values,[s,i]=RC(r,a.shape,a.dtype);return n.makeTensorInfo(i,a.dtype,s)}var uq={kernelName:mu,backendName:"cpu",kernelFunc:lq},MC=Vt((e,t)=>e!==t?1:0),pq=rn(fu,MC,null,"bool"),cq={kernelName:fu,backendName:"cpu",kernelFunc:pq};function V0(e,t,n,a,r){let s=t.length,i=v.sizeFromShape(t),o=v.computeStrides(t),l=v.computeStrides(r),u=v.getTypedArrayFromDType(n,v.sizeFromShape(r));for(let p=0;pn.disposeIntermediateTensorInfo(b)),n.makeTensorInfo(y,g,m)}var mq={kernelName:eo,backendName:"cpu",kernelFunc:hq};function fq(e,t,n){e.forEach((a,r)=>{if(a<0||a>=n){let s=v.indexToLoc(r,t.length,v.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${a} is not in [0, ${n})`)}})}function gq(e,t){for(let n=0;nr)throw new Error("Ragged splits must not point past values");for(let s=1;sa[s])throw new Error("Ragged splits must be sorted in ascending order")}}function yq(e,t,n,a){let r=[],s=0,i=t.length-1+n.length,o=new Array(i).fill(null).map(()=>[0]);gq(n,a);let l=1;for(let u=0;u=0){let f=o[m],g=f[f.length-1]-h[p];for(let y=p;yr[i]=s)}return t}function uI(e,t){let n=e.slice(0,t);for(;n.length1)throw new Error("starts must be a scalar or vector");if(r.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let o=t.length===0,l=r.length===0,u=i.length===0,p=[];o||p.push(t[0]),l||p.push(r[0]),u||p.push(i[0]);for(let g=1;g0&&by)w=0;else if(w=Math.ceil(Math.abs((b-y)/x)),w>pI)throw new Error(`Requires ((limit - start) / delta) <= ${pI}`);c[g+1]=c[g]+w}let h=c[d],m=v.getArrayFromDType(n,h),f=0;for(let g=0;gn&&(n=r)}return n}static getMaxWidthValueRowID(e){let t=e.length;if(t===0)return 0;let n=0,a=e[0],r=0;for(let s=1;s"Final length of result must be equal to firstDimension."),r}calculateOutputIndexRowSplit(e,t,n,a){let r=e.length,s=[];for(let i=0;i0&&s.length!==e[r-1])throw new Error("Invalid row split size.");return s}calculateOutputIndexValueRowID(e,t,n,a){let r=e.length,s=[];if(r===0)return[];let i=0,o=e[0];if(o>=t.length)throw new Error(`Got currentValueRowId=${o}, which is not less than ${t.length}`);let l=t[o];s.push(l);for(let u=1;u=0&&(++i,i=t.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${t.length}`);l=t[p]}s.push(l)}if(s.length!==e.length)throw new Error("Invalid row ids.");return s}calculateOutputIndex(e,t,n,a){let r=this.getRowPartitionTensor(e),s=this.getRowPartitionTypeByDimension(e);switch(s){case Na.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(r,t,n,a);case Na.ROW_SPLITS:if(r.length-1>t.length)throw new Error(`Row partition size is greater than output size: ${r.length-1} > ${t.length}`);return this.calculateOutputIndexRowSplit(r,t,n,a);default:throw new Error(`Unsupported partition type: ${Na[s]}`)}}getFirstDimensionSize(){let e=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let t=this.rowPartitionTypes[0];switch(t){case Na.FIRST_DIM_SIZE:return e[0];case Na.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Na.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Na[t]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),t=this.calculateOutputSize(e),n=new Array(this.raggedRank+1);n[n.length-1]=1;for(let s=n.length-2;s>=0;--s)n[s]=n[s+1]*t[s+1];let a=dI(t,!1),r=v.getArrayFromDType(this.valuesDType,v.sizeFromShape(a));if(n[0]*t[0]>0){let s=this.calculateFirstParentOutputIndex(e,n[0],t[0]);for(let i=1;i<=this.raggedRank;++i)s=this.calculateOutputIndex(i-1,s,n[i],t[i]);this.setOutput(this.raggedRank,s,r,a)}return[a,r]}setOutput(e,t,n,a){if(n.length===0)return;let r=this.values,s=n,i=a.slice();i=i.slice(e+1);let o=v.sizeFromShape(i),l=t.length,u=this.defaultValue;if(u.length!==o&&u.length!==1){let h=this.defaultValueShape;P(()=>{let m=W(u,h);u=Js(m,i).dataSync()})}let p=0,d=0,c=0;for(let h=0;h<=l;++h){let m=h=l){let f=n.length;m=Math.floor(f/o)}if(m>c)if(this.defaultValue.length===1)s.subarray(c*o,m*o).fill(this.defaultValue[0]),c=m;else for(;m>c;){let f=s.slice(c*o);cI(f,u,o),++c}m<0?(p=h+1,d=c):(p=h,d=c,c=d+1)}}};function cI(e,t,n){for(let a=0;a= 0`);if(a<-1)throw new Error(`Dimension ${a} must be >= -1`);a=-1}n.push(a)}return n}function zC(e,t,n,a,r,s,i,o,l,u){return new fx(e,t,n,a,r,s,i,o,l,u).compute()}function U0(e,t,n,a){let r=e===t,s=e1;if(r||s||i)return v.makeZerosTypedArray(0,a);let o=Math.abs(Math.ceil((t-e)/n)),l=v.makeZerosTypedArray(o,a);t1/Math.sqrt(e)),wq=Xu(lo,WC),kq={kernelName:lo,backendName:"cpu",kernelFunc:wq};function dl(e,t,n,a,r,s,i,o,l,u){let p=[a/r,r],d=e.values,c=t.values;if(a===0)return Oe(n,t.dtype);let h=Oe(p,t.dtype);typeof l=="string"||typeof l=="number"?h.values.fill(l):typeof l=="boolean"&&h.values.fill(+l);for(let m=0;m=a/r)throw new Error(`Invalid indices: ${f} does not index into ${n}`);for(let y=0;y1/(1+Math.exp(-e))),BC=rt(po,e=>1/(1+Math.exp(-e))),Sq={kernelName:po,backendName:"cpu",kernelFunc:BC};function Qh(e,t,n,a,r){let s=Kt.isSliceContinous(a,t,n),i=v.sizeFromShape(n),o=v.computeStrides(a);if(s){let d=Kt.computeFlatOffset(t,o);return r==="string"?e.slice(d,d+i):e.subarray(d,d+i)}let l=r==="string"?N.fromUint8ToStringArray(e):e,u=Oe(a,r,l),p=Oe(n,r);for(let d=0;dm+t[f]);p.set(u.get(...h),...c)}return r==="string"?N.fromStringArrayToUint8(p.values):p.values}function mi(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a;ge(r,"slice");let[o,l]=Kt.parseSliceParams(r,s,i);Kt.assertParamsValid(r,o,l);let u=n.data.get(r.dataId).values,p=Qh(u,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,p)}var Tq={kernelName:Tu,backendName:"cpu",kernelFunc:mi};function VC(e,t,n,a,r,s,i){let o=t[0],l=s[0],u=new Array(l),p=new Array(o),d=t[1];if(l===0){if(o!==0)throw new Error(N.getSparseFillEmptyRowsIndicesDenseShapeMismatch(o));let g=v.getArrayFromDType(n,0),y=v.getArrayFromDType(r,0);return[g,[0,d],y,u,p]}let c=!0,h=0,m=new Array(l).fill(0);for(let g=0;g=l)throw new Error(N.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,y,l));++m[y],c=c&&y>=h,h=y}let f=!0;for(let g=0;g0&&(m[g]+=m[g-1])}if(f&&c){let g=e,y=a;for(let b=0;b0){c[d-1]=1;for(let f=d-2;f>=0;--f)c[f]=c[f+1]*a[f+1]}let h=[];if(o>0){h[o-1]=1;for(let f=o-2;f>=0;--f)h[f]=h[f+1]*l[f+1]}let m=v.getArrayFromDType(n,i*o);for(let f=0;f0?r[o-1]+1:0;if(p<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let d=t.slice();d[0]=p;let c=d.reduce((b,x)=>b*x,1),h=v.getArrayFromDType(n,c);if(o===0)return p>0&&h.fill(i),[h,d];if(p<=0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=0,f=1,g=0,y=r[m];for(;;){let b=0;if(f=b)throw new Error(N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(y<0||y>=p)throw new Error(N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(y,p));y>g&&h.fill(i,g*u,y*u);for(let x=m;x=l[0])throw new Error(N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(x,a[x],l[0]));for(let I=0;Io)break}return gMath.sqrt(e)),Cq=rt(co,e=>Math.sqrt(e)),Eq={kernelName:co,backendName:"cpu",kernelFunc:Cq},GC=Vt((e,t)=>{let n=e-t;return n*n}),_q=rn(fo,GC),Aq={kernelName:fo,backendName:"cpu",kernelFunc:_q};function HC(e,t,n,a){let r=Oe(e,t.dtype);for(let s=0;s0?0:i-o),c=0;c+=l*this.leftPad.length;for(let y=0;yy.forEach(b=>m[f++]=b);for(let y=0;y0){g(e[d+p-1]);for(let y=0;y0){let o=t[0];if(o!==0)throw new Error(`First split value must be 0, got ${o}`);for(let l=1;l=o;if(u=u&&t[l]<=n,!u)throw new Error(`Invalid split value ${t[l]}, must be in [${o}, ${n}]`);o=t[l]}if(o!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${o}`)}let r=a-1,s=v.getArrayFromDType("int32",a);if(n===0||a===0){let o=new Array(n);for(let l=0;l<=r;++l)s[l]=0;return[o,s]}s[0]=0;for(let o=1;o<=r;++o){let l=t[o]-t[o-1],u=0;this.nGramWidths.forEach(p=>{u+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&u===0&&(u=1),s[o]=s[o-1]+u}let i=new Array(s[r]);for(let o=0;o{let d=t[o+1]-t[o],c=this.getNumNGrams(d,p);this.createNGrams(e,l,i,u,c,p),u+=c}),this.preserveShort&&u===s[o]){let p=t[o+1]-t[o];if(p===0)continue;let d=p+2*this.padWidth,c=1;this.createNGrams(e,l,i,u,c,d)}}return[i,s]}};function H0(e,t,n,a,r,s,i,o){return new $q(n,a,r,s,i,o).compute(e,t)}function Fq(e,t,n,a){if(!e.length)return;if(t.length===0){for(let s=0;se-t),Dq=L0((e,t,n,a)=>({real:e-n,imag:t-a})),K0=rn(go,jC,Dq),Rq={kernelName:go,backendName:"cpu",kernelFunc:K0};function qC(e,t){let n=new Array(e.rank);for(let r=0;r{let n=t.value-e.value;return n===0?e.index-t.index:n};function KC(e,t,n=0,a=e.length-1){for(;a>n;){if(a-n>600){let o=a-n+1,l=t-n+1,u=Math.log(o),p=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*p*(o-p)/o)*Math.sign(l-o/2),c=Math.max(n,Math.floor(t-l*p/o+d)),h=Math.min(a,Math.floor(t+(o-l)*p/o+d));KC(e,t,c,h)}let r=e[t],s=n,i=a;for(v.swap(e,n,t),Lp(e[a],r)>0&&v.swap(e,n,a);s0;)i=i-1}Lp(e[n],r)===0?v.swap(e,n,i):(i=i+1,v.swap(e,i,a)),i<=t&&(n=i+1),t<=i&&(a=i-1)}}function XC(e,t,n,a,r){let s=t[t.length-1],[i,o]=[e.length/s,s],l=v.getTypedArrayFromDType(n,i*a),u=v.getTypedArrayFromDType("int32",i*a);for(let d=0;dm[x]={value:b,index:x}),a{for(let g=0;gnew O0,1);var ZC=rt(Fi,e=>e>=0?e:Math.exp(e)-1),Mq={kernelName:Fi,backendName:"cpu",kernelFunc:ZC};function JC(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a;ge([r],"leakyRelu");let i=v.sizeFromShape(r.shape),o=n.data.get(r.dataId).values,l=v.getTypedArrayFromDType("float32",i);for(let u=0;ue<0?t*e:e);function QC(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t;ge([a,r],"prelu");let s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,[o,l]=Oq(a.shape,r.shape,s,i,"float32");return n.makeTensorInfo(l,"float32",o)}var Lq={kernelName:Qi,backendName:"cpu",kernelFunc:QC},eE=rt(no,e=>Math.max(0,e)),zq={kernelName:no,backendName:"cpu",kernelFunc:eE},tE=rt(so,e=>Math.min(Math.max(0,e),6)),Wq={kernelName:so,backendName:"cpu",kernelFunc:tE};function em(e,t,n,a,r){if(n==="linear")return dr({inputs:{x:t},backend:e});if(n==="relu")return eE({inputs:{x:t},backend:e});if(n==="elu")return ZC({inputs:{x:t},backend:e});if(n==="relu6")return tE({inputs:{x:t},backend:e});if(n==="prelu")return QC({inputs:{x:t,alpha:a},backend:e});if(n==="leakyrelu")return JC({inputs:{x:t},backend:e,attrs:{alpha:r}});if(n==="sigmoid")return BC({inputs:{x:t},backend:e});throw new Error(`Activation ${n} has not been implemented for the CPU backend.`)}function ft(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=v.sizeFromShape(r.shape),o=v.inferFromImplicitShape(s,i),l=v.sizeFromShape(o);v.assert(i===l,()=>`The new shape (${o}) has ${l} elements and the old shape (${r.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),n.incRef(r.dataId);let u=n.data.get(r.dataId);if(u.complexTensorInfos!=null){let p=u.complexTensorInfos.real,d=u.complexTensorInfos.imag;p.shape=o,d.shape=o}return{dataId:r.dataId,shape:o,dtype:r.dtype}}var Bq={kernelName:wu,backendName:"cpu",kernelFunc:ft};function nE(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;ge([r,s],"matMul");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Lu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=ft({inputs:{x:r},backend:n,attrs:{shape:x}}),T=ft({inputs:{x:s},backend:n,attrs:{shape:w}}),C=i?I.shape[1]:I.shape[2],_=i?I.shape[2]:I.shape[1],$=o?T.shape[1]:T.shape[2],R=Math.max(g,y),F=n.data.get(I.dataId).values,S=n.data.get(T.dataId).values,M=v.computeStrides(I.shape),B=v.computeStrides(T.shape),[U,G,q]=i?[M[0],1,M[1]]:[M[0],M[1],1],[K,Z,J]=o?[1,B[1],B[0]]:[B[1],1,B[0]],ee=_*$,ae=Oe([R,_,$],I.dtype),te=ae.values,ie=n.blockSize;for(let oe=0;oeMath.acos(e)),jq={kernelName:Ol,backendName:"cpu",kernelFunc:Hq},qq=rt(Ll,e=>Math.acosh(e)),Kq={kernelName:Ll,backendName:"cpu",kernelFunc:qq};function Xq(e){let{inputs:t,backend:n}=e,a=t;ge(t,"addN");let r=a.map(o=>n.data.get(o.dataId).values),s=Oe(a[0].shape,a[0].dtype),i=s.values;for(let o=0;ob&&(b=I,x=w)}h[g]=x}return u.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var n5={kernelName:vi,backendName:"cpu",kernelFunc:t5};function a5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a;ge(r,"argMin");let i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Vn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),i=[i[0]],N.assertAxesAreInnerMostDims("argMin",i,l.shape.length);let[p,d]=N.computeOutAndReduceShapes(l.shape,i),c=v.sizeFromShape(p),h=v.makeZerosTypedArray(c,"int32"),m=v.sizeFromShape(d),f=n.data.get(l.dataId).values;for(let g=0;gn.disposeIntermediateTensorInfo(g)),n.makeTensorInfo(p,"int32",h)}var r5={kernelName:dc,backendName:"cpu",kernelFunc:a5},s5=rt(Bl,e=>Math.asin(e)),i5={kernelName:Bl,backendName:"cpu",kernelFunc:s5},o5=rt(Vl,e=>Math.asinh(e)),l5={kernelName:Vl,backendName:"cpu",kernelFunc:o5},u5=rt(Ul,e=>Math.atan(e)),p5={kernelName:Ul,backendName:"cpu",kernelFunc:u5},c5=Vt((e,t)=>Math.atan2(e,t)),d5=rn(Hl,c5),h5={kernelName:Hl,backendName:"cpu",kernelFunc:d5},m5=rt(Gl,e=>Math.atanh(e)),f5={kernelName:Gl,backendName:"cpu",kernelFunc:m5};function X0(e,t,n,a,r,s){let i=r.strideHeight,o=r.strideWidth,l=r.dilationHeight,u=r.dilationWidth,p=r.effectiveFilterHeight,d=r.effectiveFilterWidth,c=r.padInfo.top,h=r.padInfo.left,m=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,f=Oe(r.outShape,n),g=f.values,y=r.outShape[1]*r.outShape[2]*r.outShape[3],b=r.outShape[2]*r.outShape[3],x=r.outShape[3];for(let w=0;wq?q=oe:s==="avg"&&(K+=oe,Z++)}if(isNaN(q))break}let J=S+M*x+C;g[J]=s==="avg"?K/Z:q}}}return f}function aE(e,t,n,a,r=!1,s=!1){let i=Oe(a.outShape,"int32"),o=a.strideHeight,l=a.strideWidth,u=a.dilationHeight,p=a.dilationWidth,d=a.effectiveFilterHeight,c=a.effectiveFilterWidth,h=a.padInfo.top,m=a.padInfo.left,f=Oe(t,n,e);for(let g=0;gR&&(R=G,r?F=s?((g*a.inHeight+S)*a.inWidth+B)*a.inChannels+y:(S*a.inWidth+B)*a.inChannels+y:F=M*c+U)}}i.set(F,g,b,T,y)}}return i}function rE(e,t,n,a,r,s){let i=r.strideDepth,o=r.strideHeight,l=r.strideWidth,u=r.dilationDepth,p=r.dilationHeight,d=r.dilationWidth,c=r.effectiveFilterDepth,h=r.effectiveFilterHeight,m=r.effectiveFilterWidth,f=r.padInfo.front,g=r.padInfo.top,y=r.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,x=Oe(r.outShape,n),w=x.values,I=r.outShape[1]*r.outShape[2]*r.outShape[3]*r.outShape[4],T=r.outShape[2]*r.outShape[3]*r.outShape[4],C=r.outShape[3]*r.outShape[4],_=r.outShape[4];for(let $=0;$be?be=dt:s==="avg"&&(ke+=dt,Se++),isNaN(be))break}if(isNaN(be))break}if(isNaN(be))break}let Le=ue+S;w[Le]=s==="avg"?ke/Se:be}}}}return x}function g5(e,t){let n=Oe(t.outShape,"int32"),a=t.strideDepth,r=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,o=t.dilationHeight,l=t.dilationWidth,u=t.effectiveFilterDepth,p=t.effectiveFilterHeight,d=t.effectiveFilterWidth,c=t.padInfo.front,h=t.padInfo.top,m=t.padInfo.left;for(let f=0;f=M&&(M=ee,B=G*p*d+K*p+J)}}}n.set(B,f,y,I,$,g)}}}return n}function y5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;ge(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=X0(c,r.shape,r.dtype,h,p,"avg");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var b5={kernelName:wi,backendName:"cpu",kernelFunc:y5};function x5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"avgPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=rE(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"avg");return n.makeTensorInfo(c.shape,"float32",c.values)}var v5={kernelName:hc,backendName:"cpu",kernelFunc:x5};function w5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"avgPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=p.strideDepth,c=p.strideHeight,h=p.strideWidth,m=p.filterDepth,f=p.filterHeight,g=p.filterWidth,y=p.dilationDepth,b=p.dilationHeight,x=p.dilationWidth,w=p.effectiveFilterDepth,I=p.effectiveFilterHeight,T=p.effectiveFilterWidth,C=w-1-p.padInfo.front,_=T-1-p.padInfo.left,$=I-1-p.padInfo.top,R=Oe(s.shape,"float32"),F=1/(m*f*g),S=n.bufferSync(r);for(let M=0;M=p.outDepth||Math.floor(te)!==te))for(let ie=0;ie=p.outHeight||Math.floor(oe)!==oe))for(let ye=0;ye=p.outWidth||Math.floor(ue)!==ue)continue;let be=S.get(M,te,oe,ue,B);ee+=be}}}R.set(ee*F,M,U,G,q,B)}return n.makeTensorInfo(R.shape,R.dtype,R.values)}var k5={kernelName:dm,backendName:"cpu",kernelFunc:w5};function I5(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;ge([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=p.strideHeight,c=p.strideWidth,h=p.filterHeight,m=p.filterWidth,f=p.dilationHeight,g=p.dilationWidth,y=p.effectiveFilterHeight,b=p.effectiveFilterWidth,x=b-1-p.padInfo.left,w=y-1-p.padInfo.top,I=Oe(i.shape,"float32"),T=1/(h*m),C=n.data.get(r.dataId).values,_=Oe(r.shape,"float32",C);for(let $=0;$=p.outHeight||Math.floor(q)!==q))for(let K=0;K=p.outWidth||Math.floor(Z)!==Z)continue;let J=_.get($,q,Z,R);U+=J}}I.set(U*T,$,F,S,R)}return n.makeTensorInfo(I.shape,I.dtype,I.values)}var S5={kernelName:cm,backendName:"cpu",kernelFunc:I5};function T5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,scale:s,offset:i,mean:o,variance:l}=t;v.assert(o.shape.length===l.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(s==null||o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),ge([r,o,l,s,i],"batchNorm");let{varianceEpsilon:u}=a;u==null&&(u=.001);let p=n.data.get(r.dataId).values,d=n.data.get(o.dataId).values,c=n.data.get(l.dataId).values,h=s?n.data.get(s.dataId).values:new Float32Array([1]),m=i?n.data.get(i.dataId).values:new Float32Array([0]),f=new Float32Array(p.length),g=m.length,y=h.length,b=c.length,x=d.length,w=0,I=0,T=0,C=0;for(let _=0;_=g&&(w=0),I>=x&&(I=0),T>=y&&(T=0),C>=b&&(C=0);return n.makeTensorInfo(r.shape,r.dtype,f)}var N5={kernelName:Pi,backendName:"cpu",kernelFunc:T5};function C5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;ge([r],"batchToSpaceND");let o=s.reduce((y,b)=>y*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=ft({inputs:{x:r},backend:n,attrs:{shape:l}}),m=Vn({inputs:{x:h},backend:n,attrs:{perm:u}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=mi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var E5={kernelName:jl,backendName:"cpu",kernelFunc:C5};function _5(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,u=z0(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var A5={kernelName:hm,backendName:"cpu",kernelFunc:_5};function $5(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.data.get(a.dataId).values,i=n.data.get(r.dataId).values,o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var F5={kernelName:mm,backendName:"cpu",kernelFunc:$5},D5=rt(ws,(e,t)=>{let n=t;return e>n.clipValueMax?n.clipValueMax:e{let{x:t}=e.inputs,n=e.backend,a=new Float32Array(v.sizeFromShape(t.shape)),r=n.data.get(t.dataId),s=r.complexTensorInfos.real,i=r.complexTensorInfos.imag,o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values;for(let u=0;uf.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(f=>f.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(f=>v.sizeFromShape(f.shape)>0);if(l.length===1)return dr({inputs:{x:l[0]},backend:n});if(l[0].dtype==="complex64"){let f=l.map(w=>hi({inputs:{input:w},backend:n})),g=l.map(w=>Fl({inputs:{input:w},backend:n})),y=Dl({inputs:f,backend:n,attrs:{axis:s}}),b=Dl({inputs:g,backend:n,attrs:{axis:s}}),x=Zn({inputs:{real:y,imag:b},backend:n});return f.forEach(w=>n.disposeIntermediateTensorInfo(w)),g.forEach(w=>n.disposeIntermediateTensorInfo(w)),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(b),x}let u=l.map(f=>{let g=[-1,v.sizeFromShape(f.shape.slice(s))];return ft({inputs:{x:f},backend:n,attrs:{shape:g}})}),p=u.map(f=>({vals:n.data.get(f.dataId).values,shape:f.shape}));o=N.computeOutShape(u.map(f=>f.shape),1);let d=u[0].shape[0]===1,c=W0(p,o,t[0].dtype,d),h=N.computeOutShape(l.map(f=>f.shape),s),m=n.makeTensorInfo(h,t[0].dtype,c);return u.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var L5={kernelName:ql,backendName:"cpu",kernelFunc:Dl};function sE(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a;ge([r,s],"conv2d");let d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h=c.filterHeight,m=c.filterWidth,f=c.dilationHeight,g=c.dilationWidth,y=c.padInfo.left,b=c.padInfo.top,x=c.dataFormat==="channelsLast",w=new qt(c.outShape,r.dtype),I=v.computeStrides(r.shape),T=v.computeStrides(s.shape),C=I[0],_=x?I[1]:I[2],$=x?I[2]:1,R=x?1:I[1],F=w.strides[0],S=x?w.strides[1]:w.strides[2],M=x?w.strides[2]:1,B=x?1:w.strides[1],U=n.data.get(r.dataId).values,G=n.data.get(s.dataId).values,q=w.values;for(let K=0;K=c.inHeight)continue;let ye=ie*T[0],ue=Z+oe*_;for(let be=0;be=c.inWidth)continue;let nt=ye+Le*T[1],it=ue+Ue*$,tt=nt;for(let at=0;at=u.inDepth)continue;let K=G*$[0],Z=F+q*_[1];for(let J=0;J=u.inHeight)continue;let oe=K+te*$[1],ye=Z+ie*_[2];for(let ue=0;ue=u.inWidth)continue;let Ue=oe+Se*$[2],nt=ye+Le*u.inChannels,it=Ue;for(let tt=0;ttMath.cos(e)),Z5={kernelName:Ci,backendName:"cpu",kernelFunc:Y5},J5=rt(Ei,e=>Math.cosh(e)),Q5={kernelName:Ei,backendName:"cpu",kernelFunc:J5};function e8(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,[p,d,c,h]=r.shape,m=s.shape[0],[f,g]=o,y=Oe([m,f,g,h],"float32"),b=n.data.get(s.dataId).values,x=n.data.get(i.dataId).values,w=n.data.get(r.dataId).values,I=v.computeStrides(r.shape),T=v.computeStrides(y.shape);for(let C=0;C=p)continue;let B=f>1?(F-$)*(d-1)/(f-1):0,U=g>1?(S-R)*(c-1)/(g-1):0;for(let G=0;G1?$*(d-1)+G*B:.5*($+F)*(d-1);if(q<0||q>d-1){for(let K=0;K1?R*(c-1)+ee*U:.5*(R+S)*(c-1);if(ae<0||ae>c-1){for(let ye=0;ye1?R*(c-1)+K*U:.5*(R+S)*(c-1);if(Z<0||Z>c-1){for(let ae=0;aey+m-b-1:(y,b)=>y+b;for(let y=0;yy+m-b-1:(y,b)=>y+b;for(let y=0;y`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let o=r.shape[0],l=r.shape[1],u=r.shape[2],p=r.shape[3],d=l*s,c=u*s,h=p/(s*s),m=n.data.get(r.dataId).values,f=new Float32Array(o*d*c*h),g=0;for(let y=0;y`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let h=N.computeConv2DInfo(r.shape,s.shape,i,c,o,u,!0),{filterHeight:m,filterWidth:f,dilationHeight:g,dilationWidth:y,padInfo:b}=h,x=b.left,w=b.top,I=h.outChannels/h.inChannels,T=new qt(h.outShape,r.dtype),C=n.data.get(r.dataId).values,_=n.data.get(s.dataId).values,$=T.values;for(let R=0;R=h.inHeight)continue;let K=G*d[0],Z=F+q*p[1];for(let J=0;J=h.inWidth)continue;let oe=K+te*d[1],ye=Z+ie*h.inChannels,ue=ee,be=oe;for(let ke=0;ke{let{x:a,filter:r}=e,{strides:s,pad:i,dilations:o}=n,l=t,u=l.data.get(a.dataId).values,p=a.shape.length,d=l.data.get(r.dataId).values,c=r.shape.length,{batchSize:h,inHeight:m,inWidth:f,inChannels:g,outHeight:y,outWidth:b,padInfo:x,strideHeight:w,strideWidth:I,filterHeight:T,filterWidth:C,dilationHeight:_,dilationWidth:$,outShape:R}=N.computeDilation2DInfo(a.shape,r.shape,s,i,"NHWC",o),F=v.sizeFromShape(R),S=R.length,M=v.getArrayFromDType(a.dtype,F);for(let B=0;B=0&&te=0&&oeJ&&(J=be)}}}let ee=v.locToIndex([B,U,q,Z],S,v.computeStrides(R));M[ee]=J}}}return{dataId:l.write(v.toTypedArray(M,a.dtype),R,a.dtype),shape:R,dtype:a.dtype}}},b8={kernelName:Fh,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:_,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${Fh}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(r.shape,r.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ee,J=te)}}}F[Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),r.shape,r.dtype),shape:r.shape,dtype:r.dtype}}},x8={kernelName:$h,backendName:"cpu",kernelFunc:({inputs:e,backend:t,attrs:n})=>{let{x:a,filter:r,dy:s}=e,{strides:i,pad:o,dilations:l}=n,u=t,p=v.toNestedArray(a.shape,u.data.get(a.dataId).values),d=v.toNestedArray(r.shape,u.data.get(r.dataId).values),{batchSize:c,inHeight:h,inWidth:m,inChannels:f,outHeight:g,outWidth:y,padInfo:b,strideHeight:x,strideWidth:w,filterHeight:I,filterWidth:T,dilationHeight:C,dilationWidth:_,outShape:$}=N.computeDilation2DInfo(a.shape,r.shape,i,o,"NHWC",l);v.assert(s.rank===$.length,()=>`Error in ${$h}, dy must have the same rank as output ${$.length}, but got ${s.rank}`);let R=v.toNestedArray($,u.data.get(s.dataId).values),F=v.makeZerosNestedTypedArray(a.shape,a.dtype);for(let S=0;S=0&&ae=0&&ieK&&(K=oe,Z=ae,J=ie)}}}F[S][Z][J][q]+=R[S][M][U][q]}}}return{dataId:u.write(v.toTypedArray(F,a.dtype),a.shape,a.dtype),shape:a.shape,dtype:a.dtype}}};function id(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"sum");let o;r.dtype==="bool"?o=gs({inputs:{x:r},backend:n,attrs:{dtype:"int32"}}):o=dr({inputs:{x:r},backend:n});let l=o.shape.length,u=v.parseAxisParam(s,o.shape),p=N.getAxesPermutation(u,l),d=u,c=o;p!=null&&(c=Vn({inputs:{x:o},backend:n,attrs:{perm:p}}),d=N.getInnerMostAxes(d.length,l)),N.assertAxesAreInnerMostDims("sum",d,c.shape.length);let[h,m]=N.computeOutAndReduceShapes(c.shape,d),f=N.upcastType(c.dtype,"int32"),g=Jh(n,h,f),y=v.sizeFromShape(m),b=n.data.get(g.dataId).values,x=n.data.get(c.dataId).values;for(let w=0;w=0&&(c=id({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var k8={kernelName:Im,backendName:"cpu",kernelFunc:w8};function I8(e){let{inputs:t,backend:n}=e,{dy:a,y:r}=t;ge([a,r],"eluGrad");let s=new Float32Array(v.sizeFromShape(r.shape)),i=n.data.get(r.dataId).values,o=n.data.get(a.dataId).values;for(let l=0;l=1?s[l]=o[l]:s[l]=o[l]*(u+1)}return n.makeTensorInfo(r.shape,"float32",s)}var S8={kernelName:Sm,backendName:"cpu",kernelFunc:I8},T8=N.ERF_P,N8=N.ERF_A1,C8=N.ERF_A2,E8=N.ERF_A3,_8=N.ERF_A4,A8=N.ERF_A5,$8=rt(Zl,e=>{let t=Math.sign(e),n=Math.abs(e),a=1/(1+T8*n);return t*(1-((((A8*a+_8)*a+E8)*a+C8)*a+N8)*a*Math.exp(-n*n))}),F8={kernelName:Zl,backendName:"cpu",kernelFunc:$8};function tm(e){let{inputs:t,backend:n,attrs:a}=e,{input:r}=t,{dim:s}=a,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),ft({inputs:{x:r},backend:n,attrs:{shape:o}})}var D8={kernelName:Ql,backendName:"cpu",kernelFunc:tm},R8=Vt((e,t)=>e/t),Y0=rn($i,R8),gx={kernelName:$i,backendName:"cpu",kernelFunc:Y0};function oE(e,t,n){let a=e.shape,r=a[0],s=a[1],i=n.data.get(e.dataId),o=i.complexTensorInfos.real,l=i.complexTensorInfos.imag,u=[r,s],p=v.sizeFromShape(u),d=v.getTypedArrayFromDType("float32",p),c=v.getTypedArrayFromDType("float32",p);for(let g=0;g{let{image:a}=e,r=n,s=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[i,o,l,u]=a.shape,p=r.data.get(a.dataId).values;for(let d=0;d=0&&bMath.floor(e/t)),G8=rn(Mi,U8,null,"int32"),H8={kernelName:Mi,backendName:"cpu",kernelFunc:G8};function j8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=sE({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;if(p==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let y=ft({inputs:{x:i},backend:n,attrs:{shape:[i.shape[0],1,1]}});f=$l({inputs:{a:f,b:y},backend:n}),n.disposeIntermediateTensorInfo(y)}else f=$l({inputs:{a:f,b:i},backend:n});n.disposeIntermediateTensorInfo(g)}if(h){let g=f;if(p==="NCHW"&&h==="prelu"&&o.shape.length===1&&o.shape[0]!==1){let y=ft({inputs:{x:o},backend:n,attrs:{shape:[o.shape[0],1,1]}});f=em(n,f,h,y,m),n.disposeIntermediateTensorInfo(y)}else f=em(n,f,h,o,m);n.disposeIntermediateTensorInfo(g)}return f}var q8={kernelName:ai,backendName:"cpu",kernelFunc:j8};function K8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=iE({inputs:{x:r,filter:s},backend:n,attrs:{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c}});if(i){let g=f;f=$l({inputs:{a:f,b:i},backend:n}),n.disposeIntermediateTensorInfo(g)}if(h){let g=f;f=em(n,f,h,o,m),n.disposeIntermediateTensorInfo(g)}return f}var X8={kernelName:ri,backendName:"cpu",kernelFunc:K8};function Y8(e){let{inputs:t,backend:n}=e,{params:a,indices:r}=t,s=v.sizeFromShape(a.shape),i=r.shape,o=i[i.length-1],[l,u,p,d]=N.prepareAndValidate(a,r);if(u===0)return n.makeTensorInfo(l,a.dtype,[]);let c=n.data.get(r.dataId).values,h=n.bufferSync(a),m=IC(c,h,a.dtype,u,o,p,d,a.shape,s);return n.makeTensorInfo(l,a.dtype,m.values)}var Z8={kernelName:au,backendName:"cpu",kernelFunc:Y8};function J8(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,indices:s}=t,{axis:i,batchDims:o}=a;ge([r,s],"gatherV2");let l=v.parseAxisParam(i,r.shape)[0],u=n.data.get(s.dataId).values,p=r.shape[l];for(let w=0;w=0,()=>`GatherV2: the index value ${I} is not in [0, ${p-1}]`)}let d=o;o==null&&(d=0);let c=v.sizeFromShape(s.shape),h=N.segment_util.collectGatherOpShapeInfo(r,s,l,d),m=ft({inputs:{x:r},backend:n,attrs:{shape:[h.batchSize,h.outerSize,h.dimSize,h.sliceSize]}}),f=ft({inputs:{x:s},backend:n,attrs:{shape:[h.batchSize,c/h.batchSize]}}),g=[h.batchSize,h.outerSize,c/h.batchSize,h.sliceSize],y=n.bufferSync(f),b=n.bufferSync(m),x=SC(b,y,g);return n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),n.makeTensorInfo(h.outputShape,x.dtype,x.values)}var Q8={kernelName:nu,backendName:"cpu",kernelFunc:J8};function eK(e){let{inputs:t,backend:n}=e,{input:a}=t,r=v.sizeFromShape(a.shape),s=a.shape[a.shape.length-1],i=r/s,o=ft({inputs:{x:a},backend:n,attrs:{shape:[i,s]}}),l=oE(o,!0,n),u=ft({inputs:{x:l},backend:n,attrs:{shape:a.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(l),u}var tK={kernelName:Nm,backendName:"cpu",kernelFunc:eK},nK=rt(su,e=>Number.isFinite(e)?1:0,"bool"),aK={kernelName:su,backendName:"cpu",kernelFunc:nK},rK=rt(iu,e=>Math.abs(e)===1/0?1:0,"bool"),sK={kernelName:iu,backendName:"cpu",kernelFunc:rK},iK=rt(zi,e=>Number.isNaN(e)?1:0,"bool"),oK={kernelName:zi,backendName:"cpu",kernelFunc:iK};function lK(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=_C(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var uK={kernelName:Em,backendName:"cpu",kernelFunc:lK},pK=rt(uu,e=>Math.log1p(e)),cK={kernelName:uu,backendName:"cpu",kernelFunc:pK},dK=Vt((e,t)=>e&&t),hK=rn(pu,dK,null,"bool"),mK={kernelName:pu,backendName:"cpu",kernelFunc:hK},fK=rt(cu,e=>e?0:1,"bool"),gK={kernelName:cu,backendName:"cpu",kernelFunc:fK},yK=Vt((e,t)=>e||t),bK=rn(du,yK,null,"bool"),xK={kernelName:du,backendName:"cpu",kernelFunc:bK};function vK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a;ge(r,"LRN");let u=r.shape[3],p=u-1,d=n.data.get(r.dataId).values,c=v.sizeFromShape(r.shape),h=new Float32Array(c);function m(f){let g=f%u,y=f-g+Math.max(0,g-s),b=f-g+Math.min(g+s,p),x=0;for(;y<=b;y++){let w=d[y];x+=w*w}return x}for(let f=0;f`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l),d;if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))d=dr({inputs:{x:r},backend:n});else{let c=n.data.get(r.dataId).values,h=v.computeStrides(r.shape),m=X0(c,r.shape,r.dtype,h,p,"max");d=n.makeTensorInfo(p.outShape,r.dtype,m.values)}return d}var NK={kernelName:Gi,backendName:"cpu",kernelFunc:TK};function CK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a;ge(r,"maxPool3d");let p=N.computePool3DInfo(r.shape,s,i,1,o,l,u),d=n.data.get(r.dataId).values,c=rE(d,r.shape,r.dtype,v.computeStrides(r.shape),p,"max");return n.makeTensorInfo(c.shape,"float32",c.values)}var EK={kernelName:xc,backendName:"cpu",kernelFunc:CK};function _K(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=a;ge([r,s],"maxPool3DGrad");let p=N.computePool3DInfo(s.shape,i,o,1,l,u),d=n.bufferSync(s),c=g5(d,p),h=p.strideDepth,m=p.strideHeight,f=p.strideWidth,g=p.dilationDepth,y=p.dilationHeight,b=p.dilationWidth,x=p.effectiveFilterDepth,w=p.effectiveFilterHeight,I=p.effectiveFilterWidth,T=x-1-p.padInfo.front,C=I-1-p.padInfo.left,_=w-1-p.padInfo.top,$=Oe(s.shape,"float32"),R=n.bufferSync(r);for(let F=0;F=p.outDepth||Math.floor(ee)!==ee))for(let ae=0;ae=p.outHeight||Math.floor(te)!==te))for(let ie=0;ie=p.outWidth||Math.floor(oe)!==oe)continue;let ye=x*w*I-1-c.get(F,ee,te,oe,S),ue=J*w*I+ae*I+ie,be=ye===ue?1:0;if(be===0)continue;let ke=R.get(F,ee,te,oe,S);Z+=ke*be}}}$.set(Z,F,M,B,U,S)}return n.makeTensorInfo($.shape,$.dtype,$.values)}var AK={kernelName:$m,backendName:"cpu",kernelFunc:_K};function $K(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;ge([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=n.data.get(o.dataId).values,m=Oe(c.outShape,o.dtype,aE(h,o.shape,o.dtype,c).values),f=c.strideHeight,g=c.strideWidth,y=c.dilationHeight,b=c.dilationWidth,x=c.effectiveFilterHeight,w=c.effectiveFilterWidth,I=w-1-c.padInfo.left,T=x-1-c.padInfo.top,C=Oe(o.shape,"float32"),_=n.data.get(r.dataId).values,$=Oe(r.shape,"float32",_);for(let R=0;R=c.outHeight||Math.floor(K)!==K))for(let Z=0;Z=c.outWidth||Math.floor(J)!==J)continue;let ee=x*w-1-m.get(R,K,J,F),ae=q*w+Z,te=ee===ae?1:0;if(te===0)continue;let ie=$.get(R,K,J,F);G+=ie*te}}C.set(G,R,S,M,F)}return n.makeTensorInfo(C.shape,C.dtype,C.values)}var FK={kernelName:Am,backendName:"cpu",kernelFunc:$K};function DK(e,t,n,a,r){let s=v.computeStrides(t),i=X0(e,t,n,s,r,"max"),o=aE(e,t,n,r,!0,a);return[i.values,o.values]}var RK={kernelName:Fm,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;ge(a,"MaxPoolWithArgmax");let u=l.data.get(a.dataId).values,p=N.computePool2DInfo(a.shape,r,s,[1,1],i),[d,c]=DK(u,a.shape,a.dtype,o,p),h=l.write(d,p.outShape,a.dtype),m=l.write(c,p.outShape,a.dtype);return[{dataId:h,shape:p.outShape,dtype:a.dtype},{dataId:m,shape:p.outShape,dtype:"int32"}]}};function MK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=v.parseAxisParam(s,r.shape),l=N.computeOutAndReduceShapes(r.shape,o)[1],u=v.sizeFromShape(l),p=[],d=n.makeTensorInfo([],"float32",new Float32Array([u]));p.push(d);let c=gs({inputs:{x:r},backend:n,attrs:{dtype:"float32"}});p.push(c);let h=Y0({inputs:{a:c,b:d},backend:n});p.push(h);let m=id({inputs:{x:h},backend:n,attrs:{axis:s,keepDims:i}});return p.forEach(f=>n.disposeIntermediateTensorInfo(f)),m}var PK={kernelName:Hi,backendName:"cpu",kernelFunc:MK};function OK(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;ge(r,"min");let o=v.parseAxisParam(s,r.shape),l=o,u=N.getAxesPermutation(l,r.shape.length),p=r;u!=null&&(p=Vn({inputs:{x:r},backend:n,attrs:{perm:u}}),l=N.getInnerMostAxes(l.length,r.shape.length)),N.assertAxesAreInnerMostDims("min",l,p.shape.length);let[d,c]=N.computeOutAndReduceShapes(p.shape,l),h=v.sizeFromShape(c),m=v.makeZerosTypedArray(v.sizeFromShape(d),p.dtype),f=n.data.get(p.dataId).values;for(let y=0;yb[0]+r.shape[x]+b[1]),l=s.map(b=>b[0]),u=s.map((b,x)=>b[0]+r.shape[x]),p=i==="reflect"?0:1,d=n.data.get(r.dataId).values,c=r.shape.length,h=v.computeStrides(r.shape),m=v.sizeFromShape(o),f=o.length,g=v.computeStrides(o),y=v.getTypedArrayFromDType(r.dtype,m);for(let b=0;b=u[I]&&(x[I]=(u[I]-1)*2-x[I]+p);x=x.map((I,T)=>I-l[T]);let w=v.locToIndex(x,c,h);y[b]=d[w]}return{dataId:n.write(y,o,r.dtype),shape:o,dtype:r.dtype}}var WK={kernelName:Ki,backendName:"cpu",kernelFunc:zK},BK=Vt((e,t)=>{let n=e%t;return e<0&&t<0||e>=0&&t>=0?n:(n+t)%t}),VK=rn(hu,BK),UK={kernelName:hu,backendName:"cpu",kernelFunc:VK},GK=bs(om());function uE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=r.shape.length,o=s;if(o===-1&&(o=i-1),o!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${o}`);let l=v.parseAxisParam([o],r.shape),u=lE({inputs:{x:r},backend:n,attrs:{reductionIndices:l,keepDims:!1}}),p=N.expandShapeToKeepDim(u.shape,l),d=ft({inputs:{x:u},backend:n,attrs:{shape:p}}),c=K0({inputs:{a:r,b:d},backend:n}),h=vC({inputs:{x:c},backend:n}),m=id({inputs:{x:h},backend:n,attrs:{axis:l,keepDims:!1}}),f=ft({inputs:{x:m},backend:n,attrs:{shape:p}}),g=Y0({inputs:{a:h,b:f},backend:n});return n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(f),g}var HK={kernelName:mo,backendName:"cpu",kernelFunc:uE};function jK(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a;ge(r,"multinomial");let l=o?r:uE({inputs:{logits:r},backend:n,attrs:{dim:-1}}),u=l.shape[0],p=l.shape[1],d=n.data.get(l.dataId).values,c=[u,s],h=v.makeZerosTypedArray(v.sizeFromShape(c),"int32");for(let m=0;m=0&&d[c]{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=tm({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=Dl({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var oX={kernelName:vu,backendName:"cpu",kernelFunc:cE};function lX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;ge(r,"pad");let o=s.map((y,b)=>y[0]+r.shape[b]+y[1]),l=s.map(y=>y[0]),u=n.data.get(r.dataId).values,p=v.sizeFromShape(r.shape),d=r.shape.length,c=v.computeStrides(r.shape),h=v.sizeFromShape(o),m=o.length,f=v.computeStrides(o),g=v.getTypedArrayFromDType(r.dtype,h);i!==0&&g.fill(i);for(let y=0;yw+l[I]),x=v.locToIndex(b,m,f);g[x]=u[y]}return{dataId:n.write(g,o,r.dtype),shape:o,dtype:r.dtype}}var dE={kernelName:Zi,backendName:"cpu",kernelFunc:lX},uX=Vt((e,t)=>Math.pow(e,t)),pX=rn(Ji,uX),cX={kernelName:Ji,backendName:"cpu",kernelFunc:pX};function dX(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.data.get(y.dataId).values),u=r.map(y=>y.shape),p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,[c,h,m]=OC(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var hX={kernelName:Rm,backendName:"cpu",kernelFunc:dX};function mX(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=LC(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var fX={kernelName:Mm,backendName:"cpu",kernelFunc:mX};function gX(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.data.get(r.dataId).values,p=n.data.get(s.dataId).values,d=n.data.get(i.dataId).values,c=o.map(g=>n.data.get(g.dataId).values),h=o.map(g=>g.shape),[m,f]=zC(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var yX={kernelName:Pm,backendName:"cpu",kernelFunc:gX};function bX(e){let{backend:t,attrs:n}=e,{start:a,stop:r,dtype:s,step:i}=n,o=U0(a,r,i,s);return t.makeTensorInfo([o.length],s,o)}var xX={kernelName:vc,backendName:"cpu",kernelFunc:bX},vX=rt(to,e=>1/e),wX={kernelName:to,backendName:"cpu",kernelFunc:vX};function kX(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a;ge(r,"resizeBilinear");let l=v.computeStrides(r.shape),[u,p]=o,[d,c,h,m]=r.shape,f=n.data.get(r.dataId).values,g=new Float32Array(v.sizeFromShape([d,u,p,m])),y=[s&&u>1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=0,w=y[0]/b[0],I=y[1]/b[1];for(let T=0;T1?u-1:u,i&&h>1?p-1:p],g=[i&&c>1?c-1:c,i&&h>1?h-1:h],y=f[0]/g[0],b=f[1]/g[1],x=n.data.get(s.dataId).values,w=0;for(let I=0;I1?c-1:c,s&&p>1?h-1:h],b=[s&&u>1?u-1:u,s&&p>1?p-1:p],x=y[0]/b[0],w=y[1]/b[1],I=0;for(let T=0;T1?p-1:p,i&&m>1?d-1:d],b=[i&&h>1?h-1:h,i&&m>1?m-1:m],x=y[0]/b[0],w=y[1]/b[1],I=1/x,T=1/w,C=Math.ceil(I)*2+2,_=Math.ceil(T)*2+2;for(let $=0;$=h)continue;let te=R+ae*l[1],ie=ae*x,oe=Math.min(p-1,i?Math.round(ie):Math.floor(ie));if(F===oe)for(let ye=0;ye<_;ye++){let ue=ye+K;if(ue<0||ue>=m)continue;let be=te+ue*l[2],ke=ue*w,Se=Math.min(d-1,i?Math.round(ke):Math.floor(ke));U===Se&&(J+=g[be+Z])}}f[G+Z]=J}}}}return n.makeTensorInfo(r.shape,r.dtype,f)}var _X={kernelName:Lm,backendName:"cpu",kernelFunc:EX};function AX(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a;ge(r,"reverse");let i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return dr({inputs:{x:r},backend:n});let l=new qt(r.shape,r.dtype),u=n.bufferSync(r);for(let p=0;pc[h]=r.shape[h]-1-c[h]),l.set(u.get(...c),...d)}return n.makeTensorInfo(l.shape,l.dtype,l.values)}var $X={kernelName:io,backendName:"cpu",kernelFunc:AX},FX={kernelName:Ou,backendName:"cpu",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=v.getTypedArrayFromDType(a.dtype,v.sizeFromShape(a.shape)),[u,p,d,c]=a.shape,[h,m]=N.getImageCenter(i,p,d),f=255,g=Math.sin(r),y=Math.cos(r),b=o.data.get(a.dataId).values;for(let x=0;x=0&&M=0&&B{let t=Math.floor(e);return e-t<.5?Math.floor(e):e-t>.5?Math.ceil(e):t%2===0?t:t+1}),RX={kernelName:oo,backendName:"cpu",kernelFunc:DX};function MX(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=!0,h=n.bufferSync(r),m=n.bufferSync(s),f=dl(h,m,i,d,u,l,o,p,0,c);return n.makeTensorInfo(i,f.dtype,f.values)}var PX={kernelName:ku,backendName:"cpu",kernelFunc:MX};function OX(e,t){let n=0,a=e.length,r=0;for(;n1||r.shape.length===1?1:v.sizeFromShape(r.shape.slice(1));for(let m=0;me>=0?HX*e:GX*(Math.exp(e)-1)),qX={kernelName:Su,backendName:"cpu",kernelFunc:jX},KX=rt(Cu,e=>e<0?-1:e>0?1:0),XX={kernelName:Cu,backendName:"cpu",kernelFunc:KX},YX=rt(uo,e=>Math.sin(e)),ZX={kernelName:uo,backendName:"cpu",kernelFunc:YX},JX=rt(Nu,e=>Math.sinh(e)),QX={kernelName:Nu,backendName:"cpu",kernelFunc:JX},eY=11920928955078125e-23,hI=Math.log(eY)+2,tY=rt(Eu,e=>{let t=e>-hI,n=eNumber(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var tY={kernelName:vc,backendName:"cpu",kernelFunc:eY};function nY(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let o=n.data.get(a.dataId).values,l=n.data.get(r.dataId).values,u=n.data.get(s.dataId).values,p=n.data.get(i.dataId).values[0],[d,c,h,m,f]=VC(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var iY={kernelName:wc,backendName:"cpu",kernelFunc:sY};function oY(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=WC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var aY={kernelName:$u,backendName:"cpu",kernelFunc:nY};function rY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.data.get(r.dataId).values),o=n.data.get(a.dataId).values,l=Array.from(n.data.get(s.dataId).values),[u,p,d]=UC(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var lY={kernelName:$u,backendName:"cpu",kernelFunc:oY};function uY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=B0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var sY={kernelName:wc,backendName:"cpu",kernelFunc:rY};function iY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=G0(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var pY={kernelName:kc,backendName:"cpu",kernelFunc:uY};function cY(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=B0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var oY={kernelName:kc,backendName:"cpu",kernelFunc:iY};function lY(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=ll(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=ll(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var uY={kernelName:Wm,backendName:"cpu",kernelFunc:lY};function pY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=pi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var cY={kernelName:Eu,backendName:"cpu",kernelFunc:pY},dY={kernelName:Ic,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),mY={kernelName:xs,backendName:"cpu",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=pi({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=VC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var gY={kernelName:Au,backendName:"cpu",kernelFunc:fY};function yY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=V0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var bY={kernelName:Sc,backendName:"cpu",kernelFunc:yY};function xY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=U0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var vY={kernelName:Tc,backendName:"cpu",kernelFunc:xY};function wY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=G0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var kY={kernelName:Nc,backendName:"cpu",kernelFunc:wY},IY=rt(po,e=>Math.tan(e)),SY={kernelName:po,backendName:"cpu",kernelFunc:IY},TY=rt(co,e=>Math.tanh(e)),NY={kernelName:co,backendName:"cpu",kernelFunc:TY};function CY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=GC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var _Y={kernelName:bs,backendName:"cpu",kernelFunc:CY};function EY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=jC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var $Y={kernelName:Fu,backendName:"cpu",kernelFunc:EY};function AY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],E=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function RY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function MY(e,t){return e}function PY(e,t){return v.clamp(0,e,t-1)}function Lp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var GY={kernelName:Cc,backendName:"cpu",kernelFunc:UY},HY=[zq,Nj,Bq,Uq,Fj,Hq,qq,Xq,Zq,Qq,t5,a5,s5,l5,p5,h5,f5,y5,x5,Oq,w5,I5,T5,C5,$j,Rj,E5,Cj,A5,D5,R5,P5,L5,W5,V5,G5,j5,K5,Y5,J5,e8,n8,r8,s8,o8,u8,c8,d8,h8,m8,y8,$q,x8,Mj,C8,Pj,_8,Lj,R8,M8,O8,Wj,W8,V8,G8,j8,K8,Vj,Gj,_j,Y8,F5,J8,eK,nK,Aq,jj,Kj,rK,Yj,iK,uK,cK,mK,gK,bK,xK,Jj,wK,IK,TK,CK,EK,AK,DK,eq,MK,LK,VK,nq,rq,HK,KK,ZK,iq,QK,tX,nX,u_,iX,Dq,uq,lX,pX,dX,mX,Ej,dx,gX,Rq,Mq,Pq,bX,vX,kX,SX,NX,CX,EX,yq,AX,PX,LX,VX,xq,GX,jX,KX,vq,WK,ZX,QX,tY,aY,sY,oY,uY,cY,Iq,dY,Tq,mY,gY,bY,vY,kY,Eq,f8,SY,NY,_Y,$Y,FY,oq,WY,VY,GY,eX];for(let e of HY)_c(e);var p_={};$e(p_,{assertNotComplex:()=>Yu,bindCanvasToFramebuffer:()=>nZ,bindColorTextureToFramebuffer:()=>kh,bindTextureToProgramUniformSampler:()=>N_,bindTextureUnit:()=>I_,bindVertexBufferToProgramAttribute:()=>mx,callAndCheck:()=>me,canBeRepresented:()=>d_,createFragmentShader:()=>f_,createFramebuffer:()=>k_,createProgram:()=>g_,createStaticIndexBuffer:()=>x_,createStaticVertexBuffer:()=>b_,createTexture:()=>v_,createVertexShader:()=>m_,getBatchDim:()=>ci,getExtensionOrThrow:()=>zp,getFramebufferErrorMessage:()=>C_,getMaxTexturesInShader:()=>A_,getNumChannels:()=>eZ,getProgramUniformLocation:()=>T_,getProgramUniformLocationOrThrow:()=>S_,getRowsCols:()=>di,getShapeAs3D:()=>Bp,getTextureShapeFromLogicalShape:()=>E_,getWebGLDisjointQueryTimerVersion:()=>F_,getWebGLErrorMessage:()=>h_,getWebGLMaxTextureSize:()=>$_,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>D_,isDownloadFloatTextureEnabled:()=>R_,isReshapeFree:()=>sc,isWebGLFenceEnabled:()=>M_,isWebGLVersionEnabled:()=>gx,linkProgram:()=>y_,logShaderSourceAndInfoLog:()=>Y0,resetMaxTextureSize:()=>aZ,resetMaxTexturesInShader:()=>rZ,unbindColorTextureFromFramebuffer:()=>fx,unbindTextureUnit:()=>tZ,validateFramebuffer:()=>Wp,validateProgram:()=>wh,validateTextureSize:()=>w_});var Gs={},mh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function c_(e,t){Gs[e]=t}function qa(e,t){if(!(e in Gs)||t!=null){let a=qY(e,t);if(a!==null)Gs[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Gs[e];return n==null||n.isContextLost()?(delete Gs[e],qa(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Gs[e])}function jY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function qY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?jY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Gs[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(mh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",mh)||n.getContext("experimental-webgl",mh):n.getContext("webgl2",mh)}var rc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(rc||(rc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var ln;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(ln||(ln={}));function id(e,t){return[t,e]}function KY(e,t){return e*t}function fh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Xu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function XY(e,t){let[n,a]=Xu(e,t);return n*a*4}function X0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function me(e,t){let n=t();return H().getBool("DEBUG")&&YY(e),n}function YY(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+h_(e,t))}var ZY=596e-10,JY=65504;function d_(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||ZYe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function m_(e,t){let n=Mr(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function f_(e,t){let n=Mr(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(me(e,()=>e.shaderSource(n,t)),me(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Y0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var QY=/ERROR: [0-9]+:([0-9]+):/g;function Y0(e,t){let n=QY.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` + ${s.shape}`);if(r.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=n.data.get(a.dataId).values,o=n.data.get(r.dataId).values,l=n.data.get(s.dataId).values,[u,p]=G0(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var dY={kernelName:Ic,backendName:"cpu",kernelFunc:cY};function hY(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1,m=n.bufferSync(r),f;switch(s.dtype){case"bool":{let g=n.bufferSync(s),y=Boolean(n.data.get(i.dataId).values[0]);f=dl(m,g,o,c,p,u,l,d,y,h);break}case"float32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=dl(m,g,o,c,p,u,l,d,y,h);break}case"int32":{let g=n.bufferSync(s),y=n.data.get(i.dataId).values[0];f=dl(m,g,o,c,p,u,l,d,y,h);break}case"string":{let g=n.bufferSync(s),y=v.decodeString(n.data.get(i.dataId).values[0]);f=dl(m,g,o,c,p,u,l,d,y,h);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return n.makeTensorInfo(o,f.dtype,f.values)}var mY={kernelName:Bm,backendName:"cpu",kernelFunc:hY};function fY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=mi({inputs:{x:r},backend:n,attrs:{begin:u,size:c}});return u[o]+=d,h})}var gY={kernelName:Au,backendName:"cpu",kernelFunc:fY},yY={kernelName:Sc,backendName:"cpu",kernelFunc:({inputs:e,backend:t})=>{let{x:n}=e,a=t;ge(n,"square");let r=a.data.get(n.dataId).values,s=new Float32Array(r.length);for(let i=0;i{let n=t;return isNaN(e)?NaN:e>0?1:n.alpha}),xY={kernelName:Is,backendName:"cpu",kernelFunc:bY};function vY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a;ge(r,"stridedSlice");let{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=ft({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(b,x,w),C=mi({inputs:{x:r},backend:n,attrs:{begin:b,size:T}});I=ft({inputs:{x:C},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(C)}else{let T=n.bufferSync(r),C=HC(h,T,w,b);I=n.makeTensorInfo(m,C.dtype,C.values)}return I}var wY={kernelName:Fu,backendName:"cpu",kernelFunc:vY};function kY(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.data.get(p.dataId).values,h=n.data.get(d.dataId).values,[m,f]=H0(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var IY={kernelName:Tc,backendName:"cpu",kernelFunc:kY};function SY(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.data.get(s.dataId).values,l=n.data.get(i.dataId).values[0],[u,p,d]=j0(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var TY={kernelName:Nc,backendName:"cpu",kernelFunc:SY};function NY(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.data.get(s.dataId).values,o=q0(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var CY={kernelName:Cc,backendName:"cpu",kernelFunc:NY},EY=rt(yo,e=>Math.tan(e)),_Y={kernelName:yo,backendName:"cpu",kernelFunc:EY},AY=rt(bo,e=>Math.tanh(e)),$Y={kernelName:bo,backendName:"cpu",kernelFunc:AY};function FY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reps:s}=a;ge(r,"tile");let i=qC(n.bufferSync(r),s);return n.makeTensorInfo(i.shape,i.dtype,i.values)}var DY={kernelName:ks,backendName:"cpu",kernelFunc:FY};function RY(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{k:s,sorted:i}=a;ge(r,"topk");let o=n.data.get(r.dataId).values,[l,u]=XC(o,r.shape,r.dtype,s,i);return[n.makeTensorInfo(l.shape,l.dtype,l.values),n.makeTensorInfo(u.shape,u.dtype,u.values)]}var MY={kernelName:Du,backendName:"cpu",kernelFunc:RY};function PY(e){let{inputs:t,attrs:n,backend:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=n,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=v.computeStrides(r.shape),b=y[0],x=y[1],w=y[2],I=v.computeStrides(g),T=I[0],C=I[1],_=I[2],$=v.getTypedArrayFromDType(r.dtype,v.sizeFromShape(g));$.fill(l);let R=a.data.get(r.dataId).values,F=a.data.get(s.dataId).values;for(let S=0;St-1)if(t<=1)n=0;else{let a=2*t;n-=a*Math.trunc(n/a),n>=t&&(n=a-n-1)}return v.clamp(0,n,t-1)}function zY(e,t){let n=e;if(n<0)if(t<=1)n=0;else{let a=t-1;n+=t*(Math.trunc(-n/a)+1)}else if(n>t-1)if(t<=1)n=0;else{let a=t-1;n-=t*Math.trunc(n/a)}return v.clamp(0,n,t-1)}function WY(e,t){return e}function BY(e,t){return v.clamp(0,e,t-1)}function zp(e,t,n,a,r,s,i,o,l,u,p){let d=i*a+o*r+l*s+u;return 0<=o&&on.disposeIntermediateTensorInfo(m)),h}var XY={kernelName:Ec,backendName:"cpu",kernelFunc:KY},YY=[Gq,$j,jq,Kq,Oj,Yq,Jq,e5,n5,r5,i5,l5,p5,h5,f5,b5,v5,k5,S5,Vq,N5,E5,A5,F5,Mj,zj,R5,Fj,P5,L5,z5,B5,U5,H5,q5,X5,Z5,Q5,t8,a8,s8,o8,u8,p8,d8,m8,g8,y8,b8,x8,k8,Mq,S8,Wj,F8,Bj,D8,Uj,z8,W8,V8,Hj,H8,q8,X8,Z8,Q8,qj,Xj,Dj,tK,O5,aK,sK,oK,Pq,Zj,Qj,uK,tq,cK,mK,gK,xK,wK,IK,SK,aq,NK,EK,AK,FK,RK,PK,LK,sq,WK,UK,qK,oq,uq,YK,QK,nX,cq,rX,iX,oX,dE,cX,Lq,mq,hX,fX,yX,xX,Rj,gx,wX,zq,Wq,Bq,IX,TX,CX,_X,$X,FX,RX,kq,PX,BX,UX,qX,Sq,XX,ZX,QX,Tq,HK,nY,rY,iY,lY,pY,dY,mY,gY,Eq,yY,Aq,xY,wY,IY,TY,CY,Rq,v8,_Y,$Y,DY,MY,OY,dq,HY,qY,XY,sX];for(let e of YY)_c(e);var hE={};Ae(hE,{assertNotComplex:()=>Zu,bindCanvasToFramebuffer:()=>oZ,bindColorTextureToFramebuffer:()=>Ih,bindTextureToProgramUniformSampler:()=>_E,bindTextureUnit:()=>NE,bindVertexBufferToProgramAttribute:()=>bx,callAndCheck:()=>ce,canBeRepresented:()=>fE,createFragmentShader:()=>bE,createFramebuffer:()=>TE,createProgram:()=>xE,createStaticIndexBuffer:()=>kE,createStaticVertexBuffer:()=>wE,createTexture:()=>IE,createVertexShader:()=>yE,getBatchDim:()=>fi,getExtensionOrThrow:()=>Wp,getFramebufferErrorMessage:()=>AE,getMaxTexturesInShader:()=>RE,getNumChannels:()=>sZ,getProgramUniformLocation:()=>EE,getProgramUniformLocationOrThrow:()=>CE,getRowsCols:()=>gi,getShapeAs3D:()=>Vp,getTextureShapeFromLogicalShape:()=>FE,getWebGLDisjointQueryTimerVersion:()=>ME,getWebGLErrorMessage:()=>gE,getWebGLMaxTextureSize:()=>DE,hasExtension:()=>da,isCapableOfRenderingToFloatTexture:()=>PE,isDownloadFloatTextureEnabled:()=>OE,isReshapeFree:()=>ic,isWebGLFenceEnabled:()=>LE,isWebGLVersionEnabled:()=>vx,linkProgram:()=>vE,logShaderSourceAndInfoLog:()=>Q0,resetMaxTextureSize:()=>lZ,resetMaxTexturesInShader:()=>uZ,unbindColorTextureFromFramebuffer:()=>xx,unbindTextureUnit:()=>iZ,validateFramebuffer:()=>Bp,validateProgram:()=>kh,validateTextureSize:()=>SE});var Ks={},fh={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function mE(e,t){Ks[e]=t}function Ka(e,t){if(!(e in Ks)||t!=null){let a=JY(e,t);if(a!==null)Ks[e]=a;else return console.log("Could not get context for WebGL version",e),null}let n=Ks[e];return n==null||n.isContextLost()?(delete Ks[e],Ka(e)):(n.disable(n.DEPTH_TEST),n.disable(n.STENCIL_TEST),n.disable(n.BLEND),n.disable(n.DITHER),n.disable(n.POLYGON_OFFSET_FILL),n.disable(n.SAMPLE_COVERAGE),n.enable(n.SCISSOR_TEST),n.enable(n.CULL_FACE),n.cullFace(n.BACK),Ks[e])}function ZY(e){if(typeof OffscreenCanvas!="undefined"&&e===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function JY(e,t){if(e!==1&&e!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let n=t==null?ZY(e):t;return n.addEventListener("webglcontextlost",a=>{a.preventDefault(),delete Ks[e]},!1),H().getBool("SOFTWARE_WEBGL_ENABLED")&&(fh.failIfMajorPerformanceCaveat=!1),e===1?n.getContext("webgl",fh)||n.getContext("experimental-webgl",fh):n.getContext("webgl2",fh)}var sc;(function(e){e[e.DENSE=0]="DENSE",e[e.SHARED_BATCH=1]="SHARED_BATCH"})(sc||(sc={}));var ca;(function(e){e[e.RENDER=0]="RENDER",e[e.UPLOAD=1]="UPLOAD",e[e.PIXELS=2]="PIXELS",e[e.DOWNLOAD=3]="DOWNLOAD"})(ca||(ca={}));var un;(function(e){e[e.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",e[e.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",e[e.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",e[e.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",e[e.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(un||(un={}));function od(e,t){return[t,e]}function QY(e,t){return e*t}function gh(e){let t=v.sizeFromShape(e),n=Math.ceil(t/4);return v.sizeToSquarishShape(n)}function Yu(e,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(e/2))]}function eZ(e,t){let[n,a]=Yu(e,t);return n*a*4}function J0(e,t){let n=e,a,r,s,i,o,l,u,p,d,c;return H().getNumber("WEBGL_VERSION")===2?(a=n.R32F,r=n.R16F,s=n.RGBA16F,i=n.RGBA32F,o=n.RED,u=4,p=1,d=n.HALF_FLOAT,c=n.FLOAT,l=n.RGBA8):(a=e.RGBA,r=e.RGBA,s=e.RGBA,i=n.RGBA,o=e.RGBA,u=4,p=4,d=t!=null?t.HALF_FLOAT_OES:null,c=e.FLOAT,l=e.RGBA),{internalFormatFloat:a,internalFormatHalfFloat:r,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:o,downloadTextureFormat:l,downloadUnpackNumChannels:u,defaultNumChannels:p,textureTypeHalfFloat:d,textureTypeFloat:c}}function ce(e,t){let n=t();return H().getBool("DEBUG")&&tZ(e),n}function tZ(e){let t=e.getError();if(t!==e.NO_ERROR)throw new Error("WebGL Error: "+gE(e,t))}var nZ=596e-10,aZ=65504;function fE(e){return!!(H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||e===0||nZe.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function yE(e,t){let n=Or(e,()=>e.createShader(e.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ce(e,()=>e.shaderSource(n,t)),ce(e,()=>e.compileShader(n)),e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw console.log(e.getShaderInfoLog(n)),new Error("Failed to compile vertex shader.");return n}function bE(e,t){let n=Or(e,()=>e.createShader(e.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ce(e,()=>e.shaderSource(n,t)),ce(e,()=>e.compileShader(n)),H().get("ENGINE_COMPILE_ONLY"))return n;if(e.getShaderParameter(n,e.COMPILE_STATUS)===!1)throw Q0(t,e.getShaderInfoLog(n)),new Error("Failed to compile fragment shader.");return n}var rZ=/ERROR: [0-9]+:([0-9]+):/g;function Q0(e,t){let n=rZ.exec(t);if(n==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(e);return}let a=+n[1],r=e.split(` `),s=r.length.toString().length+2,i=r.map((d,c)=>v.rightPad((c+1).toString(),s)+d),o=0;for(let d=0;de.createProgram(),"Unable to create WebGLProgram.")}function y_(e,t){if(me(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function wh(e,t){if(me(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function b_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function x_(e,t){let n=Mr(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),me(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function eZ(){return H().getNumber("WEBGL_VERSION")===2?1:4}function v_(e){return Mr(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function w_(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function k_(e){return Mr(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function mx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),me(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),me(e,()=>e.enableVertexAttribArray(o)),!0)}function I_(e,t,n){__(e,n),me(e,()=>e.activeTexture(e.TEXTURE0+n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function tZ(e,t){__(e,t),me(e,()=>e.activeTexture(e.TEXTURE0+t)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function S_(e,t,n){return Mr(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function T_(e,t,n){return e.getUniformLocation(t,n)}function N_(e,t,n,a){me(e,()=>I_(e,t,a)),me(e,()=>e.uniform1i(n,a))}function nZ(e){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),me(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function kh(e,t,n){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function fx(e,t){me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),me(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Wp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+C_(e,t))}function C_(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Mr(e,t,n){let a=me(e,()=>t());if(a==null)throw new Error(n);return a}function __(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function ci(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function di(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Bp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[ci(e),...di(e)]),t}function E_(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=ci(e),l=2,u=2;e.length&&([l,u]=di(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function gh(e){return e%2===0}function sc(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||gh(n)&&gh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&gh(e[0])&&gh(t[0])}var Ih,Sh;function $_(e){if(Ih==null){let t=qa(e);Ih=t.getParameter(t.MAX_TEXTURE_SIZE)}return Ih}function aZ(){Ih=null}function rZ(){Sh=null}function A_(e){if(Sh==null){let t=qa(e);Sh=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Sh)}function F_(e){if(e===0)return 0;let t,n=qa(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function gx(e){try{if(qa(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function D_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return yx(t)}function R_(e){if(e===0)return!1;let t=qa(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return yx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return sZ(t,a)}return!1}return yx(t)}function yx(e){let t=X0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function sZ(e,t){let n=X0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function M_(e){return e!==2?!1:qa(e).fenceSync!=null}function Yu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>gx(2)?2:gx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>$_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>A_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:F_(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Ac.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>D_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>R_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>M_(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Ac.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function _n(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function xE(e){return Or(e,()=>e.createProgram(),"Unable to create WebGLProgram.")}function vE(e,t){if(ce(e,()=>e.linkProgram(t)),!H().get("ENGINE_COMPILE_ONLY")&&e.getProgramParameter(t,e.LINK_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function kh(e,t){if(ce(e,()=>e.validateProgram(t)),e.getProgramParameter(t,e.VALIDATE_STATUS)===!1)throw console.log(e.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function wE(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),ce(e,()=>e.bufferData(e.ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function kE(e,t){let n=Or(e,()=>e.createBuffer(),"Unable to create WebGLBuffer");return ce(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n)),ce(e,()=>e.bufferData(e.ELEMENT_ARRAY_BUFFER,t,e.STATIC_DRAW)),n}function sZ(){return H().getNumber("WEBGL_VERSION")===2?1:4}function IE(e){return Or(e,()=>e.createTexture(),"Unable to create WebGLTexture.")}function SE(e,t){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(e<=0||t<=0){let a=`[${e}x${t}]`;throw new Error("Requested texture size "+a+" is invalid.")}if(e>n||t>n){let a=`[${e}x${t}]`,r=`[${n}x${n}]`;throw new Error("Requested texture size "+a+" greater than WebGL maximum on this browser / GPU "+r+".")}}function TE(e){return Or(e,()=>e.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function bx(e,t,n,a,r,s,i){let o=e.getAttribLocation(t,n);return o===-1?!1:(ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,a)),ce(e,()=>e.vertexAttribPointer(o,r,e.FLOAT,!1,s,i)),ce(e,()=>e.enableVertexAttribArray(o)),!0)}function NE(e,t,n){$E(e,n),ce(e,()=>e.activeTexture(e.TEXTURE0+n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,t))}function iZ(e,t){$E(e,t),ce(e,()=>e.activeTexture(e.TEXTURE0+t)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function CE(e,t,n){return Or(e,()=>e.getUniformLocation(t,n),'uniform "'+n+'" not present in program.')}function EE(e,t,n){return e.getUniformLocation(t,n)}function _E(e,t,n,a){ce(e,()=>NE(e,t,a)),ce(e,()=>e.uniform1i(n,a))}function oZ(e){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ce(e,()=>e.viewport(0,0,e.canvas.width,e.canvas.height)),ce(e,()=>e.scissor(0,0,e.canvas.width,e.canvas.height))}function Ih(e,t,n){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,n)),ce(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,t,0))}function xx(e,t){ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,t)),ce(e,()=>e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,null,0))}function Bp(e){let t=e.checkFramebufferStatus(e.FRAMEBUFFER);if(t!==e.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+AE(e,t))}function AE(e,t){switch(t){case e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case e.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function Or(e,t,n){let a=ce(e,()=>t());if(a==null)throw new Error(n);return a}function $E(e,t){let n=e.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,a=t+e.TEXTURE0;if(an){let r=`[gl.TEXTURE0, gl.TEXTURE${n}]`;throw new Error(`textureUnit must be in ${r}.`)}}function fi(e,t=2){return v.sizeFromShape(e.slice(0,e.length-t))}function gi(e){if(e.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[e.length>1?e[e.length-2]:1,e[e.length-1]]}function Vp(e){let t=[1,1,1];return e.length===0||e.length===1&&e[0]===1||(t=[fi(e),...gi(e)]),t}function FE(e,t=!1){let n=H().getNumber("WEBGL_MAX_TEXTURE_SIZE"),a=H().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");a===1/0&&H().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(a=n/2),t&&(n=n*2,a=a*2,e=e.map((o,l)=>l>=e.length-2?v.nearestLargerEven(e[l]):e[l]),e.length===1&&(e=[2,e[0]])),e.length!==2&&(e=v.squeezeShape(e).newShape);let r=v.sizeFromShape(e),s=null;e.length<=1&&r<=n?s=[1,r]:e.length===2&&e[0]<=n&&e[1]<=n?s=e:e.length===3&&e[0]*e[1]<=n&&e[2]<=n?s=[e[0]*e[1],e[2]]:e.length===3&&e[0]<=n&&e[1]*e[2]<=n?s=[e[0],e[1]*e[2]]:e.length===4&&e[0]*e[1]*e[2]<=n&&e[3]<=n?s=[e[0]*e[1]*e[2],e[3]]:e.length===4&&e[0]<=n&&e[1]*e[2]*e[3]<=n&&(s=[e[0],e[1]*e[2]*e[3]]);let i=s!=null&&Math.max(...s)>a&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let o=fi(e),l=2,u=2;e.length&&([l,u]=gi(e)),r=o*(l/2)*(u/2),s=v.sizeToSquarishShape(r).map(p=>p*2)}else s=v.sizeToSquarishShape(r);return s}function yh(e){return e%2===0}function ic(e,t){if(e=e.slice(-2),t=t.slice(-2),v.arraysEqual(e,t)||!e.length||!t.length||e[0]===0||e[1]===0||t[0]===0||t[1]===0)return!0;if(e.length!==t.length){let n=e.slice(-1)[0],a=t.slice(-1)[0];if(n===a||yh(n)&&yh(a)&&(e[0]===1||t[0]===1))return!0}return e[1]===t[1]&&yh(e[0])&&yh(t[0])}var Sh,Th;function DE(e){if(Sh==null){let t=Ka(e);Sh=t.getParameter(t.MAX_TEXTURE_SIZE)}return Sh}function lZ(){Sh=null}function uZ(){Th=null}function RE(e){if(Th==null){let t=Ka(e);Th=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Th)}function ME(e){if(e===0)return 0;let t,n=Ka(e);return da(n,"EXT_disjoint_timer_query_webgl2")&&e===2?t=2:da(n,"EXT_disjoint_timer_query")?t=1:t=0,t}function da(e,t){return e.getExtension(t)!=null}function vx(e){try{if(Ka(e)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function PE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!da(t,"OES_texture_float"))return!1}else if(!da(t,"EXT_color_buffer_float"))return!1;return wx(t)}function OE(e){if(e===0)return!1;let t=Ka(e);if(e===1){if(!da(t,"OES_texture_float")||!da(t,"WEBGL_color_buffer_float"))return!1}else{if(da(t,"EXT_color_buffer_float"))return wx(t);let n="EXT_color_buffer_half_float";if(da(t,n)){let a=t.getExtension(n);return pZ(t,a)}return!1}return wx(t)}function wx(e){let t=J0(e),n=e.createTexture();e.bindTexture(e.TEXTURE_2D,n);let a=1,r=1;e.texImage2D(e.TEXTURE_2D,0,t.internalFormatFloat,a,r,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,s),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0);let i=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(n),e.deleteFramebuffer(s),i}function pZ(e,t){let n=J0(e,t),a=e.createTexture();e.bindTexture(e.TEXTURE_2D,a);let r=1,s=1;e.texImage2D(e.TEXTURE_2D,0,n.internalFormatHalfFloat,r,s,0,n.textureFormatFloat,n.textureTypeHalfFloat,null);let i=e.createFramebuffer();e.bindFramebuffer(e.FRAMEBUFFER,i),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,a,0);let o=e.checkFramebufferStatus(e.FRAMEBUFFER)===e.FRAMEBUFFER_COMPLETE;return e.bindTexture(e.TEXTURE_2D,null),e.bindFramebuffer(e.FRAMEBUFFER,null),e.deleteTexture(a),e.deleteFramebuffer(i),o}function LE(e){return e!==2?!1:Ka(e).fenceSync!=null}function Zu(e,t){Array.isArray(e)||(e=[e]),e.forEach(n=>{n!=null&&v.assert(n.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var ve=H();ve.registerFlag("HAS_WEBGL",()=>ve.getNumber("WEBGL_VERSION")>0);ve.registerFlag("WEBGL_VERSION",()=>vx(2)?2:vx(1)?1:0);ve.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);ve.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>ve.get("WEBGL_VERSION")===2);ve.registerFlag("WEBGL_CPU_FORWARD",()=>!0);ve.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);ve.registerFlag("WEBGL_PACK",()=>ve.getBool("HAS_WEBGL"));ve.registerFlag("WEBGL_PACK_NORMALIZATION",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_CLIP",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_PACK_REDUCE",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_LAZILY_UNPACK",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_CONV_IM2COL",()=>ve.getBool("WEBGL_PACK"));ve.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>DE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>RE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let e=ve.getNumber("WEBGL_VERSION");return e===0?0:ME(e)});ve.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>ve.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Fc.isMobile());ve.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>PE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>ve.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:ve.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));ve.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>OE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_FENCE_API_ENABLED",()=>LE(ve.getNumber("WEBGL_VERSION")));ve.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>ve.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);ve.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${e}.`)});ve.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Fc.isMobile()?1:-1,e=>{if(e<0&&e!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${e}.`)});ve.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);ve.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);ve.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);ve.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);ve.registerFlag("WEBGL_EXP_CONV",()=>!1);ve.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>ve.getBool("IS_TEST"));ve.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);ve.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);ve.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);ve.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function En(){let e,t,n,a,r,s,i,o,l,u;return H().getNumber("WEBGL_VERSION")===2?(e="#version 300 es",t="in",n="out",a="in",r="texture",s="outputColor",i="out vec4 outputColor;",o=H().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -108,15 +108,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function wo(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Kf(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function iZ(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function oZ(e,t,n="index"){let a=e.map((s,i)=>i),r=iZ(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function Z0(e){let t=v.computeStrides(e).map(n=>n.toString());return` + `),{version:e,attribute:t,varyingVs:n,varyingFs:a,texture2D:r,output:s,defineOutput:i,defineSpecialNaN:o,defineSpecialInf:l,defineRound:u}}function No(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / ${r}`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * ${r}`:`index -= ${e[s]} * ${r}`;return`${i}; ${o};`}).join("")}function Xf(e,t,n="index"){let a=v.computeStrides(t);return a.map((r,s)=>{let i=`int ${e[s]} = ${n} / outShapeStrides[${s}]`,o=s===a.length-1?`int ${e[s+1]} = ${n} - ${e[s]} * outShapeStrides[${s}]`:`index -= ${e[s]} * outShapeStrides[${s}]`;return`${i}; ${o};`}).join("")}function cZ(e,t){let n=e.length,a=e.map(s=>`${t}[${s}]`),r=new Array(n-1);r[n-2]=a[n-1];for(let s=n-3;s>=0;--s)r[s]=`(${r[s+1]} * ${a[s+1]})`;return r}function dZ(e,t,n="index"){let a=e.map((s,i)=>i),r=cZ(a,t);return r.map((s,i)=>{let o=`int ${e[i]} = ${n} / ${r[i]}`,l=i===r.length-1?`int ${e[i+1]} = ${n} - ${e[i]} * ${r[i]}`:`index -= ${e[i]} * ${r[i]}`;return`${o}; ${l};`}).join("")}function e1(e){let t=v.computeStrides(e).map(n=>n.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function J0(){return` +`}function t1(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var P_=` +`}var zE=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -155,22 +155,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`,{getBroadcastDims:O_}=N;function lZ(e,t,n){let a=[];if(e.forEach(c=>{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=Q0(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` -`),s=e.map(c=>uZ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` -`),i=t.texShape,o=_n(),l=dZ(o),u,p,d=fZ(o);return t.isPacked?(u=pZ(t.logicalShape,i,n.enableShapeUniforms),p=mZ(o)):(u=cZ(t.logicalShape,i,n.enableShapeUniforms),p=hZ(o)),n.packedInputs&&(d+=xZ),[d,l,p,r,u,s,n.userCode].join(` -`)}function Zu(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return AZ(e,t);case 1:return DZ(e,t);case 2:return MZ(e,t);case 3:return OZ(e,t);case 4:return zZ(e,t);case 5:return WZ(e);case 6:return BZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function L_(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return $Z(e);case 1:return FZ(e,t);case 2:return RZ(e,t);case 3:return PZ(e,t);default:return LZ(e,t)}}function uZ(e,t,n=!1,a){let r="";n?r+=L_(e,a):r+=Zu(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=VZ(e,t):r+=UZ(e,t)),r}function pZ(e,t,n){switch(e.length){case 0:return z_();case 1:return vZ(e,t,n);case 2:return _Z(e,t,n);case 3:return kZ(e,t,n);default:return SZ(e,t,n)}}function cZ(e,t,n){switch(e.length){case 0:return z_();case 1:return wZ(e,t,n);case 2:return EZ(e,t,n);case 3:return IZ(e,t,n);case 4:return TZ(e,t,n);case 5:return NZ(e,t);case 6:return CZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function dZ(e){return` +`,{getBroadcastDims:WE}=N;function hZ(e,t,n){let a=[];if(e.forEach(c=>{let h=v.sizeFromShape(c.shapeInfo.logicalShape);if(c.shapeInfo.isUniform?a.push(`uniform float ${c.name}${h>1?`[${h}]`:""};`):(a.push(`uniform sampler2D ${c.name};`),a.push(`uniform int offset${c.name};`)),n.enableShapeUniforms){let{uniformShape:m}=n1(n.packedInputs,c.shapeInfo.logicalShape,c.shapeInfo.texShape);switch(m.length){case 1:a.push(`uniform int ${c.name}Shape;`);break;case 2:a.push(`uniform ivec2 ${c.name}Shape;`);break;case 3:a.push(`uniform ivec3 ${c.name}Shape;`);break;case 4:a.push(`uniform ivec4 ${c.name}Shape;`);break;default:break}a.push(`uniform ivec2 ${c.name}TexShape;`)}}),n.enableShapeUniforms){switch(t.logicalShape.length){case 1:a.push("uniform int outShape;");break;case 2:a.push("uniform ivec2 outShape;"),a.push("uniform int outShapeStrides;");break;case 3:a.push("uniform ivec3 outShape;"),a.push("uniform ivec2 outShapeStrides;");break;case 4:a.push("uniform ivec4 outShape;"),a.push("uniform ivec3 outShapeStrides;");break;default:break}a.push("uniform ivec2 outTexShape;")}n.customUniforms&&n.customUniforms.forEach(c=>{a.push(`uniform ${c.type} ${c.name}${c.arrayIndex?`[${c.arrayIndex}]`:""};`)});let r=a.join(` +`),s=e.map(c=>mZ(c,t,n.packedInputs,n.enableShapeUniforms)).join(` +`),i=t.texShape,o=En(),l=yZ(o),u,p,d=vZ(o);return t.isPacked?(u=fZ(t.logicalShape,i,n.enableShapeUniforms),p=xZ(o)):(u=gZ(t.logicalShape,i,n.enableShapeUniforms),p=bZ(o)),n.packedInputs&&(d+=SZ),[d,l,p,r,u,s,n.userCode].join(` +`)}function Ju(e,t=!1){let n=e.shapeInfo.logicalShape;switch(n.length){case 0:return PZ(e,t);case 1:return LZ(e,t);case 2:return WZ(e,t);case 3:return VZ(e,t);case 4:return GZ(e,t);case 5:return HZ(e);case 6:return jZ(e);default:throw new Error(`${n.length}-D input sampling is not yet supported`)}}function BE(e,t){switch(e.shapeInfo.logicalShape.length){case 0:return MZ(e);case 1:return OZ(e,t);case 2:return zZ(e,t);case 3:return BZ(e,t);default:return UZ(e,t)}}function mZ(e,t,n=!1,a){let r="";n?r+=BE(e,a):r+=Ju(e,a);let s=e.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(n?r+=qZ(e,t):r+=KZ(e,t)),r}function fZ(e,t,n){switch(e.length){case 0:return VE();case 1:return TZ(e,t,n);case 2:return DZ(e,t,n);case 3:return CZ(e,t,n);default:return _Z(e,t,n)}}function gZ(e,t,n){switch(e.length){case 0:return VE();case 1:return NZ(e,t,n);case 2:return RZ(e,t,n);case 3:return EZ(e,t,n);case 4:return AZ(e,t,n);case 5:return $Z(e,t);case 6:return FZ(e,t);default:throw new Error(`${e.length}-D output sampling is not yet supported`)}}function yZ(e){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${e.texture2D}(textureSampler, uv).r; } - `}function hZ(e){return` + `}function bZ(e){return` void setOutput(float val) { ${e.output} = vec4(val, 0, 0, 0); } - `}function mZ(e){return` + `}function xZ(e){return` void setOutput(vec4 val) { ${e.output} = val; } - `}function fZ(e){return`${e.version} + `}function vZ(e){return`${e.version} precision highp float; precision highp int; precision highp sampler2D; @@ -225,10 +225,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${gZ} - ${yZ} - ${bZ} - `}var gZ=` + ${wZ} + ${kZ} + ${IZ} + `}var wZ=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -240,7 +240,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,yZ=` +`,kZ=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -248,7 +248,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,bZ=` +`,IZ=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -257,7 +257,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,xZ=` +`,SZ=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -268,11 +268,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function z_(){return` +`;function VE(){return` int getOutputCoords() { return 0; } - `}function vZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` + `}function TZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return a[0]===1?n?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -301,7 +301,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${a[0]}, ${a[1]})); return 2 * (resTexRC.x * ${a[1]} + resTexRC.y); } - `}function wZ(e,t,n){return t[0]===1?n?` + `}function NZ(e,t,n){return t[0]===1?n?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -329,7 +329,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function kZ(e,t,n){if(n)return` + `}function CZ(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -360,15 +360,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function IZ(e,t,n){if(n)return` + `}function EZ(e,t,n){if(n)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Kf(["r","c","d"],e)} + ${Xf(["r","c","d"],e)} return ivec3(r, c, d); } -`;let a=wo(["r","c","d"],e);return` +`;let a=No(["r","c","d"],e);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -376,7 +376,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec3(r, c, d); } - `}function SZ(e,t,n){if(n)return` + `}function _Z(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -417,15 +417,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${e.length}(${l}); } - `}function TZ(e,t,n){if(n)return` + `}function AZ(e,t,n){if(n)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Kf(["r","c","d","d2"],e)} + ${Xf(["r","c","d","d2"],e)} return ivec4(r, c, d, d2); } - `;let a=wo(["r","c","d","d2"],e);return` + `;let a=No(["r","c","d","d2"],e);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -433,7 +433,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${a} return ivec4(r, c, d, d2); } - `}function NZ(e,t){let n=wo(["r","c","d","d2","d3"],e);return` + `}function $Z(e,t){let n=No(["r","c","d","d2","d3"],e);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -445,7 +445,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function CZ(e,t){let n=wo(["r","c","d","d2","d3","d4"],e);return` + `}function FZ(e,t){let n=No(["r","c","d","d2","d3","d4"],e);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -456,7 +456,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function _Z(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` + `}function DZ(e,t,n){let a=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(v.arraysEqual(e,t))return n?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -489,7 +489,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function EZ(e,t,n){return v.arraysEqual(e,t)?n?` + `}function RZ(e,t,n){return v.arraysEqual(e,t)?n?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -543,15 +543,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${e[1]}; return ivec2(r, c); } - `}function ko(e){return`offset${e}`}function $Z(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=_n();return` + `}function Co(e){return`offset${e}`}function MZ(e){let t=e.name,n="get"+t.charAt(0).toUpperCase()+t.slice(1),a=En();return` vec4 ${n}() { return ${a.texture2D}(${t}, halfCR); } - `}function AZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` + `}function PZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return`float ${a}() {return ${n};}`;let[r,s]=e.shapeInfo.texShape;if(r===1&&s===1)return` float ${a}() { return sampleTexture(${n}, halfCR); } - `;let i=ko(n);if(t)return` + `;let i=Co(n);if(t)return` float ${a}() { vec2 uv = uvFromFlat(${n}TexShape[0], ${n}TexShape[1], ${i}); return sampleTexture(${n}, uv); @@ -561,7 +561,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${o}, ${l}, ${i}); return sampleTexture(${n}, uv); } - `}function FZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=_n();if(t)return` + `}function OZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1),r=e.shapeInfo.texShape,s=En();if(t)return` vec4 ${a}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${n}TexShape[0]) / 2.0), ceil(float(${n}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -574,15 +574,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${n}, uv); } - `}function DZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` + `}function LZ(e,t){let n=e.name,a="get"+n.charAt(0).toUpperCase()+n.slice(1);if(e.shapeInfo.isUniform)return` float ${a}(int index) { - ${Ju(e)} + ${Qu(e)} } `;let r=e.shapeInfo.texShape,s=r[0],i=r[1];if(i===1&&s===1)return` float ${a}(int index) { return sampleTexture(${n}, halfCR); } - `;let o=ko(n);return i===1?t?` + `;let o=Co(n);return i===1?t?` float ${a}(int index) { vec2 uv = vec2(0.5, (float(index + ${o}) + 0.5) / float(${n}TexShape[0])); return sampleTexture(${n}, uv); @@ -612,7 +612,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${o}); return sampleTexture(${n}, uv); } - `}function RZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=_n();if(s!=null&&v.arraysEqual(n,s))return t?` + `}function zZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape,i=s[0],o=s[1],l=En();if(s!=null&&v.arraysEqual(n,s))return t?` vec4 ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); @@ -636,7 +636,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${p}, ${u[0]}, ${u[1]}, row, col); return ${l.texture2D}(${a}, uv); } - `}function MZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` + `}function WZ(e,t){let n=e.shapeInfo.logicalShape,a=e.name,r="get"+a.charAt(0).toUpperCase()+a.slice(1),s=e.shapeInfo.texShape;if(s!=null&&v.arraysEqual(n,s)){if(t)return` float ${r}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${a}TexShape[1], ${a}TexShape[0]); return sampleTexture(${a}, uv); @@ -646,17 +646,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${h}.0, ${c}.0); return sampleTexture(${a}, uv); } - `}let{newShape:i,keptDims:o}=v.squeezeShape(n),l=i;if(l.length=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` + `}function qZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=e.shapeInfo.logicalShape.length,i=t.logicalShape.length,o=WE(e.shapeInfo.logicalShape,t.logicalShape),l=gt(i),u=i-s,p,d=["x","y","z","w","u","v"];s===0?p="":i<2&&o.length>=1?p="coords = 0;":p=o.map(g=>`coords.${d[g+u]} = 0;`).join(` `);let c="";i<2&&s>0?c="coords":c=e.shapeInfo.logicalShape.map((g,y)=>`coords.${d[y+u]}`).join(", ");let h="return outputValue;",m=v.sizeFromShape(e.shapeInfo.logicalShape)===1,f=v.sizeFromShape(t.logicalShape)===1;if(s===1&&!m&&!f)h=` return vec4(outputValue.xy, outputValue.xy); `;else if(m&&!f)i===1?h=` @@ -973,20 +973,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${a}(${c}); ${h} } - `}function UZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` + `}function KZ(e,t){let n=e.name,a=n.charAt(0).toUpperCase()+n.slice(1),r="get"+a+"AtOutCoords",s=t.texShape,i=e.shapeInfo.texShape,o=e.shapeInfo.logicalShape.length,l=t.logicalShape.length;if(!e.shapeInfo.isUniform&&o===l&&e.shapeInfo.flatOffset==null&&v.arraysEqual(i,s))return` float ${r}() { return sampleTexture(${n}, resultUV); } - `;let u=gt(l),p=O_(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` + `;let u=gt(l),p=WE(e.shapeInfo.logicalShape,t.logicalShape),d=l-o,c,h=["x","y","z","w","u","v"];o===0?c="":l<2&&p.length>=1?c="coords = 0;":c=p.map(f=>`coords.${h[f+d]} = 0;`).join(` `);let m="";return l<2&&o>0?m="coords":m=e.shapeInfo.logicalShape.map((f,g)=>`coords.${h[g+d]}`).join(", "),` float ${r}() { ${u} coords = getOutputCoords(); ${c} return get${a}(${m}); } - `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function Q0(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function GZ(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=lZ(r,i,t),l=f_(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},W_(e,t,u))}function W_(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function dI(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function HZ(e,t,n,a,r){t.program.enableShapeUniforms||(dI(t.inShapeInfos,n),dI([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=Q0(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function jZ(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=Q0(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),y=v.sizeFromShape(i.shape)===1,b=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${y}_${b}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function En(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var qZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=rc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` + `}function gt(e){if(e<=1)return"int";if(e===2)return"ivec2";if(e===3)return"ivec3";if(e===4)return"ivec4";if(e===5)return"ivec5";if(e===6)return"ivec6";throw Error(`GPU for rank ${e} is not yet supported`)}function n1(e,t,n){let{newShape:a,keptDims:r}=v.squeezeShape(t),s=t.length,i=e&&s===3&&t[0]===1,o=i?t.slice(1):a,l=!e&&s>1&&!v.arraysEqual(t,n)&&a.lengthe[n]).join(", ")}function XZ(e,t,n,a){let r=n.map((p,d)=>{let c={logicalShape:p.shape,texShape:p.isUniform?null:p.texData.texShape,isUniform:p.isUniform,isPacked:p.isUniform?!1:p.texData.isPacked,flatOffset:null};return p.texData!=null&&p.texData.slice!=null&&p.texData.slice.flatOffset>0&&(c.flatOffset=p.texData.slice.flatOffset),{name:t.variableNames[d],shapeInfo:c}}),s=r.map(p=>p.shapeInfo),i={logicalShape:a.shape,texShape:a.texData.texShape,isUniform:!1,isPacked:a.texData.isPacked,flatOffset:null},o=hZ(r,i,t),l=bE(e.gl,o),u=e.createProgram(l);return H().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:l,source:o,webGLProgram:u,inShapeInfos:s,outShapeInfo:i},UE(e,t,u))}function UE(e,t,n){let a={},r={},s={},i=[],o,l,u,p=null,d=null;d=e.getUniformLocation(n,"NAN",!1),H().getNumber("WEBGL_VERSION")===1&&(p=e.getUniformLocation(n,"INFINITY",!1));let c=!1;for(let h=0;h{i[m]=e.getUniformLocation(n,h.name,c)}),{uniformLocations:a,customUniformLocations:i,infLoc:p,nanLoc:d,inShapesLocations:r,inTexShapesLocations:s,outShapeLocation:o,outShapeStridesLocation:u,outTexShapeLocation:l}}function fI(e,t){if(e.length!==t.length)throw Error(`Binary was compiled with ${e.length} inputs, but was executed with ${t.length} inputs`);e.forEach((n,a)=>{let r=n.logicalShape,s=t[a],i=s.shape;if(!v.arraysEqual(r,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${r} and ${i} must match`);if(n.isUniform&&s.isUniform)return;let o=n.texShape,l=s.isUniform?null:s.texData.texShape;if(!v.arraysEqual(o,l))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${o} and ${l} must match`)})}function YZ(e,t,n,a,r){t.program.enableShapeUniforms||(fI(t.inShapeInfos,n),fI([t.outShapeInfo],[a]));let s=a.texData.texture,i=a.texData.texShape;a.texData.isPacked?e.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):e.setOutputMatrixTexture(s.texture,i[0],i[1]),e.setProgram(t.webGLProgram),H().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&e.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&e.gl.uniform1f(t.nanLoc,NaN),n.forEach((l,u)=>{let p=t.program.variableNames[u],d=t.uniformLocations[p],c=t.uniformLocations[`offset${p}`],h=t.inShapesLocations[`${p}Shape`],m=t.inTexShapesLocations[`${p}TexShape`];if(h){let{uniformShape:f}=n1(t.program.packedInputs,l.shape,l.texData.texShape);switch(f.length){case 1:e.gl.uniform1iv(h,new Int32Array(f));break;case 2:e.gl.uniform2iv(h,new Int32Array(f));break;case 3:e.gl.uniform3iv(h,new Int32Array(f));break;case 4:e.gl.uniform4iv(h,new Int32Array(f));break;default:break}}if(m&&e.gl.uniform2i(m,l.texData.texShape[0],l.texData.texShape[1]),d!=null){if(l.isUniform){if(v.sizeFromShape(l.shape)<2)e.gl.uniform1f(d,l.uniformValues[0]);else{let f=l.uniformValues;f instanceof Float32Array||(f=new Float32Array(f)),e.gl.uniform1fv(d,f)}return}l.texData.slice!=null&&c!=null&&e.gl.uniform1i(c,l.texData.slice.flatOffset),e.setInputMatrixTexture(l.texData.texture.texture,d,u)}});let o=t.outShapeLocation;if(o)switch(a.shape.length){case 1:e.gl.uniform1iv(o,new Int32Array(a.shape));break;case 2:e.gl.uniform2iv(o,new Int32Array(a.shape));break;case 3:e.gl.uniform3iv(o,new Int32Array(a.shape));break;case 4:e.gl.uniform4iv(o,new Int32Array(a.shape));break;default:break}if(t.outShapeStridesLocation){let l=v.computeStrides(a.shape);switch(a.shape.length){case 2:e.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(l));break;case 3:e.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(l));break;case 4:e.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(l));break;default:break}}t.outTexShapeLocation&&e.gl.uniform2i(t.outTexShapeLocation,a.texData.texShape[0],a.texData.texShape[1]),t.program.customUniforms&&r&&t.program.customUniforms.forEach((l,u)=>{let p=t.customUniformLocations[u],d=r[u];if(l.type==="float")e.gl.uniform1fv(p,d);else if(l.type==="vec2")e.gl.uniform2fv(p,d);else if(l.type==="vec3")e.gl.uniform3fv(p,d);else if(l.type==="vec4")e.gl.uniform4fv(p,d);else if(l.type==="int")e.gl.uniform1iv(p,d);else if(l.type==="ivec2")e.gl.uniform2iv(p,d);else if(l.type==="ivec3")e.gl.uniform3iv(p,d);else if(l.type==="ivec4")e.gl.uniform4iv(p,d);else throw Error(`uniform type ${l.type} is not supported yet.`)}),e.executeProgram()}function ZZ(e,t,n){let a="";t.concat(n).forEach(i=>{let o=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(e.enableShapeUniforms&&!i.isUniform){let l=i.texData.texShape,{useSqueezeShape:u,uniformShape:p,keptDims:d}=n1(e.packedInputs,i.shape,l),c="",h="",m="";if(p.length===1&&e.packedInputs){let I=[Math.ceil(l[0]/2),Math.ceil(l[1]/2)];c=`${I[0]>1}_${I[1]>1}`}else if(p.length===2&&!e.packedInputs)h=`${p[0]>1}_${p[1]>1}`;else if(p.length>2&&!e.packedInputs){let I=v.computeStrides(p);m=`${I[0]===l[1]}_${I[I.length-1]===l[1]}`}let f=i.shape.length,g=p.length===2&&v.arraysEqual(i.shape,l),y=v.sizeFromShape(i.shape)===1,b=N.getBroadcastDims(i.shape,n.shape),x=!e.packedInputs&&f===n.shape.length&&v.arraysEqual(l,n.texData.texShape),w=e.packedInputs||p.length>2?"":`${l[0]>1}_${l[1]>1}`;a+=`${f}_${x}_${u?d:""}_${p.length}_${y}_${b}_${g}_${c}_${h}_${m}_${w}_${o}`}else{let l=i.isUniform?"uniform":i.texData.texShape;a+=`${i.shape}_${l}_${o}`}});let r=e.userCode,s=e.constructor.name;return s+="_"+a+"_"+r+`${H().getNumber("WEBGL_VERSION")}`,s}function _n(e){return H().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&e<=4}var JZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=sc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Kf(["r","c","d"],e):wo(["r","c","d"],e)} + ${this.enableShapeUniforms?Xf(["r","c","d"],e):No(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1004,9 +1004,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},KZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=rc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=_n();this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` + `}},QZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=sc.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let t=En();this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Kf(["r","c","d"],e):wo(["r","c","d"],e)} + ${this.enableShapeUniforms?Xf(["r","c","d"],e):No(["r","c","d"],e)} return ivec3(r, c, d); } @@ -1024,26 +1024,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${t.output} = result; } - `}},XZ=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` - ${P_} + `}},e7=class{constructor(e){this.variableNames=["A"],this.outTexUsage=ca.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${zE} void main() { float x = getAAtOutCoords(); ${t.output} = encode_float(x); } - `}},YZ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=_n();this.outputShape=e,this.userCode=` - ${P_} + `}},t7=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=ca.DOWNLOAD;let t=En();this.outputShape=e,this.userCode=` + ${zE} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${t.output} = encode_float(x); } - `}},ZZ={R:0,G:1,B:2,A:3},hI=class{constructor(e,t=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let a=_n();this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length);let r="result";t&&(r="floor(result * 255. + 0.5)");let s="";for(let i=0;iY_,createBufferFromOutputTexture:()=>Q_,createFloat16MatrixTexture:()=>j_,createFloat16PackedMatrixTexture:()=>X_,createFloat32MatrixTexture:()=>H_,createIndexBuffer:()=>G_,createPackedMatrixTexture:()=>K_,createUnsignedBytesMatrixTexture:()=>q_,createVertexBuffer:()=>U_,createVertexShader:()=>V_,downloadByteEncodedFloatMatrixFromOutputTexture:()=>tE,downloadFloat32MatrixFromBuffer:()=>eE,downloadMatrixFromPackedOutputTexture:()=>aE,downloadPackedMatrixFromBuffer:()=>nE,getInternalFormatForFloat16MatrixTexture:()=>t1,getInternalFormatForFloat16PackedMatrixTexture:()=>r1,getInternalFormatForFloat32MatrixTexture:()=>e1,getInternalFormatForPackedMatrixTexture:()=>a1,getInternalFormatForUnsignedBytesMatrixTexture:()=>n1,uploadDenseMatrixToTexture:()=>Z_,uploadPixelDataToTexture:()=>J_});function V_(e){let t=_n(),n=`${t.version} + `}},GE={};Ae(GE,{bindVertexProgramAttributeStreams:()=>QE,createBufferFromOutputTexture:()=>n_,createFloat16MatrixTexture:()=>XE,createFloat16PackedMatrixTexture:()=>JE,createFloat32MatrixTexture:()=>KE,createIndexBuffer:()=>qE,createPackedMatrixTexture:()=>ZE,createUnsignedBytesMatrixTexture:()=>YE,createVertexBuffer:()=>jE,createVertexShader:()=>HE,downloadByteEncodedFloatMatrixFromOutputTexture:()=>r_,downloadFloat32MatrixFromBuffer:()=>a_,downloadMatrixFromPackedOutputTexture:()=>i_,downloadPackedMatrixFromBuffer:()=>s_,getInternalFormatForFloat16MatrixTexture:()=>r1,getInternalFormatForFloat16PackedMatrixTexture:()=>o1,getInternalFormatForFloat32MatrixTexture:()=>a1,getInternalFormatForPackedMatrixTexture:()=>i1,getInternalFormatForUnsignedBytesMatrixTexture:()=>s1,uploadDenseMatrixToTexture:()=>e_,uploadPixelDataToTexture:()=>t_});function HE(e){let t=En(),n=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1115,11 +1115,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return m_(e,n)}function U_(e){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return b_(e,t)}function G_(e){let t=new Uint16Array([0,1,2,2,1,3]);return x_(e,t)}function od(e,t,n,a,r,s){w_(t,n);let i=v_(e),o=e.TEXTURE_2D;return me(e,()=>e.bindTexture(o,i)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),me(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),me(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?me(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):me(e,()=>e.texStorage2D(o,1,a,t,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function e1(e){return e.internalFormatFloat}function H_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,e1(a),a.textureFormatFloat,e.FLOAT)}function t1(e){return e.internalFormatHalfFloat}function j_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,t1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function n1(e){return e.downloadTextureFormat}function q_(e,t,n,a){let[r,s]=id(t,n);return od(e,r,s,n1(a),e.RGBA,e.UNSIGNED_BYTE)}function a1(e){return e.internalFormatPackedFloat}function K_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,a1(a),e.RGBA,e.FLOAT)}function r1(e){return e.internalFormatPackedHalfFloat}function X_(e,t,n,a){let[r,s]=Xu(t,n);return od(e,r,s,r1(a),e.RGBA,a.textureTypeHalfFloat)}function Y_(e,t,n){return me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),mx(e,t,"clipSpacePos",n,3,20,0)&&mx(e,t,"uv",n,2,20,12)}function Z_(e,t,n,a,r,s){me(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function J_(e,t,n){me(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?me(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):me(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),me(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function Q_(e,t,n,a){let r=e.createBuffer();me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return me(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),me(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function eE(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function tE(e,t,n,a){let[r,s]=id(t,n),i=4,o=new Uint8Array(KY(t*n,i));return me(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function nE(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(XY(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function aE(e,t,n){let a=new Float32Array(t*n*4);return me(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Th=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");e!=null?(this.gl=e,c_(t,e)):this.gl=qa(t);let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=zp(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=zp(this.gl,s);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),da(this.gl,a))this.colorBufferHalfFloatExtension=zp(this.gl,a);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=U_(this.gl),this.indexBuffer=G_(this.gl),this.framebuffer=k_(this.gl),this.textureConfig=X0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;me(e,()=>e.finish()),me(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),me(e,()=>e.deleteFramebuffer(this.framebuffer)),me(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),me(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),me(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),H_(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),j_(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),q_(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),J_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),Z_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),X_(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),K_(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(fx(this.gl,this.framebuffer),this.outputTexture=null),me(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>tE(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return nE(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return eE(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=Q_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>aE(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=V_(t));let n=g_(t);return me(t,()=>t.attachShader(n,this.vertexShader)),me(t,()=>t.attachShader(n,e)),y_(t,n),this.debug&&wh(t,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=Y_(t,this.program,this.vertexBuffer)),n}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&me(this.gl,()=>this.gl.deleteProgram(e))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&this.debug&&wh(this.gl,this.program),me(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?S_(this.gl,e,t):T_(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),me(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),N_(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Xu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&wh(this.gl,this.program),Wp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;this.debug&&this.debugValidate(),me(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),me(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=zp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=QZ(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),kh(this.gl,e,this.framebuffer),this.debug&&Wp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(kh(this.gl,this.outputTexture,this.framebuffer),this.debug&&Wp(this.gl)):fx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;kh(a,e,this.framebuffer),this.debug&&Wp(a),this.outputTexture=e,me(a,()=>a.viewport(0,0,t,n)),me(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),me(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function QZ(e){let t=0;for(;t`${e}.${n}`)}function kn(e,t){return t===1?[e]:oE(e,t)}function U7(e,t){if(e===1)return"rc";let n="";for(let a=0;ae.bindTexture(o,i)),ce(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE)),ce(e,()=>e.texParameteri(o,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE)),ce(e,()=>e.texParameteri(o,e.TEXTURE_MIN_FILTER,e.NEAREST)),ce(e,()=>e.texParameteri(o,e.TEXTURE_MAG_FILTER,e.NEAREST)),H().getNumber("WEBGL_VERSION")===1?ce(e,()=>e.texImage2D(o,0,a,t,n,0,r,s,null)):ce(e,()=>e.texStorage2D(o,1,a,t,n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null)),{texture:i,texShape:[n,t]}}function a1(e){return e.internalFormatFloat}function KE(e,t,n,a){let[r,s]=od(t,n);return ld(e,r,s,a1(a),a.textureFormatFloat,e.FLOAT)}function r1(e){return e.internalFormatHalfFloat}function XE(e,t,n,a){let[r,s]=od(t,n);return ld(e,r,s,r1(a),a.textureFormatFloat,a.textureTypeHalfFloat)}function s1(e){return e.downloadTextureFormat}function YE(e,t,n,a){let[r,s]=od(t,n);return ld(e,r,s,s1(a),e.RGBA,e.UNSIGNED_BYTE)}function i1(e){return e.internalFormatPackedFloat}function ZE(e,t,n,a){let[r,s]=Yu(t,n);return ld(e,r,s,i1(a),e.RGBA,e.FLOAT)}function o1(e){return e.internalFormatPackedHalfFloat}function JE(e,t,n,a){let[r,s]=Yu(t,n);return ld(e,r,s,o1(a),e.RGBA,a.textureTypeHalfFloat)}function QE(e,t,n){return ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,n)),bx(e,t,"clipSpacePos",n,3,20,0)&&bx(e,t,"uv",n,2,20,12)}function e_(e,t,n,a,r,s){ce(e,()=>e.bindTexture(e.TEXTURE_2D,t));let i,o,l;r instanceof Uint8Array?(i=new Uint8Array(n*a*4),o=e.UNSIGNED_BYTE,l=e.RGBA):(i=new Float32Array(n*a*4),o=e.FLOAT,l=s.internalFormatPackedFloat),i.set(r),H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n,a,e.RGBA,o,i)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,l,n,a,0,e.RGBA,o,i)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function t_(e,t,n){ce(e,()=>e.bindTexture(e.TEXTURE_2D,t)),n.data instanceof Uint8Array?H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,n.width,n.height,e.RGBA,e.UNSIGNED_BYTE,n.data)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,n.width,n.height,0,e.RGBA,e.UNSIGNED_BYTE,n.data)):H().getNumber("WEBGL_VERSION")===2?ce(e,()=>e.texSubImage2D(e.TEXTURE_2D,0,0,0,e.RGBA,e.UNSIGNED_BYTE,n)):ce(e,()=>e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,n)),ce(e,()=>e.bindTexture(e.TEXTURE_2D,null))}function n_(e,t,n,a){let r=e.createBuffer();ce(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,r));let s=4*4*t*n;return ce(e,()=>e.bufferData(e.PIXEL_PACK_BUFFER,s,e.STREAM_READ)),ce(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,0)),ce(e,()=>e.bindBuffer(e.PIXEL_PACK_BUFFER,null)),r}function a_(e,t,n){let a=e,r=new Float32Array(n);return a.bindBuffer(a.PIXEL_PACK_BUFFER,t),a.getBufferSubData(a.PIXEL_PACK_BUFFER,0,r),a.bindBuffer(a.PIXEL_PACK_BUFFER,null),r}function r_(e,t,n,a){let[r,s]=od(t,n),i=4,o=new Uint8Array(QY(t*n,i));return ce(e,()=>e.readPixels(0,0,r,s,a.downloadTextureFormat,e.UNSIGNED_BYTE,o)),new Float32Array(o.buffer)}function s_(e,t,n,a,r,s,i,o){let l=e,u=new Float32Array(eZ(s,i));return l.bindBuffer(l.PIXEL_PACK_BUFFER,t),l.getBufferSubData(l.PIXEL_PACK_BUFFER,0,u),l.bindBuffer(l.PIXEL_PACK_BUFFER,null),u}function i_(e,t,n){let a=new Float32Array(t*n*4);return ce(e,()=>e.readPixels(0,0,n,t,e.RGBA,e.FLOAT,a)),a}var Nh=class{constructor(e){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let t=H().getNumber("WEBGL_VERSION");if(e!=null?(this.gl=e,mE(t,e)):this.gl=Ka(t),e=this.gl,H().getNumber("WEBGL_VERSION")===2){let r=e;this.createVertexArray=()=>ce(r,()=>r.createVertexArray()),this.bindVertexArray=s=>ce(r,()=>r.bindVertexArray(s)),this.deleteVertexArray=s=>ce(r,()=>r.deleteVertexArray(s)),this.getVertexArray=()=>ce(r,()=>r.getParameter(r.VERTEX_ARRAY_BINDING))}else if(e!=null){let r=e.getExtension("OES_vertex_array_object");if(r==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>ce(e,()=>r.createVertexArrayOES()),this.bindVertexArray=s=>ce(e,()=>r.bindVertexArrayOES(s)),this.deleteVertexArray=s=>ce(e,()=>r.deleteVertexArrayOES(s)),this.getVertexArray=()=>ce(e,()=>e.getParameter(r.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",a="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),H().getNumber("WEBGL_VERSION")===1){let r="OES_texture_float",s="OES_texture_half_float";if(this.textureFloatExtension=Wp(this.gl,r),da(this.gl,s))this.textureHalfFloatExtension=Wp(this.gl,s);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),da(this.gl,a))this.colorBufferHalfFloatExtension=Wp(this.gl,a);else if(H().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",da(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(da(this.gl,a))this.colorBufferHalfFloatExtension=this.gl.getExtension(a);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=jE(this.gl),this.indexBuffer=qE(this.gl),this.framebuffer=TE(this.gl),this.textureConfig=J0(this.gl,this.textureHalfFloatExtension)}get debug(){return H().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let e=this.gl;ce(e,()=>e.finish()),ce(e,()=>e.bindFramebuffer(e.FRAMEBUFFER,null)),ce(e,()=>e.deleteFramebuffer(this.framebuffer)),ce(e,()=>e.bindBuffer(e.ARRAY_BUFFER,null)),ce(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,null)),ce(e,()=>e.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(e,t){return this.throwIfDisposed(),KE(this.gl,e,t,this.textureConfig)}createFloat16MatrixTexture(e,t){return this.throwIfDisposed(),XE(this.gl,e,t,this.textureConfig)}createUnsignedBytesMatrixTexture(e,t){return this.throwIfDisposed(),YE(this.gl,e,t,this.textureConfig)}uploadPixelDataToTexture(e,t){this.throwIfDisposed(),t_(this.gl,e,t)}uploadDenseMatrixToTexture(e,t,n,a){this.throwIfDisposed(),e_(this.gl,e,t,n,a,this.textureConfig)}createFloat16PackedMatrixTexture(e,t){return this.throwIfDisposed(),JE(this.gl,e,t,this.textureConfig)}createPackedMatrixTexture(e,t){return this.throwIfDisposed(),ZE(this.gl,e,t,this.textureConfig)}deleteMatrixTexture(e){this.throwIfDisposed(),this.outputTexture===e&&(xx(this.gl,this.framebuffer),this.outputTexture=null),ce(this.gl,()=>this.gl.deleteTexture(e))}downloadByteEncodedFloatMatrixFromOutputTexture(e,t,n){return this.downloadMatrixDriver(e,()=>r_(this.gl,t,n,this.textureConfig))}downloadPackedMatrixFromBuffer(e,t,n,a,r,s){return s_(this.gl,e,t,n,a,r,s,this.textureConfig)}downloadFloat32MatrixFromBuffer(e,t){return a_(this.gl,e,t)}createBufferFromTexture(e,t,n){this.bindTextureToFrameBuffer(e);let a=n_(this.gl,t,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),a}createAndWaitForFence(){let e=this.createFence(this.gl);return this.pollFence(e)}createFence(e){let t,n;if(H().getBool("WEBGL_FENCE_API_ENABLED")){let a=e,r=a.fenceSync(a.SYNC_GPU_COMMANDS_COMPLETE,0);e.flush(),n=()=>{let s=a.clientWaitSync(r,0,0);return s===a.ALREADY_SIGNALED||s===a.CONDITION_SATISFIED},t=r}else H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(t=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(t,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:t,isFencePassed:n}}downloadMatrixFromPackedTexture(e,t,n){return this.downloadMatrixDriver(e,()=>i_(this.gl,t,n))}createProgram(e){this.throwIfDisposed();let t=this.gl;this.vertexShader==null&&(this.vertexShader=HE(t));let n=xE(t);ce(t,()=>t.attachShader(n,this.vertexShader)),ce(t,()=>t.attachShader(n,e)),vE(t,n);let a;return a=Object.assign(n,{vao:this.createVertexArray()}),this.bindVertexArray(a.vao),ce(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),console.assert(QE(t,a,this.vertexBuffer),"gpgpu_util.bindVertexProgramAttributeStreams not fully successful."),this.debug&&kh(t,a),this.setProgram(a),a}deleteProgram(e){this.throwIfDisposed(),e===this.program&&(this.program=null),e!=null&&(ce(this.gl,()=>this.gl.deleteProgram(e)),this.deleteVertexArray(e.vao))}setProgram(e){this.throwIfDisposed(),this.program=e,this.program!=null&&(this.bindVertexArray(this.program.vao),this.debug&&kh(this.gl,this.program)),ce(this.gl,()=>this.gl.useProgram(e))}getUniformLocation(e,t,n=!0){return this.throwIfDisposed(),n?CE(this.gl,e,t):EE(this.gl,e,t)}getAttributeLocation(e,t){return this.throwIfDisposed(),ce(this.gl,()=>this.gl.getAttribLocation(e,t))}getUniformLocationNoThrow(e,t){return this.throwIfDisposed(),this.gl.getUniformLocation(e,t)}setInputMatrixTexture(e,t,n){this.throwIfDisposed(),this.throwIfNoProgram(),_E(this.gl,e,t,n)}setOutputMatrixTexture(e,t,n){this.setOutputMatrixTextureDriver(e,n,t)}setOutputPackedMatrixTexture(e,t,n){this.throwIfDisposed();let[a,r]=Yu(t,n);this.setOutputMatrixTextureDriver(e,a,r)}setOutputMatrixWriteRegion(e,t,n,a){this.setOutputMatrixWriteRegionDriver(n,e,a,t)}setOutputPackedMatrixWriteRegion(e,t,n,a){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&kh(this.gl,this.program),Bp(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let e=this.gl;if(this.debug){let t=this.getVertexArray();console.assert(t===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}ce(e,()=>e.drawElements(e.TRIANGLES,6,e.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ce(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=Wp(this.gl,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.createQuery();return n.beginQuery(a.TIME_ELAPSED_EXT,r),r}let e=this.getQueryTimerExtensionWebGL1(),t=e.createQueryEXT();return e.beginQueryEXT(e.TIME_ELAPSED_EXT,t),t}endQuery(){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let t=this.gl,n=this.getQueryTimerExtensionWebGL2();t.endQuery(n.TIME_ELAPSED_EXT);return}let e=this.getQueryTimerExtensionWebGL1();e.endQueryEXT(e.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(e){return await v.repeatedTry(()=>this.disposed||this.isQueryAvailable(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(e,H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(e,t){if(t===0)return null;if(t===2){let n=this.gl;return n.getQueryParameter(e,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(e,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(e,t){if(t===0)return!0;if(t===2){let n=this.gl,a=this.getQueryTimerExtensionWebGL2(),r=n.getQueryParameter(e,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(a.GPU_DISJOINT_EXT)),r&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),a=n.getQueryObjectEXT(e,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),a&&!this.disjoint}}pollFence(e){return new Promise(t=>{this.addItemToPoll(()=>e.isFencePassed(),()=>t())})}pollItems(){let e=r7(this.itemsToPoll.map(t=>t.isDoneFn));for(let t=0;t<=e;++t){let{resolveFn:n}=this.itemsToPoll[t];n()}this.itemsToPoll=this.itemsToPoll.slice(e+1)}addItemToPoll(e,t){if(this.itemsToPoll.push({isDoneFn:e,resolveFn:t}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in H().platform&&(n=H().platform.setTimeoutCustom.bind(H().platform)),v.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(e){this.throwIfDisposed(),Ih(this.gl,e,this.framebuffer),this.debug&&Bp(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Ih(this.gl,this.outputTexture,this.framebuffer),this.debug&&Bp(this.gl)):xx(this.gl,this.framebuffer)}downloadMatrixDriver(e,t){this.bindTextureToFrameBuffer(e);let n=t();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(e,t,n){this.throwIfDisposed();let a=this.gl;Ih(a,e,this.framebuffer),this.debug&&Bp(a),this.outputTexture=e,ce(a,()=>a.viewport(0,0,t,n)),ce(a,()=>a.scissor(0,0,t,n))}setOutputMatrixWriteRegionDriver(e,t,n,a){this.throwIfDisposed(),ce(this.gl,()=>this.gl.scissor(e,t,n,a))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function r7(e){let t=0;for(;t`${e}.${n}`)}function In(e,t){return t===1?[e]:p_(e,t)}function K7(e,t){if(e===1)return"rc";let n="";for(let a=0;a= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${t[0]}), cEdge ? 0. : getA(${t[1]}), rEdge ? 0. : getA(${t[2]}), - rEdge || cEdge ? 0. : getA(${t[3]})`}},lE=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${t[3]})`}},c_=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length);let n="";for(let a=0;a<4;a++){let r="thisRC = rc;";a%2===1&&(r+="thisRC.z += 1;"),a>1&&(r+="thisRC.y += 1;"),n+=` ${r} ${a>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1154,8 +1154,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${a>0?"}":""} `}this.userCode=` - ${H7(t,this.enableShapeUniforms)} - ${this.enableShapeUniforms?J0():Z0(e)} + ${Y7(t,this.enableShapeUniforms)} + ${this.enableShapeUniforms?t1():e1(e)} void main() { ivec3 rc = getOutputCoords(); @@ -1170,12 +1170,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function H7(e,t){return` + `}};function Y7(e,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?oZ(["r","c","d"],"inputShape"):wo(["r","c","d"],e)} + ${t?dZ(["r","c","d"],"inputShape"):No(["r","c","d"],e)} return ivec3(r, c, d); } - `}var j7=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=fI(t,n),r=gI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=mI(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===ln.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===ln.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===ln.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===ln.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=fI(n,a),s=gI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=mI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function q7(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function mI(e,t,n,a,r){let s=K7(t,a),i;if(r){let[l,u]=Xu(e[0],e[1]);i=l*u}else{let[l,u]=id(e[0],e[1]);i=l*u}let o=q7(n,s);return i*o}function K7(e,t){switch(e){case ln.PACKED_2X2_FLOAT32:return a1(t);case ln.PACKED_2X2_FLOAT16:return r1(t);case ln.UNPACKED_FLOAT32:return e1(t);case ln.UNPACKED_FLOAT16:return t1(t);case ln.PACKED_4X1_UNSIGNED_BYTE:return n1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function X7(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?ln.PACKED_2X2_FLOAT32:ln.UNPACKED_FLOAT32:e?ln.PACKED_2X2_FLOAT16:ln.UNPACKED_FLOAT16}function fI(e,t){if(e===ca.UPLOAD)return ln.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return X7(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return ln.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function gI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var Cr=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` + `}var Z7=class{constructor(e){this.gpgpu=e,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(e,t,n){let a=bI(t,n),r=xI(e,a,n);r in this.freeTextures||(this.freeTextures[r]=[]),r in this.usedTextures||(this.usedTextures[r]=[]);let s=yI(e,a,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[r].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=s,this.log();let o=this.freeTextures[r].shift();return this.usedTextures[r].push(o),o}let i;return a===un.PACKED_2X2_FLOAT32?i=this.gpgpu.createPackedMatrixTexture(e[0],e[1]):a===un.PACKED_2X2_FLOAT16?i=this.gpgpu.createFloat16PackedMatrixTexture(e[0],e[1]):a===un.UNPACKED_FLOAT32?i=this.gpgpu.createFloat32MatrixTexture(e[0],e[1]):a===un.UNPACKED_FLOAT16?i=this.gpgpu.createFloat16MatrixTexture(e[0],e[1]):a===un.PACKED_4X1_UNSIGNED_BYTE&&(i=this.gpgpu.createUnsignedBytesMatrixTexture(e[0],e[1])),this.usedTextures[r].push(i),this.numUsedTextures++,this._numBytesAllocated+=s,this.log(),i}releaseTexture(e,t,n,a){if(this.freeTextures==null)return;let r=bI(n,a),s=xI(t,r,a);s in this.freeTextures||(this.freeTextures[s]=[]);let i=yI(t,r,this.gpgpu.gl,this.gpgpu.textureConfig,a),o=H().get("WEBGL_DELETE_TEXTURE_THRESHOLD");o!==-1&&this._numBytesAllocated>o?(this.gpgpu.deleteMatrixTexture(e.texture),this._numBytesAllocated-=i):(this.freeTextures[s].push(e),this.numFreeTextures++,this._numBytesFree+=i),this.numUsedTextures--;let l=this.usedTextures[s],u=l.indexOf(e);if(u<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(u,1),this.log()}log(){if(!this.logEnabled)return;let e=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${e})`);let t=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*t)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let e in this.freeTextures)this.freeTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});for(let e in this.usedTextures)this.usedTextures[e].forEach(t=>{this.gpgpu.deleteMatrixTexture(t.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function J7(e,t){let n=e;if(t===n.R32F)return 4;if(t===n.R16F)return 2;if(t===n.RGBA32F||t===e.RGBA)return 16;if(t===n.RGBA16F)return 8;if(t===n.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function yI(e,t,n,a,r){let s=Q7(t,a),i;if(r){let[l,u]=Yu(e[0],e[1]);i=l*u}else{let[l,u]=od(e[0],e[1]);i=l*u}let o=J7(n,s);return i*o}function Q7(e,t){switch(e){case un.PACKED_2X2_FLOAT32:return i1(t);case un.PACKED_2X2_FLOAT16:return o1(t);case un.UNPACKED_FLOAT32:return a1(t);case un.UNPACKED_FLOAT16:return r1(t);case un.PACKED_4X1_UNSIGNED_BYTE:return s1(t);default:throw new Error(`Unknown physical texture type ${e}`)}}function eJ(e){return H().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?e?un.PACKED_2X2_FLOAT32:un.UNPACKED_FLOAT32:e?un.PACKED_2X2_FLOAT16:un.UNPACKED_FLOAT16}function bI(e,t){if(e===ca.UPLOAD)return un.PACKED_2X2_FLOAT32;if(e===ca.RENDER||e==null)return eJ(t);if(e===ca.DOWNLOAD||e===ca.PIXELS)return un.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${e}`)}function xI(e,t,n){return`${e[0]}_${e[1]}_${t}_${n}`}var ir=class{constructor(e,t){this.variableNames=["A"],this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${t} } @@ -1186,11 +1186,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},Ma="if (isnan(x)) return x;",Y7="return x;",yI="return abs(x);",Z7="return (x >= 0.0) ? x : (exp(x) - 1.0);",J7=Ma+` + `}},Oa="if (isnan(x)) return x;",tJ="return x;",vI="return abs(x);",nJ="return (x >= 0.0) ? x : (exp(x) - 1.0);",aJ=Oa+` return (x < 0.0) ? 0.0 : x; -`,Q7=Ma+` +`,rJ=Oa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,rl="return x;",eJ="return 1.0 / (1.0 + exp(-1.0 * x));",tJ="return x;",nJ=` +`,es="return x;",sJ="return 1.0 / (1.0 + exp(-1.0 * x));",iJ="return x;",oJ=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1199,7 +1199,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,aJ=` +`,lJ=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1209,7 +1209,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,rJ=` +`,uJ=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1219,7 +1219,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,sJ="return 1.0 / (1.0 + exp(-1.0 * x));",qs=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` +`,pJ="return 1.0 / (1.0 + exp(-1.0 * x));",ss=class{constructor(e,t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${t} } @@ -1230,17 +1230,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},iJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=En(this.outputShape.length);let t=e.length,n=kn("rc",t),a=gt(t),r=U7(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` + `}},cJ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=e,this.enableShapeUniforms=_n(this.outputShape.length);let t=e.length,n=In("rc",t),a=gt(t),r=K7(t,n),s=n.slice(-2),i=t<=1?"rc":`vec2(${s.join(",")})`;this.userCode=` void main() { ${a} rc = getOutputCoords(); vec4 packedInput = getA(${r}); setOutput(getChannel(packedInput, ${i})); } - `}},oJ=hr.whereImpl,lJ=1e-7,uJ=1e-4,Sb={};function pJ(e){return e in Sb||(Sb[e]={}),Sb[e]}var cJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),dJ=600;function hJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*dJ/1024/1024}var Xf=class extends pc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Th)t=e;else{let n=qa(H().getNumber("WEBGL_VERSION"),e);t=new Th(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=qa(H().getNumber("WEBGL_VERSION"));t=new Th(n),this.binaryCache=pJ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new j7(this.gpgpu),this.numMBBeforeWarning=hJ(),this.texData=new om(this,_a())}nextDataId(){return Xf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Bp(t),u=new hI(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:ca.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:ca.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new qs(i,rl):d=new Cr(i,rl);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new qs(a,rl):h=new Cr(a,rl);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...fh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;me(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&_a().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new qs(r,rl):c=new Cr(r,rl);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=_a().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=cJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new iJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new G7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[ci(e.shape),...di(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[ci(t),...di(t)],s=new lE(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Bp(r),o;a?o=new KZ(i):o=new qZ(i);let l=!0,u=[t!=null?t:fh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===rc.DENSE){let g=s!=null?s:fh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!sc(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=jZ(e,u,p),c=this.getAndSaveBinary(d,()=>GZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||HZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?lJ:uJ}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=E_(n,o),t.texShape=p),r!=null){let d=Bp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Xu(p[0],p[1])),o?c=new JZ(d,f):c=new hI(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=ca.PIXELS:b.usage=ca.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return this.releaseGPUData(e),t!=null&&(n.values=mJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await Jv(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Y0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=W_(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=_a().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return _a().makeTensorFromDataId(l,t,n,o)}};Xf.nextDataId=0;function mJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Xf,2);var gJ={forceHalfFloat:uE},i1=` + `}},dJ=fr.whereImpl,hJ=1e-7,mJ=1e-4,_b={};function fJ(e){return e in _b||(_b[e]={}),_b[e]}var gJ=H().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),yJ=600;function bJ(){return H().global.screen==null?1024:H().global.screen.height*H().global.screen.width*window.devicePixelRatio*yJ/1024/1024}var Yf=class extends cc{constructor(e){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!H().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let t;if(e!=null){if(e instanceof Nh)t=e;else{let n=Ka(H().getNumber("WEBGL_VERSION"),e);t=new Nh(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Ka(H().getNumber("WEBGL_VERSION"));t=new Nh(n),this.binaryCache=fJ(H().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=t,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Z7(this.gpgpu),this.numMBBeforeWarning=bJ(),this.texData=new lm(this,_a())}nextDataId(){return Yf.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(e,t,n,a,r,s){let i=this.makeTensorInfo(t,n),o=this.texData.get(i.dataId);o.isPacked=!1,o.texture={texture:e,texShape:[a,r]},o.texShape=[a,r];let l=Vp(t),u=new gI(l,!1,s),p=this.runWebGLProgram(u,[i],n,[[a,r]]);return p.shape=t,o.texture=null,this.disposeIntermediateTensorInfo(i),p.dataId}write(e,t,n){if((H().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||H().getBool("DEBUG"))&&this.checkNumericalProblems(e),n==="complex64"&&e!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let a={id:this.nextDataId()};return this.texData.set(a,{shape:t,dtype:n,values:e,usage:ca.UPLOAD,refCount:1}),a}refCount(e){return this.texData.has(e)?this.texData.get(e).refCount:0}incRef(e){let t=this.texData.get(e);t.refCount++}decRef(e){if(this.texData.has(e)){let t=this.texData.get(e);t.refCount--}}move(e,t,n,a,r){if(H().getBool("DEBUG")&&this.checkNumericalProblems(t),a==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(e,{shape:n,dtype:a,values:t,usage:ca.UPLOAD,refCount:r})}disposeIntermediateTensorInfo(e){this.disposeData(e.dataId)}readSync(e){let t=this.texData.get(e),{values:n,dtype:a,complexTensorInfos:r,slice:s,shape:i,isPacked:o}=t;if(s!=null){let d;o?d=new ss(i,es):d=new ir(i,es);let c=this.runWebGLProgram(d,[{dataId:e,shape:i,dtype:a}],a),h=this.readSync(c.dataId);return this.disposeIntermediateTensorInfo(c),h}if(n!=null)return this.convertAndCacheOnCPU(e);if(a==="string")return n;let l=this.activeTimers!=null,u;l&&(u=v.now());let p;if(a==="complex64"){let d=this.readSync(r.real.dataId),c=this.readSync(r.imag.dataId);p=N.mergeRealAndImagArrays(d,c)}else p=this.getValuesFromTexture(e);return l&&(this.downloadWaitMs+=v.now()-u),this.convertAndCacheOnCPU(e,p)}async read(e){if(this.pendingRead.has(e)){let h=this.pendingRead.get(e);return new Promise(m=>h.push(m))}let t=this.texData.get(e),{values:n,shape:a,slice:r,dtype:s,complexTensorInfos:i,isPacked:o}=t;if(r!=null){let h;o?h=new ss(a,es):h=new ir(a,es);let m=this.runWebGLProgram(h,[{dataId:e,shape:a,dtype:s}],s),f=this.read(m.dataId);return this.disposeIntermediateTensorInfo(m),f}if(n!=null)return this.convertAndCacheOnCPU(e);if(H().getBool("DEBUG")&&!H().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&H().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,u;if(s!=="complex64"&&H().get("WEBGL_BUFFER_SUPPORTED")){u=this.decode(e);let h=this.texData.get(u.dataId);l=this.gpgpu.createBufferFromTexture(h.texture.texture,...gh(a))}this.pendingRead.set(e,[]),s!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(s==="complex64"){let h=await Promise.all([this.read(i.real.dataId),this.read(i.imag.dataId)]),m=h[0],f=h[1];p=N.mergeRealAndImagArrays(m,f)}else if(l==null)p=this.getValuesFromTexture(e);else{let h=v.sizeFromShape(a);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,h)}if(u!=null&&this.disposeIntermediateTensorInfo(u),l!=null){let h=this.gpgpu.gl;ce(h,()=>h.deleteBuffer(l))}let d=this.convertAndCacheOnCPU(e,p),c=this.pendingRead.get(e);return this.pendingRead.delete(e),c.forEach(h=>h(d)),this.pendingDisposal.has(e)&&(this.pendingDisposal.delete(e),this.disposeData(e)&&_a().removeDataId(e,this),this.pendingDeletes--),d}readToGPU(e,t={}){let n=this.texData.get(e),{values:a,shape:r,slice:s,dtype:i,isPacked:o,texture:l}=n;if(i==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(s!=null){let c;o?c=new ss(r,es):c=new ir(r,es);let h=this.runWebGLProgram(c,[{dataId:e,shape:r,dtype:i}],i),m=this.readToGPU(h,t);return this.disposeIntermediateTensorInfo(h),m}if(l==null)throw a!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let u=this.decode(e,t.customTexShape),p=_a().makeTensorFromTensorInfo(u),d=this.texData.get(u.dataId);return Object.assign({tensorRef:p},d.texture)}bufferSync(e){let t=this.readSync(e.dataId);if(e.dtype==="string")try{let n=t.map(a=>v.decodeString(a));return Oe(e.shape,e.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return Oe(e.shape,e.dtype,t)}checkNumericalProblems(e){if(e!=null)for(let t=0;t0}time(e){let t=this.activeTimers,n=[],a=!1;this.programTimersStack==null?(this.programTimersStack=n,a=!0):this.activeTimers.push(n),this.activeTimers=n,e();let r=v.flatten(this.activeTimers.map(o=>o.query)).filter(o=>o!=null),s=v.flatten(this.activeTimers.map(o=>o.name)).filter(o=>o!=null);this.activeTimers=t,a&&(this.programTimersStack=null);let i={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let o=await Promise.all(r);i.kernelMs=v.sum(o),i.getExtraProfileInfo=()=>o.map((l,u)=>({name:s[u],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else i.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,i})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:v.now(),endMs:null}}endTimer(e){return H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),e):(e.endMs=v.now(),e)}async getQueryTime(e){if(H().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(e);let t=e;return t.endMs-t.startMs}disposeData(e,t=!1){if(this.pendingDisposal.has(e))return!1;if(!this.texData.has(e))return!0;if(t?this.texData.get(e).refCount=0:this.texData.get(e).refCount--,!t&&this.texData.get(e).refCount>0)return!1;if(this.pendingRead.has(e))return this.pendingDisposal.add(e),this.pendingDeletes++,!1;this.releaseGPUData(e);let{complexTensorInfos:n}=this.texData.get(e);return n!=null&&(this.disposeData(n.real.dataId,t),this.disposeData(n.imag.dataId,t)),this.texData.delete(e),!0}releaseGPUData(e){let{texture:t,dtype:n,texShape:a,usage:r,isPacked:s,slice:i}=this.texData.get(e),o=i&&i.origDataId||e,l=this.dataRefCount.get(o);l>1?this.dataRefCount.set(o,l-1):(this.dataRefCount.delete(o),t!=null&&(this.numBytesInGPU-=this.computeBytes(a,n),this.textureManager.releaseTexture(t,a,r,s)));let u=this.texData.get(e);u.texture=null,u.texShape=null,u.isPacked=!1,u.slice=null}getTexture(e){return this.uploadToGPU(e),this.texData.get(e).texture.texture}getDataInfo(e){return this.texData.get(e)}shouldExecuteOnCPU(e,t=gJ){return H().getBool("WEBGL_CPU_FORWARD")&&e.every(n=>this.texData.get(n.dataId).texture==null&&v.sizeFromShape(n.shape)0&&v.isString(n[0])){let r=n.map(s=>v.encodeString(s));a=this.write(r,e,t)}else a=this.write(n,e,t);return this.texData.get(a).usage=null,{dataId:a,shape:e,dtype:t}}makeOutput(e,t,n){return _a().makeTensorFromTensorInfo(this.makeTensorInfo(e,t,n),this)}unpackTensor(e){let t=new cJ(e.shape);return this.runWebGLProgram(t,[e],e.dtype)}packTensor(e){let t=new X7(e.shape),n=!0;return this.runWebGLProgram(t,[e],e.dtype,null,n)}packedReshape(e,t){let n=[fi(e.shape),...gi(e.shape)],a={dtype:e.dtype,shape:n,dataId:e.dataId},r=[fi(t),...gi(t)],s=new c_(r,n),i=!0,o=[n],l=this.runWebGLProgram(s,[a],e.dtype,o,i);return{dataId:l.dataId,shape:t,dtype:l.dtype}}decode(e,t){let n=this.texData.get(e),{isPacked:a,shape:r,dtype:s}=n;if(t!=null){let d=v.sizeFromShape(r),c=t[0]*t[1]*4;v.assert(d<=c,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let i=Vp(r),o;a?o=new QZ(i):o=new JZ(i);let l=!0,u=[t!=null?t:gh(i)],p=this.runWebGLProgram(o,[{shape:i,dtype:s,dataId:e}],s,u,l,t);return{dtype:s,shape:r,dataId:p.dataId}}runWebGLProgram(e,t,n,a,r=!1,s){let i=this.makeTensorInfo(e.outputShape,n),o=this.texData.get(i.dataId);if(e.packedOutput&&(o.isPacked=!0),e.outPackingScheme===sc.DENSE){let g=s!=null?s:gh(e.outputShape);o.texShape=g.map(y=>y*2)}if(e.outTexUsage!=null&&(o.usage=e.outTexUsage),v.sizeFromShape(i.shape)===0)return o.values=v.getTypedArrayFromDType(i.dtype,0),i;let l=[],u=t.map(g=>{if(g.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let y=this.texData.get(g.dataId);if(y.texture==null){if(!e.packedInputs&&v.sizeFromShape(g.shape)<=H().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:g.shape,texData:null,isUniform:!0,uniformValues:y.values};e.packedInputs&&(y.isPacked=!0,y.shape=g.shape)}if(this.uploadToGPU(g.dataId),!!y.isPacked!=!!e.packedInputs)g=y.isPacked?this.unpackTensor(g):this.packTensor(g),l.push(g),y=this.texData.get(g.dataId);else if(y.isPacked&&!ic(y.shape,g.shape)){let b=g,x=g.shape;g.shape=y.shape,g=this.packedReshape(g,x),l.push(g),y=this.texData.get(g.dataId),b.shape=x}return{shape:g.shape,texData:y,isUniform:!1}});this.uploadToGPU(i.dataId);let p={shape:i.shape,texData:o,isUniform:!1},d=ZZ(e,u,p),c=this.getAndSaveBinary(d,()=>XZ(this.gpgpu,e,u,p)),h=this.activeTimers!=null,m;h&&(m=this.startTimer()),H().get("ENGINE_COMPILE_ONLY")||YZ(this.gpgpu,c,u,p,a),l.forEach(g=>this.disposeIntermediateTensorInfo(g)),h&&(m=this.endTimer(m),this.activeTimers.push({name:e.constructor.name,query:this.getQueryTime(m)}));let f=H().get("WEBGL_FLUSH_THRESHOLD");if(f>0){let g=v.now();g-this.lastGlFlushTime>f&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=g)}if(!H().getBool("WEBGL_LAZILY_UNPACK")&&o.isPacked&&r===!1){let g=this.unpackTensor(i);return this.disposeIntermediateTensorInfo(i),g}return i}compileAndRun(e,t,n,a,r=!1){return n=n||t[0].dtype,this.runWebGLProgram(e,t,n,a,r)}getAndSaveBinary(e,t){return e in this.binaryCache||(this.binaryCache[e]=t()),this.binaryCache[e]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(H().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=P(()=>{if(!H().get("WEBGL_RENDER_FLOAT32_ENABLED")){let e=H().getBool("DEBUG");H().set("DEBUG",!1);let t=this.abs(xe(1e-8)).dataSync()[0];if(H().set("DEBUG",e),t>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?hJ:mJ}uploadToGPU(e){let t=this.texData.get(e),{shape:n,dtype:a,values:r,texture:s,usage:i,isPacked:o}=t;if(s!=null)return;let l=this.activeTimers!=null,u;l&&(u=v.now());let p=t.texShape;if(p==null&&(p=FE(n,o),t.texShape=p),r!=null){let d=Vp(n),c,h=p[1],m=p[0],f=r instanceof Uint8Array||r instanceof Uint8ClampedArray;(o||!f)&&([h,m]=Yu(p[0],p[1])),o?c=new a7(d,f):c=new gI(d,f);let g=f?[m,h]:p,y=this.makeTensorInfo(g,a),b=this.texData.get(y.dataId);f?b.usage=ca.PIXELS:b.usage=ca.UPLOAD,b.texShape=g,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(y.dataId),h,m,r);let x=[[m,h]],w=!0,I=this.runWebGLProgram(c,[y],a,x,w),T=this.texData.get(I.dataId);t.texShape=T.texShape,t.isPacked=T.isPacked,t.usage=T.usage,H().get("ENGINE_COMPILE_ONLY")?this.disposeData(I.dataId):(t.texture=T.texture,t.values=null,this.texData.delete(I.dataId)),this.disposeIntermediateTensorInfo(y),l&&(this.uploadWaitMs+=v.now()-u)}else{let d=this.acquireTexture(p,i,a,o);t.texture=d}}convertAndCacheOnCPU(e,t){let n=this.texData.get(e),{dtype:a}=n;return t!=null&&(n.values=xJ(t,a)),n.values}acquireTexture(e,t,n,a){if(this.numBytesInGPU+=this.computeBytes(e,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let r=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${r} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(e,t,a)}computeBytes(e,t){return e[0]*e[1]*v.bytesPerElement(t)}checkCompileCompletion(){for(let[,e]of Object.entries(this.binaryCache))this.checkCompletion_(e)}async checkCompileCompletionAsync(){let e=[];if(this.gpgpu.parallelCompilationExtension){for(let[,t]of Object.entries(this.binaryCache))e.push(this.checkCompletionAsync_(t));return Promise.all(e)}else{for(let[,t]of Object.entries(this.binaryCache)){let n=new Promise(a=>{try{this.checkCompletion_(t),a(!0)}catch(r){throw r}});e.push(n)}return Promise.all(e)}}async checkCompletionAsync_(e){return this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(e):(await tw(),this.checkCompletionAsync_(e))}checkCompletion_(e){if(this.gpgpu.gl.getProgramParameter(e.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(e.webGLProgram)),this.gpgpu.gl.getShaderParameter(e.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Q0(e.source,this.gpgpu.gl.getShaderInfoLog(e.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,e]of Object.entries(this.binaryCache)){let{uniformLocations:t,customUniformLocations:n,infLoc:a,nanLoc:r,inShapesLocations:s,inTexShapesLocations:i,outShapeLocation:o,outShapeStridesLocation:l,outTexShapeLocation:u}=UE(this.gpgpu,e.program,e.webGLProgram);e.uniformLocations=t,e.customUniformLocations=n,e.infLoc=a,e.nanLoc=r,e.inShapesLocations=s,e.inTexShapesLocations=i,e.outShapeLocation=o,e.outShapeStridesLocation=l,e.outTexShapeLocation=u}}createTensorFromTexture(e,t,n){let{texture:a,height:r,width:s,channels:i}=e,o=_a().backend;if(!o.gpgpu.gl.isTexture(a))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=o.writeTexture(a,t,n,r,s,i);return _a().makeTensorFromDataId(l,t,n,o)}};Yf.nextDataId=0;function xJ(e,t){if(t==="float32"||t==="complex64")return e;if(t==="int32"||t==="bool"){let n=t==="int32"?new Int32Array(e.length):new Uint8Array(e.length);for(let a=0;anew Yf,2);var wJ={forceHalfFloat:d_},u1=` if (isnan(a)) return a; if (isnan(b)) return b; -`,Al=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=En(this.outputShape.length),this.userCode=` +`,Rl=class{constructor(e,t,n){this.variableNames=["A","B"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.enableShapeUniforms=_n(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${e} } @@ -1250,12 +1250,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}},ld=` + `}},ud=` result.r = isNaN.r ? NAN : result.r; result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; -`,ud=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=En(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` +`,pd=class{constructor(e,t,n,a=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=N.assertAndGetBroadcastShape(t,n);let r=this.outputShape.length;this.enableShapeUniforms=_n(r);let s="";if(a)if(r===0||v.sizeFromShape(this.outputShape)===1)s=` result.y = 0.; result.z = 0.; result.w = 0.; @@ -1269,7 +1269,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let i=kn("coords",r);this.enableShapeUniforms?s+=` + `;else{let i=In("coords",r);this.enableShapeUniforms?s+=` bool nextRowOutOfBounds = (${i[r-2]} + 1) >= outShape[${r} - 2]; bool nextColOutOfBounds = @@ -1299,13 +1299,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function aa(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var yJ={kernelName:Ri,backendName:"webgl",kernelFunc:aa};function _s(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=aa({inputs:{x:a},backend:n}),l=aa({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var bJ={kernelName:mm,backendName:"webgl",kernelFunc:_s},pE="return (a < 0.) ? b * a : a;",cE=` + `}};function na(e){let{inputs:t,backend:n}=e,{x:a}=t;return n.incRef(a.dataId),{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}var kJ={kernelName:Li,backendName:"webgl",kernelFunc:na};function Fs(e){let{inputs:t,backend:n}=e,{real:a,imag:r}=t,s=n.makeTensorInfo(a.shape,"complex64"),i=n.texData.get(s.dataId),o=na({inputs:{x:a},backend:n}),l=na({inputs:{x:r},backend:n});return i.complexTensorInfos={real:o,imag:l},s}var IJ={kernelName:fm,backendName:"webgl",kernelFunc:Fs},h_="return (a < 0.) ? b * a : a;",m_=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function xJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(cE,r.shape,i.shape):new Al(pE,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var vJ={kernelName:Mi,backendName:"webgl",kernelFunc:xJ},dE="return (a < 0.) ? b * a : a;",hE=` +`;function SJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{alpha:s}=a,i=n.makeTensorInfo([],"float32",v.createScalarValue(s,"float32")),o=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new pd(m_,r.shape,i.shape):new Rl(h_,r.shape,i.shape),l=n.runWebGLProgram(o,[r,i],"float32");return n.disposeIntermediateTensorInfo(i),l}var TJ={kernelName:Wi,backendName:"webgl",kernelFunc:SJ},f_="return (a < 0.) ? b * a : a;",g_=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function wJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(hE,a.shape,r.shape):new Al(dE,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var kJ={kernelName:Ki,backendName:"webgl",kernelFunc:wJ},tp="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new qs(i.shape,t):p=new Cr(i.shape,e),o.runWebGLProgram(p,[i],l)}}function cn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},E=new Al(e,l.shape,u.shape);return p.runWebGLProgram(E,[T,C],fa(w.dtype,I.dtype))}),b=_s({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new ud(t,l.shape,u.shape,n):h=new Al(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function ic(e,t=!1){if(e==="linear")return t?tJ:Y7;if(e==="relu")return t?aJ:J7;if(e==="elu")return t?nJ:Z7;if(e==="relu6")return t?rJ:Q7;if(e==="prelu")return t?hE:dE;if(e==="leakyrelu")return t?cE:pE;if(e==="sigmoid")return t?sJ:eJ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var mE=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=En(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { +`;function NJ(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new pd(g_,a.shape,r.shape):new Rl(f_,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],"float32")}var CJ={kernelName:Qi,backendName:"webgl",kernelFunc:NJ},np="if (isnan(x)) return x;";function Ye({opSnippet:e,packedOpSnippet:t,cpuKernelImpl:n,dtype:a}){return({inputs:r,backend:s})=>{let{x:i}=r,o=s,l=a||i.dtype;if(o.shouldExecuteOnCPU([i])&&n!=null){let d=o.texData.get(i.dataId),c=n(d.values,l);return o.makeTensorInfo(i.shape,l,c)}let u=H().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,p;return u?p=new ss(i.shape,t):p=new ir(i.shape,e),o.runWebGLProgram(p,[i],l)}}function cn({opSnippet:e,packedOpSnippet:t,checkOutOfBounds:n=!1,supportsComplex:a=!1,cpuKernelImpl:r,dtype:s}){return({inputs:i,backend:o})=>{let{a:l,b:u}=i,p=o;if(a&&l.dtype==="complex64"){let m=p.texData.get(l.dataId),f=p.texData.get(u.dataId),[g,y]=[[m.complexTensorInfos.real,f.complexTensorInfos.real],[m.complexTensorInfos.imag,f.complexTensorInfos.imag]].map(x=>{let[w,I]=x,T={dataId:w.dataId,dtype:w.dtype,shape:l.shape},C={dataId:I.dataId,dtype:I.dtype,shape:u.shape},_=new Rl(e,l.shape,u.shape);return p.runWebGLProgram(_,[T,C],fa(w.dtype,I.dtype))}),b=Fs({inputs:{real:g,imag:y},backend:p});return p.disposeIntermediateTensorInfo(g),p.disposeIntermediateTensorInfo(y),b}let d=s||fa(l.dtype,u.dtype);if((l.dtype==="string"||u.dtype==="string"||p.shouldExecuteOnCPU([l,u]))&&r!=null){let m=p.texData.get(l.dataId).values,f=p.texData.get(u.dataId).values,g=l.dtype==="string"?N.fromUint8ToStringArray(m):m,y=l.dtype==="string"?N.fromUint8ToStringArray(f):f,[b,x]=r(l.shape,u.shape,g,y,d),w=p.makeTensorInfo(x,d),I=p.texData.get(w.dataId);return I.values=b,w}let c=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,h;return c?h=new pd(t,l.shape,u.shape,n):h=new Rl(e,l.shape,u.shape),p.runWebGLProgram(h,[l,u],d)}}function oc(e,t=!1){if(e==="linear")return t?iJ:tJ;if(e==="relu")return t?lJ:aJ;if(e==="elu")return t?oJ:nJ;if(e==="relu6")return t?uJ:rJ;if(e==="prelu")return t?g_:f_;if(e==="leakyrelu")return t?m_:h_;if(e==="sigmoid")return t?pJ:sJ;throw new Error(`Activation ${e} has not been implemented for the WebGL backend.`)}var y_=class{constructor(e,t,n,a=!1,r=!1,s=!1,i=null,o=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=_n(this.outputShape.length);let u=a?e[1]:e[2],p=Math.ceil(u/2),d=a?"i * 2, rc.y":"rc.y, i * 2",c=r?"rc.z, i * 2":"i * 2, rc.z",h=a?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],m=r?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],f="",g="";i&&(o?f=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${i} }`:l?f=`vec4 activation(vec4 a) { @@ -1344,7 +1344,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}},bI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},xI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` + `}},wI={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},kI=class{constructor(e,t,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=N.assertAndGetBroadcastShape(t,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${e} @@ -1357,7 +1357,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}},vI="return a * b;";function o1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new xI(bI.REAL,a.shape,r.shape),p=new xI(bI.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=v7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new ud(vI,a.shape,r.shape):i=new Al(vI,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var IJ={kernelName:Gi,backendName:"webgl",kernelFunc:o1};function SJ(e,t,n){let a=[ci(e.shape),...di(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[ci(t),...di(t)],i=new lE(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function de(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!sc(r.shape,l)&&!(p.texture!==null&&sc(p.shape,l))?SJ(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var TJ={kernelName:vu,backendName:"webgl",kernelFunc:de},wI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` + `}},II="return a * b;";function p1(e){let{inputs:t,backend:n}=e,{a,b:r}=t,s=N.upcastType(a.dtype,r.dtype);if(a.dtype==="complex64"){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),u=new kI(wI.REAL,a.shape,r.shape),p=new kI(wI.IMAG,a.shape,r.shape),d=[{dataId:o.complexTensorInfos.real.dataId,dtype:o.complexTensorInfos.real.dtype,shape:a.shape},{dataId:o.complexTensorInfos.imag.dataId,dtype:o.complexTensorInfos.imag.dtype,shape:a.shape},{dataId:l.complexTensorInfos.real.dataId,dtype:l.complexTensorInfos.real.dtype,shape:r.shape},{dataId:l.complexTensorInfos.imag.dataId,dtype:l.complexTensorInfos.imag.dtype,shape:r.shape}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Fs({inputs:{real:c,imag:h},backend:n});return n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}if(n.shouldExecuteOnCPU([a,r])){let o=n.texData.get(a.dataId),l=n.texData.get(r.dataId),[u,p]=T7(a.shape,r.shape,o.values,l.values,s),d=n.makeTensorInfo(p,s),c=n.texData.get(d.dataId);return c.values=u,d}let i;return H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new pd(II,a.shape,r.shape):i=new Rl(II,a.shape,r.shape),n.runWebGLProgram(i,[a,r],s)}var EJ={kernelName:Xi,backendName:"webgl",kernelFunc:p1};function _J(e,t,n){let a=[fi(e.shape),...gi(e.shape)],r={dtype:e.dtype,shape:a,dataId:e.dataId},s=[fi(t),...gi(t)],i=new c_(s,a),o=!0,l=[a],u=n.runWebGLProgram(i,[r],e.dtype,l,o);return{dataId:u.dataId,shape:t,dtype:u.dtype}}function he(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{shape:s}=a,i=n,o=v.sizeFromShape(r.shape),l=v.inferFromImplicitShape(s,o),u=v.sizeFromShape(l);v.assert(o===u,()=>`The new shape (${l}) has ${u} elements and the old shape (${r.shape}) has ${o} elements. The new shape and old shape must have the same number of elements.`);let p=i.texData.get(r.dataId);return p.isPacked&&!ic(r.shape,l)&&!(p.texture!==null&&ic(p.shape,l))?_J(r,l,i):(i.incRef(r.dataId),{dataId:r.dataId,shape:l,dtype:r.dtype})}var AJ={kernelName:wu,backendName:"webgl",kernelFunc:he},SI=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i=Math.floor(n/4)*4,o=n%4,l="sumValue += dot(values, ones);";if(t!=null){let p=1/t;l=`sumValue += dot(values * ${v.isInt(p)?p.toPrecision(2):p}, ones);`}let u="";r%n>0&&(u=` if (inIdx < 0 || inIdx >= ${r}) { return 0.0; } @@ -1410,7 +1410,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}},NJ=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` + `}},$J=class{constructor(e,t){this.variableNames=["x"];let{windowSize:n,batchSize:a,inSize:r,outSize:s}=e;this.outputShape=[a,s];let i="0.0",o="";t==="prod"?i="1.0":t==="min"?(i="1.0 / 1e-20",o="min"):t==="max"&&(i="-1.0 / 1e-20",o="max");let l=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="sum"?l="sumValue":t==="prod"?l="prodValue":t==="all"?l="allValue":t==="any"&&(l="anyValue");let u=Math.floor(n/4)*4,p=n%4,d=` if (${t==="sum"}) { sumValue += dot(values, ones); } else if (${t==="prod"}) { @@ -1502,12 +1502,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function CJ(e){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let n=t.length?t[t.length-1].outSize:e[1],a=N.computeOptimalWindowSize(n);t.push({inSize:n,windowSize:a,outSize:Math.ceil(n/a)})}return t}function Io(e,t,n,a){let r=CJ(e.shape),s=e;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=oE("rc",this.rank),s=new Array(this.rank);for(let u=0;u6)throw Error(`Transpose for rank ${t} is not yet supported`);let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],a=new Array(t);for(let r=0;r6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let a=gt(this.rank),r=p_("rc",this.rank),s=new Array(this.rank);for(let u=0;u`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=de({inputs:{x:e},backend:r,attrs:{shape:w}}),C=de({inputs:{x:t},backend:r,attrs:{shape:I}}),E=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?ic(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>fE&&U===!1){let K=T,Z=C;n&&(K=Sn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),E.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),E.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=de({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),E.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=de({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),E.push(ie));let oe=o1({inputs:{a:ae,b:ie},backend:r});G=Zf({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),E.push(oe)}else{let K=fa(e.dtype,t.dtype),Z=new mE(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),E.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=de({inputs:{x:G},backend:r,attrs:{shape:x}});E.push(G);for(let K of E)r.disposeIntermediateTensorInfo(K);return q}function RJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return nm({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var MJ={kernelName:Qs,backendName:"webgl",kernelFunc:RJ},kI="return abs(x);";function PJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=sE(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,kI):r=new Cr(a.shape,kI),n.runWebGLProgram(r,[a],a.dtype)}var OJ={kernelName:Dl,backendName:"webgl",kernelFunc:PJ},LJ=Ma+` + `}};function Zf(e,t,n){let a=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new MJ(e.shape,t):new DJ(e.shape,t);return n.runWebGLProgram(a,[e],e.dtype)}function PJ(e,t,n,a){let r=t,s=e.shape.length,i=v.parseAxisParam(r,e.shape),o=i,l=N.getAxesPermutation(o,s),u=l!=null,p=e;u&&(p=Zf(e,l,a),o=N.getInnerMostAxes(o.length,s)),N.assertAxesAreInnerMostDims("sum",o,s);let[d,c]=N.computeOutAndReduceShapes(p.shape,o),h=d;n&&(h=N.expandShapeToKeepDim(d,i));let m=v.sizeFromShape(c),f=v.sizeFromShape(e.shape)/m,g=he({inputs:{x:p},attrs:{shape:[f,m]},backend:a}),y=Gm(e.dtype),b=Eo(g,y,"sum",a),x=he({inputs:{x:b},attrs:{shape:h},backend:a});return a.disposeIntermediateTensorInfo(g),a.disposeIntermediateTensorInfo(b),u&&a.disposeIntermediateTensorInfo(p),x}function Jf(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a;return PJ(r,s,i,n)}var OJ={kernelName:ho,backendName:"webgl",kernelFunc:Jf};function Sn(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{perm:s}=a,i=n,o=r.shape.length,l=new Array(o);for(let p=0;p`Error in matMul: inner shapes (${d}) and (${c}) of Tensors with shapes ${e.shape} and ${t.shape} and transposeA=${n} and transposeB=${a} must match.`);let w=n?[y,d,h]:[y,h,d],I=a?[b,m,c]:[b,c,m],T=he({inputs:{x:e},backend:r,attrs:{shape:w}}),C=he({inputs:{x:t},backend:r,attrs:{shape:I}}),_=[T,C],$=Math.max(y,b),R=n?T.shape[1]:T.shape[2],F=s!=null,S=i!=null,M=l==="leakyrelu",B=l!=null?oc(l,!0):null,U=F||S||M||B!=null,G;if((h===1||m===1)&&R>b_&&U===!1){let K=T,Z=C;n&&(K=Sn({inputs:{x:T},backend:r,attrs:{perm:[0,2,1]}}),_.push(K)),a&&(Z=Sn({inputs:{x:C},backend:r,attrs:{perm:[0,2,1]}}),_.push(Z));let J=m!==1,ee=m===1,ae=K;J&&(ae=he({inputs:{x:K},backend:r,attrs:{shape:[$,R,1]}}),_.push(ae));let te=m===1?2:1,ie=Z;ee&&(ie=he({inputs:{x:Z},backend:r,attrs:{shape:[$,1,R]}}),_.push(ie));let oe=p1({inputs:{a:ae,b:ie},backend:r});G=Jf({inputs:{x:oe},backend:r,attrs:{axis:te,keepDims:!0}}),_.push(oe)}else{let K=fa(e.dtype,t.dtype),Z=new y_(w,I,[$,h,m],n,a,F,B,S,M),J=[T,C];if(s!=null&&J.push(s),S&&J.push(i),M){let ee=r.makeTensorInfo([],"float32",v.createScalarValue(o,"float32"));J.push(ee),_.push(ee)}G=r.runWebGLProgram(Z,J,K)}let q=he({inputs:{x:G},backend:r,attrs:{shape:x}});_.push(G);for(let K of _)r.disposeIntermediateTensorInfo(K);return q}function zJ(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t,{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a;return am({a:r,b:s,transposeA:l,transposeB:u,backend:n,bias:i,preluActivationWeights:o,leakyreluAlpha:d,activation:p})}var WJ={kernelName:ni,backendName:"webgl",kernelFunc:zJ},TI="return abs(x);";function BJ(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])&&a.dtype!=="complex64"){let s=n.texData.get(a.dataId),i=l_(s.values);return n.makeTensorInfo(a.shape,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,TI):r=new ir(a.shape,TI),n.runWebGLProgram(r,[a],a.dtype)}var VJ={kernelName:Pl,backendName:"webgl",kernelFunc:BJ},UJ=Oa+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,zJ=Ye({opSnippet:LJ}),WJ={kernelName:Rl,backendName:"webgl",kernelFunc:zJ},BJ=Ma+` +`,GJ=Ye({opSnippet:UJ}),HJ={kernelName:Ol,backendName:"webgl",kernelFunc:GJ},jJ=Oa+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,backendName:"webgl",kernelFunc:VJ},II="return a + b;",GJ=cn({opSnippet:II,packedOpSnippet:II,supportsComplex:!0,cpuKernelImpl:e7}),HJ={kernelName:gs,backendName:"webgl",kernelFunc:GJ},jJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,qJ=Ye({opSnippet:jJ}),KJ={kernelName:Ll,backendName:"webgl",kernelFunc:qJ},NI="return a + b;",XJ=cn({opSnippet:NI,packedOpSnippet:NI,supportsComplex:!0,cpuKernelImpl:s7}),YJ={kernelName:vs,backendName:"webgl",kernelFunc:XJ},ZJ=class{constructor(e,t){this.outputShape=[],this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`float v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1539,7 +1539,7 @@ return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,back float result = ${a}; setOutput(result); } - `}},qJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` + `}},JJ=class{constructor(e,t){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.variableNames=t.map((r,s)=>`T${s}`);let n=[];this.variableNames.forEach(r=>{n.push(`vec4 v${r} = get${r}AtOutCoords();`)});let a=this.variableNames.map(r=>`v${r}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1547,7 +1547,7 @@ return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,back vec4 result = ${a}; setOutput(result); } - `}};function Nh(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return aa({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Nh({inputs:a.slice(0,o),backend:n}),u=Nh({inputs:a.slice(o),backend:n});return Nh({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>fa(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new qJ(a[0].shape,s):new jJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var KJ={kernelName:fi,backendName:"webgl",kernelFunc:Nh};function XJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Io(f,f.dtype,"all",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=de({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var YJ={kernelName:Pl,backendName:"webgl",kernelFunc:XJ};function ZJ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=de({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Io(f,f.dtype,"any",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=de({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=de({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var JJ={kernelName:Ol,backendName:"webgl",kernelFunc:ZJ},QJ=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Ch(e){let{inputs:t,backend:n}=e,a=t;if(a.length===1)return na({inputs:{x:a[0]},backend:n});if(a.length>H().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let o=Math.floor(a.length/2),l=Ch({inputs:a.slice(0,o),backend:n}),u=Ch({inputs:a.slice(o),backend:n});return Ch({inputs:[l,u],backend:n})}let r=a.map(o=>o.dtype).reduce((o,l)=>fa(o,l)),s=a.map(o=>o.shape),i=H().getBool("WEBGL_PACK")?new JJ(a[0].shape,s):new ZJ(a[0].shape,s);return n.runWebGLProgram(i,a,r)}var QJ={kernelName:xi,backendName:"webgl",kernelFunc:Ch};function e9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("all",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Eo(f,f.dtype,"all",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=he({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var t9={kernelName:zl,backendName:"webgl",kernelFunc:e9};function n9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),u=N.getInnerMostAxes(u.length,o)),N.assertAxesAreInnerMostDims("any",u,o);let[c,h]=N.computeOutAndReduceShapes(d.shape,u),m=v.sizeFromShape(h),f=he({inputs:{x:d},backend:n,attrs:{shape:[-1,m]}}),g=Eo(f,f.dtype,"any",n),y;if(i){let b=N.expandShapeToKeepDim(c,l);y=he({inputs:{x:g},backend:n,attrs:{shape:b}})}else y=he({inputs:{x:g},backend:n,attrs:{shape:c}});return n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),p!=null&&n.disposeIntermediateTensorInfo(d),y}var a9={kernelName:Wl,backendName:"webgl",kernelFunc:n9},r9=class{constructor(e,t,n){this.variableNames=["A"];let{windowSize:a,batchSize:r,outSize:s}=e;n||this.variableNames.push("bestIndicesA"),this.outputShape=[r,s];let i=t==="max"?">":"<",o=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1567,7 +1567,7 @@ return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,back } setOutput(float(bestIndex)); } - `}},e9=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=kn("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` + `}},s9=class{constructor(e,t,n,a){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,v.assert(e.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let r=e[e.length-1],s=Math.ceil(r/t);this.outputShape=e.slice(0,-1),s>1&&this.outputShape.push(s),a||this.variableNames.push("bestIndicesA");let i=this.outputShape,o=i.length,l=gt(o),u=In("coords",o),p,d;if(s===1){d=o+1;let C=gt(d);p=` ${C} sourceLocR = ${C}(${u.join()}, 0); ++${u[o-1]}; ${C} sourceLocG = ${C}(${u.join()}, 0); @@ -1583,7 +1583,7 @@ return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,back ${l} sourceLocA = coords; --${u[o-1]}; ${l} sourceLocB = coords; - --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=kn("sourceLocR",d-1).concat("inIdx.r"),g=kn("sourceLocG",d-1).concat("inIdx.g"),y=kn("sourceLocB",d-1).concat("inIdx.b"),b=kn("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` + --${u[o-2]};`;let c=["x","y","z","w","u","v"].slice(0,d),h="."+c[d-1],m=c.map(C=>"int "+C),f=In("sourceLocR",d-1).concat("inIdx.r"),g=In("sourceLocG",d-1).concat("inIdx.g"),y=In("sourceLocB",d-1).concat("inIdx.b"),b=In("sourceLocA",d-1).concat("inIdx.a"),x=n==="max"?"greaterThan":"lessThan",w=a?"":` inIdx = round(vec4(getBestIndicesAChannel(${f.join()}), getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${y.join()}), @@ -1629,25 +1629,25 @@ return log(x + sqrt(x * x - 1.0));`,VJ=Ye({opSnippet:BJ}),UJ={kernelName:Ml,back } setOutput(bestIndex); } - `}};function gE(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new QJ(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=gE(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function yE(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new e9(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=yE(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function bE(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=de({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=gE(e,c,a);s.push(h);let m=de({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return yE(e,t,a)}function t9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=bE(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var n9={kernelName:gi,backendName:"webgl",kernelFunc:t9};function a9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=bE(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var r9={kernelName:cc,backendName:"webgl",kernelFunc:a9},s9=Ma+` + `}};function x_(e,t,n,a=null){let r=t.shape[0],s=t.shape[1];a!=null&&(r=a.shape[0],s=a.shape[1]);let i=N.computeOptimalWindowSize(s),o={windowSize:i,inSize:s,batchSize:r,outSize:Math.ceil(s/i)},l=new r9(o,n,a==null),u=[t];a!=null&&u.push(a);let p=e.runWebGLProgram(l,u,"int32");if(p.shape[1]===1)return p;let d=x_(e,t,n,p);return e.disposeIntermediateTensorInfo(p),d}function v_(e,t,n,a=null){let r=a!=null?a.shape:t.shape,s=r[r.length-1],i=N.computeOptimalWindowSize(s),o=new s9(r,i,n,a==null),l=a==null?[t]:[t,a],u=e.runWebGLProgram(o,l,"int32");if(u.shape.length===t.shape.length){let p=v_(e,t,n,u);return e.disposeIntermediateTensorInfo(u),p}return u}function w_(e,t,n,a){let r=[n];if(N.assertAxesAreInnerMostDims("arg"+a.charAt(0).toUpperCase()+a.slice(1),r,t.shape.length),!H().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=e.texData.get(t.dataId),o=i!==null&&i.isPacked,l=t;o&&(l=e.unpackTensor(t),s.push(l));let[u,p]=N.computeOutAndReduceShapes(l.shape,r),d=v.sizeFromShape(p),c=he({inputs:{x:l},backend:e,attrs:{shape:[-1,d]}});s.push(c);let h=x_(e,c,a);s.push(h);let m=he({inputs:{x:h},backend:e,attrs:{shape:u}});return s.forEach(f=>e.disposeIntermediateTensorInfo(f)),m}return v_(e,t,a)}function i9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMax",[i[0]],l.shape.length);let p=w_(n,l,i[0],"max");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var o9={kernelName:vi,backendName:"webgl",kernelFunc:i9};function l9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s}=a,i=v.parseAxisParam(s,r.shape),o=N.getAxesPermutation(i,r.shape.length),l=r,u=[];o!=null&&(l=Sn({inputs:{x:r},backend:n,attrs:{perm:o}}),u.push(l),i=N.getInnerMostAxes(i.length,l.shape.length)),N.assertAxesAreInnerMostDims("argMin",[i[0]],l.shape.length);let p=w_(n,l,i[0],"min");return u.forEach(d=>n.disposeIntermediateTensorInfo(d)),p}var u9={kernelName:dc,backendName:"webgl",kernelFunc:l9},p9=Oa+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,i9=Ye({opSnippet:s9}),o9={kernelName:Ll,backendName:"webgl",kernelFunc:i9},l9=Ma+"return log(x + sqrt(x * x + 1.0));",u9=Ye({opSnippet:l9}),p9={kernelName:zl,backendName:"webgl",kernelFunc:u9},c9=Ma+` +`,c9=Ye({opSnippet:p9}),d9={kernelName:Bl,backendName:"webgl",kernelFunc:c9},h9=Oa+"return log(x + sqrt(x * x + 1.0));",m9=Ye({opSnippet:h9}),f9={kernelName:Vl,backendName:"webgl",kernelFunc:m9},g9=Oa+` return atan(x); -`,d9=Ye({opSnippet:c9}),h9={kernelName:Wl,backendName:"webgl",kernelFunc:d9},m9=i1+` +`,y9=Ye({opSnippet:g9}),b9={kernelName:Ul,backendName:"webgl",kernelFunc:y9},x9=u1+` return atan(a, b); -`,f9=` +`,v9=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); - `+ld+` + `+ud+` return result; -`,g9=cn({opSnippet:m9,packedOpSnippet:f9}),y9={kernelName:Vl,backendName:"webgl",kernelFunc:g9},b9=Ma+` +`,w9=cn({opSnippet:x9,packedOpSnippet:v9}),k9={kernelName:Hl,backendName:"webgl",kernelFunc:w9},I9=Oa+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelName:Bl,backendName:"webgl",kernelFunc:x9},oc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,S9=Ye({opSnippet:I9}),T9={kernelName:Gl,backendName:"webgl",kernelFunc:S9},lc=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideHeight,o=e.strideWidth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterHeight,d=e.effectiveFilterWidth,c=e.padInfo.top,h=e.padInfo.left;this.outputShape=e.outShape;let m=t==="avg",f=`((batch * ${e.inHeight} + xR) * ${e.inWidth} + xC) * ${e.inChannels} + d`,g=`(xR * ${e.inWidth} + xC) * ${e.inChannels} + d`,y="0.0";if(m||(y="-1.0 / 1e-20"),n){let C=">=";this.userCode=` const ivec2 strides = ivec2(${i}, ${o}); const ivec2 pads = ivec2(${c}, ${h}); @@ -1788,7 +1788,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(${x}); } - `}},l1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` + `}},c1=class{constructor(e,t,n,a=!1,r=!1){if(this.variableNames=["x"],t==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let s=e.filterWidth,i=e.strideDepth,o=e.strideHeight,l=e.strideWidth,u=e.dilationDepth,p=e.dilationHeight,d=e.dilationWidth,c=e.effectiveFilterDepth,h=e.effectiveFilterHeight,m=e.effectiveFilterWidth,f=e.padInfo.front,g=e.padInfo.top,y=e.padInfo.left;this.outputShape=e.outShape;let b=t==="avg",x="0.0";if(b||(x="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec3 strides = ivec3(${i}, ${o}, ${l}); const ivec3 pads = ivec3(${f}, ${g}, ${y}); @@ -1850,7 +1850,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(float(minMaxPosition)); } - `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,E=` + `;return}let w="max",I=`${t}(${t}(${t}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;t==="avg"&&(I="avgValue / count");let T=Math.floor(s/4)*4,C=s%4,_=` if (${b}) { avgValue += dot(values, ones); } else { @@ -1915,7 +1915,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam getValue(batch, xD, xR, xC + 3 * ${d}, ch) ); - ${E} + ${_} } int xC = xCCorner + ${T}; @@ -1927,7 +1927,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam initializationValue ); - ${E} + ${_} } else if (${C===2}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1936,7 +1936,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam initializationValue ); - ${E} + ${_} } else if (${C===3}) { vec4 values = vec4( getValue(batch, xD, xR, xC, ch), @@ -1945,13 +1945,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam initializationValue ); - ${E} + ${_} } } setOutput(${I}); } } - `}};function w9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Yu(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new oc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var k9={kernelName:yi,backendName:"webgl",kernelFunc:w9};function I9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new l1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var S9={kernelName:dc,backendName:"webgl",kernelFunc:I9},T9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` + `}};function N9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Zu(r,"avgPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new lc(p,"avg",!1);return n.runWebGLProgram(d,[r],"float32")}var C9={kernelName:wi,backendName:"webgl",kernelFunc:N9};function E9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dimRoundingMode:l,dataFormat:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,l,u),c=new c1(d,"avg",!1);return n.runWebGLProgram(c,[r],"float32")}var _9={kernelName:hc,backendName:"webgl",kernelFunc:E9},A9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterHeight,l=e.effectiveFilterWidth,u=o-1-e.padInfo.top,p=l-1-e.padInfo.left,d=1/(t*n);this.userCode=` const ivec2 pads = ivec2(${u}, ${p}); const float avgMultiplier = float(${d}); @@ -1993,7 +1993,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},N9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` + `}},$9=class{constructor(e){this.variableNames=["dy"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.effectiveFilterDepth,d=e.effectiveFilterHeight,c=e.effectiveFilterWidth,h=p-1-e.padInfo.front,m=d-1-e.padInfo.top,f=c-1-e.padInfo.left,g=1/(t*n*a);this.userCode=` const ivec3 pads = ivec3(${h}, ${m}, ${f}); const float avgMultiplier = float(${g}); @@ -2049,7 +2049,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function C9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new N9(c);return n.runWebGLProgram(h,[r],i.dtype)}var _9={kernelName:cm,backendName:"webgl",kernelFunc:C9};function E9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Yu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new T9(p);return n.runWebGLProgram(d,[r],i.dtype)}var $9={kernelName:pm,backendName:"webgl",kernelFunc:E9};function A9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return nm({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var F9={kernelName:bi,backendName:"webgl",kernelFunc:A9},D9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}};function F9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new $9(c);return n.runWebGLProgram(h,[r],i.dtype)}var D9={kernelName:dm,backendName:"webgl",kernelFunc:F9};function R9(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s;Zu([r,s],"avgPoolGrad");let{filterSize:o,strides:l,pad:u}=a,p=N.computePool2DInfo(i.shape,o,l,1,u),d=new A9(p);return n.runWebGLProgram(d,[r],i.dtype)}var M9={kernelName:cm,backendName:"webgl",kernelFunc:R9};function P9(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;return am({a:r,b:s,transposeA:i,transposeB:o,backend:n})}var O9={kernelName:ki,backendName:"webgl",kernelFunc:P9},L9=class{constructor(e,t,n,a,r,s){this.outputShape=[],this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="0.0";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="1.0";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2059,7 +2059,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam float inv = scale * inversesqrt(variance + float(${s})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}},R9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` + `}},z9=class{constructor(e,t,n,a,r,s){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],N.assertAndGetBroadcastShape(e,t),N.assertAndGetBroadcastShape(e,n);let i="vec4(0.0)";a!=null&&(N.assertAndGetBroadcastShape(e,a),this.variableNames.push("offset"),i="getOffsetAtOutCoords()");let o="vec4(1.0)";r!=null&&(N.assertAndGetBroadcastShape(e,r),this.variableNames.push("scale"),o="getScaleAtOutCoords()"),this.outputShape=e,this.userCode=` void main() { vec4 offset = ${i}; vec4 scale = ${o}; @@ -2072,7 +2072,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam setOutput((x - mean) * inv + offset); } - `}},M9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new R9(a.shape,r.shape,s.shape,p,d,l):new D9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},P9={kernelName:Fi,backendName:"webgl",kernelFunc:M9},O9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=L9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${bx[i]} = start[${i}] + coords.${bx[i]};`);a=` + `}},W9=({inputs:e,backend:t,attrs:n})=>{let{x:a,mean:r,variance:s,offset:i,scale:o}=e;v.assert(r.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),v.assert(i==null||r.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),v.assert(o==null||r.shape.length===o.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:l}=n;l==null&&(l=.001);let u=[a,r,s],p=null;i!=null&&(p=i.shape,u.push(i));let d=null;o!=null&&(d=o.shape,u.push(o));let c=H().getBool("WEBGL_PACK_NORMALIZATION")?new z9(a.shape,r.shape,s.shape,p,d,l):new L9(a.shape,r.shape,s.shape,p,d,l);return t.runWebGLProgram(c,u,u[0].dtype)},B9={kernelName:Pi,backendName:"webgl",kernelFunc:W9},V9=class{constructor(e){this.variableNames=["source"],this.outputShape=e,this.rank=e.length;let t=gt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=U9(this.rank),a,r=e.map((s,i)=>`sourceLoc.${kx[i]} = start[${i}] + coords.${kx[i]};`);a=` ${t} sourceLoc; ${t} coords = getOutputCoords(); ${r.join(` @@ -2082,7 +2082,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${a} setOutput(getSource(${n})); } - `}},bx=["x","y","z","w","u","v"];function L9(e){if(e===1)return"sourceLoc";if(e<=6)return bx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var z9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=kn("coords",this.rank),a=kn("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` + `}},kx=["x","y","z","w","u","v"];function U9(e){if(e===1)return"sourceLoc";if(e<=6)return kx.slice(0,e).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${e} is not yet supported`)}var G9=class{constructor(e){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e,this.rank=e.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let t=gt(this.rank),n=In("coords",this.rank),a=In("sourceLoc",this.rank),r=this.rank===1?"sourceLoc":`vec2(${a.slice(-2).join()})`,s=`getChannel(getSource(${a.join()}), ${r})`,i=` result.x = ${s}; if (++${n[this.rank-1]} < ${e[this.rank-1]}) { ++${a[this.rank-1]}; @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${o} setOutput(result); } - `}};function W9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=jt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function np(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=jt.parseSliceParams(r,s,i);if(jt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=A7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=jt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new z9(l):new O9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),W9(r,o,l,n)}var B9={kernelName:Su,backendName:"webgl",kernelFunc:np},V9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=de({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=de({inputs:{x:f},backend:n,attrs:{shape:p}}),y=np({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},U9={kernelName:Ul,backendName:"webgl",kernelFunc:V9};function G9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=rE(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var H9={kernelName:dm,backendName:"webgl",kernelFunc:G9};function j9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var q9={kernelName:hm,backendName:"webgl",kernelFunc:j9},K9="return float(a != b);",xE=cn({opSnippet:K9,cpuKernelImpl:k7,dtype:"bool"}),X9={kernelName:hu,backendName:"webgl",kernelFunc:xE};function pd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.real},backend:n})}var Y9={kernelName:Pm,backendName:"webgl",kernelFunc:pd},Z9="return float(int(x));";function J9(e,t){let n=new Cr(e.shape,Z9),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function xx(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return aa({inputs:{x:r},backend:n});let i=It(r.shape),o=xx({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=_s({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=pd({inputs:{input:r},backend:n}),o=xx({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=aa({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=n7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return J9(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=xE({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var Q9={kernelName:xi,backendName:"webgl",kernelFunc:xx},SI="return ceil(x);",eQ=Ye({opSnippet:SI,packedOpSnippet:SI,cpuKernelImpl:a7}),tQ={kernelName:vi,backendName:"webgl",kernelFunc:eQ},nQ=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}};function H9(e,t,n,a){let r=a.texData.get(e.dataId),s=a.makeTensorInfo(n,e.dtype),i=a.texData.get(s.dataId);Object.assign(i,r),i.refCount=1,i.shape=n,i.dtype=e.dtype;let o=Kt.computeFlatOffset(t,v.computeStrides(e.shape));r.slice&&(o+=r.slice.flatOffset),i.slice={flatOffset:o,origDataId:r.slice&&r.slice.origDataId||e.dataId};let l=a.dataRefCount.get(i.slice.origDataId)||1;return a.dataRefCount.set(i.slice.origDataId,l+1),s}function ap(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,size:i}=a,[o,l]=Kt.parseSliceParams(r,s,i);if(Kt.assertParamsValid(r,o,l),v.sizeFromShape(l)===0)return n.makeTensorInfo(l,r.dtype,[]);if(n.shouldExecuteOnCPU([r])||r.dtype==="string"){let d=n.texData.get(r.dataId),c=P7(d.values,o,l,r.shape,r.dtype);return n.makeTensorInfo(l,r.dtype,c)}let{isPacked:u}=n.texData.get(r.dataId),p=Kt.isSliceContinous(r.shape,o,l);if(u||!p){let d=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new G9(l):new V9(l),c=[o];return n.runWebGLProgram(d,[r],r.dtype,c)}return n.uploadToGPU(r.dataId),H9(r,o,l,n)}var j9={kernelName:Tu,backendName:"webgl",kernelFunc:ap},q9=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,crops:i}=a;v.assert(r.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((b,x)=>b*x),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=[],m=he({inputs:{x:r},backend:n,attrs:{shape:l}}),f=Sn({inputs:{x:m},backend:n,attrs:{perm:u}}),g=he({inputs:{x:f},backend:n,attrs:{shape:p}}),y=ap({inputs:{x:g},backend:n,attrs:{begin:d,size:c}});return h.push(m),h.push(f),h.push(g),h.forEach(b=>n.disposeIntermediateTensorInfo(b)),y},K9={kernelName:jl,backendName:"webgl",kernelFunc:q9};function X9(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i}=a,o=n.readSync(r.dataId),l=n.readSync(s.dataId),u=o_(o,l,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,u)}var Y9={kernelName:hm,backendName:"webgl",kernelFunc:X9};function Z9(e){let{inputs:t,backend:n}=e,{s0:a,s1:r}=t,s=n.readSync(a.dataId),i=n.readSync(r.dataId),o=N.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return n.makeTensorInfo([o.length],"int32",Int32Array.from(o))}var J9={kernelName:mm,backendName:"webgl",kernelFunc:Z9},Q9="return float(a != b);",k_=cn({opSnippet:Q9,cpuKernelImpl:C7,dtype:"bool"}),eQ={kernelName:fu,backendName:"webgl",kernelFunc:k_};function cd(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.real},backend:n})}var tQ={kernelName:Om,backendName:"webgl",kernelFunc:cd},nQ="return float(int(x));";function aQ(e,t){let n=new ir(e.shape,nQ),a=t.runWebGLProgram(n,[e],"int32");return{dataId:a.dataId,shape:a.shape,dtype:a.dtype}}function Ix(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dtype:s}=a;if(s==="complex64"){if(r.dtype==="complex64")return na({inputs:{x:r},backend:n});let i=It(r.shape),o=Ix({inputs:{x:r},backend:n,attrs:{dtype:"float32"}}),l=Fs({inputs:{real:o,imag:i},backend:n});return i.dispose(),n.disposeIntermediateTensorInfo(o),l}if(r.dtype==="complex64"){let i=cd({inputs:{input:r},backend:n}),o=Ix({inputs:{x:i},backend:n,attrs:{dtype:s}});return n.disposeIntermediateTensorInfo(i),o}if(!v.hasEncodingLoss(r.dtype,s)){let i=na({inputs:{x:r},backend:n});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(n.shouldExecuteOnCPU([r])){let i=n.texData.get(r.dataId).values,[o,l,u]=o7(i,r.shape,r.dtype,s);return n.makeTensorInfo(o,l,u)}if(s==="int32")return aQ(r,n);if(s==="bool"){let i=n.makeTensorInfo([],"bool",v.getTypedArrayFromDType("bool",1)),o=k_({inputs:{a:r,b:i},backend:n});return n.disposeIntermediateTensorInfo(i),o}throw new Error(`Error in Cast: failed to cast ${r.dtype} to ${s}`)}var rQ={kernelName:Ii,backendName:"webgl",kernelFunc:Ix},CI="return ceil(x);",sQ=Ye({opSnippet:CI,packedOpSnippet:CI,cpuKernelImpl:l7}),iQ={kernelName:Si,backendName:"webgl",kernelFunc:sQ},oQ=class{constructor(e){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam setOutput(clamp(value, minVal, maxVal)); } - `}},aQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` + `}},lQ=class{constructor(e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=e,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2133,7 +2133,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function rQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new aQ(r.shape):o=new nQ(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var sQ={kernelName:ys,backendName:"webgl",kernelFunc:rQ},iQ=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` + `}};function uQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o;H().getBool("WEBGL_PACK_CLIP")?o=new lQ(r.shape):o=new oQ(r.shape);let l=[[s],[i]];return n.runWebGLProgram(o,[r],r.dtype,l)}var pQ={kernelName:ws,backendName:"webgl",kernelFunc:uQ},cQ=class{constructor(e){this.variableNames=["real","imag"],this.outputShape=e,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2146,7 +2146,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function TI(e,t){return{dataId:t.dataId,dtype:t.dtype,shape:e.shape}}function oQ(e){let{inputs:t,backend:n}=e,{x:a}=t,r=n.texData.get(a.dataId),s=new iQ(a.shape),i=[TI(a,r.complexTensorInfos.real),TI(a,r.complexTensorInfos.imag)];return n.runWebGLProgram(s,i,i[0].dtype)}var lQ={kernelName:hc,backendName:"webgl",kernelFunc:oQ},uQ=class{constructor(e){this.outputShape=[],this.outputShape=N.computeOutShape(e,1),this.variableNames=e.map((s,i)=>`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${i}`);let t=new Array(e.length-1);t[0]=e[0][1];for(let s=1;s`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m`T${f}`);let o=new Array(e.length-1);o[0]=e[0][t];for(let m=1;m= ${o[m-1]}) { return getChannel( - getT${m}(${yh(i,l,f)}), - vec2(${yh(u,l,f)})); + getT${m}(${bh(i,l,f)}), + vec2(${bh(u,l,f)})); }`}let c=o.length,h=o[o.length-1];d+=` return getChannel( - getT${c}(${yh(i,l,h)}), - vec2(${yh(u,l,h)}));`,this.userCode=` + getT${c}(${bh(i,l,h)}), + vec2(${bh(u,l,h)}));`,this.userCode=` float getValue(${i.map(m=>"int "+m)}) { ${d} } @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(result); } - `}};function yh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Jf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return aa({inputs:{x:r.complexTensorInfos.imag},backend:n})}var cQ={kernelName:Nm,backendName:"webgl",kernelFunc:Jf};function Vp(e,t,n){let a=e[0].dtype;if(a==="complex64"){let d=e.map(g=>pd({inputs:{input:g},backend:n})),c=e.map(g=>Jf({inputs:{input:g},backend:n})),h=Vp(d,t,n),m=Vp(c,t,n),f=_s({inputs:{real:h,imag:m},backend:n});return d.forEach(g=>n.disposeIntermediateTensorInfo(g)),c.forEach(g=>n.disposeIntermediateTensorInfo(g)),n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),f}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let d=e.map(b=>{let x=[-1,v.sizeFromShape(b.shape.slice(t))];return de({inputs:{x:b},backend:n,attrs:{shape:x}})}),c=d.map(b=>({vals:n.readSync(b.dataId),shape:b.shape})),h=N.computeOutShape(d.map(b=>b.shape),1),m=d[0].shape[0]===1,f=r7(c,h,a,m),g=N.computeOutShape(e.map(b=>b.shape),t),y=n.makeTensorInfo(g,a,f);return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}let s=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(e.length>s){let d=[];for(let h=0;h1){let d=new pQ(e.map(c=>c.shape),t);return n.runWebGLProgram(d,e,a)}let{tensors2D:i,outShape:o}=dQ(e,t,n),l=new uQ(i.map(d=>d.shape)),u=n.runWebGLProgram(l,i,a);i.forEach(d=>n.disposeIntermediateTensorInfo(d));let p=de({inputs:{x:u},attrs:{shape:o},backend:n});return n.disposeIntermediateTensorInfo(u),p}function dQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>de({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function vE(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?aa({inputs:{x:l[0]},backend:n}):Vp(l,s,n)}var hQ={kernelName:Gl,backendName:"webgl",kernelFunc:vE},wE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { + `}};function bh(e,t,n){let a=e.indexOf(t);return e.map((r,s)=>s===a?`${r} - ${n}`:r).join()}function Qf(e){let{inputs:t,backend:n}=e,{input:a}=t,r=n.texData.get(a.dataId);return na({inputs:{x:r.complexTensorInfos.imag},backend:n})}var gQ={kernelName:Cm,backendName:"webgl",kernelFunc:Qf};function Up(e,t,n){let a=e[0].dtype;if(a==="complex64"){let h=e.map(b=>cd({inputs:{input:b},backend:n})),m=e.map(b=>Qf({inputs:{input:b},backend:n})),f=Up(h,t,n),g=Up(m,t,n),y=Fs({inputs:{real:f,imag:g},backend:n});return h.forEach(b=>n.disposeIntermediateTensorInfo(b)),m.forEach(b=>n.disposeIntermediateTensorInfo(b)),n.disposeIntermediateTensorInfo(f),n.disposeIntermediateTensorInfo(g),y}let r=n.shouldExecuteOnCPU(e);if(a==="string"&&(r=!0),r){let h=e.map(w=>{let I=[-1,v.sizeFromShape(w.shape.slice(t))];return he({inputs:{x:w},backend:n,attrs:{shape:I}})}),m=h.map(w=>({vals:n.readSync(w.dataId),shape:w.shape})),f=N.computeOutShape(h.map(w=>w.shape),1),g=h[0].shape[0]===1,y=u7(m,f,a,g),b=N.computeOutShape(e.map(w=>w.shape),t),x=n.makeTensorInfo(b,a,y);return h.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}let s=e.filter(h=>v.sizeFromShape(h.shape)>0),i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let h=i?new ir(e[0].shape,es):new ss(e[0].shape,es);return n.runWebGLProgram(h,e,a)}let o=H().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>o){let h=[];for(let f=0;fm.shape),t);return n.runWebGLProgram(h,s,a)}let{tensors2D:l,outShape:u}=yQ(s,t,n),p=new mQ(l.map(h=>h.shape)),d=n.runWebGLProgram(p,l,a);l.forEach(h=>n.disposeIntermediateTensorInfo(h));let c=he({inputs:{x:d},attrs:{shape:u},backend:n});return n.disposeIntermediateTensorInfo(d),c}function yQ(e,t,n){let a=N.computeOutShape(e.map(r=>r.shape),t);return{tensors2D:e.map(r=>he({inputs:{x:r},attrs:{shape:[-1,v.sizeFromShape(r.shape.slice(t))]},backend:n})),outShape:a}}function I_(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a,s=v.parseAxisParam(r,t[0].shape)[0],i=t.map(u=>u.shape);N.assertParamsConsistent(i,s);let o=N.computeOutShape(t.map(u=>u.shape),s);if(v.sizeFromShape(o)===0)return n.makeTensorInfo(o,t[0].dtype,[]);let l=t.filter(u=>v.sizeFromShape(u.shape)>0);return l.length===1?na({inputs:{x:l[0]},backend:n}):Up(l,s,n)}var bQ={kernelName:ql,backendName:"webgl",kernelFunc:I_},S_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.outputShape=e.outShape;let s=e.padInfo.top,i=e.padInfo.left,o=e.strideHeight,l=e.strideWidth,u=e.dilationHeight,p=e.dilationWidth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4,f=e.dataFormat==="channelsLast",g=f?1:2,y=f?2:3,b=f?3:1,x="",w="";n&&(a?x=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?x=`float activation(float a) { @@ -2326,7 +2326,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${w} setOutput(result); } - `}},mQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` + `}},xQ=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let t=e.padInfo.front,n=e.padInfo.top,a=e.padInfo.left,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=e.dilationDepth,l=e.dilationHeight,u=e.dilationWidth,p=e.filterDepth,d=e.filterHeight,c=e.filterWidth,h=Math.floor(e.inChannels/4)*4,m=e.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${r}, ${s}, ${i}); const ivec3 pads = ivec3(${t}, ${n}, ${a}); @@ -2414,7 +2414,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},kE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` + `}},T_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.padInfo.left,i=e.strideWidth,o=e.dilationWidth,l=e.filterHeight,u=e.filterWidth,p=u,d=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let f=0;f=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function IE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=am(s.shape,h);b!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=am(r.shape,h);b!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>fE)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(sc(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=nm({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=aa({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=de({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=de({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=nm({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=de({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function SE({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=am(s.shape,m);K!=null&&(s=de({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=am(r.shape,m);K!=null&&(r=de({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=de({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new fQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],E=a.runWebGLProgram(T,[e],"float32",C),$=de({inputs:{x:E},backend:a,attrs:{shape:y}});w.push(E),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?ic(o,!0):null,B=new mE(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=de({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function gQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=IE({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new kE(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=SE({x:r,filter:s,convInfo:c,backend:n});else{let f=new wE(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=de({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var yQ={kernelName:wi,backendName:"webgl",kernelFunc:gQ},bQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` + `}};function rm(e,t){let n=e.length;return n>=3?t?[...e.slice(0,-3),e[n-3]*e[n-2],e[n-1]]:[...e.slice(0,-3),e[n-3],e[n-2]*e[n-1]]:!t&&n===1&&e[0]>1?[e[0],1]:null}function N_({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let l=e.shape,u=a.texData.get(e.dataId),p=n.inChannels,d=l[0]*l[1]*l[2],c=n.outChannels,h=n.dataFormat==="channelsLast",m=!1,f=!1,g,y=[];if(s!=null){let b=rm(s.shape,h);b!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:b}}),y.push(s))}if(r!=null){let b=rm(r.shape,h);b!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:b}}),y.push(r))}if(!((d===1||c===1)&&p>b_)&&u.isPacked&&h&&u.texture!=null&&l[2]%2!==0&&v.arraysEqual(u.shape.slice(-3),l.slice(-3))){let b=l[0]*l[1]*(l[2]+1),x={dataId:e.dataId,shape:[1,b,n.inChannels],dtype:e.dtype},w=u.shape;u.shape=u.shape.slice(),u.shape[u.shape.length-2]++,v.assert(ic(u.shape,x.shape),()=>`packed reshape ${u.shape} to ${x.shape} isn't free`);let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}});y.push(I);let T=am({a:x,b:I,backend:a,transposeA:m,transposeB:f,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i}),C=a.texData.get(T.dataId);v.assert(C.isPacked,()=>"batchMatMul result is expected to be packed"),u.shape=w,C.shape=n.outShape,g=na({inputs:{x:T},backend:a}),g.shape=n.outShape,y.push(T)}else{let b=n.outHeight*n.outWidth,x=he({inputs:{x:e},backend:a,attrs:{shape:h?[n.batchSize,b,n.inChannels]:[n.batchSize,n.inChannels,b]}}),w=he({inputs:{x:t},backend:a,attrs:{shape:[1,n.inChannels,n.outChannels]}}),I=am({a:h?x:w,b:h?w:x,transposeA:!h,transposeB:f,backend:a,bias:r,activation:o,preluActivationWeights:s,leakyreluAlpha:i});g=he({inputs:{x:I},backend:a,attrs:{shape:n.outShape}}),y.push(x),y.push(w),y.push(I)}for(let b of y)a.disposeIntermediateTensorInfo(b);return g}function C_({x:e,filter:t,convInfo:n,backend:a,bias:r=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:o=null}){let{filterWidth:l,filterHeight:u,inChannels:p,outWidth:d,outHeight:c,dataFormat:h}=n,m=h==="channelsLast",f=l*u*p,g=c*d,y=[n.batchSize,f,g],b=!0,x=!1,w=[];if(s!=null){let K=rm(s.shape,m);K!=null&&(s=he({inputs:{x:s},backend:a,attrs:{shape:K}}),w.push(s))}if(r!=null){let K=rm(r.shape,m);K!=null&&(r=he({inputs:{x:r},backend:a,attrs:{shape:K}}),w.push(r))}let I=he({inputs:{x:t},backend:a,attrs:{shape:[1,f,v.sizeFromShape(t.shape)/f]}});w.push(I);let T=new vQ(y,n),C=[e.shape,[n.padInfo.top,n.padInfo.left],[n.strideHeight,n.strideWidth],[n.dilationHeight,n.dilationWidth],[n.inChannels],[n.filterWidth*n.inChannels],[n.outWidth]],_=a.runWebGLProgram(T,[e],"float32",C),$=he({inputs:{x:_},backend:a,attrs:{shape:y}});w.push(_),w.push($);let R=r!=null,F=s!=null,S=o==="leakyrelu",M=o?oc(o,!0):null,B=new y_(m?$.shape:I.shape,m?I.shape:$.shape,m?[n.batchSize,g,n.outChannels]:[n.batchSize,n.outChannels,g],b,x,R,M,F,S),U=m?[$,I]:[I,$];if(r&&U.push(r),F&&U.push(s),S){let K=a.makeTensorInfo([],"float32",v.createScalarValue(i,"float32"));U.push(K),w.push(K)}let G=a.runWebGLProgram(B,U,"float32"),q=he({inputs:{x:G},backend:a,attrs:{shape:n.outShape}});w.push(G);for(let K of w)a.disposeIntermediateTensorInfo(K);return q}function wQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dataFormat:l,dilations:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,s.shape,i,u,o,p,!1,d),h;if(c.filterHeight===1&&c.filterWidth===1&&c.dilationHeight===1&&c.dilationWidth===1&&c.strideHeight===1&&c.strideWidth===1&&(c.padInfo.type==="SAME"||c.padInfo.type==="VALID"))h=N_({x:r,filter:s,convInfo:c,backend:n});else if(c.strideWidth<=2&&d==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let f=new T_(c),g=[[c.padInfo.top,c.padInfo.left],[c.strideHeight,c.strideWidth],[c.dilationHeight,c.dilationWidth],[c.inHeight,c.inWidth]];h=n.runWebGLProgram(f,[r,s],"float32",g)}else if(H().getBool("WEBGL_CONV_IM2COL"))h=C_({x:r,filter:s,convInfo:c,backend:n});else{let f=new S_(c);h=n.runWebGLProgram(f,[r,s],"float32")}let m=he({inputs:{x:h},backend:n,attrs:{shape:c.outShape}});return n.disposeIntermediateTensorInfo(h),m}var kQ={kernelName:Ti,backendName:"webgl",kernelFunc:wQ},IQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2699,7 +2699,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},xQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` + `}},SQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=e.dataFormat==="channelsLast",i=t-1-e.padInfo.top,o=n-1-e.padInfo.left,l=s?1:2,u=s?2:3,p=s?3:1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -2752,7 +2752,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},vQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` + `}},TQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.padInfo.front,s=e.padInfo.top,i=e.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2794,7 +2794,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},wQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` + `}},NQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterDepth,n=e.filterHeight,a=e.filterWidth,r=e.strideDepth,s=e.strideHeight,i=e.strideWidth,o=t-1-e.padInfo.front,l=n-1-e.padInfo.top,u=a-1-e.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${o}, ${l}, ${u}); void main() { @@ -2851,12 +2851,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function kQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new bQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var IQ={kernelName:fm,backendName:"webgl",kernelFunc:kQ};function SQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new xQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var TQ={kernelName:ki,backendName:"webgl",kernelFunc:SQ};function NQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new mQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var CQ={kernelName:mc,backendName:"webgl",kernelFunc:NQ};function _Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new vQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var EQ={kernelName:gm,backendName:"webgl",kernelFunc:_Q};function $Q(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new wQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var AQ={kernelName:ym,backendName:"webgl",kernelFunc:$Q},FQ=tp+` + `}};function CQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,dataFormat:l,dimRoundingMode:u,filterShape:p}=a,d=N.convertConv2DDataFormat(l),c=N.computeConv2DInfo(r.shape,p,i,1,o,u,!1,d),h=new IQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var EQ={kernelName:gm,backendName:"webgl",kernelFunc:CQ};function _Q(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{inputShape:i,strides:o,pad:l,dataFormat:u,dimRoundingMode:p}=a,d=N.convertConv2DDataFormat(u),c=N.computeConv2DInfo(i,s.shape,o,1,l,p,!1,d),h=new SQ(c);return n.runWebGLProgram(h,[r,s],"float32")}var AQ={kernelName:Ni,backendName:"webgl",kernelFunc:_Q};function $Q(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeConv3DInfo(r.shape,s.shape,i,l,o),p=new xQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var FQ={kernelName:fc,backendName:"webgl",kernelFunc:$Q};function DQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,pad:o,filterShape:l}=a,u=N.computeConv3DInfo(r.shape,l,i,1,o),p=new TQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var RQ={kernelName:ym,backendName:"webgl",kernelFunc:DQ};function MQ(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{pad:i,strides:o,inputShape:l}=a,u=N.computeConv3DInfo(l,s.shape,o,1,i),p=new NQ(u);return n.runWebGLProgram(p,[r,s],"float32")}var PQ={kernelName:bm,backendName:"webgl",kernelFunc:MQ},OQ=np+` return cos(x); -`,DQ=Ye({opSnippet:FQ}),RQ={kernelName:Ii,backendName:"webgl",kernelFunc:DQ},MQ=` +`,LQ=Ye({opSnippet:OQ}),zQ={kernelName:Ci,backendName:"webgl",kernelFunc:LQ},WQ=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,PQ=Ye({opSnippet:MQ}),OQ={kernelName:Si,backendName:"webgl",kernelFunc:PQ},LQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` +`,BQ=Ye({opSnippet:WQ}),VQ={kernelName:Ei,backendName:"webgl",kernelFunc:BQ},UQ=class{constructor(e,t,n,a,r){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[s,i,o,l]=e,[u]=t,[p,d]=n;this.outputShape=[u,p,d,l];let c=a==="bilinear"?1:0,[h,m]=[`${i-1}.0`,`${o-1}.0`],[f,g,y]=p>1?[`${(i-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${h} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${h}`],[b,x,w]=d>1?[`${(o-1)/(d-1)}`,"(x2-x1) * width_ratio",`x1*${m} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${m}`];this.userCode=` const float height_ratio = float(${f}); const float width_ratio = float(${b}); void main() { @@ -2917,20 +2917,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam setOutput(newValue); } } - `}},zQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new LQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},WQ={kernelName:jl,backendName:"webgl",kernelFunc:zQ},lc;(function(e){e.Prod="*",e.Sum="+"})(lc||(lc={}));var NI=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===lc.Prod?"1.0":"0.0",i=n?s:`getX(${CI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` + `}},GQ=e=>{let{inputs:t,backend:n,attrs:a}=e,{image:r,boxes:s,boxInd:i}=t,{cropSize:o,method:l,extrapolationValue:u}=a,p=new UQ(r.shape,s.shape,o,l,u);return n.runWebGLProgram(p,[r,s,i],"float32")},HQ={kernelName:Xl,backendName:"webgl",kernelFunc:GQ},uc;(function(e){e.Prod="*",e.Sum="+"})(uc||(uc={}));var _I=class{constructor(e,t,n,a){this.op=e,this.outputShape=t,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let r=this.outputShape.length,s=this.op===uc.Prod?"1.0":"0.0",i=n?s:`getX(${AI(r,"coords",this.op)})`,o=this.outputShape[this.outputShape.length-1],l="",u="";n?(l=a?`end != ${o-1}`:"end != 0",u=a?"end + 1":"end - 1"):(l=a?`end + pow2 < ${o}`:"end >= pow2",u=a?"end + pow2":"end - pow2"),this.userCode=` void main() { ${gt(r)} coords = getOutputCoords(); - int end = ${_I(r,"coords",this.op)}; + int end = ${$I(r,"coords",this.op)}; float val = ${i}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${u}; - ${_I(r,"coords",this.op)} = idx; - val ${this.op}= getX(${CI(r,"coords",this.op)}); + ${$I(r,"coords",this.op)} = idx; + val ${this.op}= getX(${AI(r,"coords",this.op)}); } setOutput(val); } - `}};function CI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function _I(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function TE(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=Sn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=aa({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new NI(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new NI(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=Sn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function BQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return TE(lc.Prod,r,n,s,i,o)}var VQ={kernelName:Hl,backendName:"webgl",kernelFunc:BQ};function UQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return TE(lc.Sum,r,n,s,i,o)}var GQ={kernelName:Ti,backendName:"webgl",kernelFunc:UQ};function HQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=rE(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=t7(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var jQ={kernelName:bm,backendName:"webgl",kernelFunc:HQ},qQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` + `}};function AI(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.x, ${t}.y`;if(e===3)return`${t}.x, ${t}.y, ${t}.z`;if(e===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function $I(e,t,n){if(e===1)return`${t}`;if(e===2)return`${t}.y`;if(e===3)return`${t}.z`;if(e===4)return`${t}.w`;throw new Error(`Cumulative ${n} for rank ${e} is not yet supported`)}function E_(e,t,n,a,r,s){let i=t.shape.length,o=N.getAxesPermutation([a],i),l=t;o!=null&&(l=Sn({inputs:{x:t},backend:n,attrs:{perm:o}}));let u=N.getInnerMostAxes(1,i)[0];if(u!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${a}`);let p=l.shape[u],d=na({inputs:{x:l},backend:n});for(let c=0;c<=Math.ceil(Math.log2(p))-1;c++){let h=new _I(e,l.shape,!1,s),m=[[c]],f=d;d=n.runWebGLProgram(h,[d],d.dtype,m),n.disposeIntermediateTensorInfo(f)}if(r){let c=new _I(e,l.shape,r,s),h=d;d=n.runWebGLProgram(c,[d],d.dtype),n.disposeIntermediateTensorInfo(h)}if(o!=null){let c=N.getUndoAxesPermutation(o),h=Sn({inputs:{x:d},backend:n,attrs:{perm:c}});return n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(l),h}return d}function jQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return E_(uc.Prod,r,n,s,i,o)}var qQ={kernelName:Kl,backendName:"webgl",kernelFunc:jQ};function KQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a;return E_(uc.Sum,r,n,s,i,o)}var XQ={kernelName:_i,backendName:"webgl",kernelFunc:KQ};function YQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,weights:s}=t,{size:i,binaryOutput:o}=a;if(r.shape.length===1){let l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=o_(l,u,s.dtype,s.shape,i);return n.makeTensorInfo([i],s.dtype,p)}else if(r.shape.length===2){let l=n.bufferSync(r),u=n.bufferSync(s),p=i7(l,u,i,o);return n.makeTensorInfo(p.shape,s.dtype,p.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${r.shape.length}.`)}var ZQ={kernelName:xm,backendName:"webgl",kernelFunc:YQ},JQ=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=e,this.blockSize=t,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2949,7 +2949,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function KQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new qQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var XQ={kernelName:ql,backendName:"webgl",kernelFunc:KQ},NE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function QQ(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=new JQ(m,s,i);return n.runWebGLProgram(f,[r],r.dtype)}var eee={kernelName:Yl,backendName:"webgl",kernelFunc:QQ},__=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.filterHeight,i=e.filterWidth,o=e.outChannels/e.inChannels,l="",u="";n&&(a?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:r?l=`float activation(float a) { @@ -3002,7 +3002,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${u} setOutput(result); } - `}},CE=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=En(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` + `}},A_=class{constructor(e,t=!1,n=null,a=!1,r=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=e.outShape,this.enableShapeUniforms=_n(this.outputShape.length);let s=e.outChannels/e.inChannels,i=e.padInfo.left,o=e.strideWidth,l=e.dilationWidth,u=e.filterHeight,p=e.filterWidth,d=p,c=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new CE(d):c=new NE(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var ZQ={kernelName:Ni,backendName:"webgl",kernelFunc:YQ},JQ=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` + `}};function tee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l,dimRoundingMode:u}=a,p=l;p==null&&(p=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(i,p),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${p}'`);let d=N.computeConv2DInfo(r.shape,s.shape,i,p,o,u,!0),c;H().getBool("WEBGL_PACK_DEPTHWISECONV")&&d.strideWidth<=2&&d.outChannels/d.inChannels===1?c=new A_(d):c=new __(d);let h=[[d.padInfo.top,d.padInfo.left],[d.strideHeight,d.strideWidth],[d.dilationHeight,d.dilationWidth],[d.inHeight,d.inWidth]];return n.runWebGLProgram(c,[r,s],"float32",h)}var nee={kernelName:Ai,backendName:"webgl",kernelFunc:tee},aee=class{constructor(e){this.variableNames=["x","dy"],this.outputShape=e.filterShape;let t=e.strideHeight,n=e.strideWidth,a=e.padInfo.top,r=e.padInfo.left,s=e.outChannels/e.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3226,7 +3226,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},QQ=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` + `}},ree=class{constructor(e){this.variableNames=["dy","W"],this.outputShape=e.inShape;let t=e.filterHeight,n=e.filterWidth,a=e.strideHeight,r=e.strideWidth,s=t-1-e.padInfo.top,i=n-1-e.padInfo.left,o=e.outChannels/e.inChannels;this.userCode=` const ivec2 pads = ivec2(${s}, ${i}); void main() { @@ -3271,13 +3271,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function eee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new JQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var tee={kernelName:xm,backendName:"webgl",kernelFunc:eee};function nee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new QQ(d);return n.runWebGLProgram(c,[r,s],"float32")}var aee={kernelName:vm,backendName:"webgl",kernelFunc:nee},ree=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` + `}};function see(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,dy:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,filterShape:p}=a,d=N.computeConv2DInfo(r.shape,p,i,o,l,u,!0),c=new aee(d);return n.runWebGLProgram(c,[r,s],"float32")}var iee={kernelName:vm,backendName:"webgl",kernelFunc:see};function oee(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,filter:s}=t,{strides:i,dilations:o,pad:l,dimRoundingMode:u,inputShape:p}=a,d=N.computeConv2DInfo(p,s.shape,i,o,l,u,!0),c=new ree(d);return n.runWebGLProgram(c,[r,s],"float32")}var lee={kernelName:wm,backendName:"webgl",kernelFunc:oee},uee=class{constructor(e){this.variableNames=["X"],this.outputShape=[e,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function see(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=de({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new ree(s),l=n.runWebGLProgram(o,[i],i.dtype),u=de({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var iee={kernelName:wm,backendName:"webgl",kernelFunc:see},oee=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` + `}};function pee(e){let{inputs:t,backend:n}=e,{x:a}=t,r=[...a.shape,...a.shape],s=v.sizeFromShape(a.shape),i=he({inputs:{x:a},backend:n,attrs:{shape:[s]}}),o=new uee(s),l=n.runWebGLProgram(o,[i],i.dtype),u=he({inputs:{x:l},backend:n,attrs:{shape:r}});return n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(l),u}var cee={kernelName:km,backendName:"webgl",kernelFunc:pee},dee=class{constructor(e){this.variableNames=["x","W"],this.outputShape=e.outShape;let{inHeight:t,inWidth:n,padInfo:a,strideHeight:r,strideWidth:s,filterHeight:i,filterWidth:o,dilationHeight:l,dilationWidth:u}=e,{top:p,left:d}=a;this.userCode=` const ivec2 strides = ivec2(${r}, ${s}); const ivec2 pads = ivec2(${p}, ${d}); const float neg_infinity = -3.4e38; @@ -3315,7 +3315,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam float result = curVal; setOutput(result); } - `}};function lee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new oee(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=de({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var uee={kernelName:fc,backendName:"webgl",kernelFunc:lee};function pee(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Zf({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var cee={kernelName:km,backendName:"webgl",kernelFunc:pee},dee="return (x >= 0.0) ? x : (exp(x) - 1.0);",hee=` + `}};function hee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s}=t,{strides:i,pad:o,dilations:l}=a,u=N.computeDilation2DInfo(r.shape,s.shape,i,o,"NHWC",l),p,d=new dee(u);p=n.runWebGLProgram(d,[r,s],"float32");let c=he({inputs:{x:p},backend:n,attrs:{shape:u.outShape}});return n.disposeIntermediateTensorInfo(p),c}var mee={kernelName:gc,backendName:"webgl",kernelFunc:hee};function fee(e){let{inputs:t,backend:n,attrs:a}=e,{equation:r}=a,s=t,{allDims:i,summedDims:o,idDims:l}=N.decodeEinsumEquation(r,s.length);N.checkEinsumDimSizes(i.length,l,s);let{path:u,steps:p}=N.getEinsumComputePath(o,l),d=p.length,c=null,h=i.length,m=[];for(let f=0;f=0&&(c=Jf({inputs:{x:c},backend:n,attrs:{axis:u[f]-(i.length-h),keepDims:!1}}),m.push(c)),h--)}for(let f of m)f!==c&&n.disposeIntermediateTensorInfo(f);return c}var gee={kernelName:Im,backendName:"webgl",kernelFunc:fee},yee="return (x >= 0.0) ? x : (exp(x) - 1.0);",bee=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3324,12 +3324,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,mee=Ye({opSnippet:dee,packedOpSnippet:hee}),fee={kernelName:_i,backendName:"webgl",kernelFunc:mee},gee="return (b >= 1.0) ? a : a * (b + 1.0);",yee=` +`,xee=Ye({opSnippet:yee,packedOpSnippet:bee}),vee={kernelName:Fi,backendName:"webgl",kernelFunc:xee},wee="return (b >= 1.0) ? a : a * (b + 1.0);",kee=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,bee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new ud(yee,a.shape,r.shape):new Al(gee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},xee={kernelName:Im,backendName:"webgl",kernelFunc:bee},vee=` +`,Iee=e=>{let{inputs:t,backend:n}=e,{dy:a,y:r}=t,s=H().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new pd(kee,a.shape,r.shape):new Rl(wee,a.shape,r.shape);return n.runWebGLProgram(s,[a,r],a.dtype)},See={kernelName:Sm,backendName:"webgl",kernelFunc:Iee},Tee=` return vec4(equal(a, b)); -`,wee="return float(a == b);",kee=cn({opSnippet:wee,packedOpSnippet:vee,dtype:"bool",cpuKernelImpl:s7}),Iee={kernelName:Xl,backendName:"webgl",kernelFunc:kee},See=` +`,Nee="return float(a == b);",Cee=cn({opSnippet:Nee,packedOpSnippet:Tee,dtype:"bool",cpuKernelImpl:p7}),Eee={kernelName:Jl,backendName:"webgl",kernelFunc:Cee},_ee=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. @@ -3344,9 +3344,9 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,Tee=Ye({opSnippet:See}),Nee={kernelName:Kl,backendName:"webgl",kernelFunc:Tee},Cee=tp+` +`,Aee=Ye({opSnippet:_ee}),$ee={kernelName:Zl,backendName:"webgl",kernelFunc:Aee},Fee=np+` return exp(x); -`,_ee=` +`,Dee=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3355,7 +3355,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result.a = isNaN.a ? x.a : result.a; return result; -`,_E=Ye({opSnippet:Cee,packedOpSnippet:_ee,cpuKernelImpl:i7,dtype:"float32"}),Eee={kernelName:Ei,backendName:"webgl",kernelFunc:_E};function vx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),de({inputs:{x:s},backend:a,attrs:{shape:o}})}var $ee={kernelName:Yl,backendName:"webgl",kernelFunc:vx},EI="return exp(x) - 1.0;",Aee=Ye({opSnippet:EI,packedOpSnippet:EI,cpuKernelImpl:o7}),Fee={kernelName:Zl,backendName:"webgl",kernelFunc:Aee},$I=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` +`,$_=Ye({opSnippet:Fee,packedOpSnippet:Dee,cpuKernelImpl:c7,dtype:"float32"}),Ree={kernelName:Di,backendName:"webgl",kernelFunc:$_};function Sx(e){let{inputs:t,attrs:n,backend:a}=e,{dim:r}=n,{input:s}=t,i=s.shape.length,o=s.shape.slice(),l=r;return r<0&&(v.assert(-(i+1)<=r,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+r+1),o.splice(l,0,1),he({inputs:{x:s},backend:a,attrs:{shape:o}})}var Mee={kernelName:Ql,backendName:"webgl",kernelFunc:Sx},FI="return exp(x) - 1.0;",Pee=Ye({opSnippet:FI,packedOpSnippet:FI,cpuKernelImpl:d7}),Oee={kernelName:eu,backendName:"webgl",kernelFunc:Pee},DI=class{constructor(e,t,n){this.variableNames=["real","imag"];let a=t[1];this.outputShape=t;let r=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,s=n?`${a}.0`:"1.0",i;if(e==="real")i="return real * expR - imag * expI;";else if(e==="imag")i="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${e}.`);this.userCode=` const float exponentMultiplier = ${r}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3388,12 +3388,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function EE(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=de({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new $I("real",l,t),p=new $I("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=_s({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=de({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Dee(e){let{inputs:t,backend:n}=e,{input:a}=t;return EE(a,!1,n)}var Ree={kernelName:Sm,backendName:"webgl",kernelFunc:Dee},Mee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` + `}};function F_(e,t,n){let a=n.texData.get(e.dataId),r=v.sizeFromShape(e.shape),s=e.shape[e.shape.length-1],i=r/s,o=he({inputs:{x:e},backend:n,attrs:{shape:[i,s]}}),l=o.shape,u=new DI("real",l,t),p=new DI("imag",l,t),d=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:l},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:l}],c=n.runWebGLProgram(u,d,"float32"),h=n.runWebGLProgram(p,d,"float32"),m=Fs({inputs:{real:c,imag:h},backend:n});n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h);let f=he({inputs:{x:m},backend:n,attrs:{shape:e.shape}});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(m),f}function Lee(e){let{inputs:t,backend:n}=e,{input:a}=t;return F_(a,!1,n)}var zee={kernelName:Tm,backendName:"webgl",kernelFunc:Lee},Wee=class{constructor(e,t){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=e,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function cd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new Mee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Pee={kernelName:gc,backendName:"webgl",kernelFunc:cd},Oee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` + `}};function dd(e){let{backend:t,attrs:n}=e,{shape:a,value:r}=n,{dtype:s}=n;if(s=s||v.inferDtype(r),s==="string"){let i=v.getArrayFromDType(s,v.sizeFromShape(a));return i.fill(r),t.makeTensorInfo(a,s,i)}else{let i=new Wee(a,r),o=[[r]];return t.runWebGLProgram(i,[],s,o)}}var Bee={kernelName:yc,backendName:"webgl",kernelFunc:dd},Vee=class{constructor(e){this.variableNames=["Image"],this.outputShape=[];let t=e[2];this.outputShape=e,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3407,7 +3407,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(outputValue); } - `}},Lee={kernelName:Jl,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Oee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},AI="return floor(x);",zee=Ye({opSnippet:AI,packedOpSnippet:AI,cpuKernelImpl:l7}),Wee={kernelName:$i,backendName:"webgl",kernelFunc:zee},Bee=` + `}},Uee={kernelName:tu,backendName:"webgl",kernelFunc:({inputs:e,backend:t})=>{let{image:n}=e,a=t,r=new Vee(n.shape);return a.runWebGLProgram(r,[n],n.dtype)}},RI="return floor(x);",Gee=Ye({opSnippet:RI,packedOpSnippet:RI,cpuKernelImpl:h7}),Hee={kernelName:Ri,backendName:"webgl",kernelFunc:Gee},jee=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3417,7 +3417,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } else { return NAN; } -`,Vee=` +`,qee=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3438,7 +3438,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,Uee=cn({opSnippet:Bee,packedOpSnippet:Vee,dtype:"int32"}),Gee={kernelName:Ai,backendName:"webgl",kernelFunc:Uee},Hee=class{constructor(e){this.variableNames=["A"];let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` +`,Kee=cn({opSnippet:jee,packedOpSnippet:qee,dtype:"int32"}),Xee={kernelName:Mi,backendName:"webgl",kernelFunc:Kee},Yee=class{constructor(e){this.variableNames=["A"];let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3460,7 +3460,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam setOutput(floor(value * 255.0 + 0.5)); } - `}},jee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=_n(),[n,a]=e;this.outputShape=e,this.userCode=` + `}},Zee=class{constructor(e){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let t=En(),[n,a]=e;this.outputShape=e,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${t.output} = result; } - `}},qee={kernelName:Fh,backendName:"webgl",kernelFunc:Kee},sl,Tb=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Kee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(sl==null||f!==Tb)&&(Tb=f,sl=document.createElement("canvas").getContext("2d",{willReadFrequently:Tb})),sl.canvas.width=l,sl.canvas.height=u,sl.drawImage(r,0,0,l,u),r=sl.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new jee(d):new Hee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function Xee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let E=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=de({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&E.push($(i,p)),w&&E.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));E.push(R),b.push(R)}return E};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=IE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let E=h?ic(h,!0):null,$=new kE(g,x,E,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=SE({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let E=h?ic(h,!1):null,$=new wE(g,x,E,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=de({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(E=>n.disposeIntermediateTensorInfo(E)),C}var Yee={kernelName:ei,backendName:"webgl",kernelFunc:Xee};function Zee(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?ic(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new CE(g,w,b,I,T):C=new NE(g,w,b,I,T);let E=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",E);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var Jee={kernelName:ti,backendName:"webgl",kernelFunc:Zee},Qee=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` + `}},Jee={kernelName:Dh,backendName:"webgl",kernelFunc:Qee},ul,Ab=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Qee(e){let{inputs:t,backend:n,attrs:a}=e,{pixels:r}=t,{numChannels:s}=a,i=typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement,o=typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement,[l,u]=i?[r.videoWidth,r.videoHeight]:[r.width,r.height],p=[u,l],d=[u,l,s];if(o||i){let f=H().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(ul==null||f!==Ab)&&(Ab=f,ul=document.createElement("canvas").getContext("2d",{willReadFrequently:Ab})),ul.canvas.width=l,ul.canvas.height=u,ul.drawImage(r,0,0,l,u),r=ul.canvas}let c=n.makeTensorInfo(p,"int32");n.texData.get(c.dataId).usage=ca.PIXELS,n.gpgpu.uploadPixelDataToTexture(n.getTexture(c.dataId),r);let h=H().getBool("WEBGL_PACK")?new Zee(d):new Yee(d),m=n.runWebGLProgram(h,[c],"int32");return n.disposeData(c.dataId),m}function ete(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dataFormat:p,dilations:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=a,f=N.convertConv2DDataFormat(p),g=N.computeConv2DInfo(r.shape,s.shape,l,d,u,c,!1,f),y,b=[],x=i!=null,w=o!=null,I=h==="leakyrelu",T=()=>{let _=[r,s],$=(R,F)=>{if(F==="NCHW"&&R.shape.length===1&&R.shape[0]!==1){let S=he({inputs:{x:R},backend:n,attrs:{shape:[R.shape[0],1,1]}});return b.push(S),S}return R};if(x&&_.push($(i,p)),w&&_.push($(o,p)),I){let R=n.makeTensorInfo([],"float32",v.createScalarValue(m,"float32"));_.push(R),b.push(R)}return _};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))y=N_({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else if(g.strideWidth<=2&&f==="channelsLast"&&H().getBool("WEBGL_EXP_CONV")){let _=h?oc(h,!0):null,$=new T_(g,x,_,w,I),R=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=T();y=n.runWebGLProgram($,F,"float32",R)}else if(H().getBool("WEBGL_CONV_IM2COL"))y=C_({x:r,filter:s,convInfo:g,backend:n,bias:i,activation:h,preluActivationWeights:o,leakyreluAlpha:m});else{let _=h?oc(h,!1):null,$=new S_(g,x,_,w,I),R=T();y=n.runWebGLProgram($,R,"float32")}let C=he({inputs:{x:y},backend:n,attrs:{shape:g.outShape}});return b.push(y),b.forEach(_=>n.disposeIntermediateTensorInfo(_)),C}var tte={kernelName:ai,backendName:"webgl",kernelFunc:ete};function nte(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dimRoundingMode:d,activation:c,leakyreluAlpha:h}=a,m=[],f=p;f==null&&(f=[1,1]),v.assert(N.eitherStridesOrDilationsAreOne(l,f),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${l} and dilations '${f}'`);let g=N.computeConv2DInfo(r.shape,s.shape,l,f,u,d,!0),y=H().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=c?oc(c,y):null,x=[r,s],w=i!=null,I=o!=null,T=c==="leakyrelu";if(w&&x.push(i),I&&x.push(o),T){let R=n.makeTensorInfo([],"float32",v.createScalarValue(h,"float32"));x.push(R),m.push(R)}let C;y?C=new A_(g,w,b,I,T):C=new __(g,w,b,I,T);let _=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],$=n.runWebGLProgram(C,x,"float32",_);return m.forEach(R=>n.disposeIntermediateTensorInfo(R)),$}var ate={kernelName:ri,backendName:"webgl",kernelFunc:nte},rte=class{constructor(e,t,n,a){this.sliceDim=e,this.strides=t,this.paramsShape=a,this.variableNames=["x","indices"],this.outputShape=n;let r=gt(n.length),s=` int index;`;for(let i=0;i= 0) && (index < ${e[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${a})); } - `}};function ate(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=de({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=de({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=p7(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new nte(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=de({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var rte={kernelName:Ql,backendName:"webgl",kernelFunc:$E},ste="return float(a > b);",ite=` + `}};function lte(e,t){let n=["resRC.x","resRC.y","resRC.z","resRC.w"],a=[];for(let r=0;r=0,()=>`GatherV2: the index value ${I} is not in [0, ${x-1}]`)}}let u=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),p=v.sizeFromShape(s.shape),d=[],c=he({inputs:{x:r},backend:n,attrs:{shape:[u.batchSize,u.outerSize,u.dimSize,u.sliceSize]}}),h=he({inputs:{x:s},backend:n,attrs:{shape:[u.batchSize,p/u.batchSize]}});d.push(c),d.push(h);let m=[u.batchSize,u.outerSize,p/u.batchSize,u.sliceSize];if(n.shouldExecuteOnCPU([r,s])||r.dtype==="string"){let b=n.bufferSync(h),x=n.bufferSync(c),w=f7(x,b,m);return d.forEach(I=>n.disposeIntermediateTensorInfo(I)),n.makeTensorInfo(u.outputShape,w.dtype,w.values)}let f=new ote(c.shape,m),g=n.runWebGLProgram(f,[c,h],c.dtype);d.push(g);let y=he({inputs:{x:g},backend:n,attrs:{shape:u.outputShape}});return d.forEach(b=>n.disposeIntermediateTensorInfo(b)),y}var ute={kernelName:nu,backendName:"webgl",kernelFunc:D_},pte="return float(a > b);",cte=` return vec4(greaterThan(a, b)); -`,ote=cn({opSnippet:ste,packedOpSnippet:ite,cpuKernelImpl:c7,dtype:"bool"}),lte={kernelName:tu,backendName:"webgl",kernelFunc:ote},ute="return float(a >= b);",pte=` +`,dte=cn({opSnippet:pte,packedOpSnippet:cte,cpuKernelImpl:g7,dtype:"bool"}),hte={kernelName:ru,backendName:"webgl",kernelFunc:dte},mte="return float(a >= b);",fte=` return vec4(greaterThanEqual(a, b)); -`,cte=cn({opSnippet:ute,packedOpSnippet:pte,dtype:"bool",cpuKernelImpl:d7}),dte={kernelName:Di,backendName:"webgl",kernelFunc:cte};function hte(e){let{inputs:t,backend:n}=e,{input:a}=t;return EE(a,!0,n)}var mte={kernelName:Tm,backendName:"webgl",kernelFunc:hte},fte="return float(!isnan(x) && !isinf(x));",gte=Ye({opSnippet:fte,dtype:"bool"}),yte={kernelName:nu,backendName:"webgl",kernelFunc:gte},bte="return float(isinf(x));",xte=Ye({opSnippet:bte,dtype:"bool"}),vte={kernelName:au,backendName:"webgl",kernelFunc:xte},wte="return float(isnan(x));",kte=Ye({opSnippet:wte,dtype:"bool"}),Ite={kernelName:ru,backendName:"webgl",kernelFunc:kte},Ste="return float(a < b);",Tte=` +`,gte=cn({opSnippet:mte,packedOpSnippet:fte,dtype:"bool",cpuKernelImpl:y7}),yte={kernelName:Oi,backendName:"webgl",kernelFunc:gte};function bte(e){let{inputs:t,backend:n}=e,{input:a}=t;return F_(a,!0,n)}var xte={kernelName:Nm,backendName:"webgl",kernelFunc:bte},vte="return float(!isnan(x) && !isinf(x));",wte=Ye({opSnippet:vte,dtype:"bool"}),kte={kernelName:su,backendName:"webgl",kernelFunc:wte},Ite="return float(isinf(x));",Ste=Ye({opSnippet:Ite,dtype:"bool"}),Tte={kernelName:iu,backendName:"webgl",kernelFunc:Ste},Nte="return float(isnan(x));",Cte=Ye({opSnippet:Nte,dtype:"bool"}),Ete={kernelName:zi,backendName:"webgl",kernelFunc:Cte},_te="return float(a < b);",Ate=` return vec4(lessThan(a, b)); -`,Nte=cn({opSnippet:Ste,packedOpSnippet:Tte,cpuKernelImpl:h7,dtype:"bool"}),Cte={kernelName:su,backendName:"webgl",kernelFunc:Nte},_te="return float(a <= b);",Ete=` +`,$te=cn({opSnippet:_te,packedOpSnippet:Ate,cpuKernelImpl:b7,dtype:"bool"}),Fte={kernelName:ou,backendName:"webgl",kernelFunc:$te},Dte="return float(a <= b);",Rte=` return vec4(lessThanEqual(a, b)); -`,$te=cn({opSnippet:_te,packedOpSnippet:Ete,cpuKernelImpl:m7,dtype:"bool"}),Ate={kernelName:iu,backendName:"webgl",kernelFunc:$te};function Fte(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=f7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Dte={kernelName:Cm,backendName:"webgl",kernelFunc:Fte},Rte=tp+` +`,Mte=cn({opSnippet:Dte,packedOpSnippet:Rte,cpuKernelImpl:x7,dtype:"bool"}),Pte={kernelName:lu,backendName:"webgl",kernelFunc:Mte};function Ote(e){let{backend:t,attrs:n}=e,{start:a,stop:r,num:s}=n,i=v7(a,r,s);return t.makeTensorInfo([i.length],"float32",i)}var Lte={kernelName:Em,backendName:"webgl",kernelFunc:Ote},zte=np+` return x < 0.0 ? 0./0. : log(x); -`,Mte=` +`,Wte=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3534,18 +3534,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,Pte=Ye({opSnippet:Rte,packedOpSnippet:Mte,cpuKernelImpl:g7}),Ote={kernelName:Pi,backendName:"webgl",kernelFunc:Pte},Lte=tp+` +`,Bte=Ye({opSnippet:zte,packedOpSnippet:Wte,cpuKernelImpl:w7}),Vte={kernelName:Bi,backendName:"webgl",kernelFunc:Bte},Ute=np+` return log(1.0 + x); -`,zte=Ye({opSnippet:Lte}),Wte={kernelName:ou,backendName:"webgl",kernelFunc:zte},Bte="return float(a >= 1.0 && b >= 1.0);",Vte=` +`,Gte=Ye({opSnippet:Ute}),Hte={kernelName:uu,backendName:"webgl",kernelFunc:Gte},jte="return float(a >= 1.0 && b >= 1.0);",qte=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Ute=cn({opSnippet:Bte,packedOpSnippet:Vte,dtype:"bool"}),Gte={kernelName:lu,backendName:"webgl",kernelFunc:Ute},Hte="return float(!(x >= 1.0));",jte=Ye({opSnippet:Hte}),qte={kernelName:uu,backendName:"webgl",kernelFunc:jte},Kte="return float(a >= 1.0 || b >= 1.0);",Xte=` +`,Kte=cn({opSnippet:jte,packedOpSnippet:qte,dtype:"bool"}),Xte={kernelName:pu,backendName:"webgl",kernelFunc:Kte},Yte="return float(!(x >= 1.0));",Zte=Ye({opSnippet:Yte}),Jte={kernelName:cu,backendName:"webgl",kernelFunc:Zte},Qte="return float(a >= 1.0 || b >= 1.0);",ene=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Yte=cn({opSnippet:Kte,packedOpSnippet:Xte,dtype:"bool"}),Zte={kernelName:pu,backendName:"webgl",kernelFunc:Yte},Jte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` +`,tne=cn({opSnippet:Qte,packedOpSnippet:ene,dtype:"bool"}),nne={kernelName:du,backendName:"webgl",kernelFunc:tne},ane=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[];let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3564,7 +3564,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam float val = x * ${o}; setOutput(val); } - `}},Qte=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` + `}},rne=class{constructor(e,t,n,a,r){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let s=t,i=e[3]-1;this.outputShape=e;let o,l=`float(${n}) + float(${a}) * sum`;r===.5?o=`inversesqrt(${l})`:r===1?o=`1.0/(${l})`:o=`exp(log(${l}) * float(-${r}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3626,7 +3626,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam vec4 result = xAtOutputCoords * ${o}; setOutput(result); } - `}},ene=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new Qte(r.shape,s,i,o,l):new Jte(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},tne={kernelName:yc,backendName:"webgl",kernelFunc:ene},nne=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` + `}},sne=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{depthRadius:s,bias:i,alpha:o,beta:l}=a,u=H().getBool("WEBGL_PACK_NORMALIZATION")?new rne(r.shape,s,i,o,l):new ane(r.shape,s,i,o,l);return n.runWebGLProgram(u,[r],r.dtype)},ine={kernelName:bc,backendName:"webgl",kernelFunc:sne},one=class{constructor(e,t,n,a,r){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=e,this.depth=e[3],this.depthRadius=t,this.bias=n,this.alpha=a,this.beta=r,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3681,16 +3681,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(result); } - `}},ane=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new nne(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},rne={kernelName:_m,backendName:"webgl",kernelFunc:ane};function sne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,e.dtype,"max",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function AE(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T{let{inputs:t,backend:n,attrs:a}=e,{x:r,y:s,dy:i}=t,{depthRadius:o,bias:l,alpha:u,beta:p}=a,d=new one(r.shape,o,l,u,p);return n.runWebGLProgram(d,[r,s,i],r.dtype)},une={kernelName:_m,backendName:"webgl",kernelFunc:lne};function pne(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Eo(i,e.dtype,"max",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}function R_(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{reductionIndices:s,keepDims:i}=a,o=r.shape.length,l=v.parseAxisParam(s,r.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=n.shouldExecuteOnCPU([r]),h=r;if(d){if(c){let b=n.texData.get(h.dataId).values,x=new Array(o);for(let T=0;T`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return aa({inputs:{x:r},backend:n});let d=new oc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var dne={kernelName:zi,backendName:"webgl",kernelFunc:cne};function hne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new l1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var mne={kernelName:bc,backendName:"webgl",kernelFunc:hne},fne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` +`,mne=cn({opSnippet:dne,packedOpSnippet:hne,cpuKernelImpl:I7}),fne={kernelName:Ui,backendName:"webgl",kernelFunc:mne};function gne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t;Zu(r,"maxPool");let{filterSize:s,strides:i,pad:o,dimRoundingMode:l}=a,u=1;v.assert(N.eitherStridesOrDilationsAreOne(i,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${u}'`);let p=N.computePool2DInfo(r.shape,s,i,u,o,l);if(p.filterWidth===1&&p.filterHeight===1&&v.arraysEqual(p.inShape,p.outShape))return na({inputs:{x:r},backend:n});let d=new lc(p,"max",!1);return n.runWebGLProgram(d,[r],r.dtype)}var yne={kernelName:Gi,backendName:"webgl",kernelFunc:gne};function bne(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{filterSize:s,strides:i,pad:o,dataFormat:l,dimRoundingMode:u}=a,p=[1,1,1],d=N.computePool3DInfo(r.shape,s,i,p,o,u,l),c=new c1(d,"max",!1);return n.runWebGLProgram(c,[r],r.dtype)}var xne={kernelName:xc,backendName:"webgl",kernelFunc:bne},vne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideHeight,n=e.strideWidth,a=e.dilationHeight,r=e.effectiveFilterHeight,s=e.effectiveFilterWidth,i=r-1-e.padInfo.top,o=s-1-e.padInfo.left,l=r*s-1;this.userCode=` const ivec2 pads = ivec2(${i}, ${o}); void main() { @@ -3736,7 +3736,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}},gne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` + `}},wne=class{constructor(e){this.variableNames=["dy","maxPos"],this.outputShape=e.inShape;let t=e.strideDepth,n=e.strideHeight,a=e.strideWidth,r=e.dilationDepth,s=e.dilationHeight,i=e.dilationWidth,o=e.effectiveFilterDepth,l=e.effectiveFilterHeight,u=e.effectiveFilterWidth,p=o-1-e.padInfo.front,d=l-1-e.padInfo.top,c=u-1-e.padInfo.left,h=o*l*u-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${d}, ${c}); void main() { @@ -3800,16 +3800,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam } setOutput(dotProd); } - `}};function yne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s}=t,i=s,{filterSize:o,strides:l,pad:u,dimRoundingMode:p}=a,d=[1,1,1],c=N.computePool3DInfo(i.shape,o,l,d,u,p),h=new l1(c,"max",!0),m=n.runWebGLProgram(h,[i],i.dtype),f=new gne(c),g=n.runWebGLProgram(f,[r,m],i.dtype);return n.disposeIntermediateTensorInfo(m),g}var bne={kernelName:$m,backendName:"webgl",kernelFunc:yne};function xne(e){let{inputs:t,backend:n,attrs:a}=e,{dy:r,input:s,output:i}=t,o=s;Yu([s,i],"maxPoolGrad");let{filterSize:l,strides:u,pad:p,dimRoundingMode:d}=a,c=N.computePool2DInfo(o.shape,l,u,1,p,d),h=!0,m=new oc(c,"max",h),f=n.runWebGLProgram(m,[o],o.dtype),g=new fne(c),y=n.runWebGLProgram(g,[r,f],o.dtype);return n.disposeIntermediateTensorInfo(f),y}var vne={kernelName:Em,backendName:"webgl",kernelFunc:xne};function wne(e,t,n,a){let r=new oc(n,"max",!1),s=a.runWebGLProgram(r,[e],"float32");r=new oc(n,"max",!0,!0,t);let i=a.runWebGLProgram(r,[e],"float32");return[s,i]}var kne={kernelName:Am,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=wne(a,o,p,l);return[d,c]}};function Ine(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=de({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Io(i,"float32","mean",a),l=de({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var Sne={kernelName:Wi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;C{let{x:a}=e,{filterSize:r,strides:s,pad:i,includeBatchInIndex:o}=t,l=n;v.assert(a.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.shape.length}.`);let u=[1,1];v.assert(N.eitherStridesOrDilationsAreOne(s,u),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${u}'`);let p=N.computePool2DInfo(a.shape,r,s,u,i),[d,c]=Nne(a,o,p,l);return[d,c]}};function Ene(e,t,n,a){let r=v.sizeFromShape(t),s=v.sizeFromShape(e.shape)/r,i=he({inputs:{x:e},attrs:{shape:[s,r]},backend:a}),o=Eo(i,"float32","mean",a),l=he({inputs:{x:o},attrs:{shape:n},backend:a});return a.disposeIntermediateTensorInfo(i),a.disposeIntermediateTensorInfo(o),l}var _ne={kernelName:Hi,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{x:a}=e,{keepDims:r,axis:s}=t,i=n,o=a.shape.length,l=v.parseAxisParam(s,a.shape),u=l,p=N.getAxesPermutation(u,o),d=p!=null,c=i.shouldExecuteOnCPU([a]),h=[],m=a;if(d){if(c){let x=i.texData.get(m.dataId).values,w=new Array(o);for(let C=0;Cu[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` +`,Rne=cn({opSnippet:Fne,packedOpSnippet:Dne,cpuKernelImpl:S7}),Mne={kernelName:qi,backendName:"webgl",kernelFunc:Rne},Pne=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=t.map((u,p)=>u[0]+e[p]+u[1]);let a=e.length,r=gt(a),s=t.map(u=>u[0]).join(","),i=t.map((u,p)=>u[0]+e[p]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a),l=n==="reflect"?0:1;if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3838,7 +3838,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${r} coords = outC - start; setOutput(getX(${o})); } - `}},Fne=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` + `}},One=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t.map((h,m)=>h[0]+e[m]+h[1]);let a=e.length,r=gt(a),s=t.map(h=>h[0]).join(","),i=t.map((h,m)=>h[0]+e[m]).join(","),o=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=n==="reflect"?0:1,c="";if(a===1){let h=` ${r} source = rc; if (source < start) { source = start * 2 - source - ${d}; @@ -3894,13 +3894,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam ${c} setOutput(result); } - `}},Dne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Fne(a.shape,r,s):new Ane(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},Rne={kernelName:Ui,backendName:"webgl",kernelFunc:Dne},Mne=`if (b == 0.0) return NAN; - return mod(a, b);`,Pne=` + `}},Lne=({inputs:e,backend:t,attrs:n})=>{let{x:a}=e,{paddings:r,mode:s}=n,i=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new One(a.shape,r,s):new Pne(a.shape,r,s);return t.runWebGLProgram(i,[a],a.dtype)},zne={kernelName:Ki,backendName:"webgl",kernelFunc:Lne},Wne=`if (b == 0.0) return NAN; + return mod(a, b);`,Bne=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+ld+` + `+ud+` return result; -`,One=cn({opSnippet:Mne,packedOpSnippet:Pne}),Lne={kernelName:cu,backendName:"webgl",kernelFunc:One},zne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` +`,Vne=cn({opSnippet:Wne,packedOpSnippet:Bne}),Une={kernelName:hu,backendName:"webgl",kernelFunc:Vne},Gne=class{constructor(e,t,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[e,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3920,11 +3920,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,x9=Ye({opSnippet:b9}),v9={kernelNam // If no other event happened, last event happened. setOutput(float(${t-1})); } - `}},Wne=` + `}},Hne=` if (a == b) { return 1.0; }; -return a / b;`,Bne=` +return a / b;`,jne=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3942,9 +3942,9 @@ return a / b;`,Bne=` } return result; -`,FE=cn({opSnippet:Wne,packedOpSnippet:Bne,checkOutOfBounds:!0}),Vne={kernelName:Ci,backendName:"webgl",kernelFunc:FE},FI="return a - b;",DE=cn({opSnippet:FI,packedOpSnippet:FI,supportsComplex:!0,cpuKernelImpl:z7}),Une={kernelName:uo,backendName:"webgl",kernelFunc:DE};function RE(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=AE({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=de({inputs:{x:o},backend:n,attrs:{shape:l}}),p=DE({inputs:{a:r,b:u},backend:n}),d=_E({inputs:{x:p},backend:n}),c=Zf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=de({inputs:{x:c},backend:n,attrs:{shape:l}}),m=FE({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Gne={kernelName:oo,backendName:"webgl",kernelFunc:RE};function Hne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:RE({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new zne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var jne={kernelName:Fm,backendName:"webgl",kernelFunc:Hne},qne=Ma+` +`,M_=cn({opSnippet:Hne,packedOpSnippet:jne,checkOutOfBounds:!0}),qne={kernelName:$i,backendName:"webgl",kernelFunc:M_},MI="return a - b;",P_=cn({opSnippet:MI,packedOpSnippet:MI,supportsComplex:!0,cpuKernelImpl:G7}),Kne={kernelName:go,backendName:"webgl",kernelFunc:P_};function O_(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{dim:s}=a,i=v.parseAxisParam([s],r.shape),o=R_({inputs:{x:r},backend:n,attrs:{reductionIndices:i,keepDims:!1}}),l=N.expandShapeToKeepDim(o.shape,i),u=he({inputs:{x:o},backend:n,attrs:{shape:l}}),p=P_({inputs:{a:r,b:u},backend:n}),d=$_({inputs:{x:p},backend:n}),c=Jf({inputs:{x:d},backend:n,attrs:{axis:i,keepDims:!1}}),h=he({inputs:{x:c},backend:n,attrs:{shape:l}}),m=M_({inputs:{a:d,b:h},backend:n});return n.disposeIntermediateTensorInfo(o),n.disposeIntermediateTensorInfo(u),n.disposeIntermediateTensorInfo(p),n.disposeIntermediateTensorInfo(d),n.disposeIntermediateTensorInfo(c),n.disposeIntermediateTensorInfo(h),m}var Xne={kernelName:mo,backendName:"webgl",kernelFunc:O_};function Yne(e){let{inputs:t,backend:n,attrs:a}=e,{logits:r}=t,{numSamples:s,seed:i,normalized:o}=a,l=o?r:O_({inputs:{logits:r},backend:n,attrs:{dim:r.shape.length-1}}),u=l.shape[0],p=l.shape[1],d=new Gne(u,p,s),c=[[i]],h=n.runWebGLProgram(d,[l],"int32",c);return o||n.disposeIntermediateTensorInfo(l),h}var Zne={kernelName:Dm,backendName:"webgl",kernelFunc:Yne},Jne=Oa+` return -x; -`,Kne=` +`,Qne=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3954,14 +3954,14 @@ return a / b;`,Bne=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Xne(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=w7(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new qs(a.shape,Kne):r=new Cr(a.shape,qne),n.runWebGLProgram(r,[a],a.dtype)}var Yne={kernelName:du,backendName:"webgl",kernelFunc:Xne},Zne=hr.nonMaxSuppressionV3Impl;function Jne(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=Zne(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var Qne={kernelName:mu,backendName:"webgl",kernelFunc:Jne},eae=hr.nonMaxSuppressionV4Impl;function tae(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=eae(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var nae={kernelName:fu,backendName:"webgl",kernelFunc:tae},aae=hr.nonMaxSuppressionV5Impl;function rae(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=aae(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var sae={kernelName:gu,backendName:"webgl",kernelFunc:rae},iae=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` +`;function eae(e){let{inputs:t,backend:n}=e,{x:a}=t;if(n.shouldExecuteOnCPU([a])){let s=n.texData.get(a.dataId),[i,o]=N7(s.values,a.shape,a.dtype);return n.makeTensorInfo(o,a.dtype,i)}let r;return H().getBool("WEBGL_PACK_UNARY_OPERATIONS")?r=new ss(a.shape,Qne):r=new ir(a.shape,Jne),n.runWebGLProgram(r,[a],a.dtype)}var tae={kernelName:mu,backendName:"webgl",kernelFunc:eae},nae=fr.nonMaxSuppressionV3Impl;function aae(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),{selectedIndices:d}=nae(u,p,i,o,l);return n.makeTensorInfo([d.length],"int32",new Int32Array(d))}var rae={kernelName:gu,backendName:"webgl",kernelFunc:aae},sae=fr.nonMaxSuppressionV4Impl;function iae(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,padToMaxOutputSize:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),{selectedIndices:c,validOutputs:h}=sae(p,d,i,o,l,u);return[n.makeTensorInfo([c.length],"int32",new Int32Array(c)),n.makeTensorInfo([],"int32",new Int32Array([h]))]}var oae={kernelName:yu,backendName:"webgl",kernelFunc:iae},lae=fr.nonMaxSuppressionV5Impl;function uae(e){N.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:n,attrs:a}=e,{boxes:r,scores:s}=t,{maxOutputSize:i,iouThreshold:o,scoreThreshold:l,softNmsSigma:u}=a,p=n.readSync(r.dataId),d=n.readSync(s.dataId),c=i,h=o,m=l,f=u,{selectedIndices:g,selectedScores:y}=lae(p,d,c,h,m,f);return[n.makeTensorInfo([g.length],"int32",new Int32Array(g)),n.makeTensorInfo([y.length],"float32",new Float32Array(y))]}var pae={kernelName:bu,backendName:"webgl",kernelFunc:uae},cae=class{constructor(e,t,n,a){this.variableNames=["indices"],this.outputShape=[e,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${a}), float(${n}), float(index == coords.y))); } - `}},oae=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new iae(u,i,o,l),d=de({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=de({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},lae={kernelName:Hi,backendName:"webgl",kernelFunc:oae};function rm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=pd({inputs:{input:a},backend:n}),s=rm({inputs:{x:r},backend:n}),i=Jf({inputs:{input:a},backend:n}),o=rm({inputs:{x:i},backend:n}),l=_s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return cd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var uae={kernelName:Mu,backendName:"webgl",kernelFunc:rm};function ME(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=pd({inputs:{input:a},backend:n}),s=ME({inputs:{x:r},backend:n}),i=Jf({inputs:{input:a},backend:n}),o=rm({inputs:{x:i},backend:n}),l=_s({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return cd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var pae={kernelName:yu,backendName:"webgl",kernelFunc:ME};function cae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return vx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=vx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=vE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var dae={kernelName:bu,backendName:"webgl",kernelFunc:cae},hae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` + `}},dae=e=>{let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=v.sizeFromShape(r.shape),p=new cae(u,i,o,l),d=he({inputs:{x:r},backend:n,attrs:{shape:[u]}}),c=n.runWebGLProgram(p,[d],s);n.disposeIntermediateTensorInfo(d);let h=[...r.shape,i],m=he({inputs:{x:c},backend:n,attrs:{shape:h}});return n.disposeIntermediateTensorInfo(c),m},hae={kernelName:Yi,backendName:"webgl",kernelFunc:dae};function sm(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="complex64"){let r=cd({inputs:{input:a},backend:n}),s=sm({inputs:{x:r},backend:n}),i=Qf({inputs:{input:a},backend:n}),o=sm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return dd({attrs:{shape:a.shape,dtype:a.dtype,value:a.dtype==="string"?"":0},backend:n})}var mae={kernelName:Pu,backendName:"webgl",kernelFunc:sm};function L_(e){let{inputs:t,backend:n}=e,{x:a}=t;if(a.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(a.dtype==="complex64"){let r=cd({inputs:{input:a},backend:n}),s=L_({inputs:{x:r},backend:n}),i=Qf({inputs:{input:a},backend:n}),o=sm({inputs:{x:i},backend:n}),l=Fs({inputs:{real:s,imag:o},backend:n});return n.disposeIntermediateTensorInfo(r),n.disposeIntermediateTensorInfo(s),n.disposeIntermediateTensorInfo(i),n.disposeIntermediateTensorInfo(o),l}else return dd({attrs:{shape:a.shape,dtype:a.dtype,value:1},backend:n})}var fae={kernelName:xu,backendName:"webgl",kernelFunc:L_};function gae(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Sx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Sx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=I_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeIntermediateTensorInfo(p)),u}var yae={kernelName:vu,backendName:"webgl",kernelFunc:gae},bae=class{constructor(e,t,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((l,u)=>l[0]+e[u]+l[1]);let a=e.length,r=gt(a),s=t.map(l=>l[0]).join(","),i=t.map((l,u)=>l[0]+e[u]).join(","),o=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,a);if(a===1){this.userCode=` int start = ${s}; int end = ${i}; @@ -3986,7 +3986,7 @@ return a / b;`,Bne=` setOutput(getX(${o})); } } - `}},mae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=kn("rc",a),l=kn("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; + `}},xae=class{constructor(e,t,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=t.map((m,f)=>m[0]+e[f]+m[1]);let a=e.length,r=gt(a),s=t.map(m=>m[0]).join(","),i=t.map((m,f)=>m[0]+e[f]).join(","),o=In("rc",a),l=In("source",a),u=`${o[a-1]} < ${this.outputShape[a-1]}`,p=a===1?"source":`vec2(${l.slice(-2).join()})`,d=[`${r} rc = outputLoc;`,`${o[a-1]} += 1; if(${u}) { `,a===1?"":`} rc = outputLoc; @@ -4010,7 +4010,7 @@ return a / b;`,Bne=` ${h} setOutput(result); } - `}},PE=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return cd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new mae(r.shape,s,i):new hae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},fae={kernelName:ji,backendName:"webgl",kernelFunc:PE},gae=` + `}},z_=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{paddings:s,constantValue:i}=a;if(v.sizeFromShape(r.shape)===0){let u=s.map((p,d)=>p[0]+r.shape[d]+p[1]);return dd({backend:n,attrs:{shape:u,value:i,dtype:r.dtype}})}let o=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new xae(r.shape,s,i):new bae(r.shape,s,i),l=[[i]];return n.runWebGLProgram(o,[r],r.dtype,l)},vae={kernelName:Zi,backendName:"webgl",kernelFunc:z_},wae=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4019,7 +4019,7 @@ return a / b;`,Bne=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,yae=` +`,kae=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4035,11 +4035,11 @@ return a / b;`,Bne=` bvec4 isNaN1 = lessThan(a, vec4(0.0)); bvec4 isNaN2 = lessThan(floor(b), b); bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); - `+ld+` + `+ud+` return result; -`,bae=cn({opSnippet:gae,packedOpSnippet:yae}),xae={kernelName:qi,backendName:"webgl",kernelFunc:bae};function vae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=I7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=de({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=Um(r.dtype),x=Io(y,b,"prod",n);h=de({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=de({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var wae={kernelName:Xi,backendName:"webgl",kernelFunc:vae};function kae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=S7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Iae={kernelName:Dm,backendName:"webgl",kernelFunc:kae};function Sae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=T7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Tae={kernelName:Rm,backendName:"webgl",kernelFunc:Sae};function Nae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=N7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Cae={kernelName:Mm,backendName:"webgl",kernelFunc:Nae},OE=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=C7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},_ae={kernelName:xc,backendName:"webgl",kernelFunc:OE},Eae="return 1.0 / x;",$ae=Ye({opSnippet:Eae}),Aae={kernelName:xu,backendName:"webgl",kernelFunc:$ae},Fae=Ma+` +`,Iae=cn({opSnippet:wae,packedOpSnippet:kae}),Sae={kernelName:Ji,backendName:"webgl",kernelFunc:Iae};function Tae(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,keepDims:i}=a,o=r.shape.length,l=[],u=v.parseAxisParam(s,r.shape),p=u,d=N.getAxesPermutation(p,o),c=r;d!=null&&(c=Sn({inputs:{x:r},backend:n,attrs:{perm:d}}),p=N.getInnerMostAxes(p.length,o),l.push(c)),N.assertAxesAreInnerMostDims("prod",p,o);let h;if(n.shouldExecuteOnCPU([c])){let m=n.texData.get(c.dataId).values,{outVals:f,outShape:g,outDtype:y}=E7(c.shape,c.dtype,m,p);h=n.makeTensorInfo(g,y,f)}else{let[m,f]=N.computeOutAndReduceShapes(c.shape,p),g=v.sizeFromShape(f),y=he({inputs:{x:c},backend:n,attrs:{shape:[-1,g]}}),b=Gm(r.dtype),x=Eo(y,b,"prod",n);h=he({inputs:{x},backend:n,attrs:{shape:m}}),l.push(y),l.push(x)}if(i){l.push(h);let m=N.expandShapeToKeepDim(h.shape,u);h=he({inputs:{x:h},backend:n,attrs:{shape:m}})}return l.forEach(m=>n.disposeIntermediateTensorInfo(m)),h}var Nae={kernelName:eo,backendName:"webgl",kernelFunc:Tae};function Cae(e){let{inputs:t,backend:n,attrs:a}=e,{paramsNestedSplits:r,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:o}=a,l=r.map(y=>n.readSync(y.dataId)),u=r.map(y=>y.shape),p=n.readSync(s.dataId),d=n.readSync(i.dataId),[c,h,m]=_7(l,u,p,s.shape,s.dtype,d,i.shape,o),f=c.map(y=>n.makeTensorInfo([y.length],"int32",y)),g=n.makeTensorInfo(m,s.dtype,h);return f.concat([g])}var Eae={kernelName:Rm,backendName:"webgl",kernelFunc:Cae};function _ae(e){let{inputs:t,backend:n}=e,{starts:a,limits:r,deltas:s}=t,i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=A7(i,a.shape,a.dtype,o,r.shape,l,s.shape),d=n.makeTensorInfo([u.length],"int32",u),c=n.makeTensorInfo([p.length],a.dtype,p);return[d,c]}var Aae={kernelName:Mm,backendName:"webgl",kernelFunc:_ae};function $ae(e){let{inputs:t,backend:n,attrs:a}=e,{shape:r,values:s,defaultValue:i,rowPartitionTensors:o}=t,{rowPartitionTypes:l}=a,u=n.readSync(r.dataId),p=n.readSync(s.dataId),d=n.readSync(i.dataId),c=o.map(g=>n.readSync(g.dataId)),h=o.map(g=>g.shape),[m,f]=$7(u,r.shape,p,s.shape,s.dtype,d,i.shape,c,h,l);return n.makeTensorInfo(m,s.dtype,f)}var Fae={kernelName:Pm,backendName:"webgl",kernelFunc:$ae},W_=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=F7(a,r,s,i);return t.makeTensorInfo([o.length],i,o)},Dae={kernelName:vc,backendName:"webgl",kernelFunc:W_},Rae="return 1.0 / x;",Mae=Ye({opSnippet:Rae}),Pae={kernelName:to,backendName:"webgl",kernelFunc:Mae},Oae=Oa+` return (x < 0.0) ? 0.0 : x; -`,Dae=` +`,Lae=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4049,9 +4049,9 @@ return a / b;`,Bne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Rae=Ye({opSnippet:Fae,packedOpSnippet:Dae}),Mae={kernelName:Yi,backendName:"webgl",kernelFunc:Rae},Pae=Ma+` +`,zae=Ye({opSnippet:Oae,packedOpSnippet:Lae}),Wae={kernelName:no,backendName:"webgl",kernelFunc:zae},Bae=Oa+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Oae=` +`,Vae=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4061,7 +4061,7 @@ return a / b;`,Bne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Lae=Ye({opSnippet:Pae,packedOpSnippet:Oae}),zae={kernelName:Qi,backendName:"webgl",kernelFunc:Lae},Wae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,Uae=Ye({opSnippet:Bae,packedOpSnippet:Vae}),Gae={kernelName:so,backendName:"webgl",kernelFunc:Uae},Hae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":d="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4094,7 +4094,7 @@ return a / b;`,Bne=` setOutput(newValue); } - `}},Bae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},jae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d;r?d="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":d="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4171,7 +4171,7 @@ return a / b;`,Bne=` setOutput(newValue); } - `}};function Vae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Bae(r.shape,l,u,s,i):new Wae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Uae={kernelName:Ji,backendName:"webgl",kernelFunc:Vae},Gae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function qae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new jae(r.shape,l,u,s,i):new Hae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],"float32")}var Kae={kernelName:ro,backendName:"webgl",kernelFunc:qae},Xae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4252,7 +4252,7 @@ return a / b;`,Bne=` setOutput(accumulator); } - `}};function Hae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Gae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var jae={kernelName:Lm,backendName:"webgl",kernelFunc:Hae},qae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function Yae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Xae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Zae={kernelName:zm,backendName:"webgl",kernelFunc:Yae},Jae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":c="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${u[0]/p[0]}, ${u[1]/p[1]}); @@ -4274,7 +4274,7 @@ return a / b;`,Bne=` setOutput(newValue); } - `}},Kae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}},Qae=class{constructor(e,t,n,a,r){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[s,i,o,l]=e;this.outputShape=[s,t,n,l];let u=[a&&t>1?i-1:i,a&&n>1?o-1:o],p=[a&&t>1?t-1:t,a&&n>1?n-1:n],d=a?"0.5":"0.0",c;r?c="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":c="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${u[0]/p[0]}, ${u[1]/p[1]}, @@ -4315,7 +4315,7 @@ return a / b;`,Bne=` setOutput(newValue); } - `}};function Xae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Kae(r.shape,l,u,s,i):new qae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var Yae={kernelName:Zi,backendName:"webgl",kernelFunc:Xae},Zae=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` + `}};function ere(e){let{inputs:t,backend:n,attrs:a}=e,{images:r}=t,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,p=H().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new Qae(r.shape,l,u,s,i):new Jae(r.shape,l,u,s,i);return n.runWebGLProgram(p,[r],r.dtype)}var tre={kernelName:ao,backendName:"webgl",kernelFunc:ere},nre=class{constructor(e,t,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=t;let[,a,r]=t,[,s,i]=e,o=[n&&s>1?a-1:a,n&&i>1?r-1:r],l=[n&&s>1?s-1:s,n&&i>1?i-1:i],u=o[0]/l[0],p=o[1]/l[1],d=1/u,c=1/p,h=Math.ceil(d)*2+2,m=Math.ceil(c)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4385,7 +4385,7 @@ return a / b;`,Bne=` setOutput(accumulator); } - `}};function Jae(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new Zae(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var Qae={kernelName:Om,backendName:"webgl",kernelFunc:Jae},ere=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` + `}};function are(e){let{inputs:t,backend:n,attrs:a}=e,{images:r,dy:s}=t,{alignCorners:i}=a,o=new nre(s.shape,r.shape,i);return n.runWebGLProgram(o,[s],s.dtype)}var rre={kernelName:Lm,backendName:"webgl",kernelFunc:are},sre=class{constructor(e,t){this.variableNames=["x"];let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=e,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${e[0]} - coord - 1)); @@ -4395,7 +4395,7 @@ return a / b;`,Bne=` ${s} coords = getOutputCoords(); setOutput(getX(${r})); } - `}},tre=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=kn("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` + `}},ire=class{constructor(e,t){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=e.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=e;let a=In("rc",n),r=`${a[n-1]} + 1 < ${this.outputShape[n-1]}`,s=`${a[n-2]} + 1 < ${this.outputShape[n-2]}`,i=gt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4423,7 +4423,7 @@ return a / b;`,Bne=` } setOutput(result); } - `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((y,b)=>c(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function nre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return aa({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new tre(r.shape,o):new ere(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var are={kernelName:eo,backendName:"webgl",kernelFunc:nre},rre=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` + `;function o(h){return d(h)}function l(h){return h[n-1]="("+h[n-1]+" + 1)",d(h)}function u(h){return h[n-2]="("+h[n-2]+" + 1)",d(h)}function p(h){return h[n-1]="("+h[n-1]+" + 1)",h[n-2]="("+h[n-2]+" + 1)",d(h)}function d(h){let m=e.map((y,b)=>c(b,h)),f=m.join(","),g=m.slice(-2).join(",");return`getChannel(getX(${f}), vec2(${g}))`}function c(h,m){return t.indexOf(h)!==-1&&e[h]!==1?`${e[h]} - ${m[h]} - 1`:`${m[h]}`}}};function ore(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=r.shape.length,o=v.parseAxisParam(s,r.shape);if(i===0)return na({inputs:{x:r},backend:n});let l=H().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new ire(r.shape,o):new sre(r.shape,o);return n.runWebGLProgram(l,[r],r.dtype)}var lre={kernelName:io,backendName:"webgl",kernelFunc:ore},ure=class{constructor(e,t){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=e[1],a=e[2];this.outputShape=e;let r="";typeof t=="number"?r=`float outputValue = ${t.toFixed(2)};`:r=` vec3 fill = vec3(${t.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4442,7 +4442,7 @@ return a / b;`,Bne=` } setOutput(outputValue); } - `}},sre={kernelName:Pu,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new rre(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},ire=` + `}},pre={kernelName:Ou,backendName:"webgl",kernelFunc:({inputs:e,attrs:t,backend:n})=>{let{image:a}=e,{radians:r,fillValue:s,center:i}=t,o=n,l=new ure(a.shape,s),[u,p]=N.getImageCenter(i,a.shape[1],a.shape[2]),d=[[u,p,Math.sin(r),Math.cos(r)]];return o.runWebGLProgram(l,[a],a.dtype,d)}},cre=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4457,7 +4457,7 @@ return a / b;`,Bne=` return base + 1.0; } } -`,ore=Ye({opSnippet:ire}),lre={kernelName:to,backendName:"webgl",kernelFunc:ore},ure="return inversesqrt(x);",pre=Ye({opSnippet:ure,cpuKernelImpl:_7}),cre={kernelName:no,backendName:"webgl",kernelFunc:pre},LE=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` +`,dre=Ye({opSnippet:cre}),hre={kernelName:oo,backendName:"webgl",kernelFunc:dre},mre="return inversesqrt(x);",fre=Ye({opSnippet:mre,cpuKernelImpl:D7}),gre={kernelName:lo,backendName:"webgl",kernelFunc:fre},B_=class{constructor(e,t,n,a,r,s,i=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=s;let o=gt(r.length),l=gt(s.length),u="";n===1?u="i":n===2&&(u="i, j");let p=`getIndices(${u})`,d="";a===1?d="i":a===2&&(d="i, coords[1]");let c=`getUpdates(${d})`,h=t>1?"strides[j]":"strides";this.userCode=` ${o} strides = ${o}(${r}); void main() { @@ -4477,7 +4477,7 @@ return a / b;`,Bne=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function dre(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=de({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=de({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new LE(l,o,h.shape.length,m.shape.length,p,c),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=de({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var hre={kernelName:wu,backendName:"webgl",kernelFunc:dre},mre=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` + `}};function yre(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r,updates:s}=t,{shape:i}=a,{sliceRank:o,numUpdates:l,sliceSize:u,strides:p,outputSize:d}=N.calculateShapes(s,r,i),c=[d/u,u];if(d===0)return n.makeTensorInfo(i,r.dtype);let h=he({inputs:{x:r},backend:n,attrs:{shape:[l,o]}}),m=he({inputs:{x:s},backend:n,attrs:{shape:[l,u]}}),f=n.makeTensorInfo([],"float32",new Float32Array([0])),g=new B_(l,o,h.shape.length,m.shape.length,p,c),y=n.runWebGLProgram(g,[m,h,f],m.dtype),b=he({inputs:{x:y},backend:n,attrs:{shape:i}});return n.disposeIntermediateTensorInfo(h),n.disposeIntermediateTensorInfo(m),n.disposeIntermediateTensorInfo(y),n.disposeIntermediateTensorInfo(f),b}var bre={kernelName:ku,backendName:"webgl",kernelFunc:yre},xre=class{constructor(e,t,n,a){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[e,n];let r="while (left < right) {",s=`for (int i = 0; i < ${Math.ceil(Math.log2(t+1))}; ++i) { if (left >= right) break;`,i=H().getNumber("WEBGL_VERSION")===2?r:s,o=a==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4502,7 +4502,7 @@ return a / b;`,Bne=` setOutput(float(findBound(batch, value))); } - `}};function fre(e){let{inputs:t,backend:n,attrs:a}=e,{sortedSequence:r,values:s}=t,{side:i}=a,o=new mre(r.shape[0],r.shape[1],s.shape[1],i),l=[[r.shape[1]]];return n.runWebGLProgram(o,[r,s],"int32",l)}var gre={kernelName:zm,backendName:"webgl",kernelFunc:fre},yre=class{constructor(e,t,n){this.variableNames=["c","a","b"],this.outputShape=t;let a,r;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)r="resRC",a="resRC";else{let i=["resRC.x","resRC.y","resRC.z","resRC.w"],o=[],l=[];for(let u=0;u= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,wre=Ye({opSnippet:vre}),kre={kernelName:Iu,backendName:"webgl",kernelFunc:wre},Ire=tp+` +`,Nre=Ye({opSnippet:Tre}),Cre={kernelName:Su,backendName:"webgl",kernelFunc:Nre},Ere=np+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Sre=` +`,_re=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4530,15 +4530,15 @@ return a / b;`,Bne=` result.a = isNaN.a ? x.a : result.a; return result; -`,Tre=Ye({opSnippet:Ire,packedOpSnippet:Sre,cpuKernelImpl:$7}),Nre={kernelName:ro,backendName:"webgl",kernelFunc:Tre},Cre=` +`,Are=Ye({opSnippet:Ere,packedOpSnippet:_re,cpuKernelImpl:M7}),$re={kernelName:po,backendName:"webgl",kernelFunc:Are},Fre=` if (isnan(x)) { return 0.0; } return sign(x); -`,_re=Ye({opSnippet:Cre}),Ere={kernelName:Nu,backendName:"webgl",kernelFunc:_re},$re=tp+` +`,Dre=Ye({opSnippet:Fre}),Rre={kernelName:Cu,backendName:"webgl",kernelFunc:Dre},Mre=np+` return sin(x); -`,Are=Ye({opSnippet:$re}),Fre={kernelName:ao,backendName:"webgl",kernelFunc:Are},Dre=` +`,Pre=Ye({opSnippet:Mre}),Ore={kernelName:uo,backendName:"webgl",kernelFunc:Pre},Lre=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Rre=Ye({opSnippet:Dre}),Mre={kernelName:Tu,backendName:"webgl",kernelFunc:Rre},Pre=` +`,zre=Ye({opSnippet:Lre}),Wre={kernelName:Nu,backendName:"webgl",kernelFunc:zre},Bre=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4558,17 +4558,17 @@ return a / b;`,Bne=` result = log(exp_x + 1.0); } return result; -`,Ore=Ye({opSnippet:Pre}),Lre={kernelName:Cu,backendName:"webgl",kernelFunc:Ore},zre=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Wre={kernelName:_u,backendName:"webgl",kernelFunc:zre};function Bre(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,Vre=Ye({opSnippet:Bre}),Ure={kernelName:Eu,backendName:"webgl",kernelFunc:Vre},Gre=e=>{let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a;v.assert(r.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let o=s.reduce((y,b)=>y*b),l=[[0,0]];l.push(...i);for(let y=1+s.length;yn.disposeIntermediateTensorInfo(y)),g},Hre={kernelName:_u,backendName:"webgl",kernelFunc:Gre};function jre(e){let{inputs:t,backend:n}=e,{indices:a,values:r,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(a.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${a.shape}`);if(r.shape.length!==1)throw new Error(`Values must be a vector, saw: ${r.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=F7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var Vre={kernelName:vc,backendName:"webgl",kernelFunc:Bre};function Ure(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=D7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Gre={kernelName:$u,backendName:"webgl",kernelFunc:Ure};function Hre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let o=n.readSync(a.dataId),l=n.readSync(r.dataId),u=n.readSync(s.dataId),p=n.readSync(i.dataId)[0],[d,c,h,m,f]=O7(o,a.shape,a.dtype,l,r.dtype,u,p);return[n.makeTensorInfo(c,a.dtype,d),n.makeTensorInfo([c[0]],r.dtype,h),n.makeTensorInfo([m.length],"bool",new Uint8Array(m.map(g=>Number(g)))),n.makeTensorInfo([f.length],a.dtype,new Int32Array(f))]}var qre={kernelName:wc,backendName:"webgl",kernelFunc:jre};function Kre(e){let{inputs:t,backend:n}=e,{inputIndices:a,inputShape:r,newShape:s}=t;if(a.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${a.shape}`);if(r.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(n.readSync(r.dataId)),o=n.readSync(a.dataId),l=Array.from(n.readSync(s.dataId)),[u,p,d]=L7(o,a.shape,a.dtype,i,l);return[n.makeTensorInfo(p,a.dtype,u),n.makeTensorInfo([d.length],s.dtype,new Int32Array(d))]}var Xre={kernelName:$u,backendName:"webgl",kernelFunc:Kre};function Yre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=iE(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var jre={kernelName:wc,backendName:"webgl",kernelFunc:Hre};function qre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=u_(i,a.shape,a.dtype,o,l,!0);return n.makeTensorInfo(p,a.dtype,u)}var Zre={kernelName:kc,backendName:"webgl",kernelFunc:Yre};function Jre(e){let{inputs:t,backend:n}=e,{data:a,indices:r,segmentIds:s}=t;if(a.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(r.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${r.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=iE(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Kre={kernelName:kc,backendName:"webgl",kernelFunc:qre};function Xre(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let y=n.bufferSync(r),b=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=E7(y,b,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new LE(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=de({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var Yre={kernelName:Wm,backendName:"webgl",kernelFunc:Xre};function Zre(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=np({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var Jre={kernelName:Eu,backendName:"webgl",kernelFunc:Zre},DI="return sqrt(x);",Qre=Ye({opSnippet:DI,packedOpSnippet:DI,cpuKernelImpl:R7}),ese={kernelName:so,backendName:"webgl",kernelFunc:Qre},tse="return x * x;",nse=Ye({opSnippet:tse}),ase={kernelName:Ic,backendName:"webgl",kernelFunc:nse},RI="return (a - b) * (a - b);",rse=cn({opSnippet:RI,packedOpSnippet:RI}),sse={kernelName:lo,backendName:"webgl",kernelFunc:rse};function ise({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Ma+` + ${s.shape}`);let i=n.readSync(a.dataId),o=n.readSync(r.dataId),l=n.readSync(s.dataId),[u,p]=u_(i,a.shape,a.dtype,o,l);return n.makeTensorInfo(p,a.dtype,u)}var Qre={kernelName:Ic,backendName:"webgl",kernelFunc:Jre};function ese(e){let{inputs:t,backend:n,attrs:a}=e,{sparseIndices:r,sparseValues:s,defaultValue:i}=t,{outputShape:o}=a,{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=N.calculateShapes(s,r,o),h=!1;if(s.dtype==="string"){let y=n.bufferSync(r),b=n.bufferSync(s),x=v.decodeString(n.readSync(i.dataId)[0]),w=R7(y,b,o,c,p,u,l,d,x,h);return n.makeTensorInfo(o,w.dtype,w.values)}let m=new B_(u,l,r.shape.length,s.shape.length,d,[c,1],h),f=n.runWebGLProgram(m,[s,r,i],s.dtype),g=he({inputs:{x:f},backend:n,attrs:{shape:o}});return n.disposeIntermediateTensorInfo(f),g}var tse={kernelName:Bm,backendName:"webgl",kernelFunc:ese};function nse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=a,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=r.shape.length,p=new Array(u).fill(0),d=r.shape.slice();return l.map(c=>{let h=[...d];h[o]=c;let m=ap({inputs:{x:r},backend:n,attrs:{begin:p,size:h}});return p[o]+=c,m})}var ase={kernelName:Au,backendName:"webgl",kernelFunc:nse},PI="return sqrt(x);",rse=Ye({opSnippet:PI,packedOpSnippet:PI,cpuKernelImpl:z7}),sse={kernelName:co,backendName:"webgl",kernelFunc:rse},ise="return x * x;",ose=Ye({opSnippet:ise}),lse={kernelName:Sc,backendName:"webgl",kernelFunc:ose},OI="return (a - b) * (a - b);",use=cn({opSnippet:OI,packedOpSnippet:OI}),pse={kernelName:fo,backendName:"webgl",kernelFunc:use};function cse({inputs:e,attrs:t,backend:n}){let{x:a}=e,r=Oa+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new Cr(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var ose={kernelName:xs,backendName:"webgl",kernelFunc:ise},lse=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` + `,s=new ir(a.shape,r);return n.runWebGLProgram(s,[a],a.dtype)}var dse={kernelName:Is,backendName:"webgl",kernelFunc:cse},hse=class{constructor(e,t,n){this.variableNames=["x"],this.outputShape=n;let a=n.length,r=gt(n.length),s=gt(n.length),i="";if(a===1)i="coords * strides + begin";else{let o=0;i=n.map((l,u)=>(o++,n.length===1?`coords * strides[${u}] + begin[${u}]`:`coords[${o-1}] * strides[${u}] + begin[${u}]`)).join(",")}this.userCode=` ${r} begin = ${r}(${e}); ${r} strides = ${r}(${t}); @@ -4576,15 +4576,15 @@ return a / b;`,Bne=` ${s} coords = getOutputCoords(); setOutput(getX(${i})); } - `}};function use(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=de({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=jt.computeOutShape(b,x,w),E=np({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=de({inputs:{x:E},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(E)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),E=Oe(r.shape,r.dtype,C),$=M7(h,E,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new lse(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=de({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var pse={kernelName:Au,backendName:"webgl",kernelFunc:use};function cse(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=P7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var dse={kernelName:Sc,backendName:"webgl",kernelFunc:cse};function hse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=O7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var mse={kernelName:Tc,backendName:"webgl",kernelFunc:hse};function fse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=L7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var gse={kernelName:Nc,backendName:"webgl",kernelFunc:fse},yse="return tan(x);",bse=Ye({opSnippet:yse}),xse={kernelName:po,backendName:"webgl",kernelFunc:bse},vse=` + `}};function mse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=he({inputs:{x:r},backend:n,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let C=Kt.computeOutShape(b,x,w),_=ap({inputs:{x:r},backend:n,attrs:{begin:b,size:C}});I=he({inputs:{x:_},backend:n,attrs:{shape:m}}),n.disposeIntermediateTensorInfo(_)}else if(n.shouldExecuteOnCPU([r])){let C=n.readSync(r.dataId),_=Oe(r.shape,r.dtype,C),$=W7(h,_,w,b);I=n.makeTensorInfo(m,r.dtype,$.values)}else{let C=new hse(b,w,h);I=n.runWebGLProgram(C,[r],r.dtype)}let T=he({inputs:{x:I},backend:n,attrs:{shape:m}});return n.disposeIntermediateTensorInfo(I),T}var fse={kernelName:Fu,backendName:"webgl",kernelFunc:mse};function gse(e){let{inputs:t,backend:n,attrs:a}=e,{separator:r,nGramWidths:s,leftPad:i,rightPad:o,padWidth:l,preserveShortSequences:u}=a,{data:p,dataSplits:d}=t,c=n.readSync(p.dataId),h=n.readSync(d.dataId),[m,f]=B7(c,h,r,s,i,o,l,u);return[n.makeTensorInfo([m.length],"string",m),n.makeTensorInfo(d.shape,"int32",f)]}var yse={kernelName:Tc,backendName:"webgl",kernelFunc:gse};function bse(e){let{inputs:t,backend:n,attrs:a}=e,{skipEmpty:r}=a,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let o=n.readSync(s.dataId),l=n.readSync(i.dataId)[0],[u,p,d]=V7(o,l,r),c=p.length;return[n.makeTensorInfo([c,2],"int32",u),n.makeTensorInfo([c],"string",p),n.makeTensorInfo([2],"int32",new Int32Array(d))]}var xse={kernelName:Nc,backendName:"webgl",kernelFunc:bse};function vse(e){let{inputs:t,backend:n,attrs:a}=e,{numBuckets:r}=a,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(r<=0)throw new Error("Number of buckets must be at least 1");let i=n.readSync(s.dataId),o=U7(i,r);return n.makeTensorInfo(s.shape,"int32",o)}var wse={kernelName:Cc,backendName:"webgl",kernelFunc:vse},kse="return tan(x);",Ise=Ye({opSnippet:kse}),Sse={kernelName:yo,backendName:"webgl",kernelFunc:Ise},Tse=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,wse=Ye({opSnippet:vse}),kse={kernelName:co,backendName:"webgl",kernelFunc:wse},Ise=class{constructor(e,t){this.variableNames=["A"];let n=new Array(e.length);for(let s=0;s5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Oe(r.shape,r.dtype,l),p=W7(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Ise(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Tse={kernelName:bs,backendName:"webgl",kernelFunc:zE},Nse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` + `}};function _se(e){let t=e.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${e[0]})`;let n=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],a=[];for(let r=0;r5){let o=n.readSync(r.dataId),l=r.dtype==="string"?o.map(d=>v.decodeString(d)):o,u=Oe(r.shape,r.dtype,l),p=H7(u,s);return n.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new Ese(r.shape,s);return n.runWebGLProgram(i,[r],r.dtype)}var Ase={kernelName:ks,backendName:"webgl",kernelFunc:V_},$se=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=e,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4624,7 +4624,7 @@ return a / b;`,Bne=` setOutput(float(i1)); } } - `}},Cse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` + `}},Fse=class{constructor(e){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=e,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4658,7 +4658,7 @@ return a / b;`,Bne=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Ls(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function MI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=B7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,cd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=de({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Ls(n,h);let g=MI(s),y=MI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new Nse(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Ls(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new Cse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Ls(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=np({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Ls(n,I);let T=$E({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Ls(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=de({inputs:{x:b},attrs:{shape:C},backend:n}),Ls(n,I);let E=T;return T=de({inputs:{x:T},attrs:{shape:C},backend:n}),Ls(n,E),[T,b]}var Ese={kernelName:Fu,backendName:"webgl",kernelFunc:_se},$se=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` + `}};function Vs(e,t){t!==null&&e.disposeIntermediateTensorInfo(t)}function LI(e){let t=1;for(;tl){let $=n.readSync(r.dataId),[R,F]=j7($,u,r.dtype,s,i);return[n.makeTensorInfo(R.shape,R.dtype,R.values),n.makeTensorInfo(F.shape,F.dtype,F.values)]}if(s===0)return u[u.length-1]=0,[n.makeTensorInfo(u,r.dtype,[]),n.makeTensorInfo(u,"int32",[])];if(p===1)return[r,dd({attrs:{shape:u,dtype:"int32",value:0},backend:n})];let d=n.texData.get(r.dataId),c=d!==null&&d.isPacked,h=c?n.unpackTensor(r):r,m=v.sizeFromShape(u)/p,f=he({inputs:{x:h},attrs:{shape:[m,p]},backend:n});c&&Vs(n,h);let g=LI(s),y=LI(p),b=null,x=()=>b===null?[f,f]:[f,b],w=($,R,F)=>{let S=x(),M=new $se(F),B=[[p],[b===null?1:0],[Number.NEGATIVE_INFINITY],[$],[R]],U=b;b=n.runWebGLProgram(M,S,"int32",B),Vs(n,U)};for(let $=1;$=1;F/=2)w(R,F,[m,y])}for(let $=y;$>g;$/=2){let R=x(),F=new Fse([m,$/2]),S=[[p],[b===null?1:0],[g]],M=b;b=n.runWebGLProgram(F,R,"int32",S),Vs(n,M);let B=g/2,U=B*2;for(let G=B;G>=1;G/=2)w(U,G,b.shape)}let I=b;b=ap({inputs:{x:b},backend:n,attrs:{begin:0,size:[m,s]}}),Vs(n,I);let T=D_({inputs:{x:f,indices:b},backend:n,attrs:{axis:1,batchDims:1}});Vs(n,f);let C=u.slice(0,-1);C.push(s),I=b,b=he({inputs:{x:b},attrs:{shape:C},backend:n}),Vs(n,I);let _=T;return T=he({inputs:{x:T},attrs:{shape:C},backend:n}),Vs(n,_),[T,b]}var Rse={kernelName:Du,backendName:"webgl",kernelFunc:Dse},Mse=class{constructor(e,t,n,a,r,s){this.variableNames=["Image","Transforms"],this.outputShape=s;let i=n==="nearest"?1:2,o;switch(a){case"constant":o=1;break;case"reflect":o=2;break;case"wrap":o=3;break;case"nearest":o=4;break;default:o=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${o} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,Bne=` } setOutput(outputValue); } - `}};function Ase(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new $se(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Fse={kernelName:Du,backendName:"webgl",kernelFunc:Ase};function Dse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Yu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=V7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var Rse={kernelName:Bm,backendName:"webgl",kernelFunc:Dse};function Mse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Pse={kernelName:Ru,backendName:"webgl",kernelFunc:Mse},Ose=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` + `}};function Pse(e){let{inputs:t,backend:n,attrs:a}=e,{image:r,transforms:s}=t,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Mse(d,c,i,o,l,g);return n.runWebGLProgram(y,[r,s],"float32")}var Ose={kernelName:Ru,backendName:"webgl",kernelFunc:Pse};function Lse(e){let{inputs:t,attrs:n,backend:a}=e,{axis:r}=n,{x:s}=t;Zu(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=a.readSync(s.dataId),{outputValues:o,outputShape:l,indices:u}=q7(i,r,s.shape,s.dtype);return[a.makeTensorInfo(l,s.dtype,o),a.makeTensorInfo([u.length],"int32",u)]}var zse={kernelName:Vm,backendName:"webgl",kernelFunc:Lse};function Wse(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r,o=i.shape.length,l=r.shape[s],u=new Array(o-1),p=0;for(let f=0;fn.disposeIntermediateTensorInfo(f)),m}var Bse={kernelName:Mu,backendName:"webgl",kernelFunc:Wse},Vse=class{constructor(e,t){this.variableNames=["x","segmentIds"];let n=e.windowSize,a=e.batchSize,r=e.inSize,s=e.numSegments,i=s*Math.ceil(r/n);this.outputShape=[a,i];let o="0.0",l="sumValue",u=Math.floor(n/4)*4,p=n%4,d=` sumValue += dot(values, segFilter); `,c="";r%n>0&&(c=` if (inIdx < 0 || inIdx >= ${r}) { @@ -4876,6 +4876,6 @@ return a / b;`,Bne=` } setOutput(${l}); } - `}};function Lse(e){let{inputs:t,backend:n,attrs:a}=e,{x:r,segmentIds:s}=t,{numSegments:i}=a,o=r.shape.length,l=[],u=0,p=N.getAxesPermutation([u],o),d=r;p!=null&&(d=Sn({inputs:{x:r},backend:n,attrs:{perm:p}}),l.push(d),u=N.getInnerMostAxes(1,o)[0]);let c=N.segment_util.computeOutShape(d.shape,u,i),h=v.sizeFromShape([d.shape[u]]),m=de({inputs:{x:d},backend:n,attrs:{shape:[-1,h]}});l.push(m);let f=Um(r.dtype),g=(w,I,T,C,E)=>{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,E),S={windowSize:F,inSize:R,batchSize:$,numSegments:E},M=new Ose(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===E)return B;let U=OE({backend:n,attrs:{start:0,stop:E,step:1,dtype:"float32"}}),G=zE({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,E)},y=g(m,"unsortedSegmentSum",s,f,i),b=de({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var zse={kernelName:Cc,backendName:"webgl",kernelFunc:Lse},Wse=[MJ,OJ,WJ,UJ,HJ,KJ,YJ,JJ,n9,r9,o9,p9,h9,y9,v9,k9,S9,_9,$9,F9,P9,U9,H9,q9,Q9,tQ,sQ,bJ,lQ,hQ,yQ,IQ,TQ,CQ,EQ,AQ,RQ,OQ,WQ,VQ,GQ,jQ,XQ,ZQ,tee,aee,iee,uee,cee,fee,xee,Iee,Nee,Eee,$ee,Fee,Ree,Pee,Lee,Wee,Gee,qee,Yee,Jee,tte,rte,lte,dte,yJ,mte,cQ,yte,vte,Ite,vJ,Cte,Ate,Dte,Ote,Wte,Gte,qte,Zte,tne,rne,ine,pne,dne,mne,bne,vne,kne,Sne,Nne,$ne,Rne,Lne,jne,IJ,Yne,Qne,nae,sae,X9,lae,pae,dae,fae,xae,kJ,wae,Iae,Tae,Cae,_ae,Y9,Vne,Aae,Mae,zae,TJ,Uae,jae,Yae,Qae,are,sre,lre,cre,hre,gre,xre,kre,Nre,Ere,Fre,Mre,B9,Gne,Lre,Wre,Vre,Gre,jre,Kre,Yre,Jre,ese,ase,sse,ose,pse,dse,mse,gse,Une,FJ,xse,kse,Tse,Ese,Fse,DJ,Rse,Pse,zse,uae];for(let e of Wse)_c(e);var Et;(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"})(Et||(Et={}));var uc;(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"})(uc||(uc={}));var WE;function Bse(e){WE=e.wasm.cwrap(Qs,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Vse(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let E=n.dataIdMap.get(i.dataId);if(E.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${E.shape.length}.`);m=E.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=uc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return WE(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Use={kernelName:Qs,backendName:"wasm",setupFunc:Bse,kernelFunc:Vse};function an(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,Et[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Gse=an(Dl);function dn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,Et[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Hse=!0,jse=dn(gs,Hse),BE;function qse(e){BE=e.wasm.cwrap(fi,null,["array","number","number","number"])}function Kse(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return BE(s,r.length,Et[a.dtype],i),a}var Xse={kernelName:fi,backendName:"wasm",setupFunc:qse,kernelFunc:Kse};function Qf(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return In(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var Yse={kernelName:Ri,backendName:"wasm",kernelFunc:Qf},VE;function Zse(e){VE=e.wasm.cwrap(_r,null,["number","array","number","number","number","array","number"])}function hs(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=Qse(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var eie={kernelName:_r,backendName:"wasm",kernelFunc:hs,setupFunc:Zse};function Es(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var hie={kernelName:vu,backendName:"wasm",kernelFunc:Wn},qE;function mie(e){qE=e.wasm.cwrap(bi,null,["number","array","number","number","array","number","number","number","number"])}function fie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Ou.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,E=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return qE(C,B,I.shape.length,E,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var gie={kernelName:bi,backendName:"wasm",setupFunc:mie,kernelFunc:fie};function hi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=jt.parseSliceParams(t,n,a),o=jt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=jt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Jh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)yie(l,p[0],c,s,i);else if(h===3)bie(l,p[0],p[1],c,s,i);else if(h===4)xie(l,p[0],p[1],p[2],c,s,i);else{let m=Jh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function yie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=hs({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=hi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var kie={kernelName:Ul,backendName:"wasm",kernelFunc:wie};function ap(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Iie={kernelName:xi,backendName:"wasm",kernelFunc:ap},Sie=an(vi),KE;function Tie(e){KE=e.wasm.cwrap(ys,null,["number","number","number","number"])}function Nie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return KE(o,s,i,u),l}var Cie={kernelName:ys,backendName:"wasm",setupFunc:Tie,kernelFunc:Nie};function XE(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return Qf({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=O0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;QE(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Vie={kernelName:Hl,backendName:"wasm",setupFunc:Wie,kernelFunc:Bie},e$;function Uie(e){e$=e.wasm.cwrap(Ti,null,["number","number","number","number","number","number"])}function Gie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=hs({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;e$(m,i?1:0,o?1:0,h,f,Et[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=hs({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Hie={kernelName:Ti,backendName:"wasm",setupFunc:Uie,kernelFunc:Gie},t$;function jie(e){t$=e.wasm.cwrap(ql,null,["number","number","number","array","number","array","array","number","number"])}function qie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return t$(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Kie={kernelName:ql,backendName:"wasm",setupFunc:jie,kernelFunc:qie},n$;function Xie(e){n$=e.wasm.cwrap(Ni,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yie(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,E=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return n$(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,E,$,S),F}var Zie={kernelName:Ni,backendName:"wasm",setupFunc:Xie,kernelFunc:Yie},Jie=an(_i),Qie=!1,eoe=dn(Xl,Qie,"bool"),toe=an(Ei,"float32");function kx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var noe={kernelName:Yl,backendName:"wasm",kernelFunc:kx};function a$(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var aoe={kernelName:gc,backendName:"wasm",kernelFunc:a$},r$;function roe(e){r$=e.wasm.cwrap(Jl,null,["number","number","number","number","number","number"])}function soe(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return r$(s,o,l,u,p,i),r}var ioe={kernelName:Jl,backendName:"wasm",kernelFunc:soe,setupFunc:roe},ooe=an($i),loe=!1,uoe=dn(Ai,loe),s$;function poe(e){s$=e.wasm.cwrap(Fi,null,["number","number","number","number","number","number","number"])}function coe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return s$(p,d,c,h,m,r,g),f}var doe={kernelName:Fi,backendName:"wasm",setupFunc:poe,kernelFunc:coe},i$;function hoe(e){i$=e.wasm.cwrap(ei,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 moe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return i$(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var foe={kernelName:ei,backendName:"wasm",setupFunc:hoe,kernelFunc:moe},o$;function goe(e){o$=e.wasm.cwrap(ti,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 yoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=uc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,E=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return o$(y,q,K,Z,b,I,T,w,C,E,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var boe={kernelName:ti,backendName:"wasm",setupFunc:goe,kernelFunc:yoe},l$;function xoe(e){l$=e.wasm.cwrap(eu,null,["number","number","number","number","number","number","array","number"])}function voe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=Ux.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return l$(c,Et[a.dtype],h,i,d,o,m,f),u}var woe={kernelName:eu,backendName:"wasm",setupFunc:xoe,kernelFunc:voe},u$;function koe(e){u$=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Ioe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${E} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return u$(b,Et[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var Soe={kernelName:Ql,backendName:"wasm",setupFunc:koe,kernelFunc:Ioe},Toe=!1,Noe=dn(tu,Toe,"bool"),Coe=!1,_oe=dn(Di,Coe,"bool"),p$;function Eoe(e){p$=e.wasm.cwrap(Mi,null,["number","number","number","number"])}function $oe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;p$(r,Et[t.dtype],n,i)}return s}var Aoe={kernelName:Mi,backendName:"wasm",setupFunc:Eoe,kernelFunc:$oe},Foe=!1,Doe=dn(su,Foe,"bool"),Roe=!1,Moe=dn(iu,Roe,"bool"),Poe=an(Pi),Ooe=!1,Loe=dn(lu,Ooe,"bool"),zoe=an(uu),Woe=!1,Boe=dn(pu,Woe,"bool"),Voe=!1,Uoe=dn(nS,Voe,"bool"),c$;function Goe(e){c$=e.wasm.cwrap(Oi,null,["number","number","number","number"])}function Hoe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Es(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;c$(o,Et[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var joe={kernelName:Oi,backendName:"wasm",setupFunc:Goe,kernelFunc:Hoe},qoe=!1,Koe=dn(Li,qoe),d$;function Xoe(e){d$=e.wasm.cwrap(zi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Yoe(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),E=a.dataIdMap.get(C.dataId).id;return d$(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,E),C}var Zoe={kernelName:zi,backendName:"wasm",setupFunc:Xoe,kernelFunc:Yoe},h$;function Joe(e){h$=e.wasm.cwrap(Wi,null,["number, number, number"])}function Qoe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=ap({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;h$(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var ele={kernelName:Wi,backendName:"wasm",setupFunc:Joe,kernelFunc:Qoe},m$;function tle(e){m$=e.wasm.cwrap(Bi,null,["number","number","number","number"])}function nle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;m$(l,Et[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var ale={kernelName:Bi,backendName:"wasm",setupFunc:tle,kernelFunc:nle},rle=!1,sle=dn(Vi,rle),Ix;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Ix||(Ix={}));var f$;function ile(e){f$=e.wasm.cwrap(Ui,null,["number","array","number","number","array","array","number","number"])}function ole(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return f$(i,u,t.shape.length,Et[t.dtype],c,h,Ix[r],l),o}var lle={kernelName:Ui,backendName:"wasm",kernelFunc:ole,setupFunc:ile},ule=!0,ple=dn(Gi,ule),cle=an(du);function u1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var g$;function dle(e){g$=e.wasm.cwrap(mu,"number",["number","number","number","number","number"])}function hle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=g$(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=u1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var mle={kernelName:mu,backendName:"wasm",setupFunc:dle,kernelFunc:hle},y$;function fle(e){y$=e.wasm.cwrap(fu,"number",["number","number","number","number","number","bool"])}function gle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=y$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var yle={kernelName:fu,backendName:"wasm",setupFunc:fle,kernelFunc:gle},b$;function ble(e){b$=e.wasm.cwrap(gu,"number",["number","number","number","number","number","number"])}function xle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=b$(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=u1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var vle={kernelName:gu,backendName:"wasm",setupFunc:ble,kernelFunc:xle},wle=!1,kle=dn(hu,wle,"bool"),x$;function Ile(e){x$=e.wasm.cwrap(Hi,null,["number","number","number","number","number"])}function Sle(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return x$(d,i,o,l,p),u}var Tle={kernelName:Hi,backendName:"wasm",setupFunc:Ile,kernelFunc:Sle};function Nle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Cle={kernelName:yu,backendName:"wasm",kernelFunc:Nle};function _le(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return kx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=kx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=XE({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Ele={kernelName:bu,backendName:"wasm",kernelFunc:_le},v$;function $le(e){v$=e.wasm.cwrap(ji,null,["number","array","number","number","array","array","number","number"])}function Ale(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return a$({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return v$(i,u,t.shape.length,Et[t.dtype],c,h,r,l),o}var w$={kernelName:ji,backendName:"wasm",kernelFunc:Ale,setupFunc:$le},Fle=!1,Dle=dn(qi,Fle),k$;function Rle(e){k$=e.wasm.cwrap(Ki,null,["number","number","number"])}function Mle(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=ap({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return k$(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Ple={kernelName:Ki,backendName:"wasm",setupFunc:Rle,kernelFunc:Mle},I$;function Ole(e){I$=e.wasm.cwrap(Xi,null,["number","number","number","number"])}function Lle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;I$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var zle={kernelName:Xi,backendName:"wasm",setupFunc:Ole,kernelFunc:Lle},Wle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=W0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},Ble={kernelName:xc,backendName:"wasm",kernelFunc:Wle},Vle=!0,Ule=dn(Ci,Vle),Gle=an(Yi),Hle=an(Qi),S$;function jle(e){S$=e.wasm.cwrap(Ji,null,["number","number","number","number","number","number","number","number","number","number"])}function qle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return S$(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var Kle={kernelName:Ji,backendName:"wasm",setupFunc:jle,kernelFunc:qle},T$;function Xle(e){T$=e.wasm.cwrap(Zi,null,["number","number","number","number","number","number","number","number","number","number"])}function Yle(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=ap({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return T$(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var Zle={kernelName:Zi,backendName:"wasm",setupFunc:Xle,kernelFunc:Yle},N$;function Jle(e){N$=e.wasm.cwrap(eo,null,["number","array","number","array","number","number"])}function Qle(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return Qf({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);N$(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var eue={kernelName:eo,backendName:"wasm",kernelFunc:Qle,setupFunc:Jle},C$;function tue(e){C$=e.wasm.cwrap(Pu,null,["number","number","number","number","number","number","number","number","array","number","number"])}function nue(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return C$(u,d,c,h,m,s,f,g,w,x.length,p),l}var aue={kernelName:Pu,backendName:"wasm",kernelFunc:nue,setupFunc:tue},rue=an(to),sue=an(no),_$;function iue(e){_$=e.wasm.cwrap(wu,null,["number","number","number","number","number","number","array","number","number"])}function oue(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=Gx.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return _$(h,m,Et[s.dtype],l,u,p,f,c,g),o}var lue={kernelName:wu,backendName:"wasm",setupFunc:iue,kernelFunc:oue},E$;function uue(e){E$=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function pue(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return E$(i,o,l,h,p),u}var cue={kernelName:ku,backendName:"wasm",kernelFunc:pue,setupFunc:uue},$$;function due(e){$$=e.wasm.cwrap(ro,null,["number","number"])}function hue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||$$(a,s),r}var mue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:due,kernelFunc:hue},fue=an(ao),A$;function gue(e){A$=e.wasm.cwrap(oo,null,["number","number","number","number"])}function yue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||A$(r,i,o,l),s}var bue={kernelName:oo,backendName:"wasm",setupFunc:gue,kernelFunc:yue};function xue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g{let $=w.shape[0],R=w.shape[1],F=N.segment_util.segOpComputeOptimalWindowSize(R,_),S={windowSize:F,inSize:R,batchSize:$,numSegments:_},M=new Vse(S,I),B=n.compileAndRun(M,[w,T],C);if(l.push(B),B.shape[1]===_)return B;let U=W_({backend:n,attrs:{start:0,stop:_,step:1,dtype:"float32"}}),G=V_({inputs:{x:U},backend:n,attrs:{reps:[R/F]}});return l.push(U),l.push(G),g(B,I,G,C,_)},y=g(m,"unsortedSegmentSum",s,f,i),b=he({inputs:{x:y},backend:n,attrs:{shape:c}}),x=b;if(p!=null){l.push(b);let w=N.getUndoAxesPermutation(p);x=Sn({inputs:{x},backend:n,attrs:{perm:w}})}return l.forEach(w=>n.disposeIntermediateTensorInfo(w)),x}var Gse={kernelName:Ec,backendName:"webgl",kernelFunc:Use},Hse=[WJ,VJ,HJ,KJ,YJ,QJ,t9,a9,o9,u9,d9,f9,b9,k9,T9,C9,_9,D9,M9,O9,B9,K9,Y9,J9,rQ,iQ,pQ,IJ,hQ,bQ,kQ,EQ,AQ,FQ,RQ,PQ,zQ,VQ,HQ,qQ,XQ,ZQ,eee,nee,iee,lee,cee,mee,gee,vee,See,Eee,$ee,Ree,Mee,Oee,zee,Bee,Uee,Hee,Xee,Jee,tte,ate,ite,ute,hte,yte,kJ,xte,gQ,kte,Tte,Ete,TJ,Fte,Pte,Lte,Vte,Hte,Xte,Jte,nne,ine,une,cne,fne,yne,xne,Ine,Tne,Cne,_ne,$ne,Mne,zne,Une,Zne,EJ,tae,rae,oae,pae,eQ,hae,fae,yae,vae,Sae,CJ,Nae,Eae,Aae,Fae,Dae,tQ,qne,Pae,Wae,Gae,AJ,Kae,Zae,tre,rre,lre,pre,hre,gre,bre,wre,Sre,Cre,$re,Rre,Ore,Wre,j9,Xne,Ure,Hre,qre,Xre,Zre,Qre,tse,ase,sse,lse,pse,dse,fse,yse,xse,wse,Kne,OJ,Sse,Cse,Ase,Rse,Ose,LJ,zse,Bse,Gse,mae];for(let e of Hse)_c(e);var _t;(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"})(_t||(_t={}));var pc;(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"})(pc||(pc={}));var U_;function jse(e){U_=e.wasm.cwrap(ni,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function qse(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s,bias:i,preluActivationWeights:o}=t;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:l,transposeB:u,activation:p,leakyreluAlpha:d}=a,c=n.dataIdMap.get(r.dataId).id,h=n.dataIdMap.get(s.dataId).id,m=0;if(i!=null){let _=n.dataIdMap.get(i.dataId);if(_.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${_.shape.length}.`);m=_.id}let f=o==null?0:n.dataIdMap.get(o.dataId).id,g=pc[p];if(g==null)throw new Error(`${p} activation not yet supported for FusedConv2D in the wasm backend.`);let y=l?r.shape[2]:r.shape[1],b=u?s.shape[1]:s.shape[2],x=Lu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)),w=n.makeOutput([...x,y,b],r.dtype),I=n.dataIdMap.get(w.dataId).id,T=new Uint8Array(new Int32Array(r.shape).buffer),C=new Uint8Array(new Int32Array(s.shape).buffer);return U_(c,T,r.shape.length,h,C,s.shape.length,l,u,g,m,f,d||0,I),w}var Kse={kernelName:ni,backendName:"wasm",setupFunc:jse,kernelFunc:qse};function Ut(e,t){let n;function a(s){n=s.wasm.cwrap(e,null,["number","number","number"])}function r(s){let{backend:i,inputs:{x:o}}=s,l=i.dataIdMap.get(o.dataId).id,u=i.makeOutput(o.shape,t||o.dtype),p=i.dataIdMap.get(u.dataId).id;return v.sizeFromShape(u.shape)===0||n(l,_t[o.dtype],p),u}return{kernelName:e,backendName:"wasm",setupFunc:a,kernelFunc:r}}var Xse=Ut(Pl);function dn(e,t,n){let a;function r(i){a=i.wasm.cwrap(e,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:o,inputs:l}=i,{a:u,b:p}=l,d=o.dataIdMap.get(u.dataId).id,c=o.dataIdMap.get(p.dataId).id,h=n!=null?n:u.dtype,m=N.assertAndGetBroadcastShape(u.shape,p.shape),f=o.makeOutput(m,h);if(v.sizeFromShape(m)===0)return f;let g=new Uint8Array(new Int32Array(u.shape).buffer),y=new Uint8Array(new Int32Array(p.shape).buffer),b=o.dataIdMap.get(f.dataId).id;return a(d,g,u.shape.length,c,y,p.shape.length,_t[u.dtype],b),f}return{kernelName:e,backendName:"wasm",setupFunc:r,kernelFunc:s}}var Yse=!0,Zse=dn(vs,Yse),G_;function Jse(e){G_=e.wasm.cwrap(xi,null,["array","number","number","number"])}function Qse(e){let{inputs:t,backend:n}=e,a=n.makeOutput(t[0].shape,t[0].dtype);if(v.sizeFromShape(a.shape)===0)return a;let r=t.map(o=>n.dataIdMap.get(o.dataId).id),s=new Uint8Array(new Int32Array(r).buffer),i=n.dataIdMap.get(a.dataId).id;return G_(s,r.length,_t[a.dtype],i),a}var eie={kernelName:xi,backendName:"wasm",setupFunc:Jse,kernelFunc:Qse};function eg(e){let{inputs:{x:t},backend:n}=e;if(t.dtype==="string")return mn(n.readSync(t.dataId),t.shape,t.dtype);let a=n.makeOutput(t.shape,t.dtype),r=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(a).set(r),a}var tie={kernelName:Li,backendName:"wasm",kernelFunc:eg},H_;function nie(e){H_=e.wasm.cwrap(Ar,null,["number","array","number","number","number","array","number"])}function ys(e){let{inputs:t,backend:n,attrs:a}=e,[r,s]=rie(t.x.shape,a.perm),i=!0;for(let m=0;m=r&&(s===-1||a[s]>a[i])&&(s=i);a[s]=r}return[n,a]}var sie={kernelName:Ar,backendName:"wasm",kernelFunc:ys,setupFunc:nie};function Ds(e,t,n){let a=e.shape,r=e.shape.length,s=v.parseAxisParam(t,a),i=s,o=N.getAxesPermutation(i,r),l=null,u=!1;if(o!=null){let p=new Array(r);for(let c=0;c`new shape: ${i}, old shape: ${a.shape}. New shape and old shape must have the same number of elements.`),e.backend.incRef(a.dataId),{dataId:a.dataId,shape:i,dtype:a.dtype}}var bie={kernelName:wu,backendName:"wasm",kernelFunc:Wn},Y_;function xie(e){Y_=e.wasm.cwrap(ki,null,["number","array","number","number","array","number","number","number","number"])}function vie(e){let{inputs:t,backend:n,attrs:a}=e,{a:r,b:s}=t,{transposeA:i,transposeB:o}=a;if(r.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let l=r.shape.length,u=s.shape.length,p=i?r.shape[l-2]:r.shape[l-1],d=o?s.shape[u-1]:s.shape[u-2],c=i?r.shape[l-1]:r.shape[l-2],h=o?s.shape[u-2]:s.shape[u-1],m=r.shape.slice(0,-2),f=s.shape.slice(0,-2),g=v.sizeFromShape(m),y=v.sizeFromShape(f),b=Lu.assertAndGetBroadcastShape(r.shape.slice(0,-2),s.shape.slice(0,-2)).concat([c,h]);v.assert(p===d,()=>`Error in matMul: inner shapes (${p}) and (${d}) of Tensors with shapes ${r.shape} and ${s.shape} and transposeA=${i} and transposeB=${o} must match.`);let x=i?[g,p,c]:[g,c,p],w=o?[y,h,d]:[y,d,h],I=Wn({inputs:{x:r},backend:n,attrs:{shape:x}}),T=Wn({inputs:{x:s},backend:n,attrs:{shape:w}}),C=n.dataIdMap.get(I.dataId).id,_=n.dataIdMap.get(T.dataId).id,$=i?I.shape[2]:I.shape[1],R=o?T.shape[1]:T.shape[2],F=Math.max(g,y),S=n.makeOutput([F,$,R],I.dtype),M=n.dataIdMap.get(S.dataId).id,B=new Uint8Array(new Int32Array(I.shape).buffer),U=new Uint8Array(new Int32Array(T.shape).buffer);return Y_(C,B,I.shape.length,_,U,T.shape.length,i,o,M),n.disposeData(I.dataId),n.disposeData(T.dataId),S.shape=b,S}var wie={kernelName:ki,backendName:"wasm",setupFunc:xie,kernelFunc:vie};function yi(e){let{inputs:{x:t},attrs:{begin:n,size:a},backend:r}=e,[s,i]=Kt.parseSliceParams(t,n,a),o=Kt.isSliceContinous(t.shape,s,i),l=r.readSync(t.dataId),u=r.makeOutput(i,t.dtype),p=v.computeStrides(t.shape),d=r.dataIdMap.get(u.dataId);if(o){let m=Kt.computeFlatOffset(s,p);return t.dtype==="string"?d.stringBytes=l.slice(m,m+v.sizeFromShape(i)):r.typedArrayFromHeap(u).set(l.subarray(m,m+v.sizeFromShape(i))),u}if(t.dtype==="string"){let m=Qh(l,s,i,t.shape,t.dtype);return d.stringBytes=m,u}let c=r.typedArrayFromHeap(u),h=t.shape.length;if(h===2)kie(l,p[0],c,s,i);else if(h===3)Iie(l,p[0],p[1],c,s,i);else if(h===4)Sie(l,p[0],p[1],p[2],c,s,i);else{let m=Qh(l,s,i,t.shape,t.dtype);c.set(m)}return u}function kie(e,t,n,a,r){let s=0,i=a[0],o=a[1],l=i+r[0];for(let u=i;uy*b),l=N.getReshaped(r.shape,s,o),u=N.getPermuted(l.length,s.length),p=N.getReshapedPermuted(r.shape,s,o),d=N.getSliceBeginCoords(i,s.length),c=N.getSliceSize(p,i,s.length),h=Wn({inputs:{x:r},backend:n,attrs:{shape:l}}),m=ys({inputs:{x:h},backend:n,attrs:{perm:u}}),f=Wn({inputs:{x:m},backend:n,attrs:{shape:p}}),g=yi({inputs:{x:f},backend:n,attrs:{begin:d,size:c}});return n.disposeData(h.dataId),n.disposeData(m.dataId),n.disposeData(h.dataId),g}var Cie={kernelName:jl,backendName:"wasm",kernelFunc:Nie};function rp(e){let{inputs:{x:t},attrs:{dtype:n},backend:a}=e,r=a.makeOutput(t.shape,n),s=a.typedArrayFromHeap(t);return a.typedArrayFromHeap(r).set(s),r}var Eie={kernelName:Ii,backendName:"wasm",kernelFunc:rp},_ie=Ut(Si),Z_;function Aie(e){Z_=e.wasm.cwrap(ws,null,["number","number","number","number"])}function $ie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{clipValueMin:s,clipValueMax:i}=a,o=n.dataIdMap.get(r.dataId).id,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(l.dataId).id;return Z_(o,s,i,u),l}var Fie={kernelName:ws,backendName:"wasm",setupFunc:Aie,kernelFunc:$ie};function J_(e){let{inputs:t,backend:n}=e,a=v.parseAxisParam(e.attrs.axis,t[0].shape)[0],r=t.map(h=>h.shape);N.assertParamsConsistent(r,a);let s=N.computeOutShape(t.map(h=>h.shape),a),i=t.filter(h=>v.sizeFromShape(h.shape)>0);if(i.length===1)return eg({inputs:{x:i[0]},backend:n});let o=n.makeOutput(s,t[0].dtype);if(v.sizeFromShape(s)===0)return o;if(i[0].dtype==="string"){let h=i.map(x=>{let w=[-1,v.sizeFromShape(x.shape.slice(a))];return Wn({inputs:{x},backend:n,attrs:{shape:w}})}),m=h.map(x=>({vals:n.readSync(x.dataId),shape:x.shape}));s=N.computeOutShape(h.map(x=>x.shape),1);let f=h[0].shape[0]===1,g=W0(m,s,t[0].dtype,f),y=N.computeOutShape(i.map(x=>x.shape),a);o.shape=y;let b=n.dataIdMap.get(o.dataId);return b.stringBytes=N.fromStringArrayToUint8(g),h.forEach(x=>n.disposeData(x.dataId)),o}let l=v.sizeFromShape(i[0].shape.slice(0,a)),u=0,p=i.map(h=>{let m=v.sizeFromShape(h.shape.slice(a));return u+=m,m}),d=i.map(h=>n.typedArrayFromHeap(h)),c=n.typedArrayFromHeap(o);for(let h=0;h`cumprod does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ys({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumprod",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;nA(m,i?1:0,o?1:0,h,f,_t[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ys({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var qie={kernelName:Kl,backendName:"wasm",setupFunc:Hie,kernelFunc:jie},aA;function Kie(e){aA=e.wasm.cwrap(_i,null,["number","number","number","number","number","number"])}function Xie(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{axis:s,exclusive:i,reverse:o}=a,l=r.shape.length;v.assert(r.dtype==="float32"||r.dtype==="int32",()=>`cumsum does not support ${r.dtype} tensors in the WASM backend`);let u=N.getAxesPermutation([s],l),p=r;u!==null&&(p=ys({inputs:{x:r},attrs:{perm:u},backend:n}));let d=N.getInnerMostAxes(1,l)[0];N.assertAxesAreInnerMostDims("cumsum",[d],l);let c=n.makeOutput(p.shape,p.dtype),h=p.shape[d],m=n.dataIdMap.get(p.dataId).id,f=n.dataIdMap.get(c.dataId).id;aA(m,i?1:0,o?1:0,h,f,_t[r.dtype]);let g=c;if(u!==null){let y=N.getUndoAxesPermutation(u);g=ys({inputs:{x:c},attrs:{perm:y},backend:n}),n.disposeData(p.dataId),n.disposeData(c.dataId)}return g}var Yie={kernelName:_i,backendName:"wasm",setupFunc:Kie,kernelFunc:Xie},rA;function Zie(e){rA=e.wasm.cwrap(Yl,null,["number","number","number","array","number","array","array","number","number"])}function Jie(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{blockSize:s,dataFormat:i}=a,o=r.shape[0],l=i==="NHWC"?r.shape[1]:r.shape[2],u=i==="NHWC"?r.shape[2]:r.shape[3],p=i==="NHWC"?r.shape[3]:r.shape[1],d=l*s,c=u*s,h=p/(s*s),m=i==="NHWC"?[o,d,c,h]:[o,h,d,c],f=t.makeOutput(m,"float32"),g=t.dataIdMap.get(r.dataId).id,y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(m).buffer),x=new Uint8Array(new Int32Array(v.computeStrides(m)).buffer),w=t.dataIdMap.get(f.dataId).id;return rA(g,s,i==="NHWC"?1:0,y,r.shape.length-1,b,x,m.length,w),f}var Qie={kernelName:Yl,backendName:"wasm",setupFunc:Zie,kernelFunc:Jie},sA;function eoe(e){sA=e.wasm.cwrap(Ai,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function toe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s}=t,i=a.dataIdMap.get(r.dataId).id,o=a.dataIdMap.get(s.dataId).id,{strides:l,dilations:u,pad:p,dimRoundingMode:d}=n,c=u==null?[1,1]:u,h=N.computeConv2DInfo(r.shape,s.shape,l,c,p,d,!0),m=h.filterHeight,f=h.filterWidth,g=h.padInfo.top,y=h.padInfo.right,b=h.padInfo.bottom,x=h.padInfo.left,w=h.dilationHeight,I=h.dilationWidth,T=h.strideHeight,C=h.strideWidth,_=h.inChannels,$=h.outChannels,R=h.padInfo.type==="SAME"?1:0;if(h.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${h.dataFormat}'. Please use 'channelsLast'.`);let F=a.makeOutput(h.outShape,"float32"),S=a.dataIdMap.get(F.dataId).id;return sA(i,r.shape[0],r.shape[1],r.shape[2],o,m,f,g,y,b,x,R,w,I,T,C,_,$,S),F}var noe={kernelName:Ai,backendName:"wasm",setupFunc:eoe,kernelFunc:toe},aoe=Ut(Fi),roe=!1,soe=dn(Jl,roe,"bool"),ioe=Ut(Di,"float32");function Nx(e){let{inputs:t,attrs:n,backend:a}=e,{input:r}=t,{dim:s}=n,i=r.shape.length,o=r.shape.slice(),l=s;return s<0&&(v.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),l=i+s+1),o.splice(l,0,1),Wn({inputs:{x:r},backend:a,attrs:{shape:o}})}var ooe={kernelName:Ql,backendName:"wasm",kernelFunc:Nx};function iA(e){let{attrs:{shape:t,value:n,dtype:a},backend:r}=e,s=r.makeOutput(t,a);return r.typedArrayFromHeap(s).fill(n),s}var loe={kernelName:yc,backendName:"wasm",kernelFunc:iA},oA;function uoe(e){oA=e.wasm.cwrap(tu,null,["number","number","number","number","number","number"])}function poe(e){let{inputs:t,backend:n}=e,{image:a}=t,r=n.makeOutput(a.shape,a.dtype),s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,[o,l,u,p]=a.shape;return oA(s,o,l,u,p,i),r}var coe={kernelName:tu,backendName:"wasm",kernelFunc:poe,setupFunc:uoe},doe=Ut(Ri),hoe=!1,moe=dn(Mi,hoe),lA;function foe(e){lA=e.wasm.cwrap(Pi,null,["number","number","number","number","number","number","number"])}function goe(e){let{backend:t,inputs:n,attrs:a}=e,{varianceEpsilon:r}=a,{x:s,mean:i,variance:o,offset:l,scale:u}=n,p=t.dataIdMap.get(s.dataId).id,d=t.dataIdMap.get(i.dataId).id,c=t.dataIdMap.get(o.dataId).id,h=l!=null?t.dataIdMap.get(l.dataId).id:0,m=u!=null?t.dataIdMap.get(u.dataId).id:0,f=t.makeOutput(s.shape,s.dtype);if(v.sizeFromShape(s.shape)===0)return f;let g=t.dataIdMap.get(f.dataId).id;return lA(p,d,c,h,m,r,g),f}var yoe={kernelName:Pi,backendName:"wasm",setupFunc:foe,kernelFunc:goe},uA;function boe(e){uA=e.wasm.cwrap(ai,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 xoe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c),g=pc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return uA(y,q,K,Z,b,I,T,w,C,_,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var voe={kernelName:ai,backendName:"wasm",setupFunc:boe,kernelFunc:xoe},pA;function woe(e){pA=e.wasm.cwrap(ri,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 koe(e){let{inputs:t,attrs:n,backend:a}=e,{x:r,filter:s,bias:i,preluActivationWeights:o}=t,{strides:l,pad:u,dilations:p,dataFormat:d,dimRoundingMode:c,activation:h,leakyreluAlpha:m}=n,f=N.computeConv2DInfo(r.shape,s.shape,l,p,u,c,!0),g=pc[h];if(g==null)throw new Error(`${h} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let y=a.dataIdMap.get(r.dataId).id,b=a.dataIdMap.get(s.dataId).id,x=f.outChannels,w=0;if(i!=null){let te=a.dataIdMap.get(i.dataId);if(te.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${te.shape.length}.`);if(te.shape[0]!==x)throw new Error(`FusedDepthwiseConv2D bias shape (${te.shape}) does not match the number of output channels (${x})`);w=te.id}let I=f.filterHeight,T=f.filterWidth,C=f.padInfo.top,_=f.padInfo.right,$=f.padInfo.bottom,R=f.padInfo.left,F=f.dilationHeight,S=f.dilationWidth,M=f.strideHeight,B=f.strideWidth,U=f.inChannels,G=f.padInfo.type==="SAME"?1:0,q=f.batchSize,K=f.inHeight,Z=f.inWidth;if(d!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${d}'. Please use 'NHWC'.`);let J=a.makeOutput(f.outShape,"float32"),ee=a.dataIdMap.get(J.dataId).id,ae=o==null?0:a.dataIdMap.get(o.dataId).id;return pA(y,q,K,Z,b,I,T,w,C,_,$,R,G,F,S,M,B,U,x,g,ae,m||0,ee),J}var Ioe={kernelName:ri,backendName:"wasm",setupFunc:woe,kernelFunc:koe},cA;function Soe(e){cA=e.wasm.cwrap(au,null,["number","number","number","number","number","number","array","number"])}function Toe(e){let{backend:t,inputs:n}=e,{params:a,indices:r}=n,[s,i,o,l]=jx.prepareAndValidate(a,r),u=t.makeOutput(s,a.dtype);if(i===0)return u;let p=r.shape,d=p[p.length-1],c=t.dataIdMap.get(a.dataId).id,h=t.dataIdMap.get(r.dataId).id,m=new Uint8Array(new Int32Array(l).buffer),f=t.dataIdMap.get(u.dataId).id;return cA(c,_t[a.dtype],h,i,d,o,m,f),u}var Noe={kernelName:au,backendName:"wasm",setupFunc:Soe,kernelFunc:Toe},dA;function Coe(e){dA=e.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Eoe(e){let{backend:t,inputs:n,attrs:a}=e,{x:r,indices:s}=n,{axis:i,batchDims:o}=a,l=v.parseAxisParam(i,r.shape)[0],u=t.readSync(s.dataId),p=r.shape[l];for(let C=0;C=0,()=>`GatherV2: the index value ${_} is not in [0, ${p-1}]`)}let d=N.segment_util.collectGatherOpShapeInfo(r,s,l,o),c=Wn({inputs:{x:r},attrs:{shape:[d.batchSize,d.outerSize,d.dimSize,d.sliceSize]},backend:t}),h=v.sizeFromShape(s.shape),m=Wn({inputs:{x:s},attrs:{shape:[d.batchSize,h/d.batchSize]},backend:t}),f=[d.batchSize,d.outerSize,h/d.batchSize,d.sliceSize],g=t.makeOutput(f,r.dtype);if(v.sizeFromShape(r.shape)===0)return g;let y=c.shape.length-1,b=t.dataIdMap.get(c.dataId).id,x=t.dataIdMap.get(m.dataId).id,w=t.dataIdMap.get(g.dataId).id,I=new Uint8Array(new Int32Array(v.computeStrides(c.shape)).buffer),T=new Uint8Array(new Int32Array(v.computeStrides(f)).buffer);return dA(b,_t[r.dtype],I,y,x,d.batchSize,T,w),t.disposeData(c.dataId),t.disposeData(m.dataId),g.shape=d.outputShape,g}var _oe={kernelName:nu,backendName:"wasm",setupFunc:Coe,kernelFunc:Eoe},Aoe=!1,$oe=dn(ru,Aoe,"bool"),Foe=!1,Doe=dn(Oi,Foe,"bool"),Roe=Ut(zi,"bool"),hA;function Moe(e){hA=e.wasm.cwrap(Wi,null,["number","number","number","number"])}function Poe(e){let{inputs:{x:t},attrs:{alpha:n},backend:a}=e,r=a.dataIdMap.get(t.dataId).id,s=a.makeOutput(t.shape,"float32");if(v.sizeFromShape(t.shape)!==0){let i=a.dataIdMap.get(s.dataId).id;hA(r,_t[t.dtype],n,i)}return s}var Ooe={kernelName:Wi,backendName:"wasm",setupFunc:Moe,kernelFunc:Poe},Loe=!1,zoe=dn(ou,Loe,"bool"),Woe=!1,Boe=dn(lu,Woe,"bool"),Voe=Ut(Bi),Uoe=!1,Goe=dn(pu,Uoe,"bool"),Hoe=Ut(cu),joe=!1,qoe=dn(du,joe,"bool"),Koe=!1,Xoe=dn(sS,Koe,"bool"),mA;function Yoe(e){mA=e.wasm.cwrap(Vi,null,["number","number","number","number"])}function Zoe(e){let{backend:t,inputs:n,attrs:a}=e,{reductionIndices:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=i,{transposed:u,axes:p,originalAxes:d,inputWasTransposed:c}=Ds(i,r,t);if(c){let b=t.dataIdMap.get(u.dataId).id;l=u,o=b}let h=l.shape.length;N.assertAxesAreInnerMostDims("max",p,h);let[m,f]=N.computeOutAndReduceShapes(l.shape,p),g=v.sizeFromShape(f),y=t.makeOutput(m,i.dtype);if(v.sizeFromShape(l.shape)!==0){let b=t.dataIdMap.get(y.dataId).id;mA(o,_t[i.dtype],g,b)}if(c&&t.disposeData(u.dataId),s){let b=N.expandShapeToKeepDim(y.shape,d);y.shape=b}return y}var Joe={kernelName:Vi,backendName:"wasm",setupFunc:Yoe,kernelFunc:Zoe},Qoe=!1,ele=dn(Ui,Qoe),fA;function tle(e){fA=e.wasm.cwrap(Gi,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function nle(e){let{inputs:t,attrs:n,backend:a}=e,r=t.x,s=a.dataIdMap.get(r.dataId).id;v.assert(r.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${r.dtype}.`);let{filterSize:i,strides:o,pad:l,dimRoundingMode:u}=n,p=N.computePool2DInfo(r.shape,i,o,1,l,u),d=p.filterHeight,c=p.filterWidth,h=p.padInfo.top,m=p.padInfo.right,f=p.padInfo.bottom,g=p.padInfo.left,y=p.dilationHeight,b=p.dilationWidth,x=p.strideHeight,w=p.strideWidth,I=p.inChannels,T=p.outChannels;if(p.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${p.dataFormat}'. Please use 'channelsLast'.`);let C=a.makeOutput(p.outShape,"float32"),_=a.dataIdMap.get(C.dataId).id;return fA(s,r.shape[0],r.shape[1],r.shape[2],d,c,h,m,f,g,y,b,x,w,I,T,_),C}var ale={kernelName:Gi,backendName:"wasm",setupFunc:tle,kernelFunc:nle},gA;function rle(e){gA=e.wasm.cwrap(Hi,null,["number, number, number"])}function sle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let w=t.dataIdMap.get(p.dataId).id;w!==o&&(u=p,l=w,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("mean",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=u;u.dtype!=="float32"&&(b=rp({backend:t,inputs:{x:u},attrs:{dtype:"float32"}}),l=t.dataIdMap.get(b.dataId).id);let x=t.makeOutput(f,"float32");if(v.sizeFromShape(u.shape)!==0){let w=t.dataIdMap.get(x.dataId).id;gA(l,y,w)}if(h&&t.disposeData(p.dataId),s){let w=N.expandShapeToKeepDim(x.shape,c);x.shape=w}return u.dtype!=="float32"&&t.disposeData(b.dataId),x}var ile={kernelName:Hi,backendName:"wasm",setupFunc:rle,kernelFunc:sle},yA;function ole(e){yA=e.wasm.cwrap(ji,null,["number","number","number","number"])}function lle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t);if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x)}let m=u.shape.length;N.assertAxesAreInnerMostDims("min",d,m);let[f,g]=N.computeOutAndReduceShapes(u.shape,d),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;yA(l,_t[i.dtype],y,x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var ule={kernelName:ji,backendName:"wasm",setupFunc:ole,kernelFunc:lle},ple=!1,cle=dn(qi,ple),Cx;(function(e){e[e.reflect=0]="reflect",e[e.symmetric=1]="symmetric"})(Cx||(Cx={}));var bA;function dle(e){bA=e.wasm.cwrap(Ki,null,["number","array","number","number","array","array","number","number"])}function hle(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,mode:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]),i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return bA(i,u,t.shape.length,_t[t.dtype],c,h,Cx[r],l),o}var mle={kernelName:Ki,backendName:"wasm",kernelFunc:hle,setupFunc:dle},fle=!0,gle=dn(Xi,fle),yle=Ut(mu);function d1(e,t){let n=new Int32Array(e.wasm.HEAPU8.buffer,t,4),a=n[0],r=n[1],s=n[2],i=n[3];return e.wasm._free(t),{pSelectedIndices:a,selectedSize:r,pSelectedScores:s,pValidOutputs:i}}var xA;function ble(e){xA=e.wasm.cwrap(gu,"number",["number","number","number","number","number"])}function xle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i}=a,{boxes:o,scores:l}=n,u=t.dataIdMap.get(o.dataId).id,p=t.dataIdMap.get(l.dataId).id,d=xA(u,p,s,r,i),{pSelectedIndices:c,selectedSize:h,pSelectedScores:m,pValidOutputs:f}=d1(t,d);return t.wasm._free(m),t.wasm._free(f),t.makeOutput([h],"int32",c)}var vle={kernelName:gu,backendName:"wasm",setupFunc:ble,kernelFunc:xle},vA;function wle(e){vA=e.wasm.cwrap(yu,"number",["number","number","number","number","number","bool"])}function kle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=vA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=d1(t,c);t.wasm._free(f);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([],"int32",g);return[y,b]}var Ile={kernelName:yu,backendName:"wasm",setupFunc:wle,kernelFunc:kle},wA;function Sle(e){wA=e.wasm.cwrap(bu,"number",["number","number","number","number","number","number"])}function Tle(e){let{backend:t,inputs:n,attrs:a}=e,{iouThreshold:r,maxOutputSize:s,scoreThreshold:i,softNmsSigma:o}=a,{boxes:l,scores:u}=n,p=t.dataIdMap.get(l.dataId).id,d=t.dataIdMap.get(u.dataId).id,c=wA(p,d,s,r,i,o),{pSelectedIndices:h,selectedSize:m,pSelectedScores:f,pValidOutputs:g}=d1(t,c);t.wasm._free(g);let y=t.makeOutput([m],"int32",h),b=t.makeOutput([m],"float32",f);return[y,b]}var Nle={kernelName:bu,backendName:"wasm",setupFunc:Sle,kernelFunc:Tle},Cle=!1,Ele=dn(fu,Cle,"bool"),kA;function _le(e){kA=e.wasm.cwrap(Yi,null,["number","number","number","number","number"])}function Ale(e){let{inputs:t,backend:n,attrs:a}=e,{indices:r}=t,{dtype:s,depth:i,onValue:o,offValue:l}=a,u=n.makeOutput([...r.shape,i],s),p=n.dataIdMap.get(u.dataId).id,d=n.dataIdMap.get(r.dataId).id;return kA(d,i,o,l,p),u}var $le={kernelName:Yi,backendName:"wasm",setupFunc:_le,kernelFunc:Ale};function Fle(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(1),a}var Dle={kernelName:xu,backendName:"wasm",kernelFunc:Fle};function Rle(e){let{inputs:t,backend:n,attrs:a}=e,{axis:r}=a;if(t.length===1)return Nx({inputs:{input:t[0]},backend:n,attrs:{dim:r}});let s=t[0].shape,i=t[0].dtype;t.forEach(p=>{v.assertShapesMatch(s,p.shape,"All tensors passed to stack must have matching shapes"),v.assert(i===p.dtype,()=>"All tensors passed to stack must have matching dtypes")});let o=[],l=t.map(p=>{let d=Nx({inputs:{input:p},backend:n,attrs:{dim:r}});return o.push(d),d}),u=J_({inputs:l,backend:n,attrs:{axis:r}});return o.forEach(p=>n.disposeData(p.dataId)),u}var Mle={kernelName:vu,backendName:"wasm",kernelFunc:Rle},IA;function Ple(e){IA=e.wasm.cwrap(Zi,null,["number","array","number","number","array","array","number","number"])}function Ole(e){let{inputs:{x:t},backend:n,attrs:{paddings:a,constantValue:r}}=e,s=a.map((m,f)=>m[0]+t.shape[f]+m[1]);if(v.sizeFromShape(t.shape)===0)return iA({backend:n,attrs:{shape:s,value:r,dtype:t.dtype}});let i=n.dataIdMap.get(t.dataId).id,o=n.makeOutput(s,t.dtype),l=n.dataIdMap.get(o.dataId).id,u=new Uint8Array(new Int32Array(t.shape).buffer),p=a.map(m=>m[0]),d=a.map(m=>m[1]),c=new Uint8Array(new Int32Array(p).buffer),h=new Uint8Array(new Int32Array(d).buffer);return IA(i,u,t.shape.length,_t[t.dtype],c,h,r,l),o}var SA={kernelName:Zi,backendName:"wasm",kernelFunc:Ole,setupFunc:Ple},Lle=!1,zle=dn(Ji,Lle),TA;function Wle(e){TA=e.wasm.cwrap(Qi,null,["number","number","number"])}function Ble(e){let{inputs:t,backend:n}=e,{x:a,alpha:r}=t,s=n.dataIdMap.get(a.dataId).id,i=n.dataIdMap.get(r.dataId).id,o=s,l=a,u=l;l.dtype!=="float32"&&(u=rp({backend:n,inputs:{x:a},attrs:{dtype:"float32"}}),o=n.dataIdMap.get(u.dataId).id);let p=n.makeOutput(a.shape,"float32"),d=n.dataIdMap.get(p.dataId).id;return TA(o,i,d),l.dtype!=="float32"&&n.disposeData(u.dataId),p}var Vle={kernelName:Qi,backendName:"wasm",setupFunc:Wle,kernelFunc:Ble},NA;function Ule(e){NA=e.wasm.cwrap(eo,null,["number","number","number","number"])}function Gle(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("prod",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;NA(l,y,_t[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Hle={kernelName:eo,backendName:"wasm",setupFunc:Ule,kernelFunc:Gle},jle=e=>{let{backend:t,attrs:n}=e,{start:a,stop:r,step:s,dtype:i}=n,o=U0(a,r,s,i),l=t.makeOutput([o.length],i);return t.typedArrayFromHeap(l).set(o),l},qle={kernelName:vc,backendName:"wasm",kernelFunc:jle},Kle=!0,Xle=dn($i,Kle),Yle=Ut(to),Zle=Ut(no),Jle=Ut(so),CA;function Qle(e){CA=e.wasm.cwrap(ro,null,["number","number","number","number","number","number","number","number","number","number"])}function eue(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.dataIdMap.get(r.dataId),g;f.dtype!=="float32"&&(g=rp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),f=t.dataIdMap.get(g.dataId));let y=f.id,b=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return b;let x=t.dataIdMap.get(b.dataId).id;return CA(y,p,d,c,h,l,u,s?1:0,i?1:0,x),g!=null&&t.disposeData(g.dataId),b}var tue={kernelName:ro,backendName:"wasm",setupFunc:Qle,kernelFunc:eue},EA;function nue(e){EA=e.wasm.cwrap(ao,null,["number","number","number","number","number","number","number","number","number","number"])}function aue(e){let{backend:t,inputs:n,attrs:a}=e,{images:r}=n,{alignCorners:s,halfPixelCenters:i,size:o}=a,[l,u]=o,[p,d,c,h]=r.shape,m=[p,l,u,h],f=t.makeOutput(m,"float32");if(v.sizeFromShape(r.shape)===0)return f;let g=t.dataIdMap.get(r.dataId),y;g.dtype!=="float32"&&(y=rp({backend:t,inputs:{x:r},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(y.dataId));let b=g.id,x=t.dataIdMap.get(f.dataId).id;return EA(b,p,d,c,h,l,u,s?1:0,i?1:0,x),y!=null&&t.disposeData(y.dataId),f}var rue={kernelName:ao,backendName:"wasm",setupFunc:nue,kernelFunc:aue},_A;function sue(e){_A=e.wasm.cwrap(io,null,["number","array","number","array","number","number"])}function iue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{dims:s}=a,i=v.parseAxisParam(s,r.shape);if(r.shape.length===0)return eg({inputs:{x:r},backend:n});let o=n.makeOutput(r.shape,r.dtype),l=n.dataIdMap.get(r.dataId).id,u=n.dataIdMap.get(o.dataId).id,p=new Uint8Array(new Int32Array(i).buffer),d=new Uint8Array(new Int32Array(r.shape).buffer);_A(l,p,i.length,d,r.shape.length,u);let c=Wn({inputs:{x:o},attrs:{shape:r.shape},backend:n});return n.disposeData(o.dataId),c}var oue={kernelName:io,backendName:"wasm",kernelFunc:iue,setupFunc:sue},AA;function lue(e){AA=e.wasm.cwrap(Ou,null,["number","number","number","number","number","number","number","number","array","number","number"])}function uue(e){let{inputs:t,backend:n,attrs:a}=e,{image:r}=t,{radians:s,fillValue:i,center:o}=a,l=n.makeOutput(r.shape,r.dtype),u=n.dataIdMap.get(r.dataId).id,p=n.dataIdMap.get(l.dataId).id,[d,c,h,m]=r.shape,[f,g]=N.getImageCenter(o,c,h),y=i===0,b=255,x=typeof i=="number"?[i,i,i,y?0:b]:[...i,b],w=new Uint8Array(new Int32Array(x).buffer);return AA(u,d,c,h,m,s,f,g,w,x.length,p),l}var pue={kernelName:Ou,backendName:"wasm",kernelFunc:uue,setupFunc:lue},cue=Ut(oo),due=Ut(lo),$A;function hue(e){$A=e.wasm.cwrap(ku,null,["number","number","number","number","number","number","array","number","number"])}function mue(e){let{backend:t,inputs:n,attrs:a}=e,{indices:r,updates:s}=n,{shape:i}=a,o=t.makeOutput(i,s.dtype);if(v.sizeFromShape(i)===0)return o;let{sliceRank:l,numUpdates:u,sliceSize:p,strides:d,outputSize:c}=qx.calculateShapes(s,r,i),h=t.dataIdMap.get(r.dataId).id,m=t.dataIdMap.get(s.dataId).id,f=new Uint8Array(new Int32Array(d).buffer),g=t.dataIdMap.get(o.dataId).id;return $A(h,m,_t[s.dtype],l,u,p,f,c,g),o}var fue={kernelName:ku,backendName:"wasm",setupFunc:hue,kernelFunc:mue},FA;function gue(e){FA=e.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function yue(e){let{inputs:t,backend:n}=e,{condition:a,t:r,e:s}=t,i=n.dataIdMap.get(a.dataId).id,o=n.dataIdMap.get(r.dataId).id,l=n.dataIdMap.get(s.dataId).id,u=n.makeOutput(r.shape,r.dtype),p=n.dataIdMap.get(u.dataId).id,d=a.shape.length,c=r.shape.length,h=d===0||d>1||c===1?1:v.sizeFromShape(r.shape.slice(1));return FA(i,o,l,h,p),u}var bue={kernelName:Iu,backendName:"wasm",kernelFunc:yue,setupFunc:gue},DA;function xue(e){DA=e.wasm.cwrap(po,null,["number","number"])}function vue(e){let{backend:t,inputs:{x:n}}=e,a=t.dataIdMap.get(n.dataId).id,r=t.makeOutput(n.shape,n.dtype),s=t.dataIdMap.get(r.dataId).id;return v.sizeFromShape(r.shape)===0||DA(a,s),r}var wue={kernelName:"Sigmoid",backendName:"wasm",setupFunc:xue,kernelFunc:vue},kue=Ut(uo),RA;function Iue(e){RA=e.wasm.cwrap(mo,null,["number","number","number","number"])}function Sue(e){let{backend:t,inputs:{logits:n},attrs:{dim:a}}=e,r=t.dataIdMap.get(n.dataId).id,s=t.makeOutput(n.shape,n.dtype),i=t.dataIdMap.get(s.dataId).id,o=n.shape[a],l=v.sizeFromShape(n.shape)/o;return v.sizeFromShape(s.shape)===0||RA(r,i,o,l),s}var Tue={kernelName:mo,backendName:"wasm",setupFunc:Iue,kernelFunc:Sue};function Nue(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,{blockShape:s,paddings:i}=a,o=v.sizeFromShape(s),l=[[0,0]];l.push(...i);for(let g=1+s.length;g0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;R$(d,Et[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Cue(e){return P$(e,!0)}var _ue={kernelName:wc,backendName:"wasm",setupFunc:M$,kernelFunc:Cue};function Eue(e){return P$(e,!1)}var $ue={kernelName:kc,backendName:"wasm",setupFunc:M$,kernelFunc:Eue};function Aue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=hi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var Fue={kernelName:Eu,backendName:"wasm",kernelFunc:Aue},Due=an(so),Rue=an(Ic),Mue=!0,Pue=dn(lo,Mue),O$;function Oue(e){O$=e.wasm.cwrap(xs,null,["number","number","number","number"])}function Lue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return O$(i,r,Et[s.dtype],l),o}var zue={kernelName:xs,backendName:"wasm",setupFunc:Oue,kernelFunc:Lue},L$;function Wue(e){L$=e.wasm.cwrap(Au,null,["number","array","number","array","array","array","array","array","number","number"])}function Bue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=jt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=jt.computeOutShape(b,x,w),C=hi({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,E=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;L$(C,E,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Vue={kernelName:Au,backendName:"wasm",setupFunc:Wue,kernelFunc:Bue};function Uue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=V0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Gue={kernelName:Sc,backendName:"wasm",kernelFunc:Uue};function Hue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=U0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var jue={kernelName:Tc,backendName:"wasm",kernelFunc:Hue};function que(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=G0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var Kue={kernelName:Nc,backendName:"wasm",kernelFunc:que},Xue=!0,Yue=dn(uo,Xue),z$;function Zue(e){z$=e.wasm.cwrap(io,null,["number","number","number","number"])}function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Es(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;z$(l,y,Et[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var Que={kernelName:io,backendName:"wasm",setupFunc:Zue,kernelFunc:Jue},epe=an(po),tpe=an(co),W$;function npe(e){W$=e.wasm.cwrap(bs,null,["number","array","number","array","number","number"])}function ape(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return B$(i,o,a.shape.length,Et[a.dtype],r,s,p,c),[u,d]},ope={kernelName:Fu,backendName:"wasm",setupFunc:spe,kernelFunc:ipe},V$;function lpe(e){V$=e.wasm.cwrap(Du,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function upe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,E;switch(o){case"constant":E=1;break;case"reflect":E=2;break;case"wrap":E=3;break;case"nearest":E=4;break;default:E=1;break}return V$(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,E,l,w),x}var ppe={kernelName:Du,backendName:"wasm",setupFunc:lpe,kernelFunc:upe};function cpe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var dpe={kernelName:Ru,backendName:"wasm",kernelFunc:cpe};function hpe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var mpe={kernelName:Mu,backendName:"wasm",kernelFunc:hpe},fpe=[Use,Gse,jse,Xse,aie,iie,uie,die,gie,kie,Iie,Sie,Cie,_ie,Aie,Rie,Mie,Pie,zie,Vie,Hie,Kie,Zie,Jie,eoe,toe,noe,aoe,ioe,ooe,uoe,doe,foe,boe,woe,Soe,Noe,_oe,Yse,Aoe,Doe,Moe,Poe,Loe,zoe,Boe,Uoe,joe,Koe,Zoe,ele,ale,sle,lle,ple,cle,mle,yle,vle,kle,Tle,Cle,Ele,w$,Dle,Ple,zle,Ble,Ule,Gle,Hle,hie,Kle,Zle,eue,aue,rue,sue,lue,cue,mue,fue,vie,bue,vue,Iue,Nue,_ue,$ue,Fue,Due,Rue,Pue,zue,Vue,Gue,jue,Kue,Yue,Que,epe,tpe,rpe,ope,ppe,eie,dpe,mpe];for(let e of fpe)_c(e);var Sx=H();Sx.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(e){return!1}});Sx.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Sx.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(e){return!1}});var PI=ms(MF()),gpe=ms(PF()),OI=ms(OF()),LI=PI.default||PI,ype=OI.default||OI,U$=class extends pc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(G$),Tx=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new om(this,_a())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return vpe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function bpe(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function zI(e,t,n){if(sm!=null)return sm;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),jp!=null&&jp[a]!=null?jp[a]:n+a}async function xpe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=gpe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?zI(e,t,Up!=null?Up:l):l+o},p1&&(r.instantiateWasm=bpe(zI(e,t,Up!=null?Up:"")));let s=!1;r.onAbort=()=>{s||qp||(qp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&sm==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+LI.toString()],{type:"text/javascript"}),i=LI(r)):i=ype(r),i.then(o=>{s=!0,qp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function vpe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var wpe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],sm=null,Up=null,jp={},qp=!1,p1=!1;function kpe(e,t=!1){if(Vx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");sm=e,p1=t}function Ipe(e,t=!1){if(qp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Up=e;else{jp=e;let n=wpe.filter(a=>jp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}p1=t}var G$=-1,Tx=-1;function Spe(e){G$=e}function Tpe(){if(Tx===-1)throw new Error("WASM backend not initialized.");return Tx}var Npe="4.0.0",Cpe=2;Gm("wasm",async()=>{let{wasm:e}=await xpe();return new U$(e)},Cpe);var WI="4.0.0",_pe="4.0.0",Epe="4.0.0",$pe="4.0.0",Ape="4.0.0",Fpe={tfjs:WI,"tfjs-core":WI,"tfjs-converter":_pe,"tfjs-backend-cpu":Epe,"tfjs-backend-webgl":$pe,"tfjs-backend-wasm":Ape};var M1={};rh(M1,{AnchorPosition:()=>N1,DrawBox:()=>md,DrawBoxOptions:()=>ag,DrawFaceLandmarks:()=>mg,DrawFaceLandmarksOptions:()=>hg,DrawTextField:()=>zr,DrawTextFieldOptions:()=>op,drawContour:()=>Pr,drawDetections:()=>Bpe,drawFaceExpressions:()=>jpe,drawFaceLandmarks:()=>Kpe});function Pr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var m1={};rh(m1,{computeReshapedDimensions:()=>h1,getCenterPoint:()=>No,isDimensions:()=>tg,isEven:()=>eg,isFloat:()=>d1,isTensor:()=>So,isTensor1D:()=>Dpe,isTensor2D:()=>c1,isTensor3D:()=>Or,isTensor4D:()=>va,isValidNumber:()=>Ya,isValidProbablitiy:()=>rp,range:()=>fr,round:()=>To});var yn=class{constructor(t,n){if(!Ya(t)||!Ya(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new yn(1/this.width,1/this.height)}};function So(e,t){return e instanceof Te&&e.shape.length===t}function Dpe(e){return So(e,1)}function c1(e){return So(e,2)}function Or(e){return So(e,3)}function va(e){return So(e,4)}function d1(e){return e%1!==0}function eg(e){return e%2===0}function To(e,t=2){let n=10**t;return Math.floor(e*n)/n}function tg(e){return e&&e.width&&e.height}function h1({width:e,height:t},n){let a=n/Math.max(t,e);return new yn(Math.round(e*a),Math.round(t*a))}function No(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function fr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Ya(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function rp(e){return Ya(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var st=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Ya)}static assertIsValidBox(t,n,a=!1){if(!st.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Ya),s=[a.x,a.y,a.width,a.height].every(Ya);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];st.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new st({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new st({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new st({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Co=class extends st{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Lr=class{constructor(t,n,a,r,s){this._imageDims=new yn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new st(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new st(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Lr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Lr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function f1(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function g1(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function Za(e,t){return P(()=>{let[n,a,r]=t,s=gn([...e.shape.slice(0,3),1],n,"float32"),i=gn([...e.shape.slice(0,3),1],a,"float32"),o=gn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function b1(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,gn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function Rpe(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function dd(e){return 1/(1+Math.exp(-e))}function Mpe(e){return Math.log(e/(1-e))}var _o=class extends st{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Ppe=.5,Ope=.43,Lpe=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new yn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new st(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Lpe),l=No(t),u=Math.floor(Math.max(0,l.x-Ppe*o)),p=Math.floor(Math.max(0,l.y-Ope*o));return new _o(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=g1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var x1=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],No([t[3],t[4]])]}};var Eo=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(No)}};var sp=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${To(this.distance)})`:""}`}};var ip=class extends st{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(st.assertIsValidBox(n,a),!Ya(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var gr=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new gr(t.label,n)}};var v1=class extends ip{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(ip.assertIsValidLabeledBox(n,a),!rp(n.score)||!rp(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function yr(e){return e.detection instanceof yt}function $o(e,t){return{...e,...{detection:t}}}function w1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function hd(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ng(e){let t="";if(!e&&hd())try{e=Xr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function k1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=ng();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function I1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var rn;function zpe(){if(!rn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return rn}function S1(e){rn=e}function T1(){return I1()?S1(w1()):hd()?S1(k1()):null}function Wpe(e){if(rn||T1(),!rn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=rn.Canvas,Image:n=rn.Image}=e;rn.Canvas=t,rn.Image=n,rn.createCanvasElement=e.createCanvasElement||(()=>new t),rn.createImageElement=e.createImageElement||(()=>new n),rn.ImageData=e.ImageData||rn.ImageData,rn.Video=e.Video||rn.Video,rn.fetch=e.fetch||rn.fetch,rn.readFile=e.readFile||rn.readFile}var Je={getEnv:zpe,setEnv:S1,initialize:T1,createBrowserEnv:w1,createFileSystem:ng,createNodejsEnv:k1,monkeyPatch:Wpe,isBrowser:I1,isNodejs:hd};T1();function Ao(e){return!Je.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=Je.getEnv();if(e instanceof n)return e;let a=Ao(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var N1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(N1||{}),op=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},zr=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof zr?t.text:t,this.anchor=n,this.options=new op(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var ag=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new op({...i,...s})}},md=class{constructor(t,n={}){this.box=new st(t),this.options=new ag(n)}draw(t){let n=Gn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new zr([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Bpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:yr(a)?a.detection.score:void 0,s=a instanceof yt?a.box:yr(a)?a.detection.box:new st(a),i=r?`${To(r)}`:void 0;new md(s,{label:i}).draw(e)})}function fd(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function C1(e){return new Promise((t,n)=>{(e instanceof Je.getEnv().Canvas||fd(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function _1(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=Je.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Fo(e){let{Image:t,Video:n}=Je.getEnv();return e instanceof t?new yn(e.naturalWidth,e.naturalHeight):e instanceof n?new yn(e.videoWidth,e.videoHeight):new yn(e.width,e.height)}function Do({width:e,height:t}){let{createCanvasElement:n}=Je.getEnv(),a=n();return a.width=e,a.height=t,a}function gd(e,t){let{ImageData:n}=Je.getEnv();if(!(e instanceof n)&&!fd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Fo(e),s=Do({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function E1(e,t){let n=t||Je.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(va(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await ho.toPixels(i,n),i.dispose(),n}function rg(e){let{Image:t,Canvas:n,Video:a}=Je.getEnv();return e instanceof t||e instanceof n||e instanceof a}function $1(e,t,n=!1){let{Image:a,Canvas:r}=Je.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Do({width:1,height:1});let s=Fo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Do({width:t,height:t}),p=e instanceof r?e:gd(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var br=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(Or(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(va(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof Je.getEnv().Canvas?a:gd(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return fr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return h1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=fr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=va(i)?i:Zt(i);return o=b1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=za.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Je.getEnv().Canvas)return ho.fromPixels($1(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return Ft(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function bt(e){if(e instanceof br)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Ao);return a.forEach((r,s)=>{if(!rg(r)&&!Or(r)&&!va(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(va(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>rg(r)&&C1(r))),new br(a,Array.isArray(e))}async function lp(e,t){let{Canvas:n}=Je.getEnv(),a=e;if(!(e instanceof n)){let i=await bt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await E1(o)}let r=Gn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=Do({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function up(e,t){if(!Or(e)&&!va(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(va(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(va(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>fo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Wr(e,t){let{fetch:n}=Je.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Vpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return _1(n)}async function A1(e){return(await Wr(e)).json()}async function Upe(e){return new Float32Array(await(await Wr(e)).arrayBuffer())}function H$(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=Je.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Gpe(e){let t=await Wr(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return H$(n)}function sg(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function F1(e,t){let{manifestUri:n,modelBaseUri:a}=sg(e,t),r=await A1(n);return Ut.loadWeights(r,a)}function Hpe(e,t,n=!1){let{width:a,height:r}=n?Fo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var sn=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof is)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof is))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=In(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await F1(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=Je.getEnv(),{manifestUri:a,modelBaseUri:r}=sg(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Ut.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return P(()=>{let a=Ts(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function ig(e,t,n=!1){return P(()=>{let a=Xe(n?Y(At(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Hn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function yd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(At(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Hn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Hn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function Ro(e,t,n="same",a=!1){return P(()=>{let r=Y(At(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function $n(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function pp(e,t){return(n,a,r,s)=>{let i=Da(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function og(e,t){return(n,a,r)=>{let s=$a(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var bd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function cp(e,t){return(n,a,r)=>{let s=Da(e(9*n),[3,3,n,1]),i=Da(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new bd(s,i,o)}}function dp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new bd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!So(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function An(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function lg(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function j$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock4Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function ug(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function pg(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function q$(e){let t=[],{extractDenseBlock4Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return $n(e,t),{params:a,paramMappings:t}}var hp=class extends sn{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=yd(s,n.dense0,!0);return i=yd(i,n.dense1),i=yd(i,n.dense2),i=yd(i,n.dense3),i=ya(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return q$(t)}extractParams(t){return j$(t)}};function xd(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function K$(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=An(e),o=og(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function X$(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return $n(e,t),{params:r,paramMappings:t}}function cg(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var mp=class extends sn{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n;return xd(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return K$(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),X$(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var D1=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Br=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);D1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return D1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var vd=class extends mp{constructor(t=new hp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Ka(this.runNet(t)))}async forward(t){return this.forwardInput(await bt(t))}async predictExpressions(t){let n=await bt(t),a=await this.forwardInput(n),r=await Promise.all(ct(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Br(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function R1(e){return e.expressions instanceof Br}function dg(e,t){return{...e,...{expressions:t}}}function jpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Br?s:R1(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=yr(s)?s.detection.box.bottomLeft:a||new De(0,0);new zr(l.map(d=>`${d.expression} (${To(d.probability)})`),u).draw(e)})}function Mo(e){return yr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof yt}function qpe(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function fp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s),o=qpe(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var hg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},mg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new hg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Eo&&(n.strokeStyle=i,n.lineWidth=s,Pr(n,this.faceLandmarks.getJawOutline()),Pr(n,this.faceLandmarks.getLeftEyeBrow()),Pr(n,this.faceLandmarks.getRightEyeBrow()),Pr(n,this.faceLandmarks.getNose()),Pr(n,this.faceLandmarks.getLeftEye(),!0),Pr(n,this.faceLandmarks.getRightEye(),!0),Pr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function Kpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:Mo(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new mg(r).draw(e)})}var Y$="1.7.6";function Zpe(e,t){let n=pp(e,t),a=cp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function Z$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=An(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=Zpe(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};fr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function Jpe(e,t){let n=sa(e,t),a=ug(n),r=dp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function J$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=Jpe(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};fr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return $n(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function Q$(e,t,n){return Y(At(e,t.filters,n,"same"),t.bias)}function P1(e,t,n=!0){let a=n?Xe(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,Q$(e,t.expansion_conv,[2,2])),a}function Qpe(e,t){let n=Hn(Xe(e),t.separable_conv0,[1,1]);return n=Hn(Xe(n),t.separable_conv1,[1,1]),n=Hn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var fg=class extends sn{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=Za(r,[122.782,117.001,104.298]).div(255),o=Xe(Q$(i,a.entry_flow.conv_in,[2,2]));return o=P1(o,a.entry_flow.reduction_block_0,!1),o=P1(o,a.entry_flow.reduction_block_1),fr(this._numMainBlocks,0,1).forEach(l=>{o=Qpe(o,a.middle_flow[`main_block_${l}`])}),o=P1(o,a.exit_flow.reduction_block),o=Xe(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await bt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return J$(n,this._numMainBlocks)}extractParams(n){return Z$(n,this._numMainBlocks)}};function eA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),r=og(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function tA(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return $n(e,t),{params:r,paramMappings:t}}var gg=(n=>(n.FEMALE="female",n.MALE="male",n))(gg||{});var wd=class extends sn{constructor(n=new fg(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof br?this.faceFeatureExtractor.forwardInput(n):n,s=ya(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=xd(s,a.fc.age).as1D(),o=xd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Ka(r)}})}async forward(n){return this.forwardInput(await bt(n))}async predictAgeAndGender(n){let a=await bt(n),r=await this.forwardInput(a),s=ct(r.age),i=ct(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return eA(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=cg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),tA(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var gp=class extends mp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>Ft([gn([68],d,"float32"),gn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div(Ft(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await bt(t))}async detectLandmarks(t){let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>eg(d)),u=o.filter((p,d)=>!eg(d));return new Eo(Array(68).fill(0).map((p,d)=>new De(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Po=class extends gp{constructor(t=new hp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function nA(e){let t=[],{extractDenseBlock3Params:n}=pg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return $n(e,t),{params:a,paramMappings:t}}function aA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractDenseBlock3Params:r}=lg(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var yg=class extends sn{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=ig(s,n.dense0,!0);return i=ig(i,n.dense1),i=ig(i,n.dense2),i=ya(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return nA(t)}extractParams(t){return aA(t)}};var kd=class extends gp{constructor(t=new yg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var O1=class extends Po{};function rA(e,t){return Y(z(e,t.weights),t.biases)}function L1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=At(e,s,n,r);return o=Y(o,i),o=rA(o,t.scale),a?Xe(o):o}function sA(e,t){return L1(e,t,[1,1],!0)}function z1(e,t){return L1(e,t,[1,1],!1)}function bg(e,t){return L1(e,t,[2,2],!0,"valid")}function ece(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(d1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>Ee(Da(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function iA(e){let{extractWeights:t,getRemainingWeights:n}=An(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=ece(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>Ee($a(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function tce(e,t){let n=sa(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function oA(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=tce(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!c1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return $n(e,t),{params:w,paramMappings:t}}function Ja(e,t){let n=sA(e,t.conv1);return n=z1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function Id(e,t){let n=bg(e,t.conv1);n=z1(n,t.conv2);let a=ya(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var Oo=class extends sn{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=Za(a,[122.782,117.001,104.298]).div(255),i=bg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Ja(i,n.conv32_1),i=Ja(i,n.conv32_2),i=Ja(i,n.conv32_3),i=Id(i,n.conv64_down),i=Ja(i,n.conv64_1),i=Ja(i,n.conv64_2),i=Ja(i,n.conv64_3),i=Id(i,n.conv128_down),i=Ja(i,n.conv128_1),i=Ja(i,n.conv128_2),i=Id(i,n.conv256_down),i=Ja(i,n.conv256_1),i=Ja(i,n.conv256_2),i=Id(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await bt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await bt(t),a=P(()=>ct(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return oA(t)}extractParams(t){return iA(t)}};function nce(e){let t=new Oo;return t.extractWeights(e),t}function xg(e,t){return{...e,...{descriptor:t}}}function ace(e){return typeof e.age=="number"}function vg(e,t){return{...e,...{age:t}}}function rce(e){return(e.gender==="male"||e.gender==="female")&&rp(e.genderProbability)}function wg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function sce(e,t){function n(l,u){let p=Da(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Da(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),E=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:E,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function lA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=An(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=sce(n,t),i=r(),o=s(),u={extra_dim:Rc(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function ice(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function uA(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=ice(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!Or(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return $n(e,t),{params:s,paramMappings:t}}function Pa(e,t,n){return P(()=>{let a=At(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),en(a,0,6)})}var oce=.0010000000474974513;function lce(e,t,n){return P(()=>{let a=Is(e,t.filters,n,"same");return a=ks(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,oce),en(a,0,6)})}function uce(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function pA(e,t){return P(()=>{let n,a=Pa(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=uce(o);a=lce(a,s.depthwise_conv,l),a=Pa(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function pce(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function cA(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=pce(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function cce(e){let t=ct(Ee(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],he(n[0],2)),Y(t[1],he(n[1],2))];return{sizes:n,centers:a}}function dce(e,t){let{sizes:n,centers:a}=cce(e),r=ct(Ee(t,[1,0])),s=he(z(fn(he(r[2],5)),n[0]),2),i=Y(z(he(r[0],10),n[0]),a[0]),o=he(z(fn(he(r[3],5)),n[1]),2),l=Y(z(he(r[1],10),n[1]),a[1]);return Ee(Ft([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function dA(e,t,n){return P(()=>{let a=e.shape[0],r=dce(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=ct(r),l=ct(i);return{boxes:o,scores:l}})}function Lo(e,t){return P(()=>{let n=e.shape[0],a=W(Ro(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(Ro(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function hA(e,t,n){return P(()=>{let a=Pa(e,n.conv_0,[1,1]),r=Pa(a,n.conv_1,[2,2]),s=Pa(r,n.conv_2,[1,1]),i=Pa(s,n.conv_3,[2,2]),o=Pa(i,n.conv_4,[1,1]),l=Pa(o,n.conv_5,[2,2]),u=Pa(l,n.conv_6,[1,1]),p=Pa(u,n.conv_7,[2,2]),d=Lo(t,n.box_predictor_0),c=Lo(e,n.box_predictor_1),h=Lo(r,n.box_predictor_2),m=Lo(i,n.box_predictor_3),f=Lo(l,n.box_predictor_4),g=Lo(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var wa=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var $s=class extends sn{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(he(a,127.5),1),s=pA(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=hA(s.out,s.conv11,n.prediction_layer);return dA(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await bt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new wa(n),s=await bt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(E=>E*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(E=>E*f);return new yt(p[x],new _o(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return uA(t)}extractParams(t){return lA(t)}};function mA(e){let t=new $s;return t.extractWeights(e),t}function hce(e){return mA(e)}var W1=class extends $s{};var fA=.4,gA=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],yA=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],bA=[117.001,114.697,97.404],xA="tiny_yolov2_model",vA="tiny_yolov2_separable_conv_model";var kg=e=>typeof e=="number";function B1(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!kg(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>kg(t.x)&&kg(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(kg)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function yp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Vr(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=At(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),yp(n)})}function Ur(e,t){return P(()=>{let n=ba(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ts(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),yp(n)})}function mce(e,t){let n=pp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=cp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function wA(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=An(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=mce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),E=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),E=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:E,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function fce(e,t){let n=sa(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=dp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function kA(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=fce(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return $n(e,n),{params:i,paramMappings:n}}var Qa=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var V1=class extends sn{constructor(n){super("TinyYolov2");B1(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=Vr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Vr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Vr(r,a.conv6),r=Vr(r,a.conv7),Ro(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?yp(Ro(n,a.conv0,"valid",!1)):Ur(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Ur(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Ur(r,a.conv6):r,r=a.conv7?Ur(r,a.conv7):r,Ro(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?Za(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await bt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new Qa(a),i=await bt(n),o=await this.forwardInput(i,r),l=P(()=>ct(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return y1(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Lr(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return kA(n,this.config)}extractParams(n){let a=this.config.filterSizes||V1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return wA(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Ka(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+dd(y[b][x][w][0]))/p*l,C=(b+dd(y[b][x][w][1]))/p*u,E=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-E/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Co(R,F,R+E,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},zo=V1;zo.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Wo=class extends zo{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:fA,classes:["face"],...t?{anchors:yA,meanRgb:bA}:{anchors:gA,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?vA:xA}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function gce(e,t=!0){let n=new Wo(t);return n.extractWeights(e),n}var Sd=class extends Qa{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var ka=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function Bo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Mo(l)?r(l):l.detection),i=a||(t instanceof Te?await up(t,s):await lp(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function bp(e,t,n,a,r){return Bo([e],t,async s=>n(s[0]),a,r)}var IA=.4,SA=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],TA=[117.001,114.697,97.404];var Vo=class extends zo{constructor(){let t={withSeparableConvs:!0,iouThreshold:IA,classes:["face"],anchors:SA,meanRgb:TA,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var Qe={ssdMobilenetv1:new $s,tinyFaceDetector:new Vo,tinyYolov2:new Wo,faceLandmark68Net:new Po,faceLandmark68TinyNet:new kd,faceRecognitionNet:new Oo,faceExpressionNet:new vd,ageGenderNet:new wd},NA=(e,t)=>Qe.ssdMobilenetv1.locateFaces(e,t),yce=(e,t)=>Qe.tinyFaceDetector.locateFaces(e,t),bce=(e,t)=>Qe.tinyYolov2.locateFaces(e,t),CA=e=>Qe.faceLandmark68Net.detectLandmarks(e),xce=e=>Qe.faceLandmark68TinyNet.detectLandmarks(e),vce=e=>Qe.faceRecognitionNet.computeFaceDescriptor(e),wce=e=>Qe.faceExpressionNet.predictExpressions(e),kce=e=>Qe.ageGenderNet.predictAgeAndGender(e),_A=e=>Qe.ssdMobilenetv1.load(e),Ice=e=>Qe.tinyFaceDetector.load(e),Sce=e=>Qe.tinyYolov2.load(e),Tce=e=>Qe.faceLandmark68Net.load(e),Nce=e=>Qe.faceLandmark68TinyNet.load(e),Cce=e=>Qe.faceRecognitionNet.load(e),_ce=e=>Qe.faceExpressionNet.load(e),Ece=e=>Qe.ageGenderNet.load(e),$ce=_A,Ace=NA,Fce=CA;var Ig=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Uo=class extends Ig{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>dg(a,n[r]))}withAgeAndGender(){return new Ho(this,this.input)}},Go=class extends Ig{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceExpressionNet.predictExpressions(a),this.extractedFaces);return dg(t,n)}withAgeAndGender(){return new jo(this,this.input)}},As=class extends Uo{withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Fs=class extends Go{withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Sg=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ho=class extends Sg{async run(){let t=await this.parentTask,n=await Bo(t,this.input,async a=>Promise.all(a.map(r=>Qe.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return vg(wg(a,i,o),s)})}withFaceExpressions(){return new Uo(this,this.input)}},jo=class extends Sg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await bp(t,this.input,s=>Qe.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return vg(wg(t,a,r),n)}withFaceExpressions(){return new Go(this,this.input)}},Ds=class extends Ho{withFaceExpressions(){return new As(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},Rs=class extends jo{withFaceExpressions(){return new Fs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Td=class extends ka{constructor(n,a){super();this.parentTask=n;this.input=a}},Gr=class extends Td{async run(){let t=await this.parentTask;return(await Bo(t,this.input,a=>Promise.all(a.map(r=>Qe.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>xg(t[r],a))}withFaceExpressions(){return new As(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}},Hr=class extends Td{async run(){let t=await this.parentTask;if(!t)return;let n=await bp(t,this.input,a=>Qe.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return xg(t,n)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}};var Nd=class extends ka{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?Qe.faceLandmark68TinyNet:Qe.faceLandmark68Net}},Cd=class extends Nd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await up(this.input,n):await lp(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>fp(i,r[o]))}withFaceExpressions(){return new As(this,this.input)}withAgeAndGender(){return new Ds(this,this.input)}withFaceDescriptors(){return new Gr(this,this.input)}},_d=class extends Nd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await up(this.input,[n]):await lp(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),fp(t,r)}withFaceExpressions(){return new Fs(this,this.input)}withAgeAndGender(){return new Rs(this,this.input)}withFaceDescriptor(){return new Hr(this,this.input)}};var Ed=class extends ka{constructor(n,a=new wa){super();this.input=n;this.options=a}},xp=class extends Ed{async run(){let{input:t,options:n}=this,a;if(n instanceof Sd)a=Qe.tinyFaceDetector.locateFaces(t,n);else if(n instanceof wa)a=Qe.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof Qa)a=Qe.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>$o({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Cd(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Uo(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Ho(this.runAndExtendWithFaceDetections(),this.input)}},$d=class extends Ed{async run(){let t=await new xp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?$o({},n):void 0)})}withFaceLandmarks(t=!1){return new _d(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Go(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new jo(this.runAndExtendWithFaceDetection(),this.input)}};function Dce(e,t=new wa){return new $d(e,t)}function Tg(e,t=new wa){return new xp(e,t)}async function EA(e,t){return Tg(e,new wa(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Rce(e,t={}){return Tg(e,new Qa(t)).withFaceLandmarks().withFaceDescriptors()}var Mce=EA;function U1(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var Ad=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof gr)return i;if(i instanceof Float32Array)return new gr(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new gr(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>U1(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new sp(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>gr.fromJSON(a));return new Ad(n,t.distanceThreshold)}};function Pce(e){let t=new Vo;return t.extractWeights(e),t}function $A(e,t){let{width:n,height:a}=new yn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>$A(r,{width:n,height:a}));if(Mo(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return fp($o(e,r),s)}return yr(e)?$o(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof yt?e.forSize(n,a):e}var Oce=Y$;return mF(Lce);})(); + ${r.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(a.dataId).id,o=t.dataIdMap.get(r.dataId).id,l=t.dataIdMap.get(s.dataId).id,u=a.shape[0],p=v.sizeFromShape(s.shape),d=t.makeOutput([u,p],a.dtype),c=t.dataIdMap.get(d.dataId).id,h=t.makeOutput([p],s.dtype),m=t.dataIdMap.get(h.dataId).id,f=t.makeOutput([3],"int32"),g=t.dataIdMap.get(f.dataId).id;PA(i,o,l,u,c,m,g);let y=t.readSync(f.dataId),b;switch(y[0]){case 0:{b=N.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(y[1],y[2]);break}case 1:{b=N.getSparseReshapeNegativeOutputDimErrorMessage(y[1],y[2]);break}case 2:b=N.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMultipleErrorMessage(x,w);break}case 4:{let x=Array.from(t.readSync(r.dataId)),w=Array.from(t.readSync(h.dataId));b=N.getSparseReshapeInputOutputMismatchErrorMessage(x,w);break}default:b=""}if(t.disposeData(f.dataId),b)throw t.disposeData(d.dataId),t.disposeData(h.dataId),new Error(b);return[d,h]}var Due={kernelName:$u,backendName:"wasm",setupFunc:$ue,kernelFunc:Fue},OA;function LA(e){OA=e.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function zA(e,t){let{backend:n,inputs:a}=e,{data:r,indices:s,segmentIds:i}=a,o=s.shape[0],l=n.readSync(i.dataId,o-1,o)[0],u=o>0?l+1:0;if(u<0)throw new Error(N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=r.shape.slice();p[0]=u;let d=n.dataIdMap.get(r.dataId).id,c=n.dataIdMap.get(s.dataId).id,h=n.dataIdMap.get(i.dataId).id,m=n.makeOutput(p,r.dtype),f=n.dataIdMap.get(m.dataId).id,g=n.makeOutput([4],"int32"),y=n.dataIdMap.get(g.dataId).id;OA(d,_t[r.dtype],r.shape[0],c,h,f,y,t,0);let b=n.readSync(g.dataId),x;switch(b[0]){case 0:{x=N.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{x=N.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:x=N.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b[1],b[2]);break;case 3:x=N.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(b[1],b[2],b[3]);break;default:x=""}if(n.disposeData(g.dataId),x)throw n.disposeData(m.dataId),new Error(x);return m}function Rue(e){return zA(e,!0)}var Mue={kernelName:kc,backendName:"wasm",setupFunc:LA,kernelFunc:Rue};function Pue(e){return zA(e,!1)}var Oue={kernelName:Ic,backendName:"wasm",setupFunc:LA,kernelFunc:Pue};function Lue(e){let{inputs:t,attrs:n,backend:a}=e,{x:r}=t,{numOrSizeSplits:s,axis:i}=n,o=v.parseAxisParam(i,r.shape)[0],l=N.prepareSplitSize(r,s,o),u=new Array(r.shape.length).fill(0),p=r.shape.slice();return l.map(d=>{let c=[...p];c[o]=d;let h=yi({inputs:{x:r},attrs:{begin:u,size:c},backend:a});return u[o]+=d,h})}var zue={kernelName:Au,backendName:"wasm",kernelFunc:Lue},Wue=Ut(co),Bue=Ut(Sc),Vue=!0,Uue=dn(fo,Vue),WA;function Gue(e){WA=e.wasm.cwrap(Is,null,["number","number","number","number"])}function Hue(e){let{backend:t,inputs:n,attrs:a}=e,{alpha:r}=a,{x:s}=n,i=t.dataIdMap.get(s.dataId).id,o=t.makeOutput(s.shape,s.dtype),l=t.dataIdMap.get(o.dataId).id;return WA(i,r,_t[s.dtype],l),o}var jue={kernelName:Is,backendName:"wasm",setupFunc:Gue,kernelFunc:Hue},BA;function que(e){BA=e.wasm.cwrap(Fu,null,["number","array","number","array","array","array","array","array","number","number"])}function Kue(e){let{backend:t,inputs:n,attrs:a}=e,{x:r}=n,{begin:s,end:i,strides:o,beginMask:l,endMask:u,ellipsisMask:p,newAxisMask:d,shrinkAxisMask:c}=a,{finalShapeSparse:h,finalShape:m,isIdentity:f,sliceDim0:g,isSimpleSlice:y,begin:b,end:x,strides:w}=Kt.sliceInfo(r.shape,s,i,o,l,u,p,d,c),I;if(f)I=Wn({inputs:{x:r},backend:t,attrs:{shape:m}});else if(g||y){v.assert(r.shape.length>=1,()=>`Input must have rank at least 1, got: ${r.shape.length}`);let T=Kt.computeOutShape(b,x,w),C=yi({inputs:{x:r},backend:t,attrs:{begin:b,size:T}});I=Wn({inputs:{x:C},backend:t,attrs:{shape:m}}),t.disposeData(C.dataId)}else{let T=t.makeOutput(h,"float32"),C=t.dataIdMap.get(r.dataId).id,_=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),$=new Uint8Array(new Int32Array(b).buffer),R=new Uint8Array(new Int32Array(x).buffer),F=new Uint8Array(new Int32Array(w).buffer),S=new Uint8Array(new Int32Array(h).buffer),M=new Uint8Array(new Int32Array(v.computeStrides(h)).buffer),B=t.dataIdMap.get(T.dataId).id;BA(C,_,r.shape.length,$,R,F,S,M,h.length,B),I=Wn({inputs:{x:T},backend:t,attrs:{shape:m}}),t.disposeData(T.dataId)}return I}var Xue={kernelName:Fu,backendName:"wasm",setupFunc:que,kernelFunc:Kue};function Yue(e){let{backend:t,inputs:n,attrs:a}=e,{data:r,dataSplits:s}=n,{separator:i,nGramWidths:o,leftPad:l,rightPad:u,padWidth:p,preserveShortSequences:d}=a,c=t.readSync(r.dataId),h=t.readSync(s.dataId),[m,f]=H0(c,h,i,o,l,u,p,d),g=t.makeOutput([m.length],"string"),y=t.dataIdMap.get(g.dataId);y.stringBytes=m;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(f),[g,b]}var Zue={kernelName:Tc,backendName:"wasm",kernelFunc:Yue};function Jue(e){let{backend:t,inputs:n,attrs:a}=e,{input:r,delimiter:s}=n,{skipEmpty:i}=a,o=t.readSync(r.dataId),l=t.readSync(s.dataId),[u,p,d]=j0(o,l[0],i),c=p.length,h=t.makeOutput([c,2],"int32");t.typedArrayFromHeap(h).set(u);let m=t.makeOutput([c],"string"),f=t.dataIdMap.get(m.dataId);f.stringBytes=p;let g=t.makeOutput([2],"int32");return t.typedArrayFromHeap(g).set(d),[h,m,g]}var Que={kernelName:Nc,backendName:"wasm",kernelFunc:Jue};function epe(e){let{backend:t,inputs:n,attrs:a}=e,{input:r}=n,{numBuckets:s}=a,i=t.readSync(r.dataId),o=q0(i,s),l=t.makeOutput(r.shape,"int32");return t.typedArrayFromHeap(l).set(o),l}var tpe={kernelName:Cc,backendName:"wasm",kernelFunc:epe},npe=!0,ape=dn(go,npe),VA;function rpe(e){VA=e.wasm.cwrap(ho,null,["number","number","number","number"])}function spe(e){let{backend:t,inputs:n,attrs:a}=e,{axis:r,keepDims:s}=a,{x:i}=n,o=t.dataIdMap.get(i.dataId).id,l=o,u=i,{transposed:p,axes:d,originalAxes:c,inputWasTransposed:h}=Ds(i,r,t),m=d;if(h){let x=t.dataIdMap.get(p.dataId).id;x!==o&&(u=p,l=x,m=N.getInnerMostAxes(m.length,u.shape.length))}N.assertAxesAreInnerMostDims("sum",m,u.shape.length);let[f,g]=N.computeOutAndReduceShapes(u.shape,m),y=v.sizeFromShape(g),b=t.makeOutput(f,u.dtype);if(v.sizeFromShape(u.shape)!==0){let x=t.dataIdMap.get(b.dataId).id;VA(l,y,_t[b.dtype],x)}if(h&&t.disposeData(p.dataId),s){let x=N.expandShapeToKeepDim(b.shape,c);b.shape=x}return b}var ipe={kernelName:ho,backendName:"wasm",setupFunc:rpe,kernelFunc:spe},ope=Ut(yo),lpe=Ut(bo),UA;function upe(e){UA=e.wasm.cwrap(ks,null,["number","array","number","array","number","number"])}function ppe(e){let{inputs:t,backend:n,attrs:a}=e,{x:r}=t,s=n.dataIdMap.get(r.dataId).id,{reps:i}=a,o=new Array(r.shape.length);for(let c=0;c{let{x:a}=e,{k:r,sorted:s}=n,i=t.dataIdMap.get(a.dataId).id,o=new Uint8Array(new Int32Array(a.shape).buffer),l=a.shape.slice();l[l.length-1]=r;let u=t.makeOutput(l,a.dtype),p=t.dataIdMap.get(u.dataId).id,d=t.makeOutput(l,"int32"),c=t.dataIdMap.get(d.dataId).id;return GA(i,o,a.shape.length,_t[a.dtype],r,s,p,c),[u,d]},mpe={kernelName:Du,backendName:"wasm",setupFunc:dpe,kernelFunc:hpe},HA;function fpe(e){HA=e.wasm.cwrap(Ru,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function gpe(e){let{backend:t,inputs:n,attrs:a}=e,{image:r,transforms:s}=n,{interpolation:i,fillMode:o,fillValue:l,outputShape:u}=a,[p,d,c,h]=r.shape,[m,f]=u!=null?u:[d,c],g=[p,m,f,h],y=new Uint8Array(new Int32Array(v.computeStrides(r.shape)).buffer),b=new Uint8Array(new Int32Array(v.computeStrides(g)).buffer),x=t.makeOutput(g,r.dtype),w=t.dataIdMap.get(x.dataId).id,I=t.dataIdMap.get(r.dataId).id,T=t.dataIdMap.get(s.dataId).id,C=i==="nearest"?1:2,_;switch(o){case"constant":_=1;break;case"reflect":_=2;break;case"wrap":_=3;break;case"nearest":_=4;break;default:_=1;break}return HA(I,T,s.shape[0]>1,p,m,f,h,c,d,y,r.shape.length-1,b,g.length-1,C,_,l,w),x}var ype={kernelName:Ru,backendName:"wasm",setupFunc:fpe,kernelFunc:gpe};function bpe(e){let{inputs:t,backend:n,attrs:a}=e,{value:r}=t,{axis:s}=a;s<0&&(s+=r.shape.length);let i=r.shape[s],o=r.shape.length,l=new Array(o-1),u=0;for(let h=0;h({dataId:h,dtype:m,shape:l}))}var xpe={kernelName:Mu,backendName:"wasm",kernelFunc:bpe};function vpe(e){let{inputs:{x:t},backend:n}=e,a=n.makeOutput(t.shape,t.dtype);return n.typedArrayFromHeap(a).fill(0),a}var wpe={kernelName:Pu,backendName:"wasm",kernelFunc:vpe},kpe=[Kse,Xse,Zse,eie,lie,cie,mie,yie,wie,Cie,Eie,_ie,Fie,Die,Pie,zie,Wie,Bie,Gie,qie,Yie,Qie,noe,aoe,soe,ioe,ooe,loe,coe,doe,moe,yoe,voe,Ioe,Noe,_oe,$oe,Doe,tie,Roe,Ooe,zoe,Boe,Voe,Goe,Hoe,qoe,Xoe,Joe,ele,ale,ile,ule,cle,mle,gle,yle,vle,Ile,Nle,Ele,$le,Dle,Mle,SA,zle,Vle,Hle,qle,Xle,Yle,Zle,Jle,bie,tue,rue,oue,pue,cue,due,fue,bue,wue,kue,Tie,Tue,Cue,Aue,Due,Mue,Oue,zue,Wue,Bue,Uue,jue,Xue,Zue,Que,tpe,ape,ipe,ope,lpe,cpe,mpe,ype,sie,xpe,wpe];for(let e of kpe)_c(e);var Ex=H();Ex.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(e){return!1}});Ex.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Ex.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(e){return!1}});var zI=bs(LF()),Ipe=bs(zF()),WI=bs(WF()),BI=zI.default||zI,Spe=WI.default||WI,jA=class extends cc{constructor(e){super(),this.wasm=e,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(qA),_x=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new lm(this,_a())}write(e,t,n){let a={id:this.dataIdNextNumber++};return this.move(a,e,t,n,1),a}numDataIds(){return this.dataIdMap.numDataIds()}async time(e){let t=v.now();return e(),{kernelMs:v.now()-t}}move(e,t,n,a,r){let s=this.dataIdNextNumber++;if(a==="string"){let u=t;this.dataIdMap.set(e,{id:s,stringBytes:u,shape:n,dtype:a,memoryOffset:null,refCount:r});return}let i=v.sizeFromShape(n),o=i*v.bytesPerElement(a),l=this.wasm._malloc(o);this.dataIdMap.set(e,{id:s,memoryOffset:l,shape:n,dtype:a,refCount:r}),this.wasm.tfjs.registerTensor(s,i,l),t!=null&&this.wasm.HEAPU8.set(new Uint8Array(t.buffer,t.byteOffset,o),l)}async read(e){return this.readSync(e)}readSync(e,t,n){let{memoryOffset:a,dtype:r,shape:s,stringBytes:i}=this.dataIdMap.get(e);if(r==="string")return(t==null||t===0)&&(n==null||n>=i.length)?i:i.slice(t,n);t=t||0,n=n||v.sizeFromShape(s);let o=v.bytesPerElement(r),l=this.wasm.HEAPU8.slice(a+t*o,a+n*o);return Cpe(l.buffer,r)}disposeData(e,t=!1){if(this.dataIdMap.has(e)){let n=this.dataIdMap.get(e);if(n.refCount--,!t&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(e)}return!0}refCount(e){return this.dataIdMap.has(e)?this.dataIdMap.get(e).refCount:0}incRef(e){let t=this.dataIdMap.get(e);t!=null&&t.refCount++}floatPrecision(){return 32}getMemoryOffset(e){return this.dataIdMap.get(e).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(e,t,n){let a;if(n==null)a=this.write(null,e,t);else{let r=this.dataIdNextNumber++;a={id:r},this.dataIdMap.set(a,{id:r,memoryOffset:n,shape:e,dtype:t,refCount:1});let s=v.sizeFromShape(e);this.wasm.tfjs.registerTensor(r,s,n)}return{dataId:a,shape:e,dtype:t}}typedArrayFromHeap({shape:e,dtype:t,dataId:n}){let a=this.wasm.HEAPU8.buffer,{memoryOffset:r}=this.dataIdMap.get(n),s=v.sizeFromShape(e);switch(t){case"float32":return new Float32Array(a,r,s);case"int32":return new Int32Array(a,r,s);case"bool":return new Uint8Array(a,r,s);default:throw new Error(`Unknown dtype ${t}`)}}};function Tpe(e){return(t,n)=>(v.fetch(e,{credentials:"same-origin"}).then(a=>{a.ok||t.env.a(`failed to load wasm binary file at '${e}'`),a.arrayBuffer().then(r=>{WebAssembly.instantiate(r,t).then(s=>{n(s.instance,s.module)})})}),{})}function VI(e,t,n){if(im!=null)return im;let a="tfjs-backend-wasm.wasm";return e&&t?a="tfjs-backend-wasm-threaded-simd.wasm":e&&(a="tfjs-backend-wasm-simd.wasm"),qp!=null&&qp[a]!=null?qp[a]:n+a}async function Npe(){let[e,t]=await Promise.all([H().getAsync("WASM_HAS_SIMD_SUPPORT"),H().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((n,a)=>{let r={};r.locateFile=(o,l)=>{if(o.endsWith(".worker.js")){let u=Ipe.wasmWorkerContents.replace(/\n/g,"\\n"),p=new Blob([u],{type:"application/javascript"});return URL.createObjectURL(p)}return o.endsWith(".wasm")?VI(e,t,Gp!=null?Gp:l):l+o},h1&&(r.instantiateWasm=Tpe(VI(e,t,Gp!=null?Gp:"")));let s=!1;r.onAbort=()=>{s||Kp||(Kp=!0,a({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"}))};let i;t&&e&&im==null?(r.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+BI.toString()],{type:"text/javascript"}),i=BI(r)):i=Spe(r),i.then(o=>{s=!0,Kp=!1;let l=null;o.tfjs={init:o.cwrap("init",null,[]),initWithThreadsCount:o.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:o.cwrap("get_threads_count","number",[]),registerTensor:o.cwrap("register_tensor",null,["number","number","number"]),disposeData:o.cwrap("dispose_data",l,["number"]),dispose:o.cwrap("dispose",l,[])},n({wasm:o})}).catch(a)})}function Cpe(e,t){switch(t){case"float32":return new Float32Array(e);case"int32":return new Int32Array(e);case"bool":return new Uint8Array(e);default:throw new Error(`Unknown dtype ${t}`)}}var Epe=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],im=null,Gp=null,qp={},Kp=!1,h1=!1;function _pe(e,t=!1){if(Hx("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),Kp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");im=e,h1=t}function Ape(e,t=!1){if(Kp)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof e=="string")Gp=e;else{qp=e;let n=Epe.filter(a=>qp[a]==null);if(n.length>0)throw new Error(`There were no entries found for the following binaries: ${n.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}h1=t}var qA=-1,_x=-1;function $pe(e){qA=e}function Fpe(){if(_x===-1)throw new Error("WASM backend not initialized.");return _x}var Dpe="4.1.0",Rpe=2;Hm("wasm",async()=>{let{wasm:e}=await Npe();return new jA(e)},Rpe);var UI="4.1.0",Mpe="4.1.0",Ppe="4.1.0",Ope="4.1.0",Lpe="4.1.0",zpe={tfjs:UI,"tfjs-core":UI,"tfjs-converter":Mpe,"tfjs-backend-cpu":Ppe,"tfjs-backend-webgl":Ope,"tfjs-backend-wasm":Lpe};var L1={};sh(L1,{AnchorPosition:()=>_1,DrawBox:()=>fd,DrawBoxOptions:()=>rg,DrawFaceLandmarks:()=>fg,DrawFaceLandmarksOptions:()=>mg,DrawTextField:()=>Br,DrawTextFieldOptions:()=>lp,drawContour:()=>Lr,drawDetections:()=>Kpe,drawFaceExpressions:()=>Qpe,drawFaceLandmarks:()=>tce});function Lr(e,t,n=!1){if(e.beginPath(),t.slice(1).forEach(({x:a,y:r},s)=>{let i=t[s];e.moveTo(i.x,i.y),e.lineTo(a,r)}),n){let a=t[t.length-1],r=t[0];if(!a||!r)return;e.moveTo(a.x,a.y),e.lineTo(r.x,r.y)}e.stroke()}var y1={};sh(y1,{computeReshapedDimensions:()=>g1,getCenterPoint:()=>$o,isDimensions:()=>ng,isEven:()=>tg,isFloat:()=>f1,isTensor:()=>_o,isTensor1D:()=>Wpe,isTensor2D:()=>m1,isTensor3D:()=>zr,isTensor4D:()=>wa,isValidNumber:()=>Za,isValidProbablitiy:()=>sp,range:()=>yr,round:()=>Ao});var bn=class{constructor(t,n){if(!Za(t)||!Za(n))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:n})}`);this._width=t,this._height=n}get width(){return this._width}get height(){return this._height}reverse(){return new bn(1/this.width,1/this.height)}};function _o(e,t){return e instanceof Te&&e.shape.length===t}function Wpe(e){return _o(e,1)}function m1(e){return _o(e,2)}function zr(e){return _o(e,3)}function wa(e){return _o(e,4)}function f1(e){return e%1!==0}function tg(e){return e%2===0}function Ao(e,t=2){let n=10**t;return Math.floor(e*n)/n}function ng(e){return e&&e.width&&e.height}function g1({width:e,height:t},n){let a=n/Math.max(t,e);return new bn(Math.round(e*a),Math.round(t*a))}function $o(e){return e.reduce((t,n)=>t.add(n),new De(0,0)).div(new De(e.length,e.length))}function yr(e,t,n){return Array(e).fill(0).map((a,r)=>t+r*n)}function Za(e){return!!e&&e!==1/0&&e!==-1/0&&!Number.isNaN(e)||e===0}function sp(e){return Za(e)&&e>=0&&e<=1}var De=class{constructor(t,n){this._x=t,this._y=n}get x(){return this._x}get y(){return this._y}add(t){return new De(this.x+t.x,this.y+t.y)}sub(t){return new De(this.x-t.x,this.y-t.y)}mul(t){return new De(this.x*t.x,this.y*t.y)}div(t){return new De(this.x/t.x,this.y/t.y)}abs(){return new De(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new De(Math.floor(this.x),Math.floor(this.y))}};var st=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(Za)}static assertIsValidBox(t,n,a=!1){if(!st.isRect(t))throw new Error(`${n} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!a&&(t.width<0||t.height<0))throw new Error(`${n} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,n=!0){let a=t||{},r=[a.left,a.top,a.right,a.bottom].every(Za),s=[a.x,a.y,a.width,a.height].every(Za);if(!s&&!r)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(a)}`);let[i,o,l,u]=s?[a.x,a.y,a.width,a.height]:[a.left,a.top,a.right-a.left,a.bottom-a.top];st.assertIsValidBox({x:i,y:o,width:l,height:u},"Box.constructor",n),this._x=i,this._y=o,this._width=l,this._height=u}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new De(this.left,this.top)}get topRight(){return new De(this.right,this.top)}get bottomLeft(){return new De(this.left,this.bottom)}get bottomRight(){return new De(this.right,this.bottom)}round(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.round(s));return new st({x:t,y:n,width:a,height:r})}floor(){let[t,n,a,r]=[this.x,this.y,this.width,this.height].map(s=>Math.floor(s));return new st({x:t,y:n,width:a,height:r})}toSquare(){let{x:t,y:n,width:a,height:r}=this,s=Math.abs(a-r);return an&&(o=-d+n+a,d=n),c>t&&(l=-c+t+r,c=t),u<1&&(l=2-u,u=1),p<1&&(l=2-p,p=1),{dy:i,edy:l,dx:s,edx:o,y:p,ey:c,x:u,ex:d,w:a,h:r}}calibrate(t){return new st({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Fo=class extends st{constructor(t,n,a,r,s=!1){super({left:t,top:n,right:a,bottom:r},s)}};var Wr=class{constructor(t,n,a,r,s){this._imageDims=new bn(s.width,s.height),this._score=t,this._classScore=n,this._className=a,this._box=new st(r).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new st(this._box).rescale(this.imageDims.reverse())}forSize(t,n){return new Wr(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:n})}};var yt=class extends Wr{constructor(t,n,a){super(t,t,"",n,a)}forSize(t,n){let{score:a,relativeBox:r,imageDims:s}=super.forSize(t,n);return new yt(a,r,s)}};function b1(e,t,n=!0){let a=Math.max(0,Math.min(e.right,t.right)-Math.max(e.left,t.left)),r=Math.max(0,Math.min(e.bottom,t.bottom)-Math.max(e.top,t.top)),s=a*r;return n?s/(e.area+t.area-s):s/Math.min(e.area,t.area)}function x1(e){let t=e.map(o=>o.x),n=e.map(o=>o.y),a=t.reduce((o,l)=>lloo({score:i,boxIndex:o})).sort((i,o)=>i.score-o.score).map(i=>i.boxIndex),s=[];for(;r.length>0;){let i=r.pop();s.push(i);let o=r,l=[];for(let u=0;ul[p]<=n)}return s}function Ja(e,t){return P(()=>{let[n,a,r]=t,s=yn([...e.shape.slice(0,3),1],n,"float32"),i=yn([...e.shape.slice(0,3),1],a,"float32"),o=yn([...e.shape.slice(0,3),1],r,"float32"),l=Ze([s,i,o],3);return pe(e,l)})}function w1(e,t=!1){return P(()=>{let[n,a]=e.shape.slice(1);if(n===a)return e;let r=Math.abs(n-a),s=Math.round(r*(t?.5:1)),i=n>a?2:1,o=c=>{let h=e.shape.slice();return h[i]=c,yn(h,0,"float32")},l=o(s),u=r-l.shape[i],d=[t&&u?o(u):null,e,l].filter(c=>!!c).map(c=>le(c,"float32"));return Ze(d,i)})}function Bpe(e){let t=e.slice();for(let n=t.length-1;n>0;n--){let a=Math.floor(Math.random()*(n+1)),r=t[n];t[n]=t[a],t[a]=r}return t}function hd(e){return 1/(1+Math.exp(-e))}function Vpe(e){return Math.log(e/(1-e))}var Do=class extends st{constructor(t,n,a,r,s=!1){super({x:t,y:n,width:a,height:r},s)}};var Upe=.5,Gpe=.43,Hpe=.45,ra=class{constructor(t,n,a=new De(0,0)){let{width:r,height:s}=n;this._imgDims=new bn(r,s),this._shift=a,this._positions=t.map(i=>i.mul(new De(r,s)).add(a))}get shift(){return new De(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new De(this.imageWidth,this.imageHeight)))}forSize(t,n){return new this.constructor(this.relativePositions,{width:t,height:n})}shiftBy(t,n){return new this.constructor(this.relativePositions,this._imgDims,new De(t,n))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,n={}){if(t){let s=t instanceof yt?t.box.floor():new st(t);return this.shiftBy(s.x,s.y).align(null,n)}let{useDlibAlignment:a,minBoxPadding:r}={useDlibAlignment:!1,minBoxPadding:.2,...n};return a?this.alignDlib():this.alignMinBbox(r)}alignDlib(){let t=this.getRefPointsForAlignment(),[n,a,r]=t,s=d=>r.sub(d).magnitude(),i=(s(n)+s(a))/2,o=Math.floor(i/Hpe),l=$o(t),u=Math.floor(Math.max(0,l.x-Upe*o)),p=Math.floor(Math.max(0,l.y-Gpe*o));return new Do(u,p,Math.min(o,this.imageWidth+u),Math.min(o,this.imageHeight+p))}alignMinBbox(t){let n=x1(this.positions);return n.pad(n.width*t,n.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var k1=class extends ra{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],$o([t[3],t[4]])]}};var Ro=class extends ra{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map($o)}};var ip=class{constructor(t,n){this._label=t,this._distance=n}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ao(this.distance)})`:""}`}};var op=class extends st{constructor(n,a){super(n);this._label=a}static assertIsValidLabeledBox(n,a){if(st.assertIsValidBox(n,a),!Za(n.label))throw new Error(`${a} - expected property label (${n.label}) to be a number`)}get label(){return this._label}};var br=class{constructor(t,n){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(n)||n.some(a=>!(a instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=n}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let n=t.descriptors.map(a=>new Float32Array(a));return new br(t.label,n)}};var I1=class extends op{constructor(n,a,r,s){super(n,a);this._score=r,this._classScore=s}static assertIsValidPredictedBox(n,a){if(op.assertIsValidLabeledBox(n,a),!sp(n.score)||!sp(n.classScore))throw new Error(`${a} - expected properties score (${n.score}) and (${n.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function xr(e){return e.detection instanceof yt}function Mo(e,t){return{...e,...{detection:t}}}function S1(){let e=window.fetch;if(!e)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:e,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function md(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function ag(e){let t="";if(!e&&md())try{e=Zr("fs")}catch(a){t=a.toString()}return{readFile:e?a=>new Promise((r,s)=>{e.readFile(a,(i,o)=>i?s(i):r(o))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function T1(){let e=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,n=global.Video||global.HTMLVideoElement,a=()=>{if(e)return new e;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},r=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},s=()=>{if(n)return new n;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},i=global.fetch,o=ag();return{Canvas:e||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:a,createImageElement:r,createVideoElement:s,fetch:i,...o}}function N1(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var sn;function jpe(){if(!sn)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return sn}function C1(e){sn=e}function E1(){return N1()?C1(S1()):md()?C1(T1()):null}function qpe(e){if(sn||E1(),!sn)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=sn.Canvas,Image:n=sn.Image}=e;sn.Canvas=t,sn.Image=n,sn.createCanvasElement=e.createCanvasElement||(()=>new t),sn.createImageElement=e.createImageElement||(()=>new n),sn.ImageData=e.ImageData||sn.ImageData,sn.Video=e.Video||sn.Video,sn.fetch=e.fetch||sn.fetch,sn.readFile=e.readFile||sn.readFile}var Qe={getEnv:jpe,setEnv:C1,initialize:E1,createBrowserEnv:S1,createFileSystem:ag,createNodejsEnv:T1,monkeyPatch:qpe,isBrowser:N1,isNodejs:md};E1();function Po(e){return!Qe.isNodejs()&&typeof e=="string"?document.getElementById(e):e}function Gn(e){let{Canvas:t,CanvasRenderingContext2D:n}=Qe.getEnv();if(e instanceof n)return e;let a=Po(e);if(!(a instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let r=a.getContext("2d");if(!r)throw new Error("resolveContext2d - canvas 2d context is null");return r}var _1=(r=>(r.TOP_LEFT="TOP_LEFT",r.TOP_RIGHT="TOP_RIGHT",r.BOTTOM_LEFT="BOTTOM_LEFT",r.BOTTOM_RIGHT="BOTTOM_RIGHT",r))(_1||{}),lp=class{constructor(t={}){let{anchorPosition:n,backgroundColor:a,fontColor:r,fontSize:s,fontStyle:i,padding:o}=t;this.anchorPosition=n||"TOP_LEFT",this.backgroundColor=a||"rgba(0, 0, 0, 0.5)",this.fontColor=r||"rgba(255, 255, 255, 1)",this.fontSize=s||14,this.fontStyle=i||"Georgia",this.padding=o||4}},Br=class{constructor(t,n,a={}){this.text=typeof t=="string"?[t]:t instanceof Br?t.text:t,this.anchor=n,this.options=new lp(a)}measureWidth(t){let{padding:n}=this.options;return this.text.map(a=>t.measureText(a).width).reduce((a,r)=>a{let m=l+d.x,f=l+d.y+(h+1)*i;a.fillText(c,m,f)})}};var rg=class{constructor(t={}){let{boxColor:n,lineWidth:a,label:r,drawLabelOptions:s}=t;this.boxColor=n||"rgba(0, 0, 255, 1)",this.lineWidth=a||2,this.label=r;let i={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new lp({...i,...s})}},fd=class{constructor(t,n={}){this.box=new st(t),this.options=new rg(n)}draw(t){let n=Gn(t),{boxColor:a,lineWidth:r}=this.options,{x:s,y:i,width:o,height:l}=this.box;n.strokeStyle=a,n.lineWidth=r,n.strokeRect(s,i,o,l);let{label:u}=this.options;u&&new Br([u],{x:s-r/2,y:i},this.options.drawLabelOptions).draw(t)}};function Kpe(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof yt?a.score:xr(a)?a.detection.score:void 0,s=a instanceof yt?a.box:xr(a)?a.detection.box:new st(a),i=r?`${Ao(r)}`:void 0;new fd(s,{label:i}).draw(e)})}function gd(e){let{Image:t,Video:n}=Qe.getEnv();return e instanceof t&&e.complete||e instanceof n&&e.readyState>=3}function A1(e){return new Promise((t,n)=>{(e instanceof Qe.getEnv().Canvas||gd(e))&&t(null);function a(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),n(s))}function r(s){!s.currentTarget||(s.currentTarget.removeEventListener("load",r),s.currentTarget.removeEventListener("error",a),t(s))}e.addEventListener("load",r),e.addEventListener("error",a)})}function $1(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToImage - expected buf to be of type: Blob"));let a=new FileReader;a.onload=()=>{typeof a.result!="string"&&n(new Error("bufferToImage - expected reader.result to be a string, in onload"));let r=Qe.getEnv().createImageElement();r.onload=()=>t(r),r.onerror=n,r.src=a.result},a.onerror=n,a.readAsDataURL(e)})}function Oo(e){let{Image:t,Video:n}=Qe.getEnv();return e instanceof t?new bn(e.naturalWidth,e.naturalHeight):e instanceof n?new bn(e.videoWidth,e.videoHeight):new bn(e.width,e.height)}function Lo({width:e,height:t}){let{createCanvasElement:n}=Qe.getEnv(),a=n();return a.width=e,a.height=t,a}function yd(e,t){let{ImageData:n}=Qe.getEnv();if(!(e instanceof n)&&!gd(e))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:a,height:r}=t||Oo(e),s=Lo({width:a,height:r});return e instanceof n?Gn(s).putImageData(e,0,0):Gn(s).drawImage(e,0,0,a,r),s}async function F1(e,t){let n=t||Qe.getEnv().createCanvasElement(),[a,r,s]=e.shape.slice(wa(e)?1:0),i=P(()=>e.as3D(a,r,s).toInt());return await xo.toPixels(i,n),i.dispose(),n}function sg(e){let{Image:t,Canvas:n,Video:a}=Qe.getEnv();return e instanceof t||e instanceof n||e instanceof a}function D1(e,t,n=!1){let{Image:a,Canvas:r}=Qe.getEnv();if(!(e instanceof a||e instanceof r))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Lo({width:1,height:1});let s=Oo(e),i=t/Math.max(s.height,s.width),o=i*s.width,l=i*s.height,u=Lo({width:t,height:t}),p=e instanceof r?e:yd(e),d=Math.abs(o-l)/2,c=n&&o0&&p.height>0&&Gn(u).drawImage(p,c,h,o,l),u}var vr=class{constructor(t,n=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=n,this._batchSize=t.length,t.forEach((a,r)=>{if(zr(a)){this._imageTensors[r]=a,this._inputDimensions[r]=a.shape;return}if(wa(a)){let i=a.shape[0];if(i!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${i} passed, but not supported in input array`);this._imageTensors[r]=a,this._inputDimensions[r]=a.shape.slice(1);return}let s=a instanceof Qe.getEnv().Canvas?a:yd(a);this._canvases[r]=s,this._inputDimensions[r]=[s.height,s.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return yr(this.batchSize,0,1).map((t,n)=>this.getReshapedInputDimensions(n))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let n=this.getInputWidth(t),a=this.getInputHeight(t);return g1({width:n,height:a},this.inputSize)}toBatchTensor(t,n=!0){return this._inputSize=t,P(()=>{let a=yr(this.batchSize,0,1).map(s=>{let i=this.getInput(s);if(i instanceof Te){let o=wa(i)?i:Qt(i);return o=w1(o,n),(o.shape[1]!==t||o.shape[2]!==t)&&(o=$a.resizeBilinear(o,[t,t],!1,!1)),o.as3D(t,t,3)}if(i instanceof Qe.getEnv().Canvas)return xo.fromPixels(D1(i,t,n));throw new Error(`toBatchTensor - at batchIdx ${s}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${i}`)});return $t(a.map(s=>le(s,"float32"))).as4D(this.batchSize,t,t,3)})}};async function bt(e){if(e instanceof vr)return e;let t=Array.isArray(e)?e:[e];if(!t.length)throw new Error("toNetInput - empty array passed as input");let n=r=>Array.isArray(e)?` at input index ${r}:`:"",a=t.map(Po);return a.forEach((r,s)=>{if(!sg(r)&&!zr(r)&&!wa(r))throw typeof t[s]=="string"?new Error(`toNetInput -${n(s)} string passed, but could not resolve HTMLElement for element id ${t[s]}`):new Error(`toNetInput -${n(s)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(wa(r)){let i=r.shape[0];if(i!==1)throw new Error(`toNetInput -${n(s)} tf.Tensor4D with batchSize ${i} passed, but not supported in input array`)}}),await Promise.all(a.map(r=>sg(r)&&A1(r))),new vr(a,Array.isArray(e))}async function up(e,t){let{Canvas:n}=Qe.getEnv(),a=e;if(!(e instanceof n)){let i=await bt(e);if(i.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let o=i.getInput(0);a=o instanceof n?o:await F1(o)}let r=Gn(a);return t.map(i=>i instanceof yt?i.forSize(a.width,a.height).box.floor():i).map(i=>i.clipAtImageBorders(a.width,a.height)).map(({x:i,y:o,width:l,height:u})=>{let p=Lo({width:l,height:u});return l>0&&u>0&&Gn(p).putImageData(r.getImageData(i,o,l,u),0,0),p})}async function pp(e,t){if(!zr(e)&&!wa(e))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(wa(e)&&e.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return P(()=>{let[n,a,r]=e.shape.slice(wa(e)?1:0);return t.map(o=>o instanceof yt?o.forSize(a,n).box:o).map(o=>o.clipAtImageBorders(a,n)).filter(o=>o.width>0&&o.height>0).map(({x:o,y:l,width:u,height:p})=>wo(e.as3D(n,a,r),[l,o,0],[p,u,r]))})}async function Vr(e,t){let{fetch:n}=Qe.getEnv(),a=await n(e,t);if(!(a.status<400))throw new Error(`failed to fetch: (${a.status}) ${a.statusText}, from url: ${a.url}`);return a}async function Xpe(e){let t=await Vr(e),n=await t.blob();if(!n.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${n.type}, for url: ${t.url}`);return $1(n)}async function R1(e){return(await Vr(e)).json()}async function Ype(e){return new Float32Array(await(await Vr(e)).arrayBuffer())}function KA(e){return new Promise((t,n)=>{e instanceof Blob||n(new Error("bufferToVideo - expected buf to be of type: Blob"));let a=Qe.getEnv().createVideoElement();a.oncanplay=()=>t(a),a.onerror=n,a.playsInline=!0,a.muted=!0,a.src=URL.createObjectURL(e),a.play()})}async function Zpe(e){let t=await Vr(e),n=await t.blob();if(!n.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${n.type}, for url: ${t.url}`);return KA(n)}function ig(e,t){let n=`${t}-weights_manifest.json`;if(!e)return{modelBaseUri:"",manifestUri:n};if(e==="/")return{modelBaseUri:"/",manifestUri:`/${n}`};let a=e.startsWith("http://")?"http://":e.startsWith("https://")?"https://":"";e=e.replace(a,"");let r=e.split("/").filter(o=>o),s=e.endsWith(".json")?r[r.length-1]:n,i=a+(e.endsWith(".json")?r.slice(0,r.length-1):r).join("/");return i=e.startsWith("/")?`/${i}`:i,{modelBaseUri:i,manifestUri:i==="/"?`/${s}`:`${i}/${s}`}}async function M1(e,t){let{manifestUri:n,modelBaseUri:a}=ig(e,t),r=await R1(n);return Gt.loadWeights(r,a)}function Jpe(e,t,n=!1){let{width:a,height:r}=n?Oo(t):t;return e.width=a,e.height=r,{width:a,height:r}}var on=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:n,objProp:a}=this.traversePropertyPath(t);return n[a]}reassignParamFromPath(t,n){let{obj:a,objProp:r}=this.traversePropertyPath(t);a[r].dispose(),a[r]=n}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof ps)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof ps))}variable(){this.getFrozenParams().forEach(({path:t,tensor:n})=>{this.reassignParamFromPath(t,n.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:n})=>{let a=mn(n.dataSync());n.dispose(),this.reassignParamFromPath(t,a)})}dispose(t=!0){this.getParamList().forEach(n=>{if(t&&n.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${n.path}`);n.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,n)=>t.concat(n)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let n=await M1(t,this.getDefaultModelName());this.loadFromWeightMap(n)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:n}=Qe.getEnv(),{manifestUri:a,modelBaseUri:r}=ig(t,this.getDefaultModelName()),s=u=>Promise.all(u.map(p=>n(p).then(d=>d.buffer))),i=Gt.weightsLoaderFactory(s),o=JSON.parse((await n(a)).toString()),l=await i(o,r);this.loadFromWeightMap(l)}loadFromWeightMap(t){let{paramMappings:n,params:a}=this.extractParamsFromWeightMap(t);this._paramMappings=n,this._params=a}extractWeights(t){let{paramMappings:n,params:a}=this.extractParams(t);this._paramMappings=n,this._params=a}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let n=t.split("/").reduce((s,i)=>{if(!s.nextObj.hasOwnProperty(i))throw new Error(`traversePropertyPath - object does not have property ${i}, for path ${t}`);return{obj:s.nextObj,objProp:i,nextObj:s.nextObj[i]}},{nextObj:this.params}),{obj:a,objProp:r}=n;if(!a||!r||!(a[r]instanceof Te))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:a,objProp:r}}};function Hn(e,t,n){return P(()=>{let a=_s(e,t.depthwise_filter,t.pointwise_filter,n,"same");return a=Y(a,t.bias),a})}function og(e,t,n=!1){return P(()=>{let a=Xe(n?Y(Ft(e,t.conv0.filters,[2,2],"same"),t.conv0.bias):Hn(e,t.conv0,[2,2])),r=Hn(a,t.conv1,[1,1]),s=Xe(Y(a,r)),i=Hn(s,t.conv2,[1,1]);return Xe(Y(a,Y(r,i)))})}function bd(e,t,n=!1,a=!0){return P(()=>{let r=Xe(n?Y(Ft(e,t.conv0.filters,a?[2,2]:[1,1],"same"),t.conv0.bias):Hn(e,t.conv0,a?[2,2]:[1,1])),s=Hn(r,t.conv1,[1,1]),i=Xe(Y(r,s)),o=Hn(i,t.conv2,[1,1]),l=Xe(Y(r,Y(s,o))),u=Hn(l,t.conv3,[1,1]);return Xe(Y(r,Y(s,Y(o,u))))})}function zo(e,t,n="same",a=!1){return P(()=>{let r=Y(Ft(e,t.filters,[1,1],n),t.bias);return a?Xe(r):r})}function An(e,t){Object.keys(e).forEach(n=>{t.some(a=>a.originalPath===n)||e[n].dispose()})}function cp(e,t){return(n,a,r,s)=>{let i=Ma(e(n*a*r*r),[r,r,n,a]),o=Ke(e(a));return t.push({paramPath:`${s}/filters`},{paramPath:`${s}/bias`}),{filters:i,bias:o}}}function lg(e,t){return(n,a,r)=>{let s=Fa(e(n*a),[n,a]),i=Ke(e(a));return t.push({paramPath:`${r}/weights`},{paramPath:`${r}/bias`}),{weights:s,bias:i}}}var xd=class{constructor(t,n,a){this.depthwise_filter=t;this.pointwise_filter=n;this.bias=a}};function dp(e,t){return(n,a,r)=>{let s=Ma(e(9*n),[3,3,n,1]),i=Ma(e(n*a),[1,1,n,a]),o=Ke(e(a));return t.push({paramPath:`${r}/depthwise_filter`},{paramPath:`${r}/pointwise_filter`},{paramPath:`${r}/bias`}),new xd(s,i,o)}}function hp(e){return t=>{let n=e(`${t}/depthwise_filter`,4),a=e(`${t}/pointwise_filter`,4),r=e(`${t}/bias`,1);return new xd(n,a,r)}}function sa(e,t){return(n,a,r)=>{let s=e[n];if(!_o(s,a))throw new Error(`expected weightMap[${n}] to be a Tensor${a}D, instead have ${s}`);return t.push({originalPath:n,paramPath:r||n}),s}}function $n(e){let t=e;function n(r){let s=t.slice(0,r);return t=t.slice(r),s}function a(){return t}return{extractWeights:n,getRemainingWeights:a}}function ug(e,t){let n=cp(e,t),a=dp(e,t);function r(i,o,l,u=!1){let p=u?n(i,o,3,`${l}/conv0`):a(i,o,`${l}/conv0`),d=a(o,o,`${l}/conv1`),c=a(o,o,`${l}/conv2`);return{conv0:p,conv1:d,conv2:c}}function s(i,o,l,u=!1){let{conv0:p,conv1:d,conv2:c}=r(i,o,l,u),h=a(o,o,`${l}/conv3`);return{conv0:p,conv1:d,conv2:c,conv3:h}}return{extractDenseBlock3Params:r,extractDenseBlock4Params:s}}function XA(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock4Params:r}=ug(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2"),l=r(128,256,"dense3");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o,dense3:l}}}function pg(e){return t=>{let n=e(`${t}/filters`,4),a=e(`${t}/bias`,1);return{filters:n,bias:a}}}function cg(e,t){let n=sa(e,t),a=pg(n),r=hp(n);function s(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`);return{conv0:u,conv1:p,conv2:d}}function i(o,l=!1){let u=l?a(`${o}/conv0`):r(`${o}/conv0`),p=r(`${o}/conv1`),d=r(`${o}/conv2`),c=r(`${o}/conv3`);return{conv0:u,conv1:p,conv2:d,conv3:c}}return{extractDenseBlock3Params:s,extractDenseBlock4Params:i}}function YA(e){let t=[],{extractDenseBlock4Params:n}=cg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2"),dense3:n("dense3")};return An(e,t),{params:a,paramMappings:t}}var mp=class extends on{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=bd(s,n.dense0,!0);return i=bd(i,n.dense1),i=bd(i,n.dense2),i=bd(i,n.dense3),i=ba(i,[7,7],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return YA(t)}extractParams(t){return XA(t)}};function vd(e,t){return P(()=>Y(Fe(e,t.weights),t.bias))}function ZA(e,t,n){let a=[],{extractWeights:r,getRemainingWeights:s}=$n(e),o=lg(r,a)(t,n,"fc");if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{paramMappings:a,params:{fc:o}}}function JA(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:a("fc")};return An(e,t),{params:r,paramMappings:t}}function dg(e){let t={},n={};return Object.keys(e).forEach(a=>{let r=a.startsWith("fc")?n:t;r[a]=e[a]}),{featureExtractorMap:t,classifierMap:n}}var fp=class extends on{constructor(n,a){super(n);this._faceFeatureExtractor=a}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof vr?this.faceFeatureExtractor.forwardInput(n):n;return vd(r.as2D(r.shape[0],-1),a.fc)})}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return ZA(n,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=dg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),JA(r)}extractParams(n){let a=this.getClassifierChannelsIn(),r=this.getClassifierChannelsOut(),s=r*a+r,i=n.slice(0,n.length-s),o=n.slice(n.length-s);return this.faceFeatureExtractor.extractWeights(i),this.extractClassifierParams(o)}};var P1=["neutral","happy","sad","angry","fearful","disgusted","surprised"],Ur=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);P1.forEach((n,a)=>{this[n]=t[a]})}asSortedArray(){return P1.map(t=>({expression:t,probability:this[t]})).sort((t,n)=>n.probability-t.probability)}};var wd=class extends fp{constructor(t=new mp){super("FaceExpressionNet",t)}forwardInput(t){return P(()=>Xa(this.runNet(t)))}async forward(t){return this.forwardInput(await bt(t))}async predictExpressions(t){let n=await bt(t),a=await this.forwardInput(n),r=await Promise.all(pt(a).map(async i=>{let o=i.dataSync();return i.dispose(),o}));a.dispose();let s=r.map(i=>new Ur(i));return n.isBatchInput?s:s[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function O1(e){return e.expressions instanceof Ur}function hg(e,t){return{...e,...{expressions:t}}}function Qpe(e,t,n=.1,a){(Array.isArray(t)?t:[t]).forEach(s=>{let i=s instanceof Ur?s:O1(s)?s.expressions:void 0;if(!i)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let l=i.asSortedArray().filter(d=>d.probability>n),u=xr(s)?s.detection.box.bottomLeft:a||new De(0,0);new Br(l.map(d=>`${d.expression} (${Ao(d.probability)})`),u).draw(e)})}function Wo(e){return xr(e)&&e.landmarks instanceof ra&&e.unshiftedLandmarks instanceof ra&&e.alignedRect instanceof yt}function ece(e){let t=l=>l*180/Math.PI,n=(l,u)=>Math.sqrt((l._x-u._x)**2+(l._y-u._y)**2),a={roll:void 0,pitch:void 0,yaw:void 0},r=(l,u,p)=>{let d=Math.floor(l._x-u._x),c=Math.floor(u._x-p._x);return d-c},s=(l,u)=>{let p=Math.hypot(u._x-l._x,u._y-l._y),d=u._y-l._y,c=Math.asin(d/p),h=t(c),m=Math.floor(90-h),f=u._x-l._x<0?-1:1;return m*f},i=(l,u,p)=>{let d=n(l,p),c={_x:(l._x+p._x)/2,_y:(l._y+p._y)/2},h=n(u,c),m=Math.atan(h/d),f=Math.floor(t(m)),g=c._y-u._y<0?-1:1;return f*g};if(!e||!e._positions||e._positions.length!==68)return a;let o=e._positions;return a.roll=s(o[27],o[66]),a.pitch=i(o[14],o[30],o[2]),a.yaw=r(o[14],o[33],o[2]),a}function gp(e,t){let{box:n}=e.detection,a=t.shiftBy(n.x,n.y),r=a.align(),{imageDims:s}=e.detection,i=new yt(e.detection.score,r.rescale(s.reverse()),s),o=ece(t);return{...e,...{landmarks:a,unshiftedLandmarks:t,alignedRect:i,angle:o}}}var mg=class{constructor(t={}){let{drawLines:n=!0,drawPoints:a=!0,lineWidth:r,lineColor:s,pointSize:i,pointColor:o}=t;this.drawLines=n,this.drawPoints=a,this.lineWidth=r||1,this.pointSize=i||2,this.lineColor=s||"rgba(0, 255, 255, 1)",this.pointColor=o||"rgba(255, 0, 255, 1)"}},fg=class{constructor(t,n={}){this.faceLandmarks=t,this.options=new mg(n)}draw(t){let n=Gn(t),{drawLines:a,drawPoints:r,lineWidth:s,lineColor:i,pointSize:o,pointColor:l}=this.options;if(a&&this.faceLandmarks instanceof Ro&&(n.strokeStyle=i,n.lineWidth=s,Lr(n,this.faceLandmarks.getJawOutline()),Lr(n,this.faceLandmarks.getLeftEyeBrow()),Lr(n,this.faceLandmarks.getRightEyeBrow()),Lr(n,this.faceLandmarks.getNose()),Lr(n,this.faceLandmarks.getLeftEye(),!0),Lr(n,this.faceLandmarks.getRightEye(),!0),Lr(n,this.faceLandmarks.getMouth(),!0)),r){n.strokeStyle=l,n.fillStyle=l;let u=p=>{n.beginPath(),n.arc(p.x,p.y,o,0,2*Math.PI),n.fill()};this.faceLandmarks.positions.forEach(u)}}};function tce(e,t){(Array.isArray(t)?t:[t]).forEach(a=>{let r=a instanceof ra?a:Wo(a)?a.landmarks:void 0;if(!r)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new fg(r).draw(e)})}var QA="1.7.7";function rce(e,t){let n=cp(e,t),a=dp(e,t);function r(i,o,l){let u=a(i,o,`${l}/separable_conv0`),p=a(o,o,`${l}/separable_conv1`),d=n(i,o,1,`${l}/expansion_conv`);return{separable_conv0:u,separable_conv1:p,expansion_conv:d}}function s(i,o){let l=a(i,i,`${o}/separable_conv0`),u=a(i,i,`${o}/separable_conv1`),p=a(i,i,`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:n,extractSeparableConvParams:a,extractReductionBlockParams:r,extractMainBlockParams:s}}function e$(e,t){let n=[],{extractWeights:a,getRemainingWeights:r}=$n(e),{extractConvParams:s,extractSeparableConvParams:i,extractReductionBlockParams:o,extractMainBlockParams:l}=rce(a,n),u=s(3,32,3,"entry_flow/conv_in"),p=o(32,64,"entry_flow/reduction_block_0"),d=o(64,128,"entry_flow/reduction_block_1"),c={conv_in:u,reduction_block_0:p,reduction_block_1:d},h={};yr(t,0,1).forEach(y=>{h[`main_block_${y}`]=l(128,`middle_flow/main_block_${y}`)});let m=o(128,256,"exit_flow/reduction_block"),f=i(256,512,"exit_flow/separable_conv"),g={reduction_block:m,separable_conv:f};if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:n,params:{entry_flow:c,middle_flow:h,exit_flow:g}}}function sce(e,t){let n=sa(e,t),a=pg(n),r=hp(n);function s(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=a(`${o}/expansion_conv`);return{separable_conv0:l,separable_conv1:u,expansion_conv:p}}function i(o){let l=r(`${o}/separable_conv0`),u=r(`${o}/separable_conv1`),p=r(`${o}/separable_conv2`);return{separable_conv0:l,separable_conv1:u,separable_conv2:p}}return{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}}function t$(e,t){let n=[],{extractConvParams:a,extractSeparableConvParams:r,extractReductionBlockParams:s,extractMainBlockParams:i}=sce(e,n),o=a("entry_flow/conv_in"),l=s("entry_flow/reduction_block_0"),u=s("entry_flow/reduction_block_1"),p={conv_in:o,reduction_block_0:l,reduction_block_1:u},d={};yr(t,0,1).forEach(f=>{d[`main_block_${f}`]=i(`middle_flow/main_block_${f}`)});let c=s("exit_flow/reduction_block"),h=r("exit_flow/separable_conv"),m={reduction_block:c,separable_conv:h};return An(e,n),{params:{entry_flow:p,middle_flow:d,exit_flow:m},paramMappings:n}}function n$(e,t,n){return Y(Ft(e,t.filters,n,"same"),t.bias)}function z1(e,t,n=!0){let a=n?Xe(e):e;return a=Hn(a,t.separable_conv0,[1,1]),a=Hn(Xe(a),t.separable_conv1,[1,1]),a=Dt(a,[3,3],[2,2],"same"),a=Y(a,n$(e,t.expansion_conv,[2,2])),a}function ice(e,t){let n=Hn(Xe(e),t.separable_conv0,[1,1]);return n=Hn(Xe(n),t.separable_conv1,[1,1]),n=Hn(Xe(n),t.separable_conv2,[1,1]),n=Y(n,e),n}var gg=class extends on{constructor(n){super("TinyXception");this._numMainBlocks=n}forwardInput(n){let{params:a}=this;if(!a)throw new Error("TinyXception - load model before inference");return P(()=>{let r=le(n.toBatchTensor(112,!0),"float32"),i=Ja(r,[122.782,117.001,104.298]).div(255),o=Xe(n$(i,a.entry_flow.conv_in,[2,2]));return o=z1(o,a.entry_flow.reduction_block_0,!1),o=z1(o,a.entry_flow.reduction_block_1),yr(this._numMainBlocks,0,1).forEach(l=>{o=ice(o,a.middle_flow[`main_block_${l}`])}),o=z1(o,a.exit_flow.reduction_block),o=Xe(Hn(o,a.exit_flow.separable_conv,[1,1])),o})}async forward(n){return this.forwardInput(await bt(n))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(n){return t$(n,this._numMainBlocks)}extractParams(n){return e$(n,this._numMainBlocks)}};function a$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),r=lg(n,t),s=r(512,1,"fc/age"),i=r(512,2,"fc/gender");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{fc:{age:s,gender:i}}}}function r$(e){let t=[],n=sa(e,t);function a(s){let i=n(`${s}/weights`,2),o=n(`${s}/bias`,1);return{weights:i,bias:o}}let r={fc:{age:a("fc/age"),gender:a("fc/gender")}};return An(e,t),{params:r,paramMappings:t}}var yg=(n=>(n.FEMALE="female",n.MALE="male",n))(yg||{});var kd=class extends on{constructor(n=new gg(2)){super("AgeGenderNet");this._faceFeatureExtractor=n}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(n){let{params:a}=this;if(!a)throw new Error(`${this._name} - load model before inference`);return P(()=>{let r=n instanceof vr?this.faceFeatureExtractor.forwardInput(n):n,s=ba(r,[7,7],[2,2],"valid").as2D(r.shape[0],-1),i=vd(s,a.fc.age).as1D(),o=vd(s,a.fc.gender);return{age:i,gender:o}})}forwardInput(n){return P(()=>{let{age:a,gender:r}=this.runNet(n);return{age:a,gender:Xa(r)}})}async forward(n){return this.forwardInput(await bt(n))}async predictAgeAndGender(n){let a=await bt(n),r=await this.forwardInput(a),s=pt(r.age),i=pt(r.gender),o=s.map((u,p)=>({ageTensor:u,genderTensor:i[p]})),l=await Promise.all(o.map(async({ageTensor:u,genderTensor:p})=>{let d=u.dataSync()[0],c=p.dataSync()[0],h=c>.5,m=h?"male":"female",f=h?c:1-c;return u.dispose(),p.dispose(),{age:d,gender:m,genderProbability:f}}));return r.age.dispose(),r.gender.dispose(),a.isBatchInput?l:l[0]}getDefaultModelName(){return"age_gender_model"}dispose(n=!0){this.faceFeatureExtractor.dispose(n),super.dispose(n)}loadClassifierParams(n){let{params:a,paramMappings:r}=this.extractClassifierParams(n);this._params=a,this._paramMappings=r}extractClassifierParams(n){return a$(n)}extractParamsFromWeightMap(n){let{featureExtractorMap:a,classifierMap:r}=dg(n);return this.faceFeatureExtractor.loadFromWeightMap(a),r$(r)}extractParams(n){let r=n.slice(0,n.length-1539),s=n.slice(n.length-1539);return this.faceFeatureExtractor.extractWeights(r),this.extractClassifierParams(s)}};var yp=class extends fp{postProcess(t,n,a){let r=a.map(({width:i,height:o})=>{let l=n/Math.max(o,i);return{width:i*l,height:o*l}}),s=r.length;return P(()=>{let i=(d,c)=>$t([yn([68],d,"float32"),yn([68],c,"float32")],1).as2D(1,136).as1D(),o=(d,c)=>{let{width:h,height:m}=r[d];return c(h,m)?Math.abs(h-m)/2:0},l=d=>o(d,(c,h)=>co(d,(c,h)=>hi(l(c),u(c))))).div($t(Array.from(Array(s),(d,c)=>i(r[c].width,r[c].height))))})}forwardInput(t){return P(()=>{let n=this.runNet(t);return this.postProcess(n,t.inputSize,t.inputDimensions.map(([a,r])=>({height:a,width:r})))})}async forward(t){return this.forwardInput(await bt(t))}async detectLandmarks(t){let n=await bt(t),a=P(()=>pt(this.forwardInput(n))),r=await Promise.all(a.map(async(s,i)=>{let o=Array.from(s.dataSync()),l=o.filter((p,d)=>tg(d)),u=o.filter((p,d)=>!tg(d));return new Ro(Array(68).fill(0).map((p,d)=>new De(l[d],u[d])),{height:n.getInputHeight(i),width:n.getInputWidth(i)})}));return a.forEach(s=>s.dispose()),n.isBatchInput?r:r[0]}getClassifierChannelsOut(){return 136}};var Bo=class extends yp{constructor(t=new mp){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};function s$(e){let t=[],{extractDenseBlock3Params:n}=cg(e,t),a={dense0:n("dense0",!0),dense1:n("dense1"),dense2:n("dense2")};return An(e,t),{params:a,paramMappings:t}}function i$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractDenseBlock3Params:r}=ug(n,t),s=r(3,32,"dense0",!0),i=r(32,64,"dense1"),o=r(64,128,"dense2");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:t,params:{dense0:s,dense1:i,dense2:o}}}var bg=class extends on{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("TinyFaceFeatureExtractor - load model before inference");return P(()=>{let a=le(t.toBatchTensor(112,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=og(s,n.dense0,!0);return i=og(i,n.dense1),i=og(i,n.dense2),i=ba(i,[14,14],[2,2],"valid"),i})}async forward(t){return this.forwardInput(await bt(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return s$(t)}extractParams(t){return i$(t)}};var Id=class extends yp{constructor(t=new bg){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var W1=class extends Bo{};function o$(e,t){return Y(z(e,t.weights),t.biases)}function B1(e,t,n,a,r="same"){let{filters:s,bias:i}=t.conv,o=Ft(e,s,n,r);return o=Y(o,i),o=o$(o,t.scale),a?Xe(o):o}function l$(e,t){return B1(e,t,[1,1],!0)}function V1(e,t){return B1(e,t,[1,1],!1)}function xg(e,t){return B1(e,t,[2,2],!0,"valid")}function oce(e,t){function n(o,l,u){let p=e(o),d=p.length/(l*u*u);if(f1(d))throw new Error(`depth has to be an integer: ${d}, weights.length: ${p.length}, numFilters: ${l}, filterSize: ${u}`);return P(()=>_e(Ma(p,[l,d,u,u]),[2,3,1,0]))}function a(o,l,u,p){let d=n(o,l,u),c=Ke(e(l));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:d,bias:c}}function r(o,l){let u=Ke(e(o)),p=Ke(e(o));return t.push({paramPath:`${l}/weights`},{paramPath:`${l}/biases`}),{weights:u,biases:p}}function s(o,l,u,p){let d=a(o,l,u,`${p}/conv`),c=r(l,`${p}/scale`);return{conv:d,scale:c}}function i(o,l,u,p,d=!1){let c=s((d?.5:1)*o,l,u,`${p}/conv1`),h=s(o,l,u,`${p}/conv2`);return{conv1:c,conv2:h}}return{extractConvLayerParams:s,extractResidualLayerParams:i}}function u$(e){let{extractWeights:t,getRemainingWeights:n}=$n(e),a=[],{extractConvLayerParams:r,extractResidualLayerParams:s}=oce(t,a),i=r(4704,32,7,"conv32_down"),o=s(9216,32,3,"conv32_1"),l=s(9216,32,3,"conv32_2"),u=s(9216,32,3,"conv32_3"),p=s(36864,64,3,"conv64_down",!0),d=s(36864,64,3,"conv64_1"),c=s(36864,64,3,"conv64_2"),h=s(36864,64,3,"conv64_3"),m=s(147456,128,3,"conv128_down",!0),f=s(147456,128,3,"conv128_1"),g=s(147456,128,3,"conv128_2"),y=s(589824,256,3,"conv256_down",!0),b=s(589824,256,3,"conv256_1"),x=s(589824,256,3,"conv256_2"),w=s(589824,256,3,"conv256_down_out"),I=P(()=>_e(Fa(t(256*128),[128,256]),[1,0]));if(a.push({paramPath:"fc"}),n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{params:{conv32_down:i,conv32_1:o,conv32_2:l,conv32_3:u,conv64_down:p,conv64_1:d,conv64_2:c,conv64_3:h,conv128_down:m,conv128_1:f,conv128_2:g,conv256_down:y,conv256_1:b,conv256_2:x,conv256_down_out:w,fc:I},paramMappings:a}}function lce(e,t){let n=sa(e,t);function a(i){let o=n(`${i}/scale/weights`,1),l=n(`${i}/scale/biases`,1);return{weights:o,biases:l}}function r(i){let o=n(`${i}/conv/filters`,4),l=n(`${i}/conv/bias`,1),u=a(i);return{conv:{filters:o,bias:l},scale:u}}function s(i){return{conv1:r(`${i}/conv1`),conv2:r(`${i}/conv2`)}}return{extractConvLayerParams:r,extractResidualLayerParams:s}}function p$(e){let t=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=lce(e,t),r=n("conv32_down"),s=a("conv32_1"),i=a("conv32_2"),o=a("conv32_3"),l=a("conv64_down"),u=a("conv64_1"),p=a("conv64_2"),d=a("conv64_3"),c=a("conv128_down"),h=a("conv128_1"),m=a("conv128_2"),f=a("conv256_down"),g=a("conv256_1"),y=a("conv256_2"),b=a("conv256_down_out"),{fc:x}=e;if(t.push({originalPath:"fc",paramPath:"fc"}),!m1(x))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${x}`);let w={conv32_down:r,conv32_1:s,conv32_2:i,conv32_3:o,conv64_down:l,conv64_1:u,conv64_2:p,conv64_3:d,conv128_down:c,conv128_1:h,conv128_2:m,conv256_down:f,conv256_1:g,conv256_2:y,conv256_down_out:b,fc:x};return An(e,t),{params:w,paramMappings:t}}function Qa(e,t){let n=l$(e,t.conv1);return n=V1(n,t.conv2),n=Y(n,e),n=Xe(n),n}function Sd(e,t){let n=xg(e,t.conv1);n=V1(n,t.conv2);let a=ba(e,2,2,"valid"),r=It(a.shape),s=a.shape[3]!==n.shape[3];if(a.shape[1]!==n.shape[1]||a.shape[2]!==n.shape[2]){let o=[...n.shape];o[1]=1;let l=It(o);n=Ze([n,l],1);let u=[...n.shape];u[2]=1;let p=It(u);n=Ze([n,p],2)}return a=s?Ze([a,r],3):a,n=Y(a,n),n=Xe(n),n}var Vo=class extends on{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("FaceRecognitionNet - load model before inference");return P(()=>{let a=le(t.toBatchTensor(150,!0),"float32"),s=Ja(a,[122.782,117.001,104.298]).div(255),i=xg(s,n.conv32_down);i=Dt(i,3,2,"valid"),i=Qa(i,n.conv32_1),i=Qa(i,n.conv32_2),i=Qa(i,n.conv32_3),i=Sd(i,n.conv64_down),i=Qa(i,n.conv64_1),i=Qa(i,n.conv64_2),i=Qa(i,n.conv64_3),i=Sd(i,n.conv128_down),i=Qa(i,n.conv128_1),i=Qa(i,n.conv128_2),i=Sd(i,n.conv256_down),i=Qa(i,n.conv256_1),i=Qa(i,n.conv256_2),i=Sd(i,n.conv256_down_out);let o=i.mean([1,2]);return Fe(o,n.fc)})}async forward(t){return this.forwardInput(await bt(t))}async computeFaceDescriptor(t){var s;if((s=t==null?void 0:t.shape)!=null&&s.some(i=>i<=0))return new Float32Array(128);let n=await bt(t),a=P(()=>pt(this.forwardInput(n))),r=await Promise.all(a.map(i=>i.data()));return a.forEach(i=>i.dispose()),n.isBatchInput?r:r[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return p$(t)}extractParams(t){return u$(t)}};function uce(e){let t=new Vo;return t.extractWeights(e),t}function vg(e,t){return{...e,...{descriptor:t}}}function pce(e){return typeof e.age=="number"}function wg(e,t){return{...e,...{age:t}}}function cce(e){return(e.gender==="male"||e.gender==="female")&&sp(e.genderProbability)}function kg(e,t,n){return{...e,...{gender:t,genderProbability:n}}}function dce(e,t){function n(l,u){let p=Ma(e(9*l),[3,3,l,1]),d=Ke(e(l)),c=Ke(e(l)),h=Ke(e(l)),m=Ke(e(l));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/batch_norm_scale`},{paramPath:`${u}/batch_norm_offset`},{paramPath:`${u}/batch_norm_mean`},{paramPath:`${u}/batch_norm_variance`}),{filters:p,batch_norm_scale:d,batch_norm_offset:c,batch_norm_mean:h,batch_norm_variance:m}}function a(l,u,p,d,c){let h=Ma(e(l*u*p*p),[p,p,l,u]),m=Ke(e(u));return t.push({paramPath:`${d}/filters`},{paramPath:`${d}/${c?"batch_norm_offset":"bias"}`}),{filters:h,bias:m}}function r(l,u,p,d){let{filters:c,bias:h}=a(l,u,p,d,!0);return{filters:c,batch_norm_offset:h}}function s(l,u,p){let d=n(l,`${p}/depthwise_conv`),c=r(l,u,1,`${p}/pointwise_conv`);return{depthwise_conv:d,pointwise_conv:c}}function i(){let l=r(3,32,3,"mobilenetv1/conv_0"),u=s(32,64,"mobilenetv1/conv_1"),p=s(64,128,"mobilenetv1/conv_2"),d=s(128,128,"mobilenetv1/conv_3"),c=s(128,256,"mobilenetv1/conv_4"),h=s(256,256,"mobilenetv1/conv_5"),m=s(256,512,"mobilenetv1/conv_6"),f=s(512,512,"mobilenetv1/conv_7"),g=s(512,512,"mobilenetv1/conv_8"),y=s(512,512,"mobilenetv1/conv_9"),b=s(512,512,"mobilenetv1/conv_10"),x=s(512,512,"mobilenetv1/conv_11"),w=s(512,1024,"mobilenetv1/conv_12"),I=s(1024,1024,"mobilenetv1/conv_13");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,conv_8:g,conv_9:y,conv_10:b,conv_11:x,conv_12:w,conv_13:I}}function o(){let l=r(1024,256,1,"prediction_layer/conv_0"),u=r(256,512,3,"prediction_layer/conv_1"),p=r(512,128,1,"prediction_layer/conv_2"),d=r(128,256,3,"prediction_layer/conv_3"),c=r(256,128,1,"prediction_layer/conv_4"),h=r(128,256,3,"prediction_layer/conv_5"),m=r(256,64,1,"prediction_layer/conv_6"),f=r(64,128,3,"prediction_layer/conv_7"),g=a(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),y=a(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),b=a(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),x=a(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),w=a(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),I=a(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),T=a(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),C=a(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),_=a(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),$=a(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),R=a(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),F=a(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:l,conv_1:u,conv_2:p,conv_3:d,conv_4:c,conv_5:h,conv_6:m,conv_7:f,box_predictor_0:{box_encoding_predictor:g,class_predictor:y},box_predictor_1:{box_encoding_predictor:b,class_predictor:x},box_predictor_2:{box_encoding_predictor:w,class_predictor:I},box_predictor_3:{box_encoding_predictor:T,class_predictor:C},box_predictor_4:{box_encoding_predictor:_,class_predictor:$},box_predictor_5:{box_encoding_predictor:R,class_predictor:F}}}return{extractMobilenetV1Params:i,extractPredictionLayerParams:o}}function c$(e){let t=[],{extractWeights:n,getRemainingWeights:a}=$n(e),{extractMobilenetV1Params:r,extractPredictionLayerParams:s}=dce(n,t),i=r(),o=s(),u={extra_dim:Mc(n(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:{mobilenetv1:i,prediction_layer:o,output_layer:u},paramMappings:t}}function hce(e,t){let n=sa(e,t);function a(u,p,d){let c=n(`${u}/Conv2d_${p}_pointwise/weights`,4,`${d}/filters`),h=n(`${u}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${d}/batch_norm_offset`);return{filters:c,batch_norm_offset:h}}function r(u){let p=`mobilenetv1/conv_${u}`,d=`MobilenetV1/Conv2d_${u}_depthwise`,c=`${p}/depthwise_conv`,h=`${p}/pointwise_conv`,m=n(`${d}/depthwise_weights`,4,`${c}/filters`),f=n(`${d}/BatchNorm/gamma`,1,`${c}/batch_norm_scale`),g=n(`${d}/BatchNorm/beta`,1,`${c}/batch_norm_offset`),y=n(`${d}/BatchNorm/moving_mean`,1,`${c}/batch_norm_mean`),b=n(`${d}/BatchNorm/moving_variance`,1,`${c}/batch_norm_variance`);return{depthwise_conv:{filters:m,batch_norm_scale:f,batch_norm_offset:g,batch_norm_mean:y,batch_norm_variance:b},pointwise_conv:a("MobilenetV1",u,h)}}function s(){return{conv_0:a("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:r(1),conv_2:r(2),conv_3:r(3),conv_4:r(4),conv_5:r(5),conv_6:r(6),conv_7:r(7),conv_8:r(8),conv_9:r(9),conv_10:r(10),conv_11:r(11),conv_12:r(12),conv_13:r(13)}}function i(u,p){let d=n(`${u}/weights`,4,`${p}/filters`),c=n(`${u}/biases`,1,`${p}/bias`);return{filters:d,bias:c}}function o(u){let p=i(`Prediction/BoxPredictor_${u}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${u}/box_encoding_predictor`),d=i(`Prediction/BoxPredictor_${u}/ClassPredictor`,`prediction_layer/box_predictor_${u}/class_predictor`);return{box_encoding_predictor:p,class_predictor:d}}function l(){return{conv_0:a("Prediction",0,"prediction_layer/conv_0"),conv_1:a("Prediction",1,"prediction_layer/conv_1"),conv_2:a("Prediction",2,"prediction_layer/conv_2"),conv_3:a("Prediction",3,"prediction_layer/conv_3"),conv_4:a("Prediction",4,"prediction_layer/conv_4"),conv_5:a("Prediction",5,"prediction_layer/conv_5"),conv_6:a("Prediction",6,"prediction_layer/conv_6"),conv_7:a("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:o(0),box_predictor_1:o(1),box_predictor_2:o(2),box_predictor_3:o(3),box_predictor_4:o(4),box_predictor_5:o(5)}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:l}}function d$(e){let t=[],{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=hce(e,t),r=e["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!zr(r))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${r}`);let s={mobilenetv1:n(),prediction_layer:a(),output_layer:{extra_dim:r}};return An(e,t),{params:s,paramMappings:t}}function La(e,t,n){return P(()=>{let a=Ft(e,t.filters,n,"same");return a=Y(a,t.batch_norm_offset),tn(a,0,6)})}var mce=.0010000000474974513;function fce(e,t,n){return P(()=>{let a=Cs(e,t.filters,n,"same");return a=Ns(a,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,mce),tn(a,0,6)})}function gce(e){return[2,4,6,12].some(t=>t===e)?[2,2]:[1,1]}function h$(e,t){return P(()=>{let n,a=La(e,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((s,i)=>{let o=i+1,l=gce(o);a=fce(a,s.depthwise_conv,l),a=La(a,s.pointwise_conv,[1,1]),o===11&&(n=a)}),n===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:a,conv11:n}})}function yce(e,t,n){let a=e.arraySync(),r=Math.min(a[t][0],a[t][2]),s=Math.min(a[t][1],a[t][3]),i=Math.max(a[t][0],a[t][2]),o=Math.max(a[t][1],a[t][3]),l=Math.min(a[n][0],a[n][2]),u=Math.min(a[n][1],a[n][3]),p=Math.max(a[n][0],a[n][2]),d=Math.max(a[n][1],a[n][3]),c=(i-r)*(o-s),h=(p-l)*(d-u);if(c<=0||h<=0)return 0;let m=Math.max(r,l),f=Math.max(s,u),g=Math.min(i,p),y=Math.min(o,d),b=Math.max(g-m,0)*Math.max(y-f,0);return b/(c+h-b)}function m$(e,t,n,a,r){let s=e.shape[0],i=Math.min(n,s),o=t.map((p,d)=>({score:p,boxIndex:d})).filter(p=>p.score>r).sort((p,d)=>d.score-p.score),l=p=>p<=a?1:0,u=[];return o.forEach(p=>{if(u.length>=i)return;let d=p.score;for(let c=u.length-1;c>=0;--c){let h=yce(e,p.boxIndex,u[c]);if(h!==0&&(p.score*=l(h),p.score<=r))break}d===p.score&&u.push(p.boxIndex)}),u}function bce(e){let t=pt(_e(e,[1,0])),n=[pe(t[2],t[0]),pe(t[3],t[1])],a=[Y(t[0],me(n[0],2)),Y(t[1],me(n[1],2))];return{sizes:n,centers:a}}function xce(e,t){let{sizes:n,centers:a}=bce(e),r=pt(_e(t,[1,0])),s=me(z(gn(me(r[2],5)),n[0]),2),i=Y(z(me(r[0],10),n[0]),a[0]),o=me(z(gn(me(r[3],5)),n[1]),2),l=Y(z(me(r[1],10),n[1]),a[1]);return _e($t([pe(i,s),pe(l,o),Y(i,s),Y(l,o)]),[1,0])}function f$(e,t,n){return P(()=>{let a=e.shape[0],r=xce(W(Ln(n.extra_dim,[a,1,1]),[-1,4]),W(e,[-1,4]));r=W(r,[a,r.shape[0]/a,4]);let s=ha(Be(t,[0,0,1],[-1,-1,-1])),i=Be(s,[0,0,0],[-1,-1,1]);i=W(i,[a,i.shape[1]]);let o=pt(r),l=pt(i);return{boxes:o,scores:l}})}function Uo(e,t){return P(()=>{let n=e.shape[0],a=W(zo(e,t.box_encoding_predictor),[n,-1,1,4]),r=W(zo(e,t.class_predictor),[n,-1,3]);return{boxPredictionEncoding:a,classPrediction:r}})}function g$(e,t,n){return P(()=>{let a=La(e,n.conv_0,[1,1]),r=La(a,n.conv_1,[2,2]),s=La(r,n.conv_2,[1,1]),i=La(s,n.conv_3,[2,2]),o=La(i,n.conv_4,[1,1]),l=La(o,n.conv_5,[2,2]),u=La(l,n.conv_6,[1,1]),p=La(u,n.conv_7,[2,2]),d=Uo(t,n.box_predictor_0),c=Uo(e,n.box_predictor_1),h=Uo(r,n.box_predictor_2),m=Uo(i,n.box_predictor_3),f=Uo(l,n.box_predictor_4),g=Uo(p,n.box_predictor_5),y=Ze([d.boxPredictionEncoding,c.boxPredictionEncoding,h.boxPredictionEncoding,m.boxPredictionEncoding,f.boxPredictionEncoding,g.boxPredictionEncoding],1),b=Ze([d.classPrediction,c.classPrediction,h.classPrediction,m.classPrediction,f.classPrediction,g.classPrediction],1);return{boxPredictions:y,classPredictions:b}})}var ka=class{constructor({minConfidence:t,maxResults:n}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=n||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var Rs=class extends on{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:n}=this;if(!n)throw new Error("SsdMobilenetv1 - load model before inference");return P(()=>{let a=le(t.toBatchTensor(512,!1),"float32"),r=pe(me(a,127.5),1),s=h$(r,n.mobilenetv1),{boxPredictions:i,classPredictions:o}=g$(s.out,s.conv11,n.prediction_layer);return f$(i,o,n.output_layer)})}async forward(t){return this.forwardInput(await bt(t))}async locateFaces(t,n={}){let{maxResults:a,minConfidence:r}=new ka(n),s=await bt(t),{boxes:i,scores:o}=this.forwardInput(s),l=i[0],u=o[0];for(let x=1;x{let[w,I]=[Math.max(0,y[x][0]),Math.min(1,y[x][2])].map(_=>_*g),[T,C]=[Math.max(0,y[x][1]),Math.min(1,y[x][3])].map(_=>_*f);return new yt(p[x],new Do(T,w,C-T,I-w),{height:s.getInputHeight(0),width:s.getInputWidth(0)})});return l.dispose(),u.dispose(),b}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return d$(t)}extractParams(t){return c$(t)}};function y$(e){let t=new Rs;return t.extractWeights(e),t}function vce(e){return y$(e)}var U1=class extends Rs{};var b$=.4,x$=[new De(.738768,.874946),new De(2.42204,2.65704),new De(4.30971,7.04493),new De(10.246,4.59428),new De(12.6868,11.8741)],v$=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],w$=[117.001,114.697,97.404],k$="tiny_yolov2_model",I$="tiny_yolov2_separable_conv_model";var Ig=e=>typeof e=="number";function G1(e){if(!e)throw new Error(`invalid config: ${e}`);if(typeof e.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${e.withSeparableConvs}`);if(!Ig(e.iouThreshold)||e.iouThreshold<0||e.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${e.iouThreshold}`);if(!Array.isArray(e.classes)||!e.classes.length||!e.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(e.classes)}`);if(!Array.isArray(e.anchors)||!e.anchors.length||!e.anchors.map(t=>t||{}).every(t=>Ig(t.x)&&Ig(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(e.anchors)}`);if(e.meanRgb&&(!Array.isArray(e.meanRgb)||e.meanRgb.length!==3||!e.meanRgb.every(Ig)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(e.meanRgb)}`)}function bp(e){return P(()=>{let t=z(e,xe(.10000000149011612));return Y(Xe(pe(e,t)),t)})}function Gr(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=Ft(n,t.conv.filters,[1,1],"valid"),n=pe(n,t.bn.sub),n=z(n,t.bn.truediv),n=Y(n,t.conv.bias),bp(n)})}function Hr(e,t){return P(()=>{let n=xa(e,[[0,0],[1,1],[1,1],[0,0]]);return n=_s(n,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),n=Y(n,t.bias),bp(n)})}function wce(e,t){let n=cp(e,t);function a(i,o){let l=Ke(e(i)),u=Ke(e(i));return t.push({paramPath:`${o}/sub`},{paramPath:`${o}/truediv`}),{sub:l,truediv:u}}function r(i,o,l){let u=n(i,o,3,`${l}/conv`),p=a(o,`${l}/bn`);return{conv:u,bn:p}}let s=dp(e,t);return{extractConvParams:n,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}}function S$(e,t,n,a){let{extractWeights:r,getRemainingWeights:s}=$n(e),i=[],{extractConvParams:o,extractConvWithBatchNormParams:l,extractSeparableConvParams:u}=wce(r,i),p;if(t.withSeparableConvs){let[d,c,h,m,f,g,y,b,x]=a,w=t.isFirstLayerConv2d?o(d,c,3,"conv0"):u(d,c,"conv0"),I=u(c,h,"conv1"),T=u(h,m,"conv2"),C=u(m,f,"conv3"),_=u(f,g,"conv4"),$=u(g,y,"conv5"),R=b?u(y,b,"conv6"):void 0,F=x?u(b,x,"conv7"):void 0,S=o(x||b||y,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:_,conv5:$,conv6:R,conv7:F,conv8:S}}else{let[d,c,h,m,f,g,y,b,x]=a,w=l(d,c,"conv0"),I=l(c,h,"conv1"),T=l(h,m,"conv2"),C=l(m,f,"conv3"),_=l(f,g,"conv4"),$=l(g,y,"conv5"),R=l(y,b,"conv6"),F=l(b,x,"conv7"),S=o(x,5*n,1,"conv8");p={conv0:w,conv1:I,conv2:T,conv3:C,conv4:_,conv5:$,conv6:R,conv7:F,conv8:S}}if(s().length!==0)throw new Error(`weights remaing after extract: ${s().length}`);return{params:p,paramMappings:i}}function kce(e,t){let n=sa(e,t);function a(o){let l=n(`${o}/sub`,1),u=n(`${o}/truediv`,1);return{sub:l,truediv:u}}function r(o){let l=n(`${o}/filters`,4),u=n(`${o}/bias`,1);return{filters:l,bias:u}}function s(o){let l=r(`${o}/conv`),u=a(`${o}/bn`);return{conv:l,bn:u}}let i=hp(n);return{extractConvParams:r,extractConvWithBatchNormParams:s,extractSeparableConvParams:i}}function T$(e,t){let n=[],{extractConvParams:a,extractConvWithBatchNormParams:r,extractSeparableConvParams:s}=kce(e,n),i;if(t.withSeparableConvs){let o=t.filterSizes&&t.filterSizes.length||9;i={conv0:t.isFirstLayerConv2d?a("conv0"):s("conv0"),conv1:s("conv1"),conv2:s("conv2"),conv3:s("conv3"),conv4:s("conv4"),conv5:s("conv5"),conv6:o>7?s("conv6"):void 0,conv7:o>8?s("conv7"):void 0,conv8:a("conv8")}}else i={conv0:r("conv0"),conv1:r("conv1"),conv2:r("conv2"),conv3:r("conv3"),conv4:r("conv4"),conv5:r("conv5"),conv6:r("conv6"),conv7:r("conv7"),conv8:a("conv8")};return An(e,n),{params:i,paramMappings:n}}var er=class{constructor({inputSize:t,scoreThreshold:n}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=n||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var H1=class extends on{constructor(n){super("TinyYolov2");G1(n),this._config=n}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(n,a){let r=Gr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Gr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=Gr(r,a.conv6),r=Gr(r,a.conv7),zo(r,a.conv8,"valid",!1)}runMobilenet(n,a){let r=this.config.isFirstLayerConv2d?bp(zo(n,a.conv0,"valid",!1)):Hr(n,a.conv0);return r=Dt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv1),r=Dt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv2),r=Dt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv3),r=Dt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv4),r=Dt(r,[2,2],[2,2],"same"),r=Hr(r,a.conv5),r=Dt(r,[2,2],[1,1],"same"),r=a.conv6?Hr(r,a.conv6):r,r=a.conv7?Hr(r,a.conv7):r,zo(r,a.conv8,"valid",!1)}forwardInput(n,a){let{params:r}=this;if(!r)throw new Error("TinyYolov2 - load model before inference");return P(()=>{let s=le(n.toBatchTensor(a,!1),"float32");return s=this.config.meanRgb?Ja(s,this.config.meanRgb):s,s=s.div(255),this.config.withSeparableConvs?this.runMobilenet(s,r):this.runTinyYolov2(s,r)})}async forward(n,a){return this.forwardInput(await bt(n),a)}async detect(n,a={}){let{inputSize:r,scoreThreshold:s}=new er(a),i=await bt(n),o=await this.forwardInput(i,r),l=P(()=>pt(o)[0].expandDims()),u={width:i.getInputWidth(0),height:i.getInputHeight(0)},p=await this.extractBoxes(l,i.getReshapedInputDimensions(0),s);o.dispose(),l.dispose();let d=p.map(y=>y.box),c=p.map(y=>y.score),h=p.map(y=>y.classScore),m=p.map(y=>this.config.classes[y.label]);return v1(d.map(y=>y.rescale(r)),c,this.config.iouThreshold,!0).map(y=>new Wr(c[y],h[y],m[y],d[y],u))}getDefaultModelName(){return""}extractParamsFromWeightMap(n){return T$(n,this.config)}extractParams(n){let a=this.config.filterSizes||H1.DEFAULT_FILTER_SIZES,r=a?a.length:void 0;if(r!==7&&r!==8&&r!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${r} filterSizes in config`);return S$(n,this.config,this.boxEncodingSize,a)}async extractBoxes(n,a,r){let{width:s,height:i}=a,o=Math.max(s,i),l=o/s,u=o/i,p=n.shape[1],d=this.config.anchors.length,[c,h,m]=P(()=>{let b=n.reshape([p,p,d,this.boxEncodingSize]),x=b.slice([0,0,0,0],[p,p,d,4]),w=b.slice([0,0,0,4],[p,p,d,1]),I=this.withClassScores?Xa(b.slice([0,0,0,5],[p,p,d,this.config.classes.length]),3):xe(0);return[x,w,I]}),f=[],g=await h.array(),y=await c.array();for(let b=0;br){let T=(x+hd(y[b][x][w][0]))/p*l,C=(b+hd(y[b][x][w][1]))/p*u,_=Math.exp(y[b][x][w][2])*this.config.anchors[w].x/p*l,$=Math.exp(y[b][x][w][3])*this.config.anchors[w].y/p*u,R=T-_/2,F=C-$/2,S={row:b,col:x,anchor:w},{classScore:M,label:B}=this.withClassScores?await this.extractPredictedClass(m,S):{classScore:1,label:0};f.push({box:new Fo(R,F,R+_,F+$),score:I,classScore:I*M,label:B,...S})}}return c.dispose(),h.dispose(),m.dispose(),f}async extractPredictedClass(n,a){let{row:r,col:s,anchor:i}=a,o=await n.array();return Array(this.config.classes.length).fill(0).map((l,u)=>o[r][s][i][u]).map((l,u)=>({classScore:l,label:u})).reduce((l,u)=>l.classScore>u.classScore?l:u)}},Go=H1;Go.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var Ho=class extends Go{constructor(t=!0){let n={withSeparableConvs:t,iouThreshold:b$,classes:["face"],...t?{anchors:v$,meanRgb:w$}:{anchors:x$,withClassScores:!0}};super(n)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?I$:k$}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function Ice(e,t=!0){let n=new Ho(t);return n.extractWeights(e),n}var Td=class extends er{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var Ia=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};async function jo(e,t,n,a,r=({alignedRect:s})=>s){let s=e.map(l=>Wo(l)?r(l):l.detection),i=a||(t instanceof Te?await pp(t,s):await up(t,s)),o=await n(i);return i.forEach(l=>l instanceof Te&&l.dispose()),o}async function xp(e,t,n,a,r){return jo([e],t,async s=>n(s[0]),a,r)}var N$=.4,C$=[new De(1.603231,2.094468),new De(6.041143,7.080126),new De(2.882459,3.518061),new De(4.266906,5.178857),new De(9.041765,10.66308)],E$=[117.001,114.697,97.404];var qo=class extends Go{constructor(){let t={withSeparableConvs:!0,iouThreshold:N$,classes:["face"],anchors:C$,meanRgb:E$,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,n){return(await this.detect(t,n)).map(r=>new yt(r.score,r.relativeBox,{width:r.imageWidth,height:r.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var et={ssdMobilenetv1:new Rs,tinyFaceDetector:new qo,tinyYolov2:new Ho,faceLandmark68Net:new Bo,faceLandmark68TinyNet:new Id,faceRecognitionNet:new Vo,faceExpressionNet:new wd,ageGenderNet:new kd},_$=(e,t)=>et.ssdMobilenetv1.locateFaces(e,t),Sce=(e,t)=>et.tinyFaceDetector.locateFaces(e,t),Tce=(e,t)=>et.tinyYolov2.locateFaces(e,t),A$=e=>et.faceLandmark68Net.detectLandmarks(e),Nce=e=>et.faceLandmark68TinyNet.detectLandmarks(e),Cce=e=>et.faceRecognitionNet.computeFaceDescriptor(e),Ece=e=>et.faceExpressionNet.predictExpressions(e),_ce=e=>et.ageGenderNet.predictAgeAndGender(e),$$=e=>et.ssdMobilenetv1.load(e),Ace=e=>et.tinyFaceDetector.load(e),$ce=e=>et.tinyYolov2.load(e),Fce=e=>et.faceLandmark68Net.load(e),Dce=e=>et.faceLandmark68TinyNet.load(e),Rce=e=>et.faceRecognitionNet.load(e),Mce=e=>et.faceExpressionNet.load(e),Pce=e=>et.ageGenderNet.load(e),Oce=$$,Lce=_$,zce=A$;var Sg=class extends Ia{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Ko=class extends Sg{async run(){let t=await this.parentTask,n=await jo(t,this.input,async a=>Promise.all(a.map(r=>et.faceExpressionNet.predictExpressions(r))),this.extractedFaces);return t.map((a,r)=>hg(a,n[r]))}withAgeAndGender(){return new Yo(this,this.input)}},Xo=class extends Sg{async run(){let t=await this.parentTask;if(!t)return;let n=await xp(t,this.input,a=>et.faceExpressionNet.predictExpressions(a),this.extractedFaces);return hg(t,n)}withAgeAndGender(){return new Zo(this,this.input)}},Ms=class extends Ko{withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},Ps=class extends Xo{withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Tg=class extends Ia{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.extractedFaces=r}},Yo=class extends Tg{async run(){let t=await this.parentTask,n=await jo(t,this.input,async a=>Promise.all(a.map(r=>et.ageGenderNet.predictAgeAndGender(r))),this.extractedFaces);return t.map((a,r)=>{let{age:s,gender:i,genderProbability:o}=n[r];return wg(kg(a,i,o),s)})}withFaceExpressions(){return new Ko(this,this.input)}},Zo=class extends Tg{async run(){let t=await this.parentTask;if(!t)return;let{age:n,gender:a,genderProbability:r}=await xp(t,this.input,s=>et.ageGenderNet.predictAgeAndGender(s),this.extractedFaces);return wg(kg(t,a,r),n)}withFaceExpressions(){return new Xo(this,this.input)}},Os=class extends Yo{withFaceExpressions(){return new Ms(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},Ls=class extends Zo{withFaceExpressions(){return new Ps(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Nd=class extends Ia{constructor(n,a){super();this.parentTask=n;this.input=a}},jr=class extends Nd{async run(){let t=await this.parentTask;return(await jo(t,this.input,a=>Promise.all(a.map(r=>et.faceRecognitionNet.computeFaceDescriptor(r))),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}))).map((a,r)=>vg(t[r],a))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}},qr=class extends Nd{async run(){let t=await this.parentTask;if(!t)return;let n=await xp(t,this.input,a=>et.faceRecognitionNet.computeFaceDescriptor(a),null,a=>a.landmarks.align(null,{useDlibAlignment:!0}));return vg(t,n)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}};var Cd=class extends Ia{constructor(n,a,r){super();this.parentTask=n;this.input=a;this.useTinyLandmarkNet=r}get landmarkNet(){return this.useTinyLandmarkNet?et.faceLandmark68TinyNet:et.faceLandmark68Net}},Ed=class extends Cd{async run(){let t=await this.parentTask,n=t.map(i=>i.detection),a=this.input instanceof Te?await pp(this.input,n):await up(this.input,n),r=await Promise.all(a.map(i=>this.landmarkNet.detectLandmarks(i)));return a.forEach(i=>i instanceof Te&&i.dispose()),t.filter((i,o)=>r[o]).map((i,o)=>gp(i,r[o]))}withFaceExpressions(){return new Ms(this,this.input)}withAgeAndGender(){return new Os(this,this.input)}withFaceDescriptors(){return new jr(this,this.input)}},_d=class extends Cd{async run(){let t=await this.parentTask;if(!t)return;let{detection:n}=t,a=this.input instanceof Te?await pp(this.input,[n]):await up(this.input,[n]),r=await this.landmarkNet.detectLandmarks(a[0]);return a.forEach(s=>s instanceof Te&&s.dispose()),gp(t,r)}withFaceExpressions(){return new Ps(this,this.input)}withAgeAndGender(){return new Ls(this,this.input)}withFaceDescriptor(){return new qr(this,this.input)}};var Ad=class extends Ia{constructor(n,a=new ka){super();this.input=n;this.options=a}},vp=class extends Ad{async run(){let{input:t,options:n}=this,a;if(n instanceof Td)a=et.tinyFaceDetector.locateFaces(t,n);else if(n instanceof ka)a=et.ssdMobilenetv1.locateFaces(t,n);else if(n instanceof er)a=et.tinyYolov2.locateFaces(t,n);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return a}runAndExtendWithFaceDetections(){return new Promise((t,n)=>{this.run().then(a=>t(a.map(r=>Mo({},r)))).catch(a=>n(a))})}withFaceLandmarks(t=!1){return new Ed(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new Ko(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new Yo(this.runAndExtendWithFaceDetections(),this.input)}},$d=class extends Ad{async run(){let t=await new vp(this.input,this.options),n=t[0];return t.forEach(a=>{a.score>n.score&&(n=a)}),n}runAndExtendWithFaceDetection(){return new Promise(async t=>{let n=await this.run();t(n?Mo({},n):void 0)})}withFaceLandmarks(t=!1){return new _d(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new Xo(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new Zo(this.runAndExtendWithFaceDetection(),this.input)}};function Wce(e,t=new ka){return new $d(e,t)}function Ng(e,t=new ka){return new vp(e,t)}async function F$(e,t){return Ng(e,new ka(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function Bce(e,t={}){return Ng(e,new er(t)).withFaceLandmarks().withFaceDescriptors()}var Vce=F$;function j1(e,t){if(e.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let n=Array.from(e),a=Array.from(t);return Math.sqrt(n.map((r,s)=>r-a[s]).reduce((r,s)=>r+s*s,0))}var Fd=class{constructor(t,n=.6){this._distanceThreshold=n;let a=Array.isArray(t)?t:[t];if(!a.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let r=1,s=()=>`person ${r++}`;this._labeledDescriptors=a.map(i=>{if(i instanceof br)return i;if(i instanceof Float32Array)return new br(s(),[i]);if(i.descriptor&&i.descriptor instanceof Float32Array)return new br(s(),[i.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,n){return n.map(a=>j1(a,t)).reduce((a,r)=>a+r,0)/(n.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:n,label:a})=>new ip(a,this.computeMeanDistance(t,n))).reduce((n,a)=>n.distancet.toJSON())}}static fromJSON(t){let n=t.labeledDescriptors.map(a=>br.fromJSON(a));return new Fd(n,t.distanceThreshold)}};function Uce(e){let t=new qo;return t.extractWeights(e),t}function D$(e,t){let{width:n,height:a}=new bn(t.width,t.height);if(n<=0||a<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:n,height:a})}`);if(Array.isArray(e))return e.map(r=>D$(r,{width:n,height:a}));if(Wo(e)){let r=e.detection.forSize(n,a),s=e.unshiftedLandmarks.forSize(r.box.width,r.box.height);return gp(Mo(e,r),s)}return xr(e)?Mo(e,e.detection.forSize(n,a)):e instanceof ra||e instanceof yt?e.forSize(n,a):e}var Gce=QA;return yF(Hce);})(); diff --git a/dist/face-api.node-gpu.js b/dist/face-api.node-gpu.js index 1430d31..c97bf60 100644 --- a/dist/face-api.node-gpu.js +++ b/dist/face-api.node-gpu.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var dn=Object.create;var er=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Lr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>To(er({},"__esModule",{value:!0}),o);var x=vn((Va,Br)=>{"use strict";var Wr=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,wn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!wn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Fn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Dn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>Nn});Br.exports=Dn(kr);Fn(kr,require("@tensorflow/tfjs-node-gpu"),Br.exports);var wo="4.0.0",En="4.0.0",Mn="4.0.0",Cn="4.0.0",In="4.0.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Lr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Tr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Sr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Er,extendWithFaceDescriptor:()=>Dr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>xr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Mr,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>ir,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>ln,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=yn(Ra);var ka=v(x());var co={};Lr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ar,DrawFaceLandmarks:()=>yr,DrawFaceLandmarksOptions:()=>vr,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Lr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>or,isEven:()=>rr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Po=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function rr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function or(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function nr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=nr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:nr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ar=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ar(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var sr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=sr.tidy(()=>o.as3D(r,n,a).toInt());return await sr.browser.toPixels(s,e),s.dispose(),e}function ir(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!ir(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>ir(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var cr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return cr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>cr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function mr(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=mr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=mr(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function pr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var ur=v(x());function be(o,t){return(e,r,n,a)=>{let s=ur.tensor4d(o(e*r*n*n),[n,n,e,r]),i=ur.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var fr=v(x());function lr(o,t){return(e,r,n)=>{let a=fr.tensor2d(o(e*r),[e,r]),s=fr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function dr(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function hr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function br(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=lr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function gr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return No.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Co(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Io(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function xr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var vr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},yr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new vr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yr(n).draw(o)})}var So="1.7.6";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var _r=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(Wo(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Ao(e,this._numMainBlocks)}extractParams(e){return Lo(e,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=lr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Bo(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Tr=(e=>(e.FEMALE="female",e.MALE="male",e))(Tr||{});var He=class extends A{constructor(e=new _r(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return ko(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Bo(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>rr(u)),m=i.filter((p,u)=>!rr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=pr(a,e.dense0,!0);return s=pr(s,e.dense1),s=pr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends Fe{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Pr=v(x());function Oo(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Oo(i,t.scale),r?Ee.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Fr(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Vo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Fr(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Fr(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return zo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Dr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Er(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Mr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Uo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Jo(a.out,a.conv11,e.prediction_layer);return Xo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function qo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return qo(o)}var lo=class extends St{};var Zo=.4,Ko=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],Qo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=v(x());var Cr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Cr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Cr(t.x)&&Cr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Cr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return nn(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return on(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],cn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),un=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=un,Ia=mn,Na=pn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Ir{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>xr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return xr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Nr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Er(Mr(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Er(Mr(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Dr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Dr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Sr(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Sr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Sr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=fn;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=So;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); +"use strict";var dn=Object.create;var er=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Lr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>To(er({},"__esModule",{value:!0}),o);var x=vn((Va,Br)=>{"use strict";var Wr=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,wn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!wn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Fn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Dn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>Nn});Br.exports=Dn(kr);Fn(kr,require("@tensorflow/tfjs-node-gpu"),Br.exports);var wo="4.1.0",En="4.1.0",Mn="4.1.0",Cn="4.1.0",In="4.1.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Lr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Tr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Sr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Er,extendWithFaceDescriptor:()=>Dr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>xr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Mr,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>ir,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>ln,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=yn(Ra);var ka=v(x());var co={};Lr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ar,DrawFaceLandmarks:()=>yr,DrawFaceLandmarksOptions:()=>vr,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Lr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>or,isEven:()=>rr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Po=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function rr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function or(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function nr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=nr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:nr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ar=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ar(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var sr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=sr.tidy(()=>o.as3D(r,n,a).toInt());return await sr.browser.toPixels(s,e),s.dispose(),e}function ir(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!ir(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>ir(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var cr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return cr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>cr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function mr(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=mr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=mr(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function pr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var ur=v(x());function be(o,t){return(e,r,n,a)=>{let s=ur.tensor4d(o(e*r*n*n),[n,n,e,r]),i=ur.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var fr=v(x());function lr(o,t){return(e,r,n)=>{let a=fr.tensor2d(o(e*r),[e,r]),s=fr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function dr(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function hr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function br(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=lr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function gr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return No.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Co(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Io(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function xr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var vr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},yr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new vr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yr(n).draw(o)})}var So="1.7.7";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var _r=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(Wo(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Ao(e,this._numMainBlocks)}extractParams(e){return Lo(e,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=lr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Bo(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Tr=(e=>(e.FEMALE="female",e.MALE="male",e))(Tr||{});var He=class extends A{constructor(e=new _r(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return ko(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Bo(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>rr(u)),m=i.filter((p,u)=>!rr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=pr(a,e.dense0,!0);return s=pr(s,e.dense1),s=pr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends Fe{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Pr=v(x());function Oo(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Oo(i,t.scale),r?Ee.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Fr(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Vo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Fr(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Fr(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return zo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Dr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Er(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Mr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Uo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Jo(a.out,a.conv11,e.prediction_layer);return Xo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function qo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return qo(o)}var lo=class extends St{};var Zo=.4,Ko=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],Qo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=v(x());var Cr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Cr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Cr(t.x)&&Cr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Cr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return nn(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return on(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],cn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),un=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=un,Ia=mn,Na=pn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Ir{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>xr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return xr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Nr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Er(Mr(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Er(Mr(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Dr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Dr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Sr(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Sr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Sr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=fn;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=So;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); diff --git a/dist/face-api.node-wasm.js b/dist/face-api.node-wasm.js index e32a71b..47cdfc5 100644 --- a/dist/face-api.node-wasm.js +++ b/dist/face-api.node-wasm.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var hn=Object.create;var er=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var xn=Object.getPrototypeOf,vn=Object.prototype.hasOwnProperty;var yn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Wr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of gn(t))!vn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=bn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?hn(xn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),_n=o=>To(er({},"__esModule",{value:!0}),o);var x=yn((Va,or)=>{"use strict";var Br=Object.defineProperty,Tn=Object.getOwnPropertyDescriptor,wn=Object.getOwnPropertyNames,Pn=Object.prototype.hasOwnProperty,Fn=(o,t)=>{for(var e in t)Br(o,e,{get:t[e],enumerable:!0})},kr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of wn(t))!Pn.call(o,n)&&n!==e&&Br(o,n,{get:()=>t[n],enumerable:!(r=Tn(t,n))||r.enumerable});return o},Po=(o,t,e)=>(kr(o,t,"default"),e&&kr(e,t,"default")),Dn=o=>kr(Br({},"__esModule",{value:!0}),o),rr={};Fn(rr,{version:()=>Nn});or.exports=Dn(rr);Po(rr,require("@tensorflow/tfjs"),or.exports);Po(rr,require("@tensorflow/tfjs-backend-wasm"),or.exports);var wo="4.0.0",En="4.0.0",Mn="4.0.0",Cn="4.0.0",In="4.0.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Wr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Pr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>ln,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>Zo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Ar,detectFaceLandmarks:()=>un,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Cr,extendWithFaceDescriptor:()=>Mr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>yr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Ir,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>mr,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>fn,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>dn,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>pn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=_n(Ra);var ka=v(x());var co={};Wr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ir,DrawFaceLandmarks:()=>Tr,DrawFaceLandmarksOptions:()=>_r,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Wr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>ar,isEven:()=>nr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Fo=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Fo.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function nr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ar(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function sr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=sr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:sr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ir=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ir(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var cr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=cr.tidy(()=>o.as3D(r,n,a).toInt());return await cr.browser.toPixels(s,e),s.dispose(),e}function mr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!mr(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>mr(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var pr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return pr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>pr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Do(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Do(e)}var Eo=v(x());function ur(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=ur(o,t),n=await no(e);return Eo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=ur(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function fr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var lr=v(x());function be(o,t){return(e,r,n,a)=>{let s=lr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=lr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var dr=v(x());function hr(o,t){return(e,r,n)=>{let a=dr.tensor2d(o(e*r),[e,r]),s=dr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function br(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Mo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=br(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function gr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function xr(o,t){let e=Y(o,t),r=gr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Co(o){let t=[],{extractDenseBlock4Params:e}=xr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Co(t)}extractParams(t){return Mo(t)}};var So=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Io(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=hr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function No(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function vr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return So.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Io(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=vr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),No(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function yr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var _r=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Tr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new _r(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Tr(n).draw(o)})}var Lo="1.7.6";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Ao(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=gr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Wo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function ko(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,ko(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var wr=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(ko(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Wo(e,this._numMainBlocks)}extractParams(e){return Ao(e,this._numMainBlocks)}};function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=hr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ro(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Pr=(e=>(e.FEMALE="female",e.MALE="male",e))(Pr||{});var He=class extends A{constructor(e=new wr(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Bo(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=vr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Ro(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>nr(u)),m=i.filter((p,u)=>!nr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function $o(o){let t=[],{extractDenseBlock3Params:e}=xr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function Oo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=br(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var Fr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=fr(a,e.dense0,!0);return s=fr(s,e.dense1),s=fr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return $o(t)}extractParams(t){return Oo(t)}};var ze=class extends Fe{constructor(t=new Fr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Dr=v(x());function Ho(o,t){return Dr.add(Dr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Ho(i,t.scale),r?Ee.relu(i):i}function zo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Er(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Vo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Yo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=zo(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Er(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Er(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Yo(t)}extractParams(t){return Vo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Mr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Cr(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Go(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function jo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Uo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Xo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Jo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function qo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=Uo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=qo(a.out,a.conv11,e.prediction_layer);return Jo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return jo(t)}extractParams(t){return Go(t)}};function Zo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return Zo(o)}var lo=class extends St{};var Ko=.4,Qo=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],tn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],en=[117.001,114.697,97.404],rn="tiny_yolov2_model",on="tiny_yolov2_separable_conv_model";var N=v(x());var Nr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Nr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Nr(t.x)&&Nr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Nr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function nn(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function an(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return an(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return nn(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Ko,classes:["face"],...t?{anchors:tn,meanRgb:en}:{anchors:Qo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?on:rn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var sn=.4,cn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],mn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:sn,classes:["face"],anchors:cn,meanRgb:mn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},pn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),un=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),fn=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=fn,Ia=pn,Na=un;var Sr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Sr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>yr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Sr{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return yr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Lr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Lr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Cr(Ir(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Lr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Cr(Ir(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Mr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Mr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Ar(o,t=new X){return new Ie(o,t)}async function ln(o,t){return Ar(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Ar(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=ln;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function dn(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>dn(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=Lo;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); +"use strict";var hn=Object.create;var er=Object.defineProperty;var bn=Object.getOwnPropertyDescriptor;var gn=Object.getOwnPropertyNames;var xn=Object.getPrototypeOf,vn=Object.prototype.hasOwnProperty;var yn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Wr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of gn(t))!vn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=bn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?hn(xn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),_n=o=>To(er({},"__esModule",{value:!0}),o);var x=yn((Va,or)=>{"use strict";var Br=Object.defineProperty,Tn=Object.getOwnPropertyDescriptor,wn=Object.getOwnPropertyNames,Pn=Object.prototype.hasOwnProperty,Fn=(o,t)=>{for(var e in t)Br(o,e,{get:t[e],enumerable:!0})},kr=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of wn(t))!Pn.call(o,n)&&n!==e&&Br(o,n,{get:()=>t[n],enumerable:!(r=Tn(t,n))||r.enumerable});return o},Po=(o,t,e)=>(kr(o,t,"default"),e&&kr(e,t,"default")),Dn=o=>kr(Br({},"__esModule",{value:!0}),o),rr={};Fn(rr,{version:()=>Nn});or.exports=Dn(rr);Po(rr,require("@tensorflow/tfjs"),or.exports);Po(rr,require("@tensorflow/tfjs-backend-wasm"),or.exports);var wo="4.1.0",En="4.1.0",Mn="4.1.0",Cn="4.1.0",In="4.1.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Wr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Pr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>ln,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>Zo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Ar,detectFaceLandmarks:()=>un,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Cr,extendWithFaceDescriptor:()=>Mr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>yr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Ir,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>mr,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>fn,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>dn,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>pn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=_n(Ra);var ka=v(x());var co={};Wr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ir,DrawFaceLandmarks:()=>Tr,DrawFaceLandmarksOptions:()=>_r,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Wr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>ar,isEven:()=>nr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Fo=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Fo.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function nr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function ar(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function sr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=sr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:sr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ir=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ir(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var cr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=cr.tidy(()=>o.as3D(r,n,a).toInt());return await cr.browser.toPixels(s,e),s.dispose(),e}function mr(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!mr(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>mr(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var pr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return pr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>pr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Do(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Do(e)}var Eo=v(x());function ur(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=ur(o,t),n=await no(e);return Eo.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=ur(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function fr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var lr=v(x());function be(o,t){return(e,r,n,a)=>{let s=lr.tensor4d(o(e*r*n*n),[n,n,e,r]),i=lr.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var dr=v(x());function hr(o,t){return(e,r,n)=>{let a=dr.tensor2d(o(e*r),[e,r]),s=dr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function br(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Mo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=br(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function gr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function xr(o,t){let e=Y(o,t),r=gr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Co(o){let t=[],{extractDenseBlock4Params:e}=xr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Co(t)}extractParams(t){return Mo(t)}};var So=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Io(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=hr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function No(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function vr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return So.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Io(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=vr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),No(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function yr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var _r=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},Tr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new _r(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new Tr(n).draw(o)})}var Lo="1.7.7";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Ao(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=gr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Wo(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function ko(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,ko(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var wr=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(ko(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Wo(e,this._numMainBlocks)}extractParams(e){return Ao(e,this._numMainBlocks)}};function Bo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=hr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Ro(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Pr=(e=>(e.FEMALE="female",e.MALE="male",e))(Pr||{});var He=class extends A{constructor(e=new wr(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Bo(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=vr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Ro(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>nr(u)),m=i.filter((p,u)=>!nr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function $o(o){let t=[],{extractDenseBlock3Params:e}=xr(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function Oo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=br(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var Fr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=fr(a,e.dense0,!0);return s=fr(s,e.dense1),s=fr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return $o(t)}extractParams(t){return Oo(t)}};var ze=class extends Fe{constructor(t=new Fr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Dr=v(x());function Ho(o,t){return Dr.add(Dr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Ho(i,t.scale),r?Ee.relu(i):i}function zo(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Er(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function Vo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Yo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=zo(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Er(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Er(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Yo(t)}extractParams(t){return Vo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Mr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Cr(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Ir(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Go(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function jo(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function Uo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Xo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Jo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function qo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=Uo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=qo(a.out,a.conv11,e.prediction_layer);return Jo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return jo(t)}extractParams(t){return Go(t)}};function Zo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return Zo(o)}var lo=class extends St{};var Ko=.4,Qo=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],tn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],en=[117.001,114.697,97.404],rn="tiny_yolov2_model",on="tiny_yolov2_separable_conv_model";var N=v(x());var Nr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Nr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Nr(t.x)&&Nr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Nr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function nn(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function an(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return an(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return nn(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Ko,classes:["face"],...t?{anchors:tn,meanRgb:en}:{anchors:Qo,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?on:rn}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var sn=.4,cn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],mn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:sn,classes:["face"],anchors:cn,meanRgb:mn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},pn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),un=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),fn=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=fn,Ia=pn,Na=un;var Sr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Sr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>yr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Sr{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return yr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Lr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Lr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Cr(Ir(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Lr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Cr(Ir(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Mr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Mr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Ar(o,t=new X){return new Ie(o,t)}async function ln(o,t){return Ar(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Ar(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=ln;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function dn(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>dn(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=Lo;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); diff --git a/dist/face-api.node.js b/dist/face-api.node.js index d582aff..74a8cfd 100644 --- a/dist/face-api.node.js +++ b/dist/face-api.node.js @@ -4,4 +4,4 @@ author: ' */ -"use strict";var dn=Object.create;var er=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Lr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>To(er({},"__esModule",{value:!0}),o);var x=vn((Va,Br)=>{"use strict";var Wr=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,wn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!wn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Fn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Dn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>Nn});Br.exports=Dn(kr);Fn(kr,require("@tensorflow/tfjs-node"),Br.exports);var wo="4.0.0",En="4.0.0",Mn="4.0.0",Cn="4.0.0",In="4.0.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Lr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Tr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Sr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Er,extendWithFaceDescriptor:()=>Dr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>xr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Mr,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>ir,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>ln,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=yn(Ra);var ka=v(x());var co={};Lr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ar,DrawFaceLandmarks:()=>yr,DrawFaceLandmarksOptions:()=>vr,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Lr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>or,isEven:()=>rr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Po=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function rr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function or(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function nr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=nr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:nr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ar=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ar(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var sr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=sr.tidy(()=>o.as3D(r,n,a).toInt());return await sr.browser.toPixels(s,e),s.dispose(),e}function ir(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!ir(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>ir(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var cr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return cr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>cr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function mr(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=mr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=mr(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function pr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var ur=v(x());function be(o,t){return(e,r,n,a)=>{let s=ur.tensor4d(o(e*r*n*n),[n,n,e,r]),i=ur.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var fr=v(x());function lr(o,t){return(e,r,n)=>{let a=fr.tensor2d(o(e*r),[e,r]),s=fr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function dr(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function hr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function br(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=lr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function gr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return No.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Co(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Io(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function xr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var vr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},yr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new vr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yr(n).draw(o)})}var So="1.7.6";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var _r=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(Wo(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Ao(e,this._numMainBlocks)}extractParams(e){return Lo(e,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=lr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Bo(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Tr=(e=>(e.FEMALE="female",e.MALE="male",e))(Tr||{});var He=class extends A{constructor(e=new _r(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return ko(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Bo(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>rr(u)),m=i.filter((p,u)=>!rr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=pr(a,e.dense0,!0);return s=pr(s,e.dense1),s=pr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends Fe{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Pr=v(x());function Oo(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Oo(i,t.scale),r?Ee.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Fr(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Vo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Fr(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Fr(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return zo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Dr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Er(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Mr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Uo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Jo(a.out,a.conv11,e.prediction_layer);return Xo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function qo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return qo(o)}var lo=class extends St{};var Zo=.4,Ko=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],Qo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=v(x());var Cr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Cr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Cr(t.x)&&Cr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Cr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return nn(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return on(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],cn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),un=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=un,Ia=mn,Na=pn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Ir{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>xr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return xr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Nr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Er(Mr(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Er(Mr(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Dr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Dr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Sr(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Sr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Sr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=fn;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=So;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); +"use strict";var dn=Object.create;var er=Object.defineProperty;var hn=Object.getOwnPropertyDescriptor;var bn=Object.getOwnPropertyNames;var gn=Object.getPrototypeOf,xn=Object.prototype.hasOwnProperty;var vn=(o,t)=>()=>(t||o((t={exports:{}}).exports,t),t.exports),Lr=(o,t)=>{for(var e in t)er(o,e,{get:t[e],enumerable:!0})},To=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of bn(t))!xn.call(o,n)&&n!==e&&er(o,n,{get:()=>t[n],enumerable:!(r=hn(t,n))||r.enumerable});return o};var v=(o,t,e)=>(e=o!=null?dn(gn(o)):{},To(t||!o||!o.__esModule?er(e,"default",{value:o,enumerable:!0}):e,o)),yn=o=>To(er({},"__esModule",{value:!0}),o);var x=vn((Va,Br)=>{"use strict";var Wr=Object.defineProperty,_n=Object.getOwnPropertyDescriptor,Tn=Object.getOwnPropertyNames,wn=Object.prototype.hasOwnProperty,Pn=(o,t)=>{for(var e in t)Wr(o,e,{get:t[e],enumerable:!0})},Ar=(o,t,e,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Tn(t))!wn.call(o,n)&&n!==e&&Wr(o,n,{get:()=>t[n],enumerable:!(r=_n(t,n))||r.enumerable});return o},Fn=(o,t,e)=>(Ar(o,t,"default"),e&&Ar(e,t,"default")),Dn=o=>Ar(Wr({},"__esModule",{value:!0}),o),kr={};Pn(kr,{version:()=>Nn});Br.exports=Dn(kr);Fn(kr,require("@tensorflow/tfjs-node"),Br.exports);var wo="4.1.0",En="4.1.0",Mn="4.1.0",Cn="4.1.0",In="4.1.0",Nn={tfjs:wo,"tfjs-core":wo,"tfjs-converter":En,"tfjs-backend-cpu":Mn,"tfjs-backend-webgl":Cn,"tfjs-backend-wasm":In}});var Ra={};Lr(Ra,{AgeGenderNet:()=>He,BoundingBox:()=>Vt,Box:()=>D,ComposableTask:()=>J,ComputeAllFaceDescriptorsTask:()=>Pt,ComputeFaceDescriptorsTaskBase:()=>Ue,ComputeSingleFaceDescriptorTask:()=>Ft,DetectAllFaceLandmarksTask:()=>qe,DetectAllFacesTask:()=>Ie,DetectFaceLandmarksTaskBase:()=>Je,DetectFacesTaskBase:()=>Ke,DetectSingleFaceLandmarksTask:()=>Ze,DetectSingleFaceTask:()=>Qe,Dimensions:()=>k,FACE_EXPRESSION_LABELS:()=>so,FaceDetection:()=>M,FaceDetectionNet:()=>lo,FaceExpressionNet:()=>Oe,FaceExpressions:()=>yt,FaceLandmark68Net:()=>Kt,FaceLandmark68TinyNet:()=>ze,FaceLandmarkNet:()=>po,FaceLandmarks:()=>z,FaceLandmarks5:()=>jr,FaceLandmarks68:()=>Gt,FaceMatch:()=>pe,FaceMatcher:()=>tr,FaceRecognitionNet:()=>Qt,Gender:()=>Tr,LabeledBox:()=>ue,LabeledFaceDescriptors:()=>mt,NetInput:()=>ut,NeuralNetwork:()=>A,ObjectDetection:()=>bt,Point:()=>g,PredictedBox:()=>Ur,Rect:()=>Yt,SsdMobilenetv1:()=>St,SsdMobilenetv1Options:()=>X,TinyFaceDetector:()=>ne,TinyFaceDetectorOptions:()=>je,TinyYolov2:()=>re,TinyYolov2Options:()=>st,allFaces:()=>Aa,allFacesSsdMobilenetv1:()=>fn,allFacesTinyYolov2:()=>La,awaitMediaLoaded:()=>to,bufferToImage:()=>eo,computeFaceDescriptor:()=>va,createCanvas:()=>Jt,createCanvasFromMedia:()=>We,createFaceDetectionNet:()=>fa,createFaceRecognitionNet:()=>ea,createSsdMobilenetv1:()=>qo,createTinyFaceDetector:()=>Wa,createTinyYolov2:()=>ha,detectAllFaces:()=>Sr,detectFaceLandmarks:()=>pn,detectFaceLandmarksTiny:()=>xa,detectLandmarks:()=>Na,detectSingleFace:()=>Sa,draw:()=>co,env:()=>w,euclideanDistance:()=>vo,extendWithAge:()=>Er,extendWithFaceDescriptor:()=>Dr,extendWithFaceDetection:()=>jt,extendWithFaceExpressions:()=>xr,extendWithFaceLandmarks:()=>Pe,extendWithGender:()=>Mr,extractFaceTensors:()=>de,extractFaces:()=>le,fetchImage:()=>Hn,fetchJson:()=>no,fetchNetWeights:()=>zn,fetchOrThrow:()=>xt,fetchVideo:()=>Vn,getContext2dOrThrow:()=>O,getMediaDimensions:()=>Xt,imageTensorToCanvas:()=>ro,imageToSquare:()=>oo,inverseSigmoid:()=>An,iou:()=>zr,isMediaElement:()=>ir,isMediaLoaded:()=>Ae,isWithAge:()=>ra,isWithFaceDetection:()=>pt,isWithFaceExpressions:()=>io,isWithFaceLandmarks:()=>Zt,isWithGender:()=>oa,loadAgeGenderModel:()=>Ma,loadFaceDetectionModel:()=>Ca,loadFaceExpressionModel:()=>Ea,loadFaceLandmarkModel:()=>Pa,loadFaceLandmarkTinyModel:()=>Fa,loadFaceRecognitionModel:()=>Da,loadSsdMobilenetv1Model:()=>un,loadTinyFaceDetectorModel:()=>Ta,loadTinyYolov2Model:()=>wa,loadWeightMap:()=>ao,locateFaces:()=>Ia,matchDimensions:()=>Yn,minBbox:()=>Vr,nets:()=>P,nonMaxSuppression:()=>Yr,normalize:()=>rt,padToSquare:()=>Gr,predictAgeAndGender:()=>_a,recognizeFaceExpressions:()=>ya,resizeResults:()=>ln,resolveInput:()=>Ut,shuffleArray:()=>Ln,sigmoid:()=>Ne,ssdMobilenetv1:()=>mn,tf:()=>ka,tinyFaceDetector:()=>ba,tinyYolov2:()=>ga,toNetInput:()=>C,utils:()=>Hr,validateConfig:()=>ho,version:()=>Ba});module.exports=yn(Ra);var ka=v(x());var co={};Lr(co,{AnchorPosition:()=>Qr,DrawBox:()=>Le,DrawBoxOptions:()=>ar,DrawFaceLandmarks:()=>yr,DrawFaceLandmarksOptions:()=>vr,DrawTextField:()=>gt,DrawTextFieldOptions:()=>fe,drawContour:()=>dt,drawDetections:()=>On,drawFaceExpressions:()=>Gn,drawFaceLandmarks:()=>Un});function dt(o,t,e=!1){if(o.beginPath(),t.slice(1).forEach(({x:r,y:n},a)=>{let s=t[a];o.moveTo(s.x,s.y),o.lineTo(r,n)}),e){let r=t[t.length-1],n=t[0];if(!r||!n)return;o.moveTo(r.x,r.y),o.lineTo(n.x,n.y)}o.stroke()}var Hr={};Lr(Hr,{computeReshapedDimensions:()=>Or,getCenterPoint:()=>zt,isDimensions:()=>or,isEven:()=>rr,isFloat:()=>$r,isTensor:()=>Ot,isTensor1D:()=>Sn,isTensor2D:()=>Rr,isTensor3D:()=>ht,isTensor4D:()=>U,isValidNumber:()=>et,isValidProbablitiy:()=>me,range:()=>it,round:()=>Ht});var Po=v(x());var k=class{constructor(t,e){if(!et(t)||!et(e))throw new Error(`Dimensions.constructor - expected width and height to be valid numbers, instead have ${JSON.stringify({width:t,height:e})}`);this._width=t,this._height=e}get width(){return this._width}get height(){return this._height}reverse(){return new k(1/this.width,1/this.height)}};function Ot(o,t){return o instanceof Po.Tensor&&o.shape.length===t}function Sn(o){return Ot(o,1)}function Rr(o){return Ot(o,2)}function ht(o){return Ot(o,3)}function U(o){return Ot(o,4)}function $r(o){return o%1!==0}function rr(o){return o%2===0}function Ht(o,t=2){let e=10**t;return Math.floor(o*e)/e}function or(o){return o&&o.width&&o.height}function Or({width:o,height:t},e){let r=e/Math.max(t,o);return new k(Math.round(o*r),Math.round(t*r))}function zt(o){return o.reduce((t,e)=>t.add(e),new g(0,0)).div(new g(o.length,o.length))}function it(o,t,e){return Array(o).fill(0).map((r,n)=>t+n*e)}function et(o){return!!o&&o!==1/0&&o!==-1/0&&!Number.isNaN(o)||o===0}function me(o){return et(o)&&o>=0&&o<=1}var g=class{constructor(t,e){this._x=t,this._y=e}get x(){return this._x}get y(){return this._y}add(t){return new g(this.x+t.x,this.y+t.y)}sub(t){return new g(this.x-t.x,this.y-t.y)}mul(t){return new g(this.x*t.x,this.y*t.y)}div(t){return new g(this.x/t.x,this.y/t.y)}abs(){return new g(Math.abs(this.x),Math.abs(this.y))}magnitude(){return Math.sqrt(this.x**2+this.y**2)}floor(){return new g(Math.floor(this.x),Math.floor(this.y))}};var D=class{static isRect(t){return!!t&&[t.x,t.y,t.width,t.height].every(et)}static assertIsValidBox(t,e,r=!1){if(!D.isRect(t))throw new Error(`${e} - invalid box: ${JSON.stringify(t)}, expected object with properties x, y, width, height`);if(!r&&(t.width<0||t.height<0))throw new Error(`${e} - width (${t.width}) and height (${t.height}) must be positive numbers`)}constructor(t,e=!0){let r=t||{},n=[r.left,r.top,r.right,r.bottom].every(et),a=[r.x,r.y,r.width,r.height].every(et);if(!a&&!n)throw new Error(`Box.constructor - expected box to be IBoundingBox | IRect, instead have ${JSON.stringify(r)}`);let[s,i,c,m]=a?[r.x,r.y,r.width,r.height]:[r.left,r.top,r.right-r.left,r.bottom-r.top];D.assertIsValidBox({x:s,y:i,width:c,height:m},"Box.constructor",e),this._x=s,this._y=i,this._width=c,this._height=m}get x(){return this._x}get y(){return this._y}get width(){return this._width}get height(){return this._height}get left(){return this.x}get top(){return this.y}get right(){return this.x+this.width}get bottom(){return this.y+this.height}get area(){return this.width*this.height}get topLeft(){return new g(this.left,this.top)}get topRight(){return new g(this.right,this.top)}get bottomLeft(){return new g(this.left,this.bottom)}get bottomRight(){return new g(this.right,this.bottom)}round(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.round(a));return new D({x:t,y:e,width:r,height:n})}floor(){let[t,e,r,n]=[this.x,this.y,this.width,this.height].map(a=>Math.floor(a));return new D({x:t,y:e,width:r,height:n})}toSquare(){let{x:t,y:e,width:r,height:n}=this,a=Math.abs(r-n);return re&&(i=-u+e+r,u=e),f>t&&(c=-f+t+n,f=t),m<1&&(c=2-m,m=1),p<1&&(c=2-p,p=1),{dy:s,edy:c,dx:a,edx:i,y:p,ey:f,x:m,ex:u,w:r,h:n}}calibrate(t){return new D({left:this.left+t.left*this.width,top:this.top+t.top*this.height,right:this.right+t.right*this.width,bottom:this.bottom+t.bottom*this.height}).toSquare().round()}};var Vt=class extends D{constructor(t,e,r,n,a=!1){super({left:t,top:e,right:r,bottom:n},a)}};var bt=class{constructor(t,e,r,n,a){this._imageDims=new k(a.width,a.height),this._score=t,this._classScore=e,this._className=r,this._box=new D(n).rescale(this._imageDims)}get score(){return this._score}get classScore(){return this._classScore}get className(){return this._className}get box(){return this._box}get imageDims(){return this._imageDims}get imageWidth(){return this.imageDims.width}get imageHeight(){return this.imageDims.height}get relativeBox(){return new D(this._box).rescale(this.imageDims.reverse())}forSize(t,e){return new bt(this.score,this.classScore,this.className,this.relativeBox,{width:t,height:e})}};var M=class extends bt{constructor(t,e,r){super(t,t,"",e,r)}forSize(t,e){let{score:r,relativeBox:n,imageDims:a}=super.forSize(t,e);return new M(r,n,a)}};function zr(o,t,e=!0){let r=Math.max(0,Math.min(o.right,t.right)-Math.max(o.left,t.left)),n=Math.max(0,Math.min(o.bottom,t.bottom)-Math.max(o.top,t.top)),a=r*n;return e?a/(o.area+t.area-a):a/Math.min(o.area,t.area)}function Vr(o){let t=o.map(i=>i.x),e=o.map(i=>i.y),r=t.reduce((i,c)=>ccii({score:s,boxIndex:i})).sort((s,i)=>s.score-i.score).map(s=>s.boxIndex),a=[];for(;n.length>0;){let s=n.pop();a.push(s);let i=n,c=[];for(let m=0;mc[p]<=e)}return a}var ct=v(x());function rt(o,t){return ct.tidy(()=>{let[e,r,n]=t,a=ct.fill([...o.shape.slice(0,3),1],e,"float32"),s=ct.fill([...o.shape.slice(0,3),1],r,"float32"),i=ct.fill([...o.shape.slice(0,3),1],n,"float32"),c=ct.concat([a,s,i],3);return ct.sub(o,c)})}var Ct=v(x());function Gr(o,t=!1){return Ct.tidy(()=>{let[e,r]=o.shape.slice(1);if(e===r)return o;let n=Math.abs(e-r),a=Math.round(n*(t?.5:1)),s=e>r?2:1,i=f=>{let l=o.shape.slice();return l[s]=f,Ct.fill(l,0,"float32")},c=i(a),m=n-c.shape[s],u=[t&&m?i(m):null,o,c].filter(f=>!!f).map(f=>Ct.cast(f,"float32"));return Ct.concat(u,s)})}function Ln(o){let t=o.slice();for(let e=t.length-1;e>0;e--){let r=Math.floor(Math.random()*(e+1)),n=t[e];t[e]=t[r],t[r]=n}return t}function Ne(o){return 1/(1+Math.exp(-o))}function An(o){return Math.log(o/(1-o))}var Yt=class extends D{constructor(t,e,r,n,a=!1){super({x:t,y:e,width:r,height:n},a)}};var Wn=.5,kn=.43,Bn=.45,z=class{constructor(t,e,r=new g(0,0)){let{width:n,height:a}=e;this._imgDims=new k(n,a),this._shift=r,this._positions=t.map(s=>s.mul(new g(n,a)).add(r))}get shift(){return new g(this._shift.x,this._shift.y)}get imageWidth(){return this._imgDims.width}get imageHeight(){return this._imgDims.height}get positions(){return this._positions}get relativePositions(){return this._positions.map(t=>t.sub(this._shift).div(new g(this.imageWidth,this.imageHeight)))}forSize(t,e){return new this.constructor(this.relativePositions,{width:t,height:e})}shiftBy(t,e){return new this.constructor(this.relativePositions,this._imgDims,new g(t,e))}shiftByPoint(t){return this.shiftBy(t.x,t.y)}align(t,e={}){if(t){let a=t instanceof M?t.box.floor():new D(t);return this.shiftBy(a.x,a.y).align(null,e)}let{useDlibAlignment:r,minBoxPadding:n}={useDlibAlignment:!1,minBoxPadding:.2,...e};return r?this.alignDlib():this.alignMinBbox(n)}alignDlib(){let t=this.getRefPointsForAlignment(),[e,r,n]=t,a=u=>n.sub(u).magnitude(),s=(a(e)+a(r))/2,i=Math.floor(s/Bn),c=zt(t),m=Math.floor(Math.max(0,c.x-Wn*i)),p=Math.floor(Math.max(0,c.y-kn*i));return new Yt(m,p,Math.min(i,this.imageWidth+m),Math.min(i,this.imageHeight+p))}alignMinBbox(t){let e=Vr(this.positions);return e.pad(e.width*t,e.height*t)}getRefPointsForAlignment(){throw new Error("getRefPointsForAlignment not implemented by base class")}};var jr=class extends z{getRefPointsForAlignment(){let t=this.positions;return[t[0],t[1],zt([t[3],t[4]])]}};var Gt=class extends z{getJawOutline(){return this.positions.slice(0,17)}getLeftEyeBrow(){return this.positions.slice(17,22)}getRightEyeBrow(){return this.positions.slice(22,27)}getNose(){return this.positions.slice(27,36)}getLeftEye(){return this.positions.slice(36,42)}getRightEye(){return this.positions.slice(42,48)}getMouth(){return this.positions.slice(48,68)}getRefPointsForAlignment(){return[this.getLeftEye(),this.getRightEye(),this.getMouth()].map(zt)}};var pe=class{constructor(t,e){this._label=t,this._distance=e}get label(){return this._label}get distance(){return this._distance}toString(t=!0){return`${this.label}${t?` (${Ht(this.distance)})`:""}`}};var ue=class extends D{constructor(e,r){super(e);this._label=r}static assertIsValidLabeledBox(e,r){if(D.assertIsValidBox(e,r),!et(e.label))throw new Error(`${r} - expected property label (${e.label}) to be a number`)}get label(){return this._label}};var mt=class{constructor(t,e){if(typeof t!="string")throw new Error("LabeledFaceDescriptors - constructor expected label to be a string");if(!Array.isArray(e)||e.some(r=>!(r instanceof Float32Array)))throw new Error("LabeledFaceDescriptors - constructor expected descriptors to be an array of Float32Array");this._label=t,this._descriptors=e}get label(){return this._label}get descriptors(){return this._descriptors}toJSON(){return{label:this.label,descriptors:this.descriptors.map(t=>Array.from(t))}}static fromJSON(t){let e=t.descriptors.map(r=>new Float32Array(r));return new mt(t.label,e)}};var Ur=class extends ue{constructor(e,r,n,a){super(e,r);this._score=n,this._classScore=a}static assertIsValidPredictedBox(e,r){if(ue.assertIsValidLabeledBox(e,r),!me(e.score)||!me(e.classScore))throw new Error(`${r} - expected properties score (${e.score}) and (${e.classScore}) to be a number between [0, 1]`)}get score(){return this._score}get classScore(){return this._classScore}};function pt(o){return o.detection instanceof M}function jt(o,t){return{...o,...{detection:t}}}function Xr(){let o=window.fetch;if(!o)throw new Error("fetch - missing fetch implementation for browser environment");return{Canvas:HTMLCanvasElement,CanvasRenderingContext2D,Image:HTMLImageElement,ImageData,Video:HTMLVideoElement,createCanvasElement:()=>document.createElement("canvas"),createImageElement:()=>document.createElement("img"),createVideoElement:()=>document.createElement("video"),fetch:o,readFile:()=>{throw new Error("readFile - filesystem not available for browser environment")}}}function Se(){return typeof global=="object"&&typeof process!="undefined"&&process.versions!=null&&process.versions.node!=null}function nr(o){let t="";if(!o&&Se())try{o=require("fs")}catch(r){t=r.toString()}return{readFile:o?r=>new Promise((n,a)=>{o.readFile(r,(s,i)=>s?a(s):n(i))}):()=>{throw new Error(`readFile - failed to require fs in nodejs environment with error: ${t}`)}}}function Jr(){let o=global.Canvas||global.HTMLCanvasElement,t=global.Image||global.HTMLImageElement,e=global.Video||global.HTMLVideoElement,r=()=>{if(o)return new o;throw new Error("createCanvasElement - missing Canvas implementation for nodejs environment")},n=()=>{if(t)return new t;throw new Error("createImageElement - missing Image implementation for nodejs environment")},a=()=>{if(e)return new e;throw new Error("createVideoElement - missing Video implementation for nodejs environment")},s=global.fetch,i=nr();return{Canvas:o||class{},CanvasRenderingContext2D:global.CanvasRenderingContext2D||class{},Image:t||class{},ImageData:global.ImageData||class{},Video:global.HTMLVideoElement||class{},createCanvasElement:r,createImageElement:n,createVideoElement:a,fetch:s,...i}}function qr(){return typeof window=="object"&&typeof document!="undefined"&&typeof HTMLImageElement!="undefined"&&typeof HTMLCanvasElement!="undefined"&&typeof HTMLVideoElement!="undefined"&&typeof ImageData!="undefined"&&typeof CanvasRenderingContext2D!="undefined"}var L;function Rn(){if(!L)throw new Error("getEnv - environment is not defined, check isNodejs() and isBrowser()");return L}function Zr(o){L=o}function Kr(){return qr()?Zr(Xr()):Se()?Zr(Jr()):null}function $n(o){if(L||Kr(),!L)throw new Error("monkeyPatch - environment is not defined, check isNodejs() and isBrowser()");let{Canvas:t=L.Canvas,Image:e=L.Image}=o;L.Canvas=t,L.Image=e,L.createCanvasElement=o.createCanvasElement||(()=>new t),L.createImageElement=o.createImageElement||(()=>new e),L.ImageData=o.ImageData||L.ImageData,L.Video=o.Video||L.Video,L.fetch=o.fetch||L.fetch,L.readFile=o.readFile||L.readFile}var w={getEnv:Rn,setEnv:Zr,initialize:Kr,createBrowserEnv:Xr,createFileSystem:nr,createNodejsEnv:Jr,monkeyPatch:$n,isBrowser:qr,isNodejs:Se};Kr();function Ut(o){return!w.isNodejs()&&typeof o=="string"?document.getElementById(o):o}function O(o){let{Canvas:t,CanvasRenderingContext2D:e}=w.getEnv();if(o instanceof e)return o;let r=Ut(o);if(!(r instanceof t))throw new Error("resolveContext2d - expected canvas to be of instance of Canvas");let n=r.getContext("2d");if(!n)throw new Error("resolveContext2d - canvas 2d context is null");return n}var Qr=(n=>(n.TOP_LEFT="TOP_LEFT",n.TOP_RIGHT="TOP_RIGHT",n.BOTTOM_LEFT="BOTTOM_LEFT",n.BOTTOM_RIGHT="BOTTOM_RIGHT",n))(Qr||{}),fe=class{constructor(t={}){let{anchorPosition:e,backgroundColor:r,fontColor:n,fontSize:a,fontStyle:s,padding:i}=t;this.anchorPosition=e||"TOP_LEFT",this.backgroundColor=r||"rgba(0, 0, 0, 0.5)",this.fontColor=n||"rgba(255, 255, 255, 1)",this.fontSize=a||14,this.fontStyle=s||"Georgia",this.padding=i||4}},gt=class{constructor(t,e,r={}){this.text=typeof t=="string"?[t]:t instanceof gt?t.text:t,this.anchor=e,this.options=new fe(r)}measureWidth(t){let{padding:e}=this.options;return this.text.map(r=>t.measureText(r).width).reduce((r,n)=>r{let b=c+u.x,y=c+u.y+(l+1)*s;r.fillText(f,b,y)})}};var ar=class{constructor(t={}){let{boxColor:e,lineWidth:r,label:n,drawLabelOptions:a}=t;this.boxColor=e||"rgba(0, 0, 255, 1)",this.lineWidth=r||2,this.label=n;let s={anchorPosition:"BOTTOM_LEFT",backgroundColor:this.boxColor};this.drawLabelOptions=new fe({...s,...a})}},Le=class{constructor(t,e={}){this.box=new D(t),this.options=new ar(e)}draw(t){let e=O(t),{boxColor:r,lineWidth:n}=this.options,{x:a,y:s,width:i,height:c}=this.box;e.strokeStyle=r,e.lineWidth=n,e.strokeRect(a,s,i,c);let{label:m}=this.options;m&&new gt([m],{x:a-n/2,y:s},this.options.drawLabelOptions).draw(t)}};function On(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof M?r.score:pt(r)?r.detection.score:void 0,a=r instanceof M?r.box:pt(r)?r.detection.box:new D(r),s=n?`${Ht(n)}`:void 0;new Le(a,{label:s}).draw(o)})}var we=v(x());function Ae(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t&&o.complete||o instanceof e&&o.readyState>=3}function to(o){return new Promise((t,e)=>{(o instanceof w.getEnv().Canvas||Ae(o))&&t(null);function r(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),e(a))}function n(a){!a.currentTarget||(a.currentTarget.removeEventListener("load",n),a.currentTarget.removeEventListener("error",r),t(a))}o.addEventListener("load",n),o.addEventListener("error",r)})}function eo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToImage - expected buf to be of type: Blob"));let r=new FileReader;r.onload=()=>{typeof r.result!="string"&&e(new Error("bufferToImage - expected reader.result to be a string, in onload"));let n=w.getEnv().createImageElement();n.onload=()=>t(n),n.onerror=e,n.src=r.result},r.onerror=e,r.readAsDataURL(o)})}function Xt(o){let{Image:t,Video:e}=w.getEnv();return o instanceof t?new k(o.naturalWidth,o.naturalHeight):o instanceof e?new k(o.videoWidth,o.videoHeight):new k(o.width,o.height)}function Jt({width:o,height:t}){let{createCanvasElement:e}=w.getEnv(),r=e();return r.width=o,r.height=t,r}function We(o,t){let{ImageData:e}=w.getEnv();if(!(o instanceof e)&&!Ae(o))throw new Error("createCanvasFromMedia - media has not finished loading yet");let{width:r,height:n}=t||Xt(o),a=Jt({width:r,height:n});return o instanceof e?O(a).putImageData(o,0,0):O(a).drawImage(o,0,0,r,n),a}var sr=v(x());async function ro(o,t){let e=t||w.getEnv().createCanvasElement(),[r,n,a]=o.shape.slice(U(o)?1:0),s=sr.tidy(()=>o.as3D(r,n,a).toInt());return await sr.browser.toPixels(s,e),s.dispose(),e}function ir(o){let{Image:t,Canvas:e,Video:r}=w.getEnv();return o instanceof t||o instanceof e||o instanceof r}var V=v(x());function oo(o,t,e=!1){let{Image:r,Canvas:n}=w.getEnv();if(!(o instanceof r||o instanceof n))throw new Error("imageToSquare - expected arg0 to be HTMLImageElement | HTMLCanvasElement");if(t<=0)return Jt({width:1,height:1});let a=Xt(o),s=t/Math.max(a.height,a.width),i=s*a.width,c=s*a.height,m=Jt({width:t,height:t}),p=o instanceof n?o:We(o),u=Math.abs(i-c)/2,f=e&&i0&&p.height>0&&O(m).drawImage(p,f,l,i,c),m}var ut=class{constructor(t,e=!1){this._imageTensors=[];this._canvases=[];this._treatAsBatchInput=!1;this._inputDimensions=[];this._inputSize=0;if(!Array.isArray(t))throw new Error(`NetInput.constructor - expected inputs to be an Array of TResolvedNetInput or to be instanceof tf.Tensor4D, instead have ${t}`);this._treatAsBatchInput=e,this._batchSize=t.length,t.forEach((r,n)=>{if(ht(r)){this._imageTensors[n]=r,this._inputDimensions[n]=r.shape;return}if(U(r)){let s=r.shape[0];if(s!==1)throw new Error(`NetInput - tf.Tensor4D with batchSize ${s} passed, but not supported in input array`);this._imageTensors[n]=r,this._inputDimensions[n]=r.shape.slice(1);return}let a=r instanceof w.getEnv().Canvas?r:We(r);this._canvases[n]=a,this._inputDimensions[n]=[a.height,a.width,3]})}get imageTensors(){return this._imageTensors}get canvases(){return this._canvases}get isBatchInput(){return this.batchSize>1||this._treatAsBatchInput}get batchSize(){return this._batchSize}get inputDimensions(){return this._inputDimensions}get inputSize(){return this._inputSize}get reshapedInputDimensions(){return it(this.batchSize,0,1).map((t,e)=>this.getReshapedInputDimensions(e))}getInput(t){return this.canvases[t]||this.imageTensors[t]}getInputDimensions(t){return this._inputDimensions[t]}getInputHeight(t){return this._inputDimensions[t][0]}getInputWidth(t){return this._inputDimensions[t][1]}getReshapedInputDimensions(t){if(typeof this.inputSize!="number")throw new Error("getReshapedInputDimensions - inputSize not set, toBatchTensor has not been called yet");let e=this.getInputWidth(t),r=this.getInputHeight(t);return Or({width:e,height:r},this.inputSize)}toBatchTensor(t,e=!0){return this._inputSize=t,V.tidy(()=>{let r=it(this.batchSize,0,1).map(a=>{let s=this.getInput(a);if(s instanceof V.Tensor){let i=U(s)?s:V.expandDims(s);return i=Gr(i,e),(i.shape[1]!==t||i.shape[2]!==t)&&(i=V.image.resizeBilinear(i,[t,t],!1,!1)),i.as3D(t,t,3)}if(s instanceof w.getEnv().Canvas)return V.browser.fromPixels(oo(s,t,e));throw new Error(`toBatchTensor - at batchIdx ${a}, expected input to be instanceof tf.Tensor or instanceof HTMLCanvasElement, instead have ${s}`)});return V.stack(r.map(a=>V.cast(a,"float32"))).as4D(this.batchSize,t,t,3)})}};async function C(o){if(o instanceof ut)return o;let t=Array.isArray(o)?o:[o];if(!t.length)throw new Error("toNetInput - empty array passed as input");let e=n=>Array.isArray(o)?` at input index ${n}:`:"",r=t.map(Ut);return r.forEach((n,a)=>{if(!ir(n)&&!ht(n)&&!U(n))throw typeof t[a]=="string"?new Error(`toNetInput -${e(a)} string passed, but could not resolve HTMLElement for element id ${t[a]}`):new Error(`toNetInput -${e(a)} expected media to be of type HTMLImageElement | HTMLVideoElement | HTMLCanvasElement | tf.Tensor3D, or to be an element id`);if(U(n)){let s=n.shape[0];if(s!==1)throw new Error(`toNetInput -${e(a)} tf.Tensor4D with batchSize ${s} passed, but not supported in input array`)}}),await Promise.all(r.map(n=>ir(n)&&to(n))),new ut(r,Array.isArray(o))}async function le(o,t){let{Canvas:e}=w.getEnv(),r=o;if(!(o instanceof e)){let s=await C(o);if(s.batchSize>1)throw new Error("extractFaces - batchSize > 1 not supported");let i=s.getInput(0);r=i instanceof e?i:await ro(i)}let n=O(r);return t.map(s=>s instanceof M?s.forSize(r.width,r.height).box.floor():s).map(s=>s.clipAtImageBorders(r.width,r.height)).map(({x:s,y:i,width:c,height:m})=>{let p=Jt({width:c,height:m});return c>0&&m>0&&O(p).putImageData(n.getImageData(s,i,c,m),0,0),p})}var cr=v(x());async function de(o,t){if(!ht(o)&&!U(o))throw new Error("extractFaceTensors - expected image tensor to be 3D or 4D");if(U(o)&&o.shape[0]>1)throw new Error("extractFaceTensors - batchSize > 1 not supported");return cr.tidy(()=>{let[e,r,n]=o.shape.slice(U(o)?1:0);return t.map(i=>i instanceof M?i.forSize(r,e).box:i).map(i=>i.clipAtImageBorders(r,e)).filter(i=>i.width>0&&i.height>0).map(({x:i,y:c,width:m,height:p})=>cr.slice3d(o.as3D(e,r,n),[c,i,0],[p,m,n]))})}async function xt(o,t){let{fetch:e}=w.getEnv(),r=await e(o,t);if(!(r.status<400))throw new Error(`failed to fetch: (${r.status}) ${r.statusText}, from url: ${r.url}`);return r}async function Hn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("image/"))throw new Error(`fetchImage - expected blob type to be of type image/*, instead have: ${e.type}, for url: ${t.url}`);return eo(e)}async function no(o){return(await xt(o)).json()}async function zn(o){return new Float32Array(await(await xt(o)).arrayBuffer())}function Fo(o){return new Promise((t,e)=>{o instanceof Blob||e(new Error("bufferToVideo - expected buf to be of type: Blob"));let r=w.getEnv().createVideoElement();r.oncanplay=()=>t(r),r.onerror=e,r.playsInline=!0,r.muted=!0,r.src=URL.createObjectURL(o),r.play()})}async function Vn(o){let t=await xt(o),e=await t.blob();if(!e.type.startsWith("video/"))throw new Error(`fetchVideo - expected blob type to be of type video/*, instead have: ${e.type}, for url: ${t.url}`);return Fo(e)}var Do=v(x());function mr(o,t){let e=`${t}-weights_manifest.json`;if(!o)return{modelBaseUri:"",manifestUri:e};if(o==="/")return{modelBaseUri:"/",manifestUri:`/${e}`};let r=o.startsWith("http://")?"http://":o.startsWith("https://")?"https://":"";o=o.replace(r,"");let n=o.split("/").filter(i=>i),a=o.endsWith(".json")?n[n.length-1]:e,s=r+(o.endsWith(".json")?n.slice(0,n.length-1):n).join("/");return s=o.startsWith("/")?`/${s}`:s,{modelBaseUri:s,manifestUri:s==="/"?`/${a}`:`${s}/${a}`}}async function ao(o,t){let{manifestUri:e,modelBaseUri:r}=mr(o,t),n=await no(e);return Do.io.loadWeights(n,r)}function Yn(o,t,e=!1){let{width:r,height:n}=e?Xt(t):t;return o.width=r,o.height=n,{width:r,height:n}}var ye=v(x());var vt=v(x());var A=class{constructor(t){this._params=void 0;this._paramMappings=[];this._name=t}get params(){return this._params}get paramMappings(){return this._paramMappings}get isLoaded(){return!!this.params}getParamFromPath(t){let{obj:e,objProp:r}=this.traversePropertyPath(t);return e[r]}reassignParamFromPath(t,e){let{obj:r,objProp:n}=this.traversePropertyPath(t);r[n].dispose(),r[n]=e}getParamList(){return this._paramMappings.map(({paramPath:t})=>({path:t,tensor:this.getParamFromPath(t)}))}getTrainableParams(){return this.getParamList().filter(t=>t.tensor instanceof vt.Variable)}getFrozenParams(){return this.getParamList().filter(t=>!(t.tensor instanceof vt.Variable))}variable(){this.getFrozenParams().forEach(({path:t,tensor:e})=>{this.reassignParamFromPath(t,e.variable())})}freeze(){this.getTrainableParams().forEach(({path:t,tensor:e})=>{let r=vt.tensor(e.dataSync());e.dispose(),this.reassignParamFromPath(t,r)})}dispose(t=!0){this.getParamList().forEach(e=>{if(t&&e.tensor.isDisposed)throw new Error(`param tensor has already been disposed for path ${e.path}`);e.tensor.dispose()}),this._params=void 0}serializeParams(){return new Float32Array(this.getParamList().map(({tensor:t})=>Array.from(t.dataSync())).reduce((t,e)=>t.concat(e)))}async load(t){if(t instanceof Float32Array){this.extractWeights(t);return}await this.loadFromUri(t)}async loadFromUri(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromUri - expected model uri`);let e=await ao(t,this.getDefaultModelName());this.loadFromWeightMap(e)}async loadFromDisk(t){if(t&&typeof t!="string")throw new Error(`${this._name}.loadFromDisk - expected model file path`);let{readFile:e}=w.getEnv(),{manifestUri:r,modelBaseUri:n}=mr(t,this.getDefaultModelName()),a=m=>Promise.all(m.map(p=>e(p).then(u=>u.buffer))),s=vt.io.weightsLoaderFactory(a),i=JSON.parse((await e(r)).toString()),c=await s(i,n);this.loadFromWeightMap(c)}loadFromWeightMap(t){let{paramMappings:e,params:r}=this.extractParamsFromWeightMap(t);this._paramMappings=e,this._params=r}extractWeights(t){let{paramMappings:e,params:r}=this.extractParams(t);this._paramMappings=e,this._params=r}traversePropertyPath(t){if(!this.params)throw new Error("traversePropertyPath - model has no loaded params");let e=t.split("/").reduce((a,s)=>{if(!a.nextObj.hasOwnProperty(s))throw new Error(`traversePropertyPath - object does not have property ${s}, for path ${t}`);return{obj:a.nextObj,objProp:s,nextObj:a.nextObj[s]}},{nextObj:this.params}),{obj:r,objProp:n}=e;if(!r||!n||!(r[n]instanceof vt.Tensor))throw new Error(`traversePropertyPath - parameter is not a tensor, for path ${t}`);return{obj:r,objProp:n}}};var I=v(x());var he=v(x());function H(o,t,e){return he.tidy(()=>{let r=he.separableConv2d(o,t.depthwise_filter,t.pointwise_filter,e,"same");return r=he.add(r,t.bias),r})}function pr(o,t,e=!1){return I.tidy(()=>{let r=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,[2,2],"same"),t.conv0.bias):H(o,t.conv0,[2,2])),n=H(r,t.conv1,[1,1]),a=I.relu(I.add(r,n)),s=H(a,t.conv2,[1,1]);return I.relu(I.add(r,I.add(n,s)))})}function ke(o,t,e=!1,r=!0){return I.tidy(()=>{let n=I.relu(e?I.add(I.conv2d(o,t.conv0.filters,r?[2,2]:[1,1],"same"),t.conv0.bias):H(o,t.conv0,r?[2,2]:[1,1])),a=H(n,t.conv1,[1,1]),s=I.relu(I.add(n,a)),i=H(s,t.conv2,[1,1]),c=I.relu(I.add(n,I.add(a,i))),m=H(c,t.conv3,[1,1]);return I.relu(I.add(n,I.add(a,I.add(i,m))))})}var It=v(x());function qt(o,t,e="same",r=!1){return It.tidy(()=>{let n=It.add(It.conv2d(o,t.filters,[1,1],e),t.bias);return r?It.relu(n):n})}function B(o,t){Object.keys(o).forEach(e=>{t.some(r=>r.originalPath===e)||o[e].dispose()})}var ur=v(x());function be(o,t){return(e,r,n,a)=>{let s=ur.tensor4d(o(e*r*n*n),[n,n,e,r]),i=ur.tensor1d(o(r));return t.push({paramPath:`${a}/filters`},{paramPath:`${a}/bias`}),{filters:s,bias:i}}}var fr=v(x());function lr(o,t){return(e,r,n)=>{let a=fr.tensor2d(o(e*r),[e,r]),s=fr.tensor1d(o(r));return t.push({paramPath:`${n}/weights`},{paramPath:`${n}/bias`}),{weights:a,bias:s}}}var Re=v(x());var Be=class{constructor(t,e,r){this.depthwise_filter=t;this.pointwise_filter=e;this.bias=r}};function ge(o,t){return(e,r,n)=>{let a=Re.tensor4d(o(9*e),[3,3,e,1]),s=Re.tensor4d(o(e*r),[1,1,e,r]),i=Re.tensor1d(o(r));return t.push({paramPath:`${n}/depthwise_filter`},{paramPath:`${n}/pointwise_filter`},{paramPath:`${n}/bias`}),new Be(a,s,i)}}function xe(o){return t=>{let e=o(`${t}/depthwise_filter`,4),r=o(`${t}/pointwise_filter`,4),n=o(`${t}/bias`,1);return new Be(e,r,n)}}function Y(o,t){return(e,r,n)=>{let a=o[e];if(!Ot(a,r))throw new Error(`expected weightMap[${e}] to be a Tensor${r}D, instead have ${a}`);return t.push({originalPath:e,paramPath:n||e}),a}}function R(o){let t=o;function e(n){let a=t.slice(0,n);return t=t.slice(n),a}function r(){return t}return{extractWeights:e,getRemainingWeights:r}}function dr(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c,m=!1){let p=m?e(s,i,3,`${c}/conv0`):r(s,i,`${c}/conv0`),u=r(i,i,`${c}/conv1`),f=r(i,i,`${c}/conv2`);return{conv0:p,conv1:u,conv2:f}}function a(s,i,c,m=!1){let{conv0:p,conv1:u,conv2:f}=n(s,i,c,m),l=r(i,i,`${c}/conv3`);return{conv0:p,conv1:u,conv2:f,conv3:l}}return{extractDenseBlock3Params:n,extractDenseBlock4Params:a}}function Eo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock4Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2"),c=n(128,256,"dense3");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i,dense3:c}}}function hr(o){return t=>{let e=o(`${t}/filters`,4),r=o(`${t}/bias`,1);return{filters:e,bias:r}}}function br(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`);return{conv0:m,conv1:p,conv2:u}}function s(i,c=!1){let m=c?r(`${i}/conv0`):n(`${i}/conv0`),p=n(`${i}/conv1`),u=n(`${i}/conv2`),f=n(`${i}/conv3`);return{conv0:m,conv1:p,conv2:u,conv3:f}}return{extractDenseBlock3Params:a,extractDenseBlock4Params:s}}function Mo(o){let t=[],{extractDenseBlock4Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2"),dense3:e("dense3")};return B(o,t),{params:r,paramMappings:t}}var ve=class extends A{constructor(){super("FaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceFeatureExtractor - load model before inference");return ye.tidy(()=>{let r=ye.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=ke(a,e.dense0,!0);return s=ke(s,e.dense1),s=ke(s,e.dense2),s=ke(s,e.dense3),s=ye.avgPool(s,[7,7],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_model"}extractParamsFromWeightMap(t){return Mo(t)}extractParams(t){return Eo(t)}};var No=v(x());var _e=v(x());function $e(o,t){return _e.tidy(()=>_e.add(_e.matMul(o,t.weights),t.bias))}function Co(o,t,e){let r=[],{extractWeights:n,getRemainingWeights:a}=R(o),i=lr(n,r)(t,e,"fc");if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{paramMappings:r,params:{fc:i}}}function Io(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:r("fc")};return B(o,t),{params:n,paramMappings:t}}function gr(o){let t={},e={};return Object.keys(o).forEach(r=>{let n=r.startsWith("fc")?e:t;n[r]=o[r]}),{featureExtractorMap:t,classifierMap:e}}var Te=class extends A{constructor(e,r){super(e);this._faceFeatureExtractor=r}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return No.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e;return $e(n.as2D(n.shape[0],-1),r.fc)})}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return Co(e,this.getClassifierChannelsIn(),this.getClassifierChannelsOut())}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Io(n)}extractParams(e){let r=this.getClassifierChannelsIn(),n=this.getClassifierChannelsOut(),a=n*r+n,s=e.slice(0,e.length-a),i=e.slice(e.length-a);return this.faceFeatureExtractor.extractWeights(s),this.extractClassifierParams(i)}};var so=["neutral","happy","sad","angry","fearful","disgusted","surprised"],yt=class{constructor(t){this.neutral=0;this.happy=0;this.sad=0;this.angry=0;this.fearful=0;this.disgusted=0;this.surprised=0;if(t.length!==7)throw new Error(`FaceExpressions.constructor - expected probabilities.length to be 7, have: ${t.length}`);so.forEach((e,r)=>{this[e]=t[r]})}asSortedArray(){return so.map(t=>({expression:t,probability:this[t]})).sort((t,e)=>e.probability-t.probability)}};var Oe=class extends Te{constructor(t=new ve){super("FaceExpressionNet",t)}forwardInput(t){return we.tidy(()=>we.softmax(this.runNet(t)))}async forward(t){return this.forwardInput(await C(t))}async predictExpressions(t){let e=await C(t),r=await this.forwardInput(e),n=await Promise.all(we.unstack(r).map(async s=>{let i=s.dataSync();return s.dispose(),i}));r.dispose();let a=n.map(s=>new yt(s));return e.isBatchInput?a:a[0]}getDefaultModelName(){return"face_expression_model"}getClassifierChannelsIn(){return 256}getClassifierChannelsOut(){return 7}};function io(o){return o.expressions instanceof yt}function xr(o,t){return{...o,...{expressions:t}}}function Gn(o,t,e=.1,r){(Array.isArray(t)?t:[t]).forEach(a=>{let s=a instanceof yt?a:io(a)?a.expressions:void 0;if(!s)throw new Error("drawFaceExpressions - expected faceExpressions to be FaceExpressions | WithFaceExpressions<{}> or array thereof");let c=s.asSortedArray().filter(u=>u.probability>e),m=pt(a)?a.detection.box.bottomLeft:r||new g(0,0);new gt(c.map(u=>`${u.expression} (${Ht(u.probability)})`),m).draw(o)})}function Zt(o){return pt(o)&&o.landmarks instanceof z&&o.unshiftedLandmarks instanceof z&&o.alignedRect instanceof M}function jn(o){let t=c=>c*180/Math.PI,e=(c,m)=>Math.sqrt((c._x-m._x)**2+(c._y-m._y)**2),r={roll:void 0,pitch:void 0,yaw:void 0},n=(c,m,p)=>{let u=Math.floor(c._x-m._x),f=Math.floor(m._x-p._x);return u-f},a=(c,m)=>{let p=Math.hypot(m._x-c._x,m._y-c._y),u=m._y-c._y,f=Math.asin(u/p),l=t(f),b=Math.floor(90-l),y=m._x-c._x<0?-1:1;return b*y},s=(c,m,p)=>{let u=e(c,p),f={_x:(c._x+p._x)/2,_y:(c._y+p._y)/2},l=e(m,f),b=Math.atan(l/u),y=Math.floor(t(b)),F=f._y-m._y<0?-1:1;return y*F};if(!o||!o._positions||o._positions.length!==68)return r;let i=o._positions;return r.roll=a(i[27],i[66]),r.pitch=s(i[14],i[30],i[2]),r.yaw=n(i[14],i[33],i[2]),r}function Pe(o,t){let{box:e}=o.detection,r=t.shiftBy(e.x,e.y),n=r.align(),{imageDims:a}=o.detection,s=new M(o.detection.score,n.rescale(a.reverse()),a),i=jn(t);return{...o,...{landmarks:r,unshiftedLandmarks:t,alignedRect:s,angle:i}}}var vr=class{constructor(t={}){let{drawLines:e=!0,drawPoints:r=!0,lineWidth:n,lineColor:a,pointSize:s,pointColor:i}=t;this.drawLines=e,this.drawPoints=r,this.lineWidth=n||1,this.pointSize=s||2,this.lineColor=a||"rgba(0, 255, 255, 1)",this.pointColor=i||"rgba(255, 0, 255, 1)"}},yr=class{constructor(t,e={}){this.faceLandmarks=t,this.options=new vr(e)}draw(t){let e=O(t),{drawLines:r,drawPoints:n,lineWidth:a,lineColor:s,pointSize:i,pointColor:c}=this.options;if(r&&this.faceLandmarks instanceof Gt&&(e.strokeStyle=s,e.lineWidth=a,dt(e,this.faceLandmarks.getJawOutline()),dt(e,this.faceLandmarks.getLeftEyeBrow()),dt(e,this.faceLandmarks.getRightEyeBrow()),dt(e,this.faceLandmarks.getNose()),dt(e,this.faceLandmarks.getLeftEye(),!0),dt(e,this.faceLandmarks.getRightEye(),!0),dt(e,this.faceLandmarks.getMouth(),!0)),n){e.strokeStyle=c,e.fillStyle=c;let m=p=>{e.beginPath(),e.arc(p.x,p.y,i,0,2*Math.PI),e.fill()};this.faceLandmarks.positions.forEach(m)}}};function Un(o,t){(Array.isArray(t)?t:[t]).forEach(r=>{let n=r instanceof z?r:Zt(r)?r.landmarks:void 0;if(!n)throw new Error("drawFaceLandmarks - expected faceExpressions to be FaceLandmarks | WithFaceLandmarks> or array thereof");new yr(n).draw(o)})}var So="1.7.7";var ft=v(x());var S=v(x());function qn(o,t){let e=be(o,t),r=ge(o,t);function n(s,i,c){let m=r(s,i,`${c}/separable_conv0`),p=r(i,i,`${c}/separable_conv1`),u=e(s,i,1,`${c}/expansion_conv`);return{separable_conv0:m,separable_conv1:p,expansion_conv:u}}function a(s,i){let c=r(s,s,`${i}/separable_conv0`),m=r(s,s,`${i}/separable_conv1`),p=r(s,s,`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:e,extractSeparableConvParams:r,extractReductionBlockParams:n,extractMainBlockParams:a}}function Lo(o,t){let e=[],{extractWeights:r,getRemainingWeights:n}=R(o),{extractConvParams:a,extractSeparableConvParams:s,extractReductionBlockParams:i,extractMainBlockParams:c}=qn(r,e),m=a(3,32,3,"entry_flow/conv_in"),p=i(32,64,"entry_flow/reduction_block_0"),u=i(64,128,"entry_flow/reduction_block_1"),f={conv_in:m,reduction_block_0:p,reduction_block_1:u},l={};it(t,0,1).forEach(h=>{l[`main_block_${h}`]=c(128,`middle_flow/main_block_${h}`)});let b=i(128,256,"exit_flow/reduction_block"),y=s(256,512,"exit_flow/separable_conv"),F={reduction_block:b,separable_conv:y};if(n().length!==0)throw new Error(`weights remaing after extract: ${n().length}`);return{paramMappings:e,params:{entry_flow:f,middle_flow:l,exit_flow:F}}}function Zn(o,t){let e=Y(o,t),r=hr(e),n=xe(e);function a(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=r(`${i}/expansion_conv`);return{separable_conv0:c,separable_conv1:m,expansion_conv:p}}function s(i){let c=n(`${i}/separable_conv0`),m=n(`${i}/separable_conv1`),p=n(`${i}/separable_conv2`);return{separable_conv0:c,separable_conv1:m,separable_conv2:p}}return{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}}function Ao(o,t){let e=[],{extractConvParams:r,extractSeparableConvParams:n,extractReductionBlockParams:a,extractMainBlockParams:s}=Zn(o,e),i=r("entry_flow/conv_in"),c=a("entry_flow/reduction_block_0"),m=a("entry_flow/reduction_block_1"),p={conv_in:i,reduction_block_0:c,reduction_block_1:m},u={};it(t,0,1).forEach(y=>{u[`main_block_${y}`]=s(`middle_flow/main_block_${y}`)});let f=a("exit_flow/reduction_block"),l=n("exit_flow/separable_conv"),b={reduction_block:f,separable_conv:l};return B(o,e),{params:{entry_flow:p,middle_flow:u,exit_flow:b},paramMappings:e}}function Wo(o,t,e){return S.add(S.conv2d(o,t.filters,e,"same"),t.bias)}function mo(o,t,e=!0){let r=e?S.relu(o):o;return r=H(r,t.separable_conv0,[1,1]),r=H(S.relu(r),t.separable_conv1,[1,1]),r=S.maxPool(r,[3,3],[2,2],"same"),r=S.add(r,Wo(o,t.expansion_conv,[2,2])),r}function Kn(o,t){let e=H(S.relu(o),t.separable_conv0,[1,1]);return e=H(S.relu(e),t.separable_conv1,[1,1]),e=H(S.relu(e),t.separable_conv2,[1,1]),e=S.add(e,o),e}var _r=class extends A{constructor(e){super("TinyXception");this._numMainBlocks=e}forwardInput(e){let{params:r}=this;if(!r)throw new Error("TinyXception - load model before inference");return S.tidy(()=>{let n=S.cast(e.toBatchTensor(112,!0),"float32"),s=rt(n,[122.782,117.001,104.298]).div(255),i=S.relu(Wo(s,r.entry_flow.conv_in,[2,2]));return i=mo(i,r.entry_flow.reduction_block_0,!1),i=mo(i,r.entry_flow.reduction_block_1),it(this._numMainBlocks,0,1).forEach(c=>{i=Kn(i,r.middle_flow[`main_block_${c}`])}),i=mo(i,r.exit_flow.reduction_block),i=S.relu(H(i,r.exit_flow.separable_conv,[1,1])),i})}async forward(e){return this.forwardInput(await C(e))}getDefaultModelName(){return"tiny_xception_model"}extractParamsFromWeightMap(e){return Ao(e,this._numMainBlocks)}extractParams(e){return Lo(e,this._numMainBlocks)}};function ko(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),n=lr(e,t),a=n(512,1,"fc/age"),s=n(512,2,"fc/gender");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{fc:{age:a,gender:s}}}}function Bo(o){let t=[],e=Y(o,t);function r(a){let s=e(`${a}/weights`,2),i=e(`${a}/bias`,1);return{weights:s,bias:i}}let n={fc:{age:r("fc/age"),gender:r("fc/gender")}};return B(o,t),{params:n,paramMappings:t}}var Tr=(e=>(e.FEMALE="female",e.MALE="male",e))(Tr||{});var He=class extends A{constructor(e=new _r(2)){super("AgeGenderNet");this._faceFeatureExtractor=e}get faceFeatureExtractor(){return this._faceFeatureExtractor}runNet(e){let{params:r}=this;if(!r)throw new Error(`${this._name} - load model before inference`);return ft.tidy(()=>{let n=e instanceof ut?this.faceFeatureExtractor.forwardInput(e):e,a=ft.avgPool(n,[7,7],[2,2],"valid").as2D(n.shape[0],-1),s=$e(a,r.fc.age).as1D(),i=$e(a,r.fc.gender);return{age:s,gender:i}})}forwardInput(e){return ft.tidy(()=>{let{age:r,gender:n}=this.runNet(e);return{age:r,gender:ft.softmax(n)}})}async forward(e){return this.forwardInput(await C(e))}async predictAgeAndGender(e){let r=await C(e),n=await this.forwardInput(r),a=ft.unstack(n.age),s=ft.unstack(n.gender),i=a.map((m,p)=>({ageTensor:m,genderTensor:s[p]})),c=await Promise.all(i.map(async({ageTensor:m,genderTensor:p})=>{let u=m.dataSync()[0],f=p.dataSync()[0],l=f>.5,b=l?"male":"female",y=l?f:1-f;return m.dispose(),p.dispose(),{age:u,gender:b,genderProbability:y}}));return n.age.dispose(),n.gender.dispose(),r.isBatchInput?c:c[0]}getDefaultModelName(){return"age_gender_model"}dispose(e=!0){this.faceFeatureExtractor.dispose(e),super.dispose(e)}loadClassifierParams(e){let{params:r,paramMappings:n}=this.extractClassifierParams(e);this._params=r,this._paramMappings=n}extractClassifierParams(e){return ko(e)}extractParamsFromWeightMap(e){let{featureExtractorMap:r,classifierMap:n}=gr(e);return this.faceFeatureExtractor.loadFromWeightMap(r),Bo(n)}extractParams(e){let n=e.slice(0,e.length-1539),a=e.slice(e.length-1539);return this.faceFeatureExtractor.extractWeights(n),this.extractClassifierParams(a)}};var G=v(x());var Fe=class extends Te{postProcess(t,e,r){let n=r.map(({width:s,height:i})=>{let c=e/Math.max(i,s);return{width:s*c,height:i*c}}),a=n.length;return G.tidy(()=>{let s=(u,f)=>G.stack([G.fill([68],u,"float32"),G.fill([68],f,"float32")],1).as2D(1,136).as1D(),i=(u,f)=>{let{width:l,height:b}=n[u];return f(l,b)?Math.abs(l-b)/2:0},c=u=>i(u,(f,l)=>fi(u,(f,l)=>ls(c(f),m(f))))).div(G.stack(Array.from(Array(a),(u,f)=>s(n[f].width,n[f].height))))})}forwardInput(t){return G.tidy(()=>{let e=this.runNet(t);return this.postProcess(e,t.inputSize,t.inputDimensions.map(([r,n])=>({height:r,width:n})))})}async forward(t){return this.forwardInput(await C(t))}async detectLandmarks(t){let e=await C(t),r=G.tidy(()=>G.unstack(this.forwardInput(e))),n=await Promise.all(r.map(async(a,s)=>{let i=Array.from(a.dataSync()),c=i.filter((p,u)=>rr(u)),m=i.filter((p,u)=>!rr(u));return new Gt(Array(68).fill(0).map((p,u)=>new g(c[u],m[u])),{height:e.getInputHeight(s),width:e.getInputWidth(s)})}));return r.forEach(a=>a.dispose()),e.isBatchInput?n:n[0]}getClassifierChannelsOut(){return 136}};var Kt=class extends Fe{constructor(t=new ve){super("FaceLandmark68Net",t)}getDefaultModelName(){return"face_landmark_68_model"}getClassifierChannelsIn(){return 256}};var De=v(x());function Ro(o){let t=[],{extractDenseBlock3Params:e}=br(o,t),r={dense0:e("dense0",!0),dense1:e("dense1"),dense2:e("dense2")};return B(o,t),{params:r,paramMappings:t}}function $o(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractDenseBlock3Params:n}=dr(e,t),a=n(3,32,"dense0",!0),s=n(32,64,"dense1"),i=n(64,128,"dense2");if(r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{paramMappings:t,params:{dense0:a,dense1:s,dense2:i}}}var wr=class extends A{constructor(){super("TinyFaceFeatureExtractor")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("TinyFaceFeatureExtractor - load model before inference");return De.tidy(()=>{let r=De.cast(t.toBatchTensor(112,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=pr(a,e.dense0,!0);return s=pr(s,e.dense1),s=pr(s,e.dense2),s=De.avgPool(s,[14,14],[2,2],"valid"),s})}async forward(t){return this.forwardInput(await C(t))}getDefaultModelName(){return"face_feature_extractor_tiny_model"}extractParamsFromWeightMap(t){return Ro(t)}extractParams(t){return $o(t)}};var ze=class extends Fe{constructor(t=new wr){super("FaceLandmark68TinyNet",t)}getDefaultModelName(){return"face_landmark_68_tiny_model"}getClassifierChannelsIn(){return 128}};var po=class extends Kt{};var nt=v(x());var Ee=v(x());var Pr=v(x());function Oo(o,t){return Pr.add(Pr.mul(o,t.weights),t.biases)}function uo(o,t,e,r,n="same"){let{filters:a,bias:s}=t.conv,i=Ee.conv2d(o,a,e,n);return i=Ee.add(i,s),i=Oo(i,t.scale),r?Ee.relu(i):i}function Ho(o,t){return uo(o,t,[1,1],!0)}function fo(o,t){return uo(o,t,[1,1],!1)}function Fr(o,t){return uo(o,t,[2,2],!0,"valid")}var j=v(x());function Qn(o,t){function e(i,c,m){let p=o(i),u=p.length/(c*m*m);if($r(u))throw new Error(`depth has to be an integer: ${u}, weights.length: ${p.length}, numFilters: ${c}, filterSize: ${m}`);return j.tidy(()=>j.transpose(j.tensor4d(p,[c,u,m,m]),[2,3,1,0]))}function r(i,c,m,p){let u=e(i,c,m),f=j.tensor1d(o(c));return t.push({paramPath:`${p}/filters`},{paramPath:`${p}/bias`}),{filters:u,bias:f}}function n(i,c){let m=j.tensor1d(o(i)),p=j.tensor1d(o(i));return t.push({paramPath:`${c}/weights`},{paramPath:`${c}/biases`}),{weights:m,biases:p}}function a(i,c,m,p){let u=r(i,c,m,`${p}/conv`),f=n(c,`${p}/scale`);return{conv:u,scale:f}}function s(i,c,m,p,u=!1){let f=a((u?.5:1)*i,c,m,`${p}/conv1`),l=a(i,c,m,`${p}/conv2`);return{conv1:f,conv2:l}}return{extractConvLayerParams:a,extractResidualLayerParams:s}}function zo(o){let{extractWeights:t,getRemainingWeights:e}=R(o),r=[],{extractConvLayerParams:n,extractResidualLayerParams:a}=Qn(t,r),s=n(4704,32,7,"conv32_down"),i=a(9216,32,3,"conv32_1"),c=a(9216,32,3,"conv32_2"),m=a(9216,32,3,"conv32_3"),p=a(36864,64,3,"conv64_down",!0),u=a(36864,64,3,"conv64_1"),f=a(36864,64,3,"conv64_2"),l=a(36864,64,3,"conv64_3"),b=a(147456,128,3,"conv128_down",!0),y=a(147456,128,3,"conv128_1"),F=a(147456,128,3,"conv128_2"),h=a(589824,256,3,"conv256_down",!0),T=a(589824,256,3,"conv256_1"),_=a(589824,256,3,"conv256_2"),E=a(589824,256,3,"conv256_down_out"),W=j.tidy(()=>j.transpose(j.tensor2d(t(256*128),[128,256]),[1,0]));if(r.push({paramPath:"fc"}),e().length!==0)throw new Error(`weights remaing after extract: ${e().length}`);return{params:{conv32_down:s,conv32_1:i,conv32_2:c,conv32_3:m,conv64_down:p,conv64_1:u,conv64_2:f,conv64_3:l,conv128_down:b,conv128_1:y,conv128_2:F,conv256_down:h,conv256_1:T,conv256_2:_,conv256_down_out:E,fc:W},paramMappings:r}}function ta(o,t){let e=Y(o,t);function r(s){let i=e(`${s}/scale/weights`,1),c=e(`${s}/scale/biases`,1);return{weights:i,biases:c}}function n(s){let i=e(`${s}/conv/filters`,4),c=e(`${s}/conv/bias`,1),m=r(s);return{conv:{filters:i,bias:c},scale:m}}function a(s){return{conv1:n(`${s}/conv1`),conv2:n(`${s}/conv2`)}}return{extractConvLayerParams:n,extractResidualLayerParams:a}}function Vo(o){let t=[],{extractConvLayerParams:e,extractResidualLayerParams:r}=ta(o,t),n=e("conv32_down"),a=r("conv32_1"),s=r("conv32_2"),i=r("conv32_3"),c=r("conv64_down"),m=r("conv64_1"),p=r("conv64_2"),u=r("conv64_3"),f=r("conv128_down"),l=r("conv128_1"),b=r("conv128_2"),y=r("conv256_down"),F=r("conv256_1"),h=r("conv256_2"),T=r("conv256_down_out"),{fc:_}=o;if(t.push({originalPath:"fc",paramPath:"fc"}),!Rr(_))throw new Error(`expected weightMap[fc] to be a Tensor2D, instead have ${_}`);let E={conv32_down:n,conv32_1:a,conv32_2:s,conv32_3:i,conv64_down:c,conv64_1:m,conv64_2:p,conv64_3:u,conv128_down:f,conv128_1:l,conv128_2:b,conv256_down:y,conv256_1:F,conv256_2:h,conv256_down_out:T,fc:_};return B(o,t),{params:E,paramMappings:t}}var $=v(x());function ot(o,t){let e=Ho(o,t.conv1);return e=fo(e,t.conv2),e=$.add(e,o),e=$.relu(e),e}function Ve(o,t){let e=Fr(o,t.conv1);e=fo(e,t.conv2);let r=$.avgPool(o,2,2,"valid"),n=$.zeros(r.shape),a=r.shape[3]!==e.shape[3];if(r.shape[1]!==e.shape[1]||r.shape[2]!==e.shape[2]){let i=[...e.shape];i[1]=1;let c=$.zeros(i);e=$.concat([e,c],1);let m=[...e.shape];m[2]=1;let p=$.zeros(m);e=$.concat([e,p],2)}return r=a?$.concat([r,n],3):r,e=$.add(r,e),e=$.relu(e),e}var Qt=class extends A{constructor(){super("FaceRecognitionNet")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("FaceRecognitionNet - load model before inference");return nt.tidy(()=>{let r=nt.cast(t.toBatchTensor(150,!0),"float32"),a=rt(r,[122.782,117.001,104.298]).div(255),s=Fr(a,e.conv32_down);s=nt.maxPool(s,3,2,"valid"),s=ot(s,e.conv32_1),s=ot(s,e.conv32_2),s=ot(s,e.conv32_3),s=Ve(s,e.conv64_down),s=ot(s,e.conv64_1),s=ot(s,e.conv64_2),s=ot(s,e.conv64_3),s=Ve(s,e.conv128_down),s=ot(s,e.conv128_1),s=ot(s,e.conv128_2),s=Ve(s,e.conv256_down),s=ot(s,e.conv256_1),s=ot(s,e.conv256_2),s=Ve(s,e.conv256_down_out);let i=s.mean([1,2]);return nt.matMul(i,e.fc)})}async forward(t){return this.forwardInput(await C(t))}async computeFaceDescriptor(t){var a;if((a=t==null?void 0:t.shape)!=null&&a.some(s=>s<=0))return new Float32Array(128);let e=await C(t),r=nt.tidy(()=>nt.unstack(this.forwardInput(e))),n=await Promise.all(r.map(s=>s.data()));return r.forEach(s=>s.dispose()),e.isBatchInput?n:n[0]}getDefaultModelName(){return"face_recognition_model"}extractParamsFromWeightMap(t){return Vo(t)}extractParams(t){return zo(t)}};function ea(o){let t=new Qt;return t.extractWeights(o),t}function Dr(o,t){return{...o,...{descriptor:t}}}function ra(o){return typeof o.age=="number"}function Er(o,t){return{...o,...{age:t}}}function oa(o){return(o.gender==="male"||o.gender==="female")&&me(o.genderProbability)}function Mr(o,t,e){return{...o,...{gender:t,genderProbability:e}}}var Lt=v(x());var at=v(x());function na(o,t){function e(c,m){let p=at.tensor4d(o(9*c),[3,3,c,1]),u=at.tensor1d(o(c)),f=at.tensor1d(o(c)),l=at.tensor1d(o(c)),b=at.tensor1d(o(c));return t.push({paramPath:`${m}/filters`},{paramPath:`${m}/batch_norm_scale`},{paramPath:`${m}/batch_norm_offset`},{paramPath:`${m}/batch_norm_mean`},{paramPath:`${m}/batch_norm_variance`}),{filters:p,batch_norm_scale:u,batch_norm_offset:f,batch_norm_mean:l,batch_norm_variance:b}}function r(c,m,p,u,f){let l=at.tensor4d(o(c*m*p*p),[p,p,c,m]),b=at.tensor1d(o(m));return t.push({paramPath:`${u}/filters`},{paramPath:`${u}/${f?"batch_norm_offset":"bias"}`}),{filters:l,bias:b}}function n(c,m,p,u){let{filters:f,bias:l}=r(c,m,p,u,!0);return{filters:f,batch_norm_offset:l}}function a(c,m,p){let u=e(c,`${p}/depthwise_conv`),f=n(c,m,1,`${p}/pointwise_conv`);return{depthwise_conv:u,pointwise_conv:f}}function s(){let c=n(3,32,3,"mobilenetv1/conv_0"),m=a(32,64,"mobilenetv1/conv_1"),p=a(64,128,"mobilenetv1/conv_2"),u=a(128,128,"mobilenetv1/conv_3"),f=a(128,256,"mobilenetv1/conv_4"),l=a(256,256,"mobilenetv1/conv_5"),b=a(256,512,"mobilenetv1/conv_6"),y=a(512,512,"mobilenetv1/conv_7"),F=a(512,512,"mobilenetv1/conv_8"),h=a(512,512,"mobilenetv1/conv_9"),T=a(512,512,"mobilenetv1/conv_10"),_=a(512,512,"mobilenetv1/conv_11"),E=a(512,1024,"mobilenetv1/conv_12"),W=a(1024,1024,"mobilenetv1/conv_13");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,conv_8:F,conv_9:h,conv_10:T,conv_11:_,conv_12:E,conv_13:W}}function i(){let c=n(1024,256,1,"prediction_layer/conv_0"),m=n(256,512,3,"prediction_layer/conv_1"),p=n(512,128,1,"prediction_layer/conv_2"),u=n(128,256,3,"prediction_layer/conv_3"),f=n(256,128,1,"prediction_layer/conv_4"),l=n(128,256,3,"prediction_layer/conv_5"),b=n(256,64,1,"prediction_layer/conv_6"),y=n(64,128,3,"prediction_layer/conv_7"),F=r(512,12,1,"prediction_layer/box_predictor_0/box_encoding_predictor"),h=r(512,9,1,"prediction_layer/box_predictor_0/class_predictor"),T=r(1024,24,1,"prediction_layer/box_predictor_1/box_encoding_predictor"),_=r(1024,18,1,"prediction_layer/box_predictor_1/class_predictor"),E=r(512,24,1,"prediction_layer/box_predictor_2/box_encoding_predictor"),W=r(512,18,1,"prediction_layer/box_predictor_2/class_predictor"),tt=r(256,24,1,"prediction_layer/box_predictor_3/box_encoding_predictor"),lt=r(256,18,1,"prediction_layer/box_predictor_3/class_predictor"),q=r(256,24,1,"prediction_layer/box_predictor_4/box_encoding_predictor"),Dt=r(256,18,1,"prediction_layer/box_predictor_4/class_predictor"),Et=r(128,24,1,"prediction_layer/box_predictor_5/box_encoding_predictor"),Mt=r(128,18,1,"prediction_layer/box_predictor_5/class_predictor");return{conv_0:c,conv_1:m,conv_2:p,conv_3:u,conv_4:f,conv_5:l,conv_6:b,conv_7:y,box_predictor_0:{box_encoding_predictor:F,class_predictor:h},box_predictor_1:{box_encoding_predictor:T,class_predictor:_},box_predictor_2:{box_encoding_predictor:E,class_predictor:W},box_predictor_3:{box_encoding_predictor:tt,class_predictor:lt},box_predictor_4:{box_encoding_predictor:q,class_predictor:Dt},box_predictor_5:{box_encoding_predictor:Et,class_predictor:Mt}}}return{extractMobilenetV1Params:s,extractPredictionLayerParams:i}}function Yo(o){let t=[],{extractWeights:e,getRemainingWeights:r}=R(o),{extractMobilenetV1Params:n,extractPredictionLayerParams:a}=na(e,t),s=n(),i=a(),m={extra_dim:at.tensor3d(e(5118*4),[1,5118,4])};if(t.push({paramPath:"output_layer/extra_dim"}),r().length!==0)throw new Error(`weights remaing after extract: ${r().length}`);return{params:{mobilenetv1:s,prediction_layer:i,output_layer:m},paramMappings:t}}function aa(o,t){let e=Y(o,t);function r(m,p,u){let f=e(`${m}/Conv2d_${p}_pointwise/weights`,4,`${u}/filters`),l=e(`${m}/Conv2d_${p}_pointwise/convolution_bn_offset`,1,`${u}/batch_norm_offset`);return{filters:f,batch_norm_offset:l}}function n(m){let p=`mobilenetv1/conv_${m}`,u=`MobilenetV1/Conv2d_${m}_depthwise`,f=`${p}/depthwise_conv`,l=`${p}/pointwise_conv`,b=e(`${u}/depthwise_weights`,4,`${f}/filters`),y=e(`${u}/BatchNorm/gamma`,1,`${f}/batch_norm_scale`),F=e(`${u}/BatchNorm/beta`,1,`${f}/batch_norm_offset`),h=e(`${u}/BatchNorm/moving_mean`,1,`${f}/batch_norm_mean`),T=e(`${u}/BatchNorm/moving_variance`,1,`${f}/batch_norm_variance`);return{depthwise_conv:{filters:b,batch_norm_scale:y,batch_norm_offset:F,batch_norm_mean:h,batch_norm_variance:T},pointwise_conv:r("MobilenetV1",m,l)}}function a(){return{conv_0:r("MobilenetV1",0,"mobilenetv1/conv_0"),conv_1:n(1),conv_2:n(2),conv_3:n(3),conv_4:n(4),conv_5:n(5),conv_6:n(6),conv_7:n(7),conv_8:n(8),conv_9:n(9),conv_10:n(10),conv_11:n(11),conv_12:n(12),conv_13:n(13)}}function s(m,p){let u=e(`${m}/weights`,4,`${p}/filters`),f=e(`${m}/biases`,1,`${p}/bias`);return{filters:u,bias:f}}function i(m){let p=s(`Prediction/BoxPredictor_${m}/BoxEncodingPredictor`,`prediction_layer/box_predictor_${m}/box_encoding_predictor`),u=s(`Prediction/BoxPredictor_${m}/ClassPredictor`,`prediction_layer/box_predictor_${m}/class_predictor`);return{box_encoding_predictor:p,class_predictor:u}}function c(){return{conv_0:r("Prediction",0,"prediction_layer/conv_0"),conv_1:r("Prediction",1,"prediction_layer/conv_1"),conv_2:r("Prediction",2,"prediction_layer/conv_2"),conv_3:r("Prediction",3,"prediction_layer/conv_3"),conv_4:r("Prediction",4,"prediction_layer/conv_4"),conv_5:r("Prediction",5,"prediction_layer/conv_5"),conv_6:r("Prediction",6,"prediction_layer/conv_6"),conv_7:r("Prediction",7,"prediction_layer/conv_7"),box_predictor_0:i(0),box_predictor_1:i(1),box_predictor_2:i(2),box_predictor_3:i(3),box_predictor_4:i(4),box_predictor_5:i(5)}}return{extractMobilenetV1Params:a,extractPredictionLayerParams:c}}function Go(o){let t=[],{extractMobilenetV1Params:e,extractPredictionLayerParams:r}=aa(o,t),n=o["Output/extra_dim"];if(t.push({originalPath:"Output/extra_dim",paramPath:"output_layer/extra_dim"}),!ht(n))throw new Error(`expected weightMap['Output/extra_dim'] to be a Tensor3D, instead have ${n}`);let a={mobilenetv1:e(),prediction_layer:r(),output_layer:{extra_dim:n}};return B(o,t),{params:a,paramMappings:t}}var _t=v(x());var Nt=v(x());function Z(o,t,e){return Nt.tidy(()=>{let r=Nt.conv2d(o,t.filters,e,"same");return r=Nt.add(r,t.batch_norm_offset),Nt.clipByValue(r,0,6)})}var sa=.0010000000474974513;function ia(o,t,e){return _t.tidy(()=>{let r=_t.depthwiseConv2d(o,t.filters,e,"same");return r=_t.batchNorm(r,t.batch_norm_mean,t.batch_norm_variance,t.batch_norm_offset,t.batch_norm_scale,sa),_t.clipByValue(r,0,6)})}function ca(o){return[2,4,6,12].some(t=>t===o)?[2,2]:[1,1]}function jo(o,t){return _t.tidy(()=>{let e,r=Z(o,t.conv_0,[2,2]);if([t.conv_1,t.conv_2,t.conv_3,t.conv_4,t.conv_5,t.conv_6,t.conv_7,t.conv_8,t.conv_9,t.conv_10,t.conv_11,t.conv_12,t.conv_13].forEach((a,s)=>{let i=s+1,c=ca(i);r=ia(r,a.depthwise_conv,c),r=Z(r,a.pointwise_conv,[1,1]),i===11&&(e=r)}),e===null)throw new Error("mobileNetV1 - output of conv layer 11 is null");return{out:r,conv11:e}})}function ma(o,t,e){let r=o.arraySync(),n=Math.min(r[t][0],r[t][2]),a=Math.min(r[t][1],r[t][3]),s=Math.max(r[t][0],r[t][2]),i=Math.max(r[t][1],r[t][3]),c=Math.min(r[e][0],r[e][2]),m=Math.min(r[e][1],r[e][3]),p=Math.max(r[e][0],r[e][2]),u=Math.max(r[e][1],r[e][3]),f=(s-n)*(i-a),l=(p-c)*(u-m);if(f<=0||l<=0)return 0;let b=Math.max(n,c),y=Math.max(a,m),F=Math.min(s,p),h=Math.min(i,u),T=Math.max(F-b,0)*Math.max(h-y,0);return T/(f+l-T)}function Uo(o,t,e,r,n){let a=o.shape[0],s=Math.min(e,a),i=t.map((p,u)=>({score:p,boxIndex:u})).filter(p=>p.score>n).sort((p,u)=>u.score-p.score),c=p=>p<=r?1:0,m=[];return i.forEach(p=>{if(m.length>=s)return;let u=p.score;for(let f=m.length-1;f>=0;--f){let l=ma(o,p.boxIndex,m[f]);if(l!==0&&(p.score*=c(l),p.score<=n))break}u===p.score&&m.push(p.boxIndex)}),m}var d=v(x());function pa(o){let t=d.unstack(d.transpose(o,[1,0])),e=[d.sub(t[2],t[0]),d.sub(t[3],t[1])],r=[d.add(t[0],d.div(e[0],2)),d.add(t[1],d.div(e[1],2))];return{sizes:e,centers:r}}function ua(o,t){let{sizes:e,centers:r}=pa(o),n=d.unstack(d.transpose(t,[1,0])),a=d.div(d.mul(d.exp(d.div(n[2],5)),e[0]),2),s=d.add(d.mul(d.div(n[0],10),e[0]),r[0]),i=d.div(d.mul(d.exp(d.div(n[3],5)),e[1]),2),c=d.add(d.mul(d.div(n[1],10),e[1]),r[1]);return d.transpose(d.stack([d.sub(s,a),d.sub(c,i),d.add(s,a),d.add(c,i)]),[1,0])}function Xo(o,t,e){return d.tidy(()=>{let r=o.shape[0],n=ua(d.reshape(d.tile(e.extra_dim,[r,1,1]),[-1,4]),d.reshape(o,[-1,4]));n=d.reshape(n,[r,n.shape[0]/r,4]);let a=d.sigmoid(d.slice(t,[0,0,1],[-1,-1,-1])),s=d.slice(a,[0,0,0],[-1,-1,1]);s=d.reshape(s,[r,s.shape[1]]);let i=d.unstack(n),c=d.unstack(s);return{boxes:i,scores:c}})}var Ge=v(x());var Ye=v(x());function te(o,t){return Ye.tidy(()=>{let e=o.shape[0],r=Ye.reshape(qt(o,t.box_encoding_predictor),[e,-1,1,4]),n=Ye.reshape(qt(o,t.class_predictor),[e,-1,3]);return{boxPredictionEncoding:r,classPrediction:n}})}function Jo(o,t,e){return Ge.tidy(()=>{let r=Z(o,e.conv_0,[1,1]),n=Z(r,e.conv_1,[2,2]),a=Z(n,e.conv_2,[1,1]),s=Z(a,e.conv_3,[2,2]),i=Z(s,e.conv_4,[1,1]),c=Z(i,e.conv_5,[2,2]),m=Z(c,e.conv_6,[1,1]),p=Z(m,e.conv_7,[2,2]),u=te(t,e.box_predictor_0),f=te(o,e.box_predictor_1),l=te(n,e.box_predictor_2),b=te(s,e.box_predictor_3),y=te(c,e.box_predictor_4),F=te(p,e.box_predictor_5),h=Ge.concat([u.boxPredictionEncoding,f.boxPredictionEncoding,l.boxPredictionEncoding,b.boxPredictionEncoding,y.boxPredictionEncoding,F.boxPredictionEncoding],1),T=Ge.concat([u.classPrediction,f.classPrediction,l.classPrediction,b.classPrediction,y.classPrediction,F.classPrediction],1);return{boxPredictions:h,classPredictions:T}})}var X=class{constructor({minConfidence:t,maxResults:e}={}){this._name="SsdMobilenetv1Options";if(this._minConfidence=t||.5,this._maxResults=e||100,typeof this._minConfidence!="number"||this._minConfidence<=0||this._minConfidence>=1)throw new Error(`${this._name} - expected minConfidence to be a number between 0 and 1`);if(typeof this._maxResults!="number")throw new Error(`${this._name} - expected maxResults to be a number`)}get minConfidence(){return this._minConfidence}get maxResults(){return this._maxResults}};var St=class extends A{constructor(){super("SsdMobilenetv1")}forwardInput(t){let{params:e}=this;if(!e)throw new Error("SsdMobilenetv1 - load model before inference");return Lt.tidy(()=>{let r=Lt.cast(t.toBatchTensor(512,!1),"float32"),n=Lt.sub(Lt.div(r,127.5),1),a=jo(n,e.mobilenetv1),{boxPredictions:s,classPredictions:i}=Jo(a.out,a.conv11,e.prediction_layer);return Xo(s,i,e.output_layer)})}async forward(t){return this.forwardInput(await C(t))}async locateFaces(t,e={}){let{maxResults:r,minConfidence:n}=new X(e),a=await C(t),{boxes:s,scores:i}=this.forwardInput(a),c=s[0],m=i[0];for(let _=1;_{let[E,W]=[Math.max(0,h[_][0]),Math.min(1,h[_][2])].map(q=>q*F),[tt,lt]=[Math.max(0,h[_][1]),Math.min(1,h[_][3])].map(q=>q*y);return new M(p[_],new Yt(tt,E,lt-tt,W-E),{height:a.getInputHeight(0),width:a.getInputWidth(0)})});return c.dispose(),m.dispose(),T}getDefaultModelName(){return"ssd_mobilenetv1_model"}extractParamsFromWeightMap(t){return Go(t)}extractParams(t){return Yo(t)}};function qo(o){let t=new St;return t.extractWeights(o),t}function fa(o){return qo(o)}var lo=class extends St{};var Zo=.4,Ko=[new g(.738768,.874946),new g(2.42204,2.65704),new g(4.30971,7.04493),new g(10.246,4.59428),new g(12.6868,11.8741)],Qo=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],tn=[117.001,114.697,97.404],en="tiny_yolov2_model",rn="tiny_yolov2_separable_conv_model";var N=v(x());var Cr=o=>typeof o=="number";function ho(o){if(!o)throw new Error(`invalid config: ${o}`);if(typeof o.withSeparableConvs!="boolean")throw new Error(`config.withSeparableConvs has to be a boolean, have: ${o.withSeparableConvs}`);if(!Cr(o.iouThreshold)||o.iouThreshold<0||o.iouThreshold>1)throw new Error(`config.iouThreshold has to be a number between [0, 1], have: ${o.iouThreshold}`);if(!Array.isArray(o.classes)||!o.classes.length||!o.classes.every(t=>typeof t=="string"))throw new Error(`config.classes has to be an array class names: string[], have: ${JSON.stringify(o.classes)}`);if(!Array.isArray(o.anchors)||!o.anchors.length||!o.anchors.map(t=>t||{}).every(t=>Cr(t.x)&&Cr(t.y)))throw new Error(`config.anchors has to be an array of { x: number, y: number }, have: ${JSON.stringify(o.anchors)}`);if(o.meanRgb&&(!Array.isArray(o.meanRgb)||o.meanRgb.length!==3||!o.meanRgb.every(Cr)))throw new Error(`config.meanRgb has to be an array of shape [number, number, number], have: ${JSON.stringify(o.meanRgb)}`)}var Q=v(x());var K=v(x());function Me(o){return K.tidy(()=>{let t=K.mul(o,K.scalar(.10000000149011612));return K.add(K.relu(K.sub(o,t)),t)})}function Tt(o,t){return Q.tidy(()=>{let e=Q.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=Q.conv2d(e,t.conv.filters,[1,1],"valid"),e=Q.sub(e,t.bn.sub),e=Q.mul(e,t.bn.truediv),e=Q.add(e,t.conv.bias),Me(e)})}var At=v(x());function wt(o,t){return At.tidy(()=>{let e=At.pad(o,[[0,0],[1,1],[1,1],[0,0]]);return e=At.separableConv2d(e,t.depthwise_filter,t.pointwise_filter,[1,1],"valid"),e=At.add(e,t.bias),Me(e)})}var bo=v(x());function la(o,t){let e=be(o,t);function r(s,i){let c=bo.tensor1d(o(s)),m=bo.tensor1d(o(s));return t.push({paramPath:`${i}/sub`},{paramPath:`${i}/truediv`}),{sub:c,truediv:m}}function n(s,i,c){let m=e(s,i,3,`${c}/conv`),p=r(i,`${c}/bn`);return{conv:m,bn:p}}let a=ge(o,t);return{extractConvParams:e,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}}function on(o,t,e,r){let{extractWeights:n,getRemainingWeights:a}=R(o),s=[],{extractConvParams:i,extractConvWithBatchNormParams:c,extractSeparableConvParams:m}=la(n,s),p;if(t.withSeparableConvs){let[u,f,l,b,y,F,h,T,_]=r,E=t.isFirstLayerConv2d?i(u,f,3,"conv0"):m(u,f,"conv0"),W=m(f,l,"conv1"),tt=m(l,b,"conv2"),lt=m(b,y,"conv3"),q=m(y,F,"conv4"),Dt=m(F,h,"conv5"),Et=T?m(h,T,"conv6"):void 0,Mt=_?m(T,_,"conv7"):void 0,$t=i(_||T||h,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}else{let[u,f,l,b,y,F,h,T,_]=r,E=c(u,f,"conv0"),W=c(f,l,"conv1"),tt=c(l,b,"conv2"),lt=c(b,y,"conv3"),q=c(y,F,"conv4"),Dt=c(F,h,"conv5"),Et=c(h,T,"conv6"),Mt=c(T,_,"conv7"),$t=i(_,5*e,1,"conv8");p={conv0:E,conv1:W,conv2:tt,conv3:lt,conv4:q,conv5:Dt,conv6:Et,conv7:Mt,conv8:$t}}if(a().length!==0)throw new Error(`weights remaing after extract: ${a().length}`);return{params:p,paramMappings:s}}function da(o,t){let e=Y(o,t);function r(i){let c=e(`${i}/sub`,1),m=e(`${i}/truediv`,1);return{sub:c,truediv:m}}function n(i){let c=e(`${i}/filters`,4),m=e(`${i}/bias`,1);return{filters:c,bias:m}}function a(i){let c=n(`${i}/conv`),m=r(`${i}/bn`);return{conv:c,bn:m}}let s=xe(e);return{extractConvParams:n,extractConvWithBatchNormParams:a,extractSeparableConvParams:s}}function nn(o,t){let e=[],{extractConvParams:r,extractConvWithBatchNormParams:n,extractSeparableConvParams:a}=da(o,e),s;if(t.withSeparableConvs){let i=t.filterSizes&&t.filterSizes.length||9;s={conv0:t.isFirstLayerConv2d?r("conv0"):a("conv0"),conv1:a("conv1"),conv2:a("conv2"),conv3:a("conv3"),conv4:a("conv4"),conv5:a("conv5"),conv6:i>7?a("conv6"):void 0,conv7:i>8?a("conv7"):void 0,conv8:r("conv8")}}else s={conv0:n("conv0"),conv1:n("conv1"),conv2:n("conv2"),conv3:n("conv3"),conv4:n("conv4"),conv5:n("conv5"),conv6:n("conv6"),conv7:n("conv7"),conv8:r("conv8")};return B(o,e),{params:s,paramMappings:e}}var st=class{constructor({inputSize:t,scoreThreshold:e}={}){this._name="TinyYolov2Options";if(this._inputSize=t||416,this._scoreThreshold=e||.5,typeof this._inputSize!="number"||this._inputSize%32!==0)throw new Error(`${this._name} - expected inputSize to be a number divisible by 32`);if(typeof this._scoreThreshold!="number"||this._scoreThreshold<=0||this._scoreThreshold>=1)throw new Error(`${this._name} - expected scoreThreshold to be a number between 0 and 1`)}get inputSize(){return this._inputSize}get scoreThreshold(){return this._scoreThreshold}};var go=class extends A{constructor(e){super("TinyYolov2");ho(e),this._config=e}get config(){return this._config}get withClassScores(){return this.config.withClassScores||this.config.classes.length>1}get boxEncodingSize(){return 5+(this.withClassScores?this.config.classes.length:0)}runTinyYolov2(e,r){let n=Tt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=Tt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=Tt(n,r.conv6),n=Tt(n,r.conv7),qt(n,r.conv8,"valid",!1)}runMobilenet(e,r){let n=this.config.isFirstLayerConv2d?Me(qt(e,r.conv0,"valid",!1)):wt(e,r.conv0);return n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv1),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv2),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv3),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv4),n=N.maxPool(n,[2,2],[2,2],"same"),n=wt(n,r.conv5),n=N.maxPool(n,[2,2],[1,1],"same"),n=r.conv6?wt(n,r.conv6):n,n=r.conv7?wt(n,r.conv7):n,qt(n,r.conv8,"valid",!1)}forwardInput(e,r){let{params:n}=this;if(!n)throw new Error("TinyYolov2 - load model before inference");return N.tidy(()=>{let a=N.cast(e.toBatchTensor(r,!1),"float32");return a=this.config.meanRgb?rt(a,this.config.meanRgb):a,a=a.div(255),this.config.withSeparableConvs?this.runMobilenet(a,n):this.runTinyYolov2(a,n)})}async forward(e,r){return this.forwardInput(await C(e),r)}async detect(e,r={}){let{inputSize:n,scoreThreshold:a}=new st(r),s=await C(e),i=await this.forwardInput(s,n),c=N.tidy(()=>N.unstack(i)[0].expandDims()),m={width:s.getInputWidth(0),height:s.getInputHeight(0)},p=await this.extractBoxes(c,s.getReshapedInputDimensions(0),a);i.dispose(),c.dispose();let u=p.map(h=>h.box),f=p.map(h=>h.score),l=p.map(h=>h.classScore),b=p.map(h=>this.config.classes[h.label]);return Yr(u.map(h=>h.rescale(n)),f,this.config.iouThreshold,!0).map(h=>new bt(f[h],l[h],b[h],u[h],m))}getDefaultModelName(){return""}extractParamsFromWeightMap(e){return nn(e,this.config)}extractParams(e){let r=this.config.filterSizes||go.DEFAULT_FILTER_SIZES,n=r?r.length:void 0;if(n!==7&&n!==8&&n!==9)throw new Error(`TinyYolov2 - expected 7 | 8 | 9 convolutional filters, but found ${n} filterSizes in config`);return on(e,this.config,this.boxEncodingSize,r)}async extractBoxes(e,r,n){let{width:a,height:s}=r,i=Math.max(a,s),c=i/a,m=i/s,p=e.shape[1],u=this.config.anchors.length,[f,l,b]=N.tidy(()=>{let T=e.reshape([p,p,u,this.boxEncodingSize]),_=T.slice([0,0,0,0],[p,p,u,4]),E=T.slice([0,0,0,4],[p,p,u,1]),W=this.withClassScores?N.softmax(T.slice([0,0,0,5],[p,p,u,this.config.classes.length]),3):N.scalar(0);return[_,E,W]}),y=[],F=await l.array(),h=await f.array();for(let T=0;Tn){let tt=(_+Ne(h[T][_][E][0]))/p*c,lt=(T+Ne(h[T][_][E][1]))/p*m,q=Math.exp(h[T][_][E][2])*this.config.anchors[E].x/p*c,Dt=Math.exp(h[T][_][E][3])*this.config.anchors[E].y/p*m,Et=tt-q/2,Mt=lt-Dt/2,$t={row:T,col:_,anchor:E},{classScore:yo,label:_o}=this.withClassScores?await this.extractPredictedClass(b,$t):{classScore:1,label:0};y.push({box:new Vt(Et,Mt,Et+q,Mt+Dt),score:W,classScore:W*yo,label:_o,...$t})}}return f.dispose(),l.dispose(),b.dispose(),y}async extractPredictedClass(e,r){let{row:n,col:a,anchor:s}=r,i=await e.array();return Array(this.config.classes.length).fill(0).map((c,m)=>i[n][a][s][m]).map((c,m)=>({classScore:c,label:m})).reduce((c,m)=>c.classScore>m.classScore?c:m)}},ee=go;ee.DEFAULT_FILTER_SIZES=[3,16,32,64,128,256,512,1024,1024];var re=class extends ee{constructor(t=!0){let e={withSeparableConvs:t,iouThreshold:Zo,classes:["face"],...t?{anchors:Qo,meanRgb:tn}:{anchors:Ko,withClassScores:!0}};super(e)}get withSeparableConvs(){return this.config.withSeparableConvs}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return this.withSeparableConvs?rn:en}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};function ha(o,t=!0){let e=new re(t);return e.extractWeights(o),e}var je=class extends st{constructor(){super(...arguments);this._name="TinyFaceDetectorOptions"}};var J=class{async then(t){return t(await this.run())}async run(){throw new Error("ComposableTask - run is not implemented")}};var Xe=v(x());var xo=v(x());async function oe(o,t,e,r,n=({alignedRect:a})=>a){let a=o.map(c=>Zt(c)?n(c):c.detection),s=r||(t instanceof xo.Tensor?await de(t,a):await le(t,a)),i=await e(s);return s.forEach(c=>c instanceof xo.Tensor&&c.dispose()),i}async function Ce(o,t,e,r,n){return oe([o],t,async a=>e(a[0]),r,n)}var an=.4,sn=[new g(1.603231,2.094468),new g(6.041143,7.080126),new g(2.882459,3.518061),new g(4.266906,5.178857),new g(9.041765,10.66308)],cn=[117.001,114.697,97.404];var ne=class extends ee{constructor(){let t={withSeparableConvs:!0,iouThreshold:an,classes:["face"],anchors:sn,meanRgb:cn,isFirstLayerConv2d:!0,filterSizes:[3,16,32,64,128,256,512]};super(t)}get anchors(){return this.config.anchors}async locateFaces(t,e){return(await this.detect(t,e)).map(n=>new M(n.score,n.relativeBox,{width:n.imageWidth,height:n.imageHeight}))}getDefaultModelName(){return"tiny_face_detector_model"}extractParamsFromWeightMap(t){return super.extractParamsFromWeightMap(t)}};var P={ssdMobilenetv1:new St,tinyFaceDetector:new ne,tinyYolov2:new re,faceLandmark68Net:new Kt,faceLandmark68TinyNet:new ze,faceRecognitionNet:new Qt,faceExpressionNet:new Oe,ageGenderNet:new He},mn=(o,t)=>P.ssdMobilenetv1.locateFaces(o,t),ba=(o,t)=>P.tinyFaceDetector.locateFaces(o,t),ga=(o,t)=>P.tinyYolov2.locateFaces(o,t),pn=o=>P.faceLandmark68Net.detectLandmarks(o),xa=o=>P.faceLandmark68TinyNet.detectLandmarks(o),va=o=>P.faceRecognitionNet.computeFaceDescriptor(o),ya=o=>P.faceExpressionNet.predictExpressions(o),_a=o=>P.ageGenderNet.predictAgeAndGender(o),un=o=>P.ssdMobilenetv1.load(o),Ta=o=>P.tinyFaceDetector.load(o),wa=o=>P.tinyYolov2.load(o),Pa=o=>P.faceLandmark68Net.load(o),Fa=o=>P.faceLandmark68TinyNet.load(o),Da=o=>P.faceRecognitionNet.load(o),Ea=o=>P.faceExpressionNet.load(o),Ma=o=>P.ageGenderNet.load(o),Ca=un,Ia=mn,Na=pn;var Ir=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ae=class extends Ir{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.faceExpressionNet.predictExpressions(n))),this.extractedFaces);return t.map((r,n)=>xr(r,e[n]))}withAgeAndGender(){return new ie(this,this.input)}},se=class extends Ir{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceExpressionNet.predictExpressions(r),this.extractedFaces);return xr(t,e)}withAgeAndGender(){return new ce(this,this.input)}},Wt=class extends ae{withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},kt=class extends se{withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Nr=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.extractedFaces=n}},ie=class extends Nr{async run(){let t=await this.parentTask,e=await oe(t,this.input,async r=>Promise.all(r.map(n=>P.ageGenderNet.predictAgeAndGender(n))),this.extractedFaces);return t.map((r,n)=>{let{age:a,gender:s,genderProbability:i}=e[n];return Er(Mr(r,s,i),a)})}withFaceExpressions(){return new ae(this,this.input)}},ce=class extends Nr{async run(){let t=await this.parentTask;if(!t)return;let{age:e,gender:r,genderProbability:n}=await Ce(t,this.input,a=>P.ageGenderNet.predictAgeAndGender(a),this.extractedFaces);return Er(Mr(t,r,n),e)}withFaceExpressions(){return new se(this,this.input)}},Bt=class extends ie{withFaceExpressions(){return new Wt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Rt=class extends ce{withFaceExpressions(){return new kt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ue=class extends J{constructor(e,r){super();this.parentTask=e;this.input=r}},Pt=class extends Ue{async run(){let t=await this.parentTask;return(await oe(t,this.input,r=>Promise.all(r.map(n=>P.faceRecognitionNet.computeFaceDescriptor(n))),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}))).map((r,n)=>Dr(t[n],r))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}},Ft=class extends Ue{async run(){let t=await this.parentTask;if(!t)return;let e=await Ce(t,this.input,r=>P.faceRecognitionNet.computeFaceDescriptor(r),null,r=>r.landmarks.align(null,{useDlibAlignment:!0}));return Dr(t,e)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}};var Je=class extends J{constructor(e,r,n){super();this.parentTask=e;this.input=r;this.useTinyLandmarkNet=n}get landmarkNet(){return this.useTinyLandmarkNet?P.faceLandmark68TinyNet:P.faceLandmark68Net}},qe=class extends Je{async run(){let t=await this.parentTask,e=t.map(s=>s.detection),r=this.input instanceof Xe.Tensor?await de(this.input,e):await le(this.input,e),n=await Promise.all(r.map(s=>this.landmarkNet.detectLandmarks(s)));return r.forEach(s=>s instanceof Xe.Tensor&&s.dispose()),t.filter((s,i)=>n[i]).map((s,i)=>Pe(s,n[i]))}withFaceExpressions(){return new Wt(this,this.input)}withAgeAndGender(){return new Bt(this,this.input)}withFaceDescriptors(){return new Pt(this,this.input)}},Ze=class extends Je{async run(){let t=await this.parentTask;if(!t)return;let{detection:e}=t,r=this.input instanceof Xe.Tensor?await de(this.input,[e]):await le(this.input,[e]),n=await this.landmarkNet.detectLandmarks(r[0]);return r.forEach(a=>a instanceof Xe.Tensor&&a.dispose()),Pe(t,n)}withFaceExpressions(){return new kt(this,this.input)}withAgeAndGender(){return new Rt(this,this.input)}withFaceDescriptor(){return new Ft(this,this.input)}};var Ke=class extends J{constructor(e,r=new X){super();this.input=e;this.options=r}},Ie=class extends Ke{async run(){let{input:t,options:e}=this,r;if(e instanceof je)r=P.tinyFaceDetector.locateFaces(t,e);else if(e instanceof X)r=P.ssdMobilenetv1.locateFaces(t,e);else if(e instanceof st)r=P.tinyYolov2.locateFaces(t,e);else throw new Error("detectFaces - expected options to be instance of TinyFaceDetectorOptions | SsdMobilenetv1Options | TinyYolov2Options");return r}runAndExtendWithFaceDetections(){return new Promise((t,e)=>{this.run().then(r=>t(r.map(n=>jt({},n)))).catch(r=>e(r))})}withFaceLandmarks(t=!1){return new qe(this.runAndExtendWithFaceDetections(),this.input,t)}withFaceExpressions(){return new ae(this.runAndExtendWithFaceDetections(),this.input)}withAgeAndGender(){return new ie(this.runAndExtendWithFaceDetections(),this.input)}},Qe=class extends Ke{async run(){let t=await new Ie(this.input,this.options),e=t[0];return t.forEach(r=>{r.score>e.score&&(e=r)}),e}runAndExtendWithFaceDetection(){return new Promise(async t=>{let e=await this.run();t(e?jt({},e):void 0)})}withFaceLandmarks(t=!1){return new Ze(this.runAndExtendWithFaceDetection(),this.input,t)}withFaceExpressions(){return new se(this.runAndExtendWithFaceDetection(),this.input)}withAgeAndGender(){return new ce(this.runAndExtendWithFaceDetection(),this.input)}};function Sa(o,t=new X){return new Qe(o,t)}function Sr(o,t=new X){return new Ie(o,t)}async function fn(o,t){return Sr(o,new X(t?{minConfidence:t}:{})).withFaceLandmarks().withFaceDescriptors()}async function La(o,t={}){return Sr(o,new st(t)).withFaceLandmarks().withFaceDescriptors()}var Aa=fn;function vo(o,t){if(o.length!==t.length)throw new Error("euclideanDistance: arr1.length !== arr2.length");let e=Array.from(o),r=Array.from(t);return Math.sqrt(e.map((n,a)=>n-r[a]).reduce((n,a)=>n+a*a,0))}var tr=class{constructor(t,e=.6){this._distanceThreshold=e;let r=Array.isArray(t)?t:[t];if(!r.length)throw new Error("FaceRecognizer.constructor - expected atleast one input");let n=1,a=()=>`person ${n++}`;this._labeledDescriptors=r.map(s=>{if(s instanceof mt)return s;if(s instanceof Float32Array)return new mt(a(),[s]);if(s.descriptor&&s.descriptor instanceof Float32Array)return new mt(a(),[s.descriptor]);throw new Error("FaceRecognizer.constructor - expected inputs to be of type LabeledFaceDescriptors | WithFaceDescriptor | Float32Array | Array | Float32Array>")})}get labeledDescriptors(){return this._labeledDescriptors}get distanceThreshold(){return this._distanceThreshold}computeMeanDistance(t,e){return e.map(r=>vo(r,t)).reduce((r,n)=>r+n,0)/(e.length||1)}matchDescriptor(t){return this.labeledDescriptors.map(({descriptors:e,label:r})=>new pe(r,this.computeMeanDistance(t,e))).reduce((e,r)=>e.distancet.toJSON())}}static fromJSON(t){let e=t.labeledDescriptors.map(r=>mt.fromJSON(r));return new tr(e,t.distanceThreshold)}};function Wa(o){let t=new ne;return t.extractWeights(o),t}function ln(o,t){let{width:e,height:r}=new k(t.width,t.height);if(e<=0||r<=0)throw new Error(`resizeResults - invalid dimensions: ${JSON.stringify({width:e,height:r})}`);if(Array.isArray(o))return o.map(n=>ln(n,{width:e,height:r}));if(Zt(o)){let n=o.detection.forSize(e,r),a=o.unshiftedLandmarks.forSize(n.box.width,n.box.height);return Pe(jt(o,n),a)}return pt(o)?jt(o,o.detection.forSize(e,r)):o instanceof z||o instanceof M?o.forSize(e,r):o}var Ba=So;0&&(module.exports={AgeGenderNet,BoundingBox,Box,ComposableTask,ComputeAllFaceDescriptorsTask,ComputeFaceDescriptorsTaskBase,ComputeSingleFaceDescriptorTask,DetectAllFaceLandmarksTask,DetectAllFacesTask,DetectFaceLandmarksTaskBase,DetectFacesTaskBase,DetectSingleFaceLandmarksTask,DetectSingleFaceTask,Dimensions,FACE_EXPRESSION_LABELS,FaceDetection,FaceDetectionNet,FaceExpressionNet,FaceExpressions,FaceLandmark68Net,FaceLandmark68TinyNet,FaceLandmarkNet,FaceLandmarks,FaceLandmarks5,FaceLandmarks68,FaceMatch,FaceMatcher,FaceRecognitionNet,Gender,LabeledBox,LabeledFaceDescriptors,NetInput,NeuralNetwork,ObjectDetection,Point,PredictedBox,Rect,SsdMobilenetv1,SsdMobilenetv1Options,TinyFaceDetector,TinyFaceDetectorOptions,TinyYolov2,TinyYolov2Options,allFaces,allFacesSsdMobilenetv1,allFacesTinyYolov2,awaitMediaLoaded,bufferToImage,computeFaceDescriptor,createCanvas,createCanvasFromMedia,createFaceDetectionNet,createFaceRecognitionNet,createSsdMobilenetv1,createTinyFaceDetector,createTinyYolov2,detectAllFaces,detectFaceLandmarks,detectFaceLandmarksTiny,detectLandmarks,detectSingleFace,draw,env,euclideanDistance,extendWithAge,extendWithFaceDescriptor,extendWithFaceDetection,extendWithFaceExpressions,extendWithFaceLandmarks,extendWithGender,extractFaceTensors,extractFaces,fetchImage,fetchJson,fetchNetWeights,fetchOrThrow,fetchVideo,getContext2dOrThrow,getMediaDimensions,imageTensorToCanvas,imageToSquare,inverseSigmoid,iou,isMediaElement,isMediaLoaded,isWithAge,isWithFaceDetection,isWithFaceExpressions,isWithFaceLandmarks,isWithGender,loadAgeGenderModel,loadFaceDetectionModel,loadFaceExpressionModel,loadFaceLandmarkModel,loadFaceLandmarkTinyModel,loadFaceRecognitionModel,loadSsdMobilenetv1Model,loadTinyFaceDetectorModel,loadTinyYolov2Model,loadWeightMap,locateFaces,matchDimensions,minBbox,nets,nonMaxSuppression,normalize,padToSquare,predictAgeAndGender,recognizeFaceExpressions,resizeResults,resolveInput,shuffleArray,sigmoid,ssdMobilenetv1,tf,tinyFaceDetector,tinyYolov2,toNetInput,utils,validateConfig,version}); diff --git a/dist/tfjs.esm.js b/dist/tfjs.esm.js index bfaebeb..eb5013a 100644 --- a/dist/tfjs.esm.js +++ b/dist/tfjs.esm.js @@ -4,65 +4,65 @@ author: ' */ -var DU=Object.create;var QS=Object.defineProperty;var RU=Object.getOwnPropertyDescriptor;var FU=Object.getOwnPropertyNames;var OU=Object.getPrototypeOf,PU=Object.prototype.hasOwnProperty;var Pg=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var gr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)QS(r,e,{get:t[e],enumerable:!0})},LU=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of FU(t))!PU.call(r,o)&&o!==e&&QS(r,o,{get:()=>t[o],enumerable:!(n=RU(t,o))||n.enumerable});return r};var Tl=(r,t,e)=>(e=r!=null?DU(OU(r)):{},LU(t||!r||!r.__esModule?QS(e,"default",{value:r,enumerable:!0}):e,r));var T1=gr((Elt,N1)=>{N1.exports=Ue;var mo=null;try{mo=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,"__isLong__",{value:!0});function Fn(r){return(r&&r.__isLong__)===!0}Ue.isLong=Fn;var g1={},x1={};function zu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=x1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(x1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=g1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(g1[r]=e),e))}Ue.fromInt=zu;function fo(r,t){if(isNaN(r))return t?Mu:ho;if(t){if(r<0)return Mu;if(r>=C1)return v1}else{if(r<=-b1)return Rn;if(r+1>=b1)return S1}return r<0?fo(-r,t).neg():He(r%Vp|0,r/Vp|0,t)}Ue.fromNumber=fo;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Bg=Math.pow;function mv(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return ho;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return mv(r.substring(1),t,e).neg();for(var o=fo(Bg(e,8)),s=ho,i=0;i>>0:this.low};gt.toNumber=function(){return this.unsigned?(this.high>>>0)*Vp+(this.low>>>0):this.high*Vp+(this.low>>>0)};gt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};gt.getHighBits=function(){return this.high};gt.getHighBitsUnsigned=function(){return this.high>>>0};gt.getLowBits=function(){return this.low};gt.getLowBitsUnsigned=function(){return this.low>>>0};gt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Rn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};gt.isOdd=function(){return(this.low&1)===1};gt.isEven=function(){return(this.low&1)===0};gt.equals=function(t){return Fn(t)||(t=Ls(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};gt.eq=gt.equals;gt.notEquals=function(t){return!this.eq(t)};gt.neq=gt.notEquals;gt.ne=gt.notEquals;gt.lessThan=function(t){return this.comp(t)<0};gt.lt=gt.lessThan;gt.lessThanOrEqual=function(t){return this.comp(t)<=0};gt.lte=gt.lessThanOrEqual;gt.le=gt.lessThanOrEqual;gt.greaterThan=function(t){return this.comp(t)>0};gt.gt=gt.greaterThan;gt.greaterThanOrEqual=function(t){return this.comp(t)>=0};gt.gte=gt.greaterThanOrEqual;gt.ge=gt.greaterThanOrEqual;gt.compare=function(t){if(Fn(t)||(t=Ls(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};gt.comp=gt.compare;gt.negate=function(){return!this.unsigned&&this.eq(Rn)?Rn:this.not().add(Bp)};gt.neg=gt.negate;gt.add=function(t){Fn(t)||(t=Ls(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};gt.subtract=function(t){return Fn(t)||(t=Ls(t)),this.add(t.neg())};gt.sub=gt.subtract;gt.multiply=function(t){if(this.isZero())return ho;if(Fn(t)||(t=Ls(t)),mo){var e=mo.mul(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(t.isZero())return ho;if(this.eq(Rn))return t.isOdd()?Rn:ho;if(t.eq(Rn))return this.isOdd()?Rn:ho;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(w1)&&t.lt(w1))return fo(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};gt.mul=gt.multiply;gt.divide=function(t){if(Fn(t)||(t=Ls(t)),t.isZero())throw Error("division by zero");if(mo){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?mo.div_u:mo.div_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Mu:ho;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Mu;if(t.gt(this.shru(1)))return I1;s=Mu}else{if(this.eq(Rn)){if(t.eq(Bp)||t.eq(pv))return Rn;if(t.eq(Rn))return Bp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(ho)?t.isNegative()?Bp:pv:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Rn))return this.unsigned?Mu:ho;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=ho}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Bg(2,a-48),l=fo(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=fo(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Bp),s=s.add(l),o=o.sub(c)}return s};gt.div=gt.divide;gt.modulo=function(t){if(Fn(t)||(t=Ls(t)),mo){var e=(this.unsigned?mo.rem_u:mo.rem_s)(this.low,this.high,t.low,t.high);return He(e,mo.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};gt.mod=gt.modulo;gt.rem=gt.modulo;gt.not=function(){return He(~this.low,~this.high,this.unsigned)};gt.and=function(t){return Fn(t)||(t=Ls(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};gt.or=function(t){return Fn(t)||(t=Ls(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};gt.xor=function(t){return Fn(t)||(t=Ls(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};gt.shiftLeft=function(t){return Fn(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};gt.shr=gt.shiftRight;gt.shiftRightUnsigned=function(t){if(Fn(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};gt.shru=gt.shiftRightUnsigned;gt.shr_u=gt.shiftRightUnsigned;gt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};gt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};gt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};gt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};gt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var iE=gr(()=>{});var aE=gr(()=>{});var u_=gr((l_,r0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(l_,typeof r0=="object"&&r0,typeof define=="function"&&define)});var p_=gr((c_,n0)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(c_,typeof n0=="object"&&n0,typeof define=="function"&&define)});var f_=gr((m_,o0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(m_,typeof o0=="object"&&o0,typeof define=="function"&&define)});var h_=gr((d_,s0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(d_,typeof s0=="object"&&s0,typeof define=="function"&&define)});var x_=gr((g_,i0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(g_,typeof i0=="object"&&i0,typeof define=="function"&&define)});var b_=gr((y_,a0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(y_,typeof a0=="object"&&a0,typeof define=="function"&&define)});var w_=gr(()=>{});var I_=gr((C_,Yx)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var _=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),_),$=new f(_),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,"global"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,_=this,A=0,$=_.i=_.j=0,F=_.S=[];for(N||(w=[N++]);A{var lj=u_(),uj=p_(),cj=f_(),pj=h_(),mj=x_(),fj=b_(),Ju=I_();Ju.alea=lj;Ju.xor128=uj;Ju.xorwow=cj;Ju.xorshift7=pj;Ju.xor4096=mj;Ju.tychei=fj;S_.exports=Ju});var gN=gr(()=>{});var Zb=gr(()=>{});var ig=gr(()=>{});var BW=gr(()=>{});var VW=gr(()=>{});var GW=gr(()=>{});var WW=gr((fI,Ok)=>{var Fk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&qe(st.buffer),ke}function n(){return st.buffer!=jt&&qe(st.buffer),fe}function o(){return st.buffer!=jt&&qe(st.buffer),Ae}function s(){return st.buffer!=jt&&qe(st.buffer),_n}function i(){return st.buffer!=jt&&qe(st.buffer),or}function a(){return st.buffer!=jt&&qe(st.buffer),Hn}function u(){return st.buffer!=jt&&qe(st.buffer),Lr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(L,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function _(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ru)return;Y("exiting due to exception: "+L)}if(w){b?N=ig().dirname(N)+"/":N=__dirname+"/";var G,W;typeof Pg=="function"&&(G=Zb(),W=ig()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:"utf8")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,xt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ie){Dt?xt(Dt):ut(ie.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Ru))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,ut)=>{if(Mo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let L;try{L=BW()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var xt=new XMLHttpRequest;xt.open("GET",L,!0),xt.responseType="arraybuffer",xt.onload=()=>{if(xt.status==200||xt.status==0&&xt.response){U(xt.response);return}ut()},xt.onerror=ut,xt.send(null)}),P=L=>document.title=L);w&&typeof performance=="undefined"&&(global.performance=VW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+` +var LU=Object.create;var rS=Object.defineProperty;var MU=Object.getOwnPropertyDescriptor;var zU=Object.getOwnPropertyNames;var BU=Object.getPrototypeOf,VU=Object.prototype.hasOwnProperty;var Lg=(r=>typeof require!="undefined"?require:typeof Proxy!="undefined"?new Proxy(r,{get:(t,e)=>(typeof require!="undefined"?require:t)[e]}):r)(function(r){if(typeof require!="undefined")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var yr=(r,t)=>()=>(t||r((t={exports:{}}).exports,t),t.exports),Wt=(r,t)=>{for(var e in t)rS(r,e,{get:t[e],enumerable:!0})},GU=(r,t,e,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of zU(t))!VU.call(r,o)&&o!==e&&rS(r,o,{get:()=>t[o],enumerable:!(n=MU(t,o))||n.enumerable});return r};var _l=(r,t,e)=>(e=r!=null?LU(BU(r)):{},GU(t||!r||!r.__esModule?rS(e,"default",{value:r,enumerable:!0}):e,r));var _1=yr((Plt,E1)=>{E1.exports=Ue;var ho=null;try{ho=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch(r){}function Ue(r,t,e){this.low=r|0,this.high=t|0,this.unsigned=!!e}Ue.prototype.__isLong__;Object.defineProperty(Ue.prototype,"__isLong__",{value:!0});function Ln(r){return(r&&r.__isLong__)===!0}Ue.isLong=Ln;var b1={},w1={};function Vu(r,t){var e,n,o;return t?(r>>>=0,(o=0<=r&&r<256)&&(n=w1[r],n)?n:(e=He(r,(r|0)<0?-1:0,!0),o&&(w1[r]=e),e)):(r|=0,(o=-128<=r&&r<128)&&(n=b1[r],n)?n:(e=He(r,r<0?-1:0,!1),o&&(b1[r]=e),e))}Ue.fromInt=Vu;function go(r,t){if(isNaN(r))return t?Bu:xo;if(t){if(r<0)return Bu;if(r>=S1)return k1}else{if(r<=-I1)return Pn;if(r+1>=I1)return T1}return r<0?go(-r,t).neg():He(r%Gp|0,r/Gp|0,t)}Ue.fromNumber=go;function He(r,t,e){return new Ue(r,t,e)}Ue.fromBits=He;var Vg=Math.pow;function hS(r,t,e){if(r.length===0)throw Error("empty string");if(r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return xo;if(typeof t=="number"?(e=t,t=!1):t=!!t,e=e||10,e<2||360)throw Error("interior hyphen");if(n===0)return hS(r.substring(1),t,e).neg();for(var o=go(Vg(e,8)),s=xo,i=0;i>>0:this.low};xt.toNumber=function(){return this.unsigned?(this.high>>>0)*Gp+(this.low>>>0):this.high*Gp+(this.low>>>0)};xt.toString=function(t){if(t=t||10,t<2||36>>0,c=l.toString(t);if(i=u,i.isZero())return c+a;for(;c.length<6;)c="0"+c;a=""+c+a}};xt.getHighBits=function(){return this.high};xt.getHighBitsUnsigned=function(){return this.high>>>0};xt.getLowBits=function(){return this.low};xt.getLowBitsUnsigned=function(){return this.low>>>0};xt.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Pn)?64:this.neg().getNumBitsAbs();for(var t=this.high!=0?this.high:this.low,e=31;e>0&&(t&1<=0};xt.isOdd=function(){return(this.low&1)===1};xt.isEven=function(){return(this.low&1)===0};xt.equals=function(t){return Ln(t)||(t=Bs(t)),this.unsigned!==t.unsigned&&this.high>>>31===1&&t.high>>>31===1?!1:this.high===t.high&&this.low===t.low};xt.eq=xt.equals;xt.notEquals=function(t){return!this.eq(t)};xt.neq=xt.notEquals;xt.ne=xt.notEquals;xt.lessThan=function(t){return this.comp(t)<0};xt.lt=xt.lessThan;xt.lessThanOrEqual=function(t){return this.comp(t)<=0};xt.lte=xt.lessThanOrEqual;xt.le=xt.lessThanOrEqual;xt.greaterThan=function(t){return this.comp(t)>0};xt.gt=xt.greaterThan;xt.greaterThanOrEqual=function(t){return this.comp(t)>=0};xt.gte=xt.greaterThanOrEqual;xt.ge=xt.greaterThanOrEqual;xt.compare=function(t){if(Ln(t)||(t=Bs(t)),this.eq(t))return 0;var e=this.isNegative(),n=t.isNegative();return e&&!n?-1:!e&&n?1:this.unsigned?t.high>>>0>this.high>>>0||t.high===this.high&&t.low>>>0>this.low>>>0?-1:1:this.sub(t).isNegative()?-1:1};xt.comp=xt.compare;xt.negate=function(){return!this.unsigned&&this.eq(Pn)?Pn:this.not().add(Vp)};xt.neg=xt.negate;xt.add=function(t){Ln(t)||(t=Bs(t));var e=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=t.high>>>16,a=t.high&65535,u=t.low>>>16,l=t.low&65535,c=0,p=0,m=0,f=0;return f+=s+l,m+=f>>>16,f&=65535,m+=o+u,p+=m>>>16,m&=65535,p+=n+a,c+=p>>>16,p&=65535,c+=e+i,c&=65535,He(m<<16|f,c<<16|p,this.unsigned)};xt.subtract=function(t){return Ln(t)||(t=Bs(t)),this.add(t.neg())};xt.sub=xt.subtract;xt.multiply=function(t){if(this.isZero())return xo;if(Ln(t)||(t=Bs(t)),ho){var e=ho.mul(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}if(t.isZero())return xo;if(this.eq(Pn))return t.isOdd()?Pn:xo;if(t.eq(Pn))return this.isOdd()?Pn:xo;if(this.isNegative())return t.isNegative()?this.neg().mul(t.neg()):this.neg().mul(t).neg();if(t.isNegative())return this.mul(t.neg()).neg();if(this.lt(v1)&&t.lt(v1))return go(this.toNumber()*t.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=t.high>>>16,u=t.high&65535,l=t.low>>>16,c=t.low&65535,p=0,m=0,f=0,d=0;return d+=i*c,f+=d>>>16,d&=65535,f+=s*c,m+=f>>>16,f&=65535,f+=i*l,m+=f>>>16,f&=65535,m+=o*c,p+=m>>>16,m&=65535,m+=s*l,p+=m>>>16,m&=65535,m+=i*u,p+=m>>>16,m&=65535,p+=n*c+o*l+s*u+i*a,p&=65535,He(f<<16|d,p<<16|m,this.unsigned)};xt.mul=xt.multiply;xt.divide=function(t){if(Ln(t)||(t=Bs(t)),t.isZero())throw Error("division by zero");if(ho){if(!this.unsigned&&this.high===-2147483648&&t.low===-1&&t.high===-1)return this;var e=(this.unsigned?ho.div_u:ho.div_s)(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Bu:xo;var n,o,s;if(this.unsigned){if(t.unsigned||(t=t.toUnsigned()),t.gt(this))return Bu;if(t.gt(this.shru(1)))return N1;s=Bu}else{if(this.eq(Pn)){if(t.eq(Vp)||t.eq(dS))return Pn;if(t.eq(Pn))return Vp;var i=this.shr(1);return n=i.div(t).shl(1),n.eq(xo)?t.isNegative()?Vp:dS:(o=this.sub(t.mul(n)),s=n.add(o.div(t)),s)}else if(t.eq(Pn))return this.unsigned?Bu:xo;if(this.isNegative())return t.isNegative()?this.neg().div(t.neg()):this.neg().div(t).neg();if(t.isNegative())return this.div(t.neg()).neg();s=xo}for(o=this;o.gte(t);){n=Math.max(1,Math.floor(o.toNumber()/t.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),u=a<=48?1:Vg(2,a-48),l=go(n),c=l.mul(t);c.isNegative()||c.gt(o);)n-=u,l=go(n,this.unsigned),c=l.mul(t);l.isZero()&&(l=Vp),s=s.add(l),o=o.sub(c)}return s};xt.div=xt.divide;xt.modulo=function(t){if(Ln(t)||(t=Bs(t)),ho){var e=(this.unsigned?ho.rem_u:ho.rem_s)(this.low,this.high,t.low,t.high);return He(e,ho.get_high(),this.unsigned)}return this.sub(this.div(t).mul(t))};xt.mod=xt.modulo;xt.rem=xt.modulo;xt.not=function(){return He(~this.low,~this.high,this.unsigned)};xt.and=function(t){return Ln(t)||(t=Bs(t)),He(this.low&t.low,this.high&t.high,this.unsigned)};xt.or=function(t){return Ln(t)||(t=Bs(t)),He(this.low|t.low,this.high|t.high,this.unsigned)};xt.xor=function(t){return Ln(t)||(t=Bs(t)),He(this.low^t.low,this.high^t.high,this.unsigned)};xt.shiftLeft=function(t){return Ln(t)&&(t=t.toInt()),(t&=63)===0?this:t<32?He(this.low<>>32-t,this.unsigned):He(0,this.low<>>t|this.high<<32-t,this.high>>t,this.unsigned):He(this.high>>t-32,this.high>=0?0:-1,this.unsigned)};xt.shr=xt.shiftRight;xt.shiftRightUnsigned=function(t){if(Ln(t)&&(t=t.toInt()),t&=63,t===0)return this;var e=this.high;if(t<32){var n=this.low;return He(n>>>t|e<<32-t,e>>>t,this.unsigned)}else return t===32?He(e,0,this.unsigned):He(e>>>t-32,0,this.unsigned)};xt.shru=xt.shiftRightUnsigned;xt.shr_u=xt.shiftRightUnsigned;xt.toSigned=function(){return this.unsigned?He(this.low,this.high,!1):this};xt.toUnsigned=function(){return this.unsigned?this:He(this.low,this.high,!0)};xt.toBytes=function(t){return t?this.toBytesLE():this.toBytesBE()};xt.toBytesLE=function(){var t=this.high,e=this.low;return[e&255,e>>>8&255,e>>>16&255,e>>>24,t&255,t>>>8&255,t>>>16&255,t>>>24]};xt.toBytesBE=function(){var t=this.high,e=this.low;return[t>>>24,t>>>16&255,t>>>8&255,t&255,e>>>24,e>>>16&255,e>>>8&255,e&255]};Ue.fromBytes=function(t,e,n){return n?Ue.fromBytesLE(t,e):Ue.fromBytesBE(t,e)};Ue.fromBytesLE=function(t,e){return new Ue(t[0]|t[1]<<8|t[2]<<16|t[3]<<24,t[4]|t[5]<<8|t[6]<<16|t[7]<<24,e)};Ue.fromBytesBE=function(t,e){return new Ue(t[4]<<24|t[5]<<16|t[6]<<8|t[7],t[0]<<24|t[1]<<16|t[2]<<8|t[3],e)}});var uE=yr(()=>{});var cE=yr(()=>{});var m_=yr((p_,s0)=>{(function(r,t,e){function n(a){var u=this,l=i();u.next=function(){var c=2091639*u.s0+u.c*23283064365386963e-26;return u.s0=u.s1,u.s1=u.s2,u.s2=c-(u.c=c|0)},u.c=1,u.s0=l(" "),u.s1=l(" "),u.s2=l(" "),u.s0-=l(a),u.s0<0&&(u.s0+=1),u.s1-=l(a),u.s1<0&&(u.s1+=1),u.s2-=l(a),u.s2<0&&(u.s2+=1),l=null}function o(a,u){return u.c=a.c,u.s0=a.s0,u.s1=a.s1,u.s2=a.s2,u}function s(a,u){var l=new n(a),c=u&&u.state,p=l.next;return p.int32=function(){return l.next()*4294967296|0},p.double=function(){return p()+(p()*2097152|0)*11102230246251565e-32},p.quick=p,c&&(typeof c=="object"&&o(c,l),p.state=function(){return o(l,{})}),p}function i(){var a=4022871197,u=function(l){l=String(l);for(var c=0;c>>0,p-=a,p*=a,a=p>>>0,p-=a,a+=p*4294967296}return(a>>>0)*23283064365386963e-26};return u}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.alea=s})(p_,typeof s0=="object"&&s0,typeof define=="function"&&define)});var d_=yr((f_,i0)=>{(function(r,t,e){function n(i){var a=this,u="";a.x=0,a.y=0,a.z=0,a.w=0,a.next=function(){var c=a.x^a.x<<11;return a.x=a.y,a.y=a.z,a.z=a.w,a.w^=a.w>>>19^c^c>>>8},i===(i|0)?a.x=i:u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor128=s})(f_,typeof i0=="object"&&i0,typeof define=="function"&&define)});var g_=yr((h_,a0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.x^a.x>>>2;return a.x=a.y,a.y=a.z,a.z=a.w,a.w=a.v,(a.d=a.d+362437|0)+(a.v=a.v^a.v<<4^(c^c<<1))|0},a.x=0,a.y=0,a.z=0,a.w=0,a.v=0,i===(i|0)?a.x=i:u+=i;for(var l=0;l>>4),a.next()}function o(i,a){return a.x=i.x,a.y=i.y,a.z=i.z,a.w=i.w,a.v=i.v,a.d=i.d,a}function s(i,a){var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorwow=s})(h_,typeof a0=="object"&&a0,typeof define=="function"&&define)});var y_=yr((x_,l0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.x,c=a.i,p,m,f;return p=l[c],p^=p>>>7,m=p^p<<24,p=l[c+1&7],m^=p^p>>>10,p=l[c+3&7],m^=p^p>>>3,p=l[c+4&7],m^=p^p<<7,p=l[c+7&7],p=p^p<<13,m^=p^p<<9,l[c]=m,a.i=c+1&7,m};function u(l,c){var p,m,f=[];if(c===(c|0))m=f[0]=c;else for(c=""+c,p=0;p0;--p)l.next()}u(a,i)}function o(i,a){return a.x=i.x.slice(),a.i=i.i,a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.x&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xorshift7=s})(x_,typeof l0=="object"&&l0,typeof define=="function"&&define)});var w_=yr((b_,u0)=>{(function(r,t,e){function n(i){var a=this;a.next=function(){var l=a.w,c=a.X,p=a.i,m,f;return a.w=l=l+1640531527|0,f=c[p+34&127],m=c[p=p+1&127],f^=f<<13,m^=m<<17,f^=f>>>15,m^=m>>>12,f=c[p]=f^m,a.i=p,f+(l^l>>>16)|0};function u(l,c){var p,m,f,d,h,g=[],x=128;for(c===(c|0)?(m=c,c=null):(c=c+"\0",m=0,x=Math.max(x,c.length)),f=0,d=-32;d>>15,m^=m<<4,m^=m>>>13,d>=0&&(h=h+1640531527|0,p=g[d&127]^=m+h,f=p==0?f+1:0);for(f>=128&&(g[(c&&c.length||0)&127]=-1),f=127,d=4*128;d>0;--d)m=g[f+34&127],p=g[f=f+1&127],m^=m<<13,p^=p<<17,m^=m>>>15,p^=p>>>12,g[f]=m^p;l.w=h,l.X=g,l.i=f}u(a,i)}function o(i,a){return a.i=i.i,a.w=i.w,a.X=i.X.slice(),a}function s(i,a){i==null&&(i=+new Date);var u=new n(i),l=a&&a.state,c=function(){return(u.next()>>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(l.X&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.xor4096=s})(b_,typeof u0=="object"&&u0,typeof define=="function"&&define)});var I_=yr((C_,c0)=>{(function(r,t,e){function n(i){var a=this,u="";a.next=function(){var c=a.b,p=a.c,m=a.d,f=a.a;return c=c<<25^c>>>7^p,p=p-m|0,m=m<<24^m>>>8^f,f=f-c|0,a.b=c=c<<20^c>>>12^p,a.c=p=p-m|0,a.d=m<<16^p>>>16^f,a.a=f-c|0},a.a=0,a.b=0,a.c=-1640531527,a.d=1367130551,i===Math.floor(i)?(a.a=i/4294967296|0,a.b=i|0):u+=i;for(var l=0;l>>0)/4294967296};return c.double=function(){do var p=u.next()>>>11,m=(u.next()>>>0)/4294967296,f=(p+m)/(1<<21);while(f===0);return f},c.int32=u.next,c.quick=c,l&&(typeof l=="object"&&o(l,u),c.state=function(){return o(u,{})}),c}t&&t.exports?t.exports=s:e&&e.amd?e(function(){return s}):this.tychei=s})(C_,typeof c0=="object"&&c0,typeof define=="function"&&define)});var v_=yr(()=>{});var N_=yr((S_,Zx)=>{(function(r,t,e){var n=256,o=6,s=52,i="random",a=e.pow(n,o),u=e.pow(2,s),l=u*2,c=n-1,p;function m(w,C,N){var E=[];C=C==!0?{entropy:!0}:C||{};var A=g(h(C.entropy?[w,b(t)]:w==null?x():w,3),E),$=new f(E),F=function(){for(var P=$.g(o),V=a,G=0;P=l;)P/=2,V/=2,G>>>=1;return(P+G)/V};return F.int32=function(){return $.g(4)|0},F.quick=function(){return $.g(4)/4294967296},F.double=F,g(b($.S),t),(C.pass||N||function(P,V,G,W){return W&&(W.S&&d(W,$),P.state=function(){return d($,{})}),G?(e[i]=P,V):P})(F,A,"global"in C?C.global:this==e,C.state)}function f(w){var C,N=w.length,E=this,A=0,$=E.i=E.j=0,F=E.S=[];for(N||(w=[N++]);A{var fj=m_(),dj=d_(),hj=g_(),gj=y_(),xj=w_(),yj=I_(),tc=N_();tc.alea=fj;tc.xor128=dj;tc.xorwow=hj;tc.xorshift7=gj;tc.xor4096=xj;tc.tychei=yj;T_.exports=tc});var bN=yr(()=>{});var Jb=yr(()=>{});var ag=yr(()=>{});var HW=yr(()=>{});var qW=yr(()=>{});var KW=yr(()=>{});var jW=yr((dI,Mk)=>{var Lk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};function e(){return st.buffer!=jt&&je(st.buffer),ke}function n(){return st.buffer!=jt&&je(st.buffer),fe}function o(){return st.buffer!=jt&&je(st.buffer),$e}function s(){return st.buffer!=jt&&je(st.buffer),Dn}function i(){return st.buffer!=jt&&je(st.buffer),ir}function a(){return st.buffer!=jt&&je(st.buffer),Kn}function u(){return st.buffer!=jt&&je(st.buffer),zr}var l=typeof t!="undefined"?t:{},c,p;l.ready=new Promise(function(L,U){c=L,p=U});var m;typeof process!="undefined"&&process.listeners&&(m={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var f=Object.assign({},l),d=[],h="./this.program",g=(L,U)=>{throw U},x=typeof window=="object",b=typeof importScripts=="function",w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",C=l.ENVIRONMENT_IS_PTHREAD||!1,N="";function E(L){return l.locateFile?l.locateFile(L,N):N+L}var A,$,F,P;function V(L){if(L instanceof Ou)return;Y("exiting due to exception: "+L)}if(w){b?N=ag().dirname(N)+"/":N=__dirname+"/";var G,W;typeof Lg=="function"&&(G=Jb(),W=ag()),A=(U,ut)=>(U=W.normalize(U),G.readFileSync(U,ut?void 0:"utf8")),F=U=>{var ut=A(U,!0);return ut.buffer||(ut=new Uint8Array(ut)),ut},$=(U,ut,yt)=>{U=W.normalize(U),G.readFile(U,function(Dt,ae){Dt?yt(Dt):ut(ae.buffer)})},process.argv.length>1&&(h=process.argv[1].replace(/\\/g,"/")),d=process.argv.slice(2),process.on("uncaughtException",function(U){if(!(U instanceof Ou))throw U}),process.on("unhandledRejection",function(U){throw U}),g=(U,ut)=>{if(zo())throw process.exitCode=U,ut;V(ut),process.exit(U)},l.inspect=function(){return"[Emscripten Module object]"};let L;try{L=HW()}catch(U){throw console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?'),U}global.Worker=L.Worker}else(x||b)&&(b?N=self.location.href:typeof document!="undefined"&&document.currentScript&&(N=document.currentScript.src),typeof r!="undefined"&&r&&(N=r),N.indexOf("blob:")!==0?N=N.substr(0,N.replace(/[?#].*/,"").lastIndexOf("/")+1):N="",w||(A=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.send(null),U.responseText},b&&(F=L=>{var U=new XMLHttpRequest;return U.open("GET",L,!1),U.responseType="arraybuffer",U.send(null),new Uint8Array(U.response)}),$=(L,U,ut)=>{var yt=new XMLHttpRequest;yt.open("GET",L,!0),yt.responseType="arraybuffer",yt.onload=()=>{if(yt.status==200||yt.status==0&&yt.response){U(yt.response);return}ut()},yt.onerror=ut,yt.send(null)}),P=L=>document.title=L);w&&typeof performance=="undefined"&&(global.performance=qW().performance);var q=console.log.bind(console),H=console.warn.bind(console);w&&(q=L=>G.writeSync(1,L+` `),H=L=>G.writeSync(2,L+` -`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Yc("no native wasm support detected");var st,dt,ht=!1,bt;function kt(L,U){L||Yc(U)}var _t=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Vt(L,U,ut){for(var xt=U+ut,Dt=U;L[Dt]&&!(Dt>=xt);)++Dt;if(Dt-U>16&&L.buffer&&_t)return _t.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ie="";U>10,56320|Xn&1023)}}return ie}function Zt(L,U){return L?Vt(n(),L,U):""}function ce(L,U,ut,xt){if(!(xt>0))return 0;for(var Dt=ut,ie=ut+xt-1,Gt=0;Gt=55296&&Xt<=57343){var hr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|hr&1023}if(Xt<=127){if(ut>=ie)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ie)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ie)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ie)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,Ae,We,_n,or,Hn,Lr;C&&(jt=l.buffer);function qe(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=Ae=new Int16Array(L),l.HEAP32=_n=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=or=new Uint32Array(L),l.HEAPF32=Hn=new Float32Array(L),l.HEAPF64=Lr=new Float64Array(L)}var Mr=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Mr/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");st&&(jt=st.buffer),Mr=jt.byteLength,qe(jt);var zr,qn=[],Kn=[],Xr=[],Zi=!1;function Mo(){return nt}function Il(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Rd(l.preRun.shift());Md(qn)}function Tr(){Zi=!0,!C&&Md(Kn)}function Ji(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Gk(l.postRun.shift());Md(Xr)}}function Rd(L){qn.unshift(L)}function Fd(L){Kn.unshift(L)}function Gk(L){Xr.unshift(L)}var Sl=0,Xc=null,Qi=null;function Wk(L){Sl++,l.monitorRunDependencies&&l.monitorRunDependencies(Sl)}function Uk(L){if(Sl--,l.monitorRunDependencies&&l.monitorRunDependencies(Sl),Sl==0&&(Xc!==null&&(clearInterval(Xc),Xc=null),Qi)){var U=Qi;Qi=null,U()}}function Yc(L){C?postMessage({cmd:"onAbort",arg:L}):l.onAbort&&l.onAbort(L),L="Aborted("+L+")",Y(L),ht=!0,bt=1,L+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var gI="data:application/octet-stream;base64,";function pg(L){return L.startsWith(gI)}function Od(L){return L.startsWith("file://")}var en;en="tfjs-backend-wasm-threaded-simd.wasm",pg(en)||(en=_(en));function mg(L){try{if(L==en&&at)return new Uint8Array(at);if(F)return F(L);throw"both async and sync fetching of the wasm failed"}catch(U){Yc(U)}}function xI(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Od(en))return fetch(en,{credentials:"same-origin"}).then(function(L){if(!L.ok)throw"failed to load wasm binary file at '"+en+"'";return L.arrayBuffer()}).catch(function(){return mg(en)});if($)return new Promise(function(L,U){$(en,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return mg(en)})}function yI(){var L={env:vg,wasi_snapshot_preview1:vg};function U(Gt,Xt){var hr=Gt.exports;if(l.asm=hr,EI(l.asm._emscripten_tls_init),zr=l.asm.__indirect_function_table,Fd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Xn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ea){Kt.loadWasmModuleToWorker(ea,function(){--Xn||Uk("wasm-instantiate")})})}}C||Wk("wasm-instantiate");function ut(Gt){U(Gt.instance,Gt.module)}function xt(Gt){return xI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y("failed to asynchronously prepare wasm: "+Xt),Yc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!pg(en)&&!Od(en)&&!w&&typeof fetch=="function"?fetch(en,{credentials:"same-origin"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(hr){return Y("wasm streaming compile failed: "+hr),Y("falling back to ArrayBuffer instantiation"),xt(ut)})}):xt(ut)}if(l.instantiateWasm)try{var ie=l.instantiateWasm(L,U);return ie}catch(Gt){Y("Module.instantiateWasm callback failed with error: "+Gt),p(Gt)}return Dt().catch(p),{}}var bI,Hk,wI={};function Ru(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function CI(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),YS(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function II(L){var U=Kt.pthreads[L];U.postMessage({cmd:"cancel"})}function Pd(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function fg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:"run",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var dg={varargs:void 0,get:function(){dg.varargs+=4;var L=s()[dg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function Ld(L){if(C)return vl(1,1,L);bt=L,Mo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),ht=!0),g(L,new Ru(L))}function qk(L,U){if(bt=L,!U&&C)throw gg(L),"unwind";Ld(L)}var hg=qk;function SI(L){if(L instanceof Ru||L=="unwind")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,YS(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var xt=ut.data,Dt=xt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),xt.targetThread&&xt.targetThread!=Ag()){var ie=Kt.pthreads[xt.targetThread];ie?ie.postMessage(xt,xt.transferList):Y('Internal error! Worker sent a message "'+Dt+'" to target pthread '+xt.targetThread+", but that thread no longer exists!"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt==="processProxyingQueue"?zd(xt.queue):Dt==="spawnThread"?fg(xt):Dt==="cleanupThread"?Pd(xt.thread):Dt==="killThread"?CI(xt.thread):Dt==="cancelThread"?II(xt.thread):Dt==="loaded"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt==="print"?j("Thread "+xt.threadId+": "+xt.text):Dt==="printErr"?Y("Thread "+xt.threadId+": "+xt.text):Dt==="alert"?alert("Thread "+xt.threadId+": "+xt.text):xt.target==="setimmediate"?L.postMessage(xt):Dt==="onAbort"?l.onAbort&&l.onAbort(xt.arg):Dt&&Y("worker sent an unknown command "+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var xt="worker sent an error!";throw Y(xt+" "+ut.filename+":"+ut.lineno+": "+ut.message),ut},w&&(L.on("message",function(ut){L.onmessage({data:ut})}),L.on("error",function(ut){L.onerror(ut)}),L.on("detachedExit",function(){})),L.postMessage({cmd:"load",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=_("tfjs-backend-wasm-threaded-simd.worker.js");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Md(L){for(;L.length>0;)L.shift()(l)}function vI(L){var U=ZS(),ut=L();return $g(U),ut}function Kk(L){return L}function jk(L){var U=/\b_Z[\w\d_]+/g;return L.replace(U,function(ut){var xt=ut;return ut===xt?ut:xt+" ["+ut+"]"})}function NI(){var L=Ag(),U=s()[L+44>>2],ut=s()[L+48>>2],xt=U-ut;e1(U,xt),$g(U)}l.establishStackSpace=NI;function gg(L){if(C)return vl(2,0,L);try{hg(L)}catch(U){SI(U)}}var Zc=[];function TI(L){var U=Zc[L];return U||(L>=Zc.length&&(Zc.length=L+1),Zc[L]=U=zr.get(L)),U}function kI(L,U){var ut=TI(L)(U);Mo()?Kt.setExitStatus(ut):t1(ut)}l.invokeEntryPoint=kI;function Xk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return"(no stack trace available)"}return L.stack.toString()}function EI(L){Kt.tlsInitFunctions.push(L)}function _I(L,U){e().set(L,U)}function AI(L){Zk(L,!b,1,!x),Kt.threadInitTLS()}function $I(L){C?postMessage({cmd:"cleanupThread",thread:L}):Pd(L)}function xg(L,U,ut,xt){return C?vl(3,1,L,U,ut,xt):yg(L,U,ut,xt)}function yg(L,U,ut,xt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Dt=[],ie=0;if(C&&(Dt.length===0||ie))return xg(L,U,ut,xt);if(ie)return ie;var Gt={startRoutine:ut,pthread_ptr:L,arg:xt,transferList:Dt};return C?(Gt.cmd="spawnThread",postMessage(Gt,Dt),0):fg(Gt)}function DI(){return 2097152}var RI=!0;function FI(){return RI}function zd(L){Atomics.store(s(),L>>2,1),Ag()&&Qk(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=zd;function OI(L,U,ut,xt){if(L==U)setTimeout(()=>zd(xt));else if(C)postMessage({targetThread:L,cmd:"processProxyingQueue",queue:xt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:"processProxyingQueue",queue:xt})}return 1}function PI(L,U,ut){return-1}function LI(){Yc("")}function Fu(L){Fu.shown||(Fu.shown={}),Fu.shown[L]||(Fu.shown[L]=1,w&&(L="warning: "+L),Y(L))}function MI(){w||b||Fu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function zI(){return Date.now()}function bg(){return 2147483648}function BI(){return bg()}var Jc;w?Jc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Jc=()=>performance.now()-l.__performance_now_clock_drift:Jc=()=>performance.now();function VI(L,U,ut){n().copyWithin(L,U,U+ut)}function GI(){return w?GW().cpus().length:navigator.hardwareConcurrency}function vl(L,U){var ut=arguments.length-2,xt=arguments;return vI(()=>{for(var Dt=ut,ie=Dg(Dt*8),Gt=ie>>3,Xt=0;Xt>3,Dt=0;Dt>>16),qe(st.buffer),1}catch(U){}}function HI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=bg();if(L>ut)return!1;let xt=(hr,Xn)=>hr+(Xn-hr%Xn)%Xn;for(var Dt=1;Dt<=4;Dt*=2){var ie=U*(1+.2/Dt);ie=Math.min(ie,L+100663296);var Gt=Math.min(ut,xt(Math.max(L,ie),65536)),Xt=UI(Gt);if(Xt)return!0}return!1}function qI(){throw"unwind"}function wg(L){return C?vl(4,1,L):52}function Cg(L,U,ut,xt,Dt){return C?vl(5,1,L,U,ut,xt,Dt):70}var KI=[null,[],[]];function jI(L,U){var ut=KI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function Ig(L,U,ut,xt){if(C)return vl(6,1,L,U,ut,xt);for(var Dt=0,ie=0;ie>2],Xt=i()[U+4>>2];U+=8;for(var hr=0;hr>2]=Dt,0}function Sg(L){var U=l["_"+L];return U}function XI(L,U,ut,xt,Dt){var ie={string:An=>{var rp=0;if(An!=null&&An!==0){var o1=(An.length<<2)+1;rp=Dg(o1),he(An,rp,o1)}return rp},array:An=>{var rp=Dg(An.length);return _I(An,rp),rp}};function Gt(An){return U==="string"?Zt(An):U==="boolean"?Boolean(An):An}var Xt=Sg(L),hr=[],Xn=0;if(xt)for(var ea=0;eaGt==="number"||Gt==="boolean"),ie=U!=="string";return ie&&Dt&&!xt?Sg(L):function(){return XI(L,U,ut,arguments,xt)}}Kt.init();var ZI=[null,Ld,gg,xg,wg,Cg,Ig],vg={__emscripten_init_main_thread_js:AI,__emscripten_thread_cleanup:$I,__pthread_create_js:yg,_emscripten_default_pthread_stack_size:DI,_emscripten_get_now_is_monotonic:FI,_emscripten_notify_task_queue:OI,_emscripten_set_offscreencanvas_size:PI,abort:LI,emscripten_check_blocking_allowed:MI,emscripten_date_now:zI,emscripten_get_heap_max:BI,emscripten_get_now:Jc,emscripten_memcpy_big:VI,emscripten_num_logical_cores:GI,emscripten_receive_on_main_thread_js:WI,emscripten_resize_heap:HI,emscripten_unwind_to_js_event_loop:qI,exit:hg,fd_close:wg,fd_seek:Cg,fd_write:Ig,memory:st||l.wasmMemory},Yk=yI(),JI=l.___wasm_call_ctors=function(){return(JI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},QI=l._init=function(){return(QI=l._init=l.asm.init).apply(null,arguments)},tS=l._init_with_threads_count=function(){return(tS=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},eS=l._get_threads_count=function(){return(eS=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},rS=l._register_tensor=function(){return(rS=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},nS=l._dispose_data=function(){return(nS=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},oS=l._dispose=function(){return(oS=l._dispose=l.asm.dispose).apply(null,arguments)},sS=l._Abs=function(){return(sS=l._Abs=l.asm.Abs).apply(null,arguments)},iS=l._Add=function(){return(iS=l._Add=l.asm.Add).apply(null,arguments)},aS=l._AddN=function(){return(aS=l._AddN=l.asm.AddN).apply(null,arguments)},lS=l._All=function(){return(lS=l._All=l.asm.All).apply(null,arguments)},uS=l._Any=function(){return(uS=l._Any=l.asm.Any).apply(null,arguments)},cS=l._ArgMax=function(){return(cS=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},pS=l._AvgPool=function(){return(pS=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},mS=l._BatchMatMul=function(){return(mS=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},fS=l._Ceil=function(){return(fS=l._Ceil=l.asm.Ceil).apply(null,arguments)},dS=l._ClipByValue=function(){return(dS=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},hS=l._Conv2D=function(){return(hS=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},gS=l._Conv2DBackpropInput=function(){return(gS=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},xS=l._Cos=function(){return(xS=l._Cos=l.asm.Cos).apply(null,arguments)},yS=l._Cosh=function(){return(yS=l._Cosh=l.asm.Cosh).apply(null,arguments)},bS=l._CropAndResize=function(){return(bS=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},wS=l._Cumprod=function(){return(wS=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},CS=l._Cumsum=function(){return(CS=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},IS=l._DepthToSpace=function(){return(IS=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},SS=l._DepthwiseConv2dNative=function(){return(SS=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},vS=l._Elu=function(){return(vS=l._Elu=l.asm.Elu).apply(null,arguments)},NS=l._Equal=function(){return(NS=l._Equal=l.asm.Equal).apply(null,arguments)},TS=l._Exp=function(){return(TS=l._Exp=l.asm.Exp).apply(null,arguments)},kS=l._FlipLeftRight=function(){return(kS=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},ES=l._Floor=function(){return(ES=l._Floor=l.asm.Floor).apply(null,arguments)},_S=l._FloorDiv=function(){return(_S=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},AS=l._FusedBatchNorm=function(){return(AS=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},$S=l._FusedConv2D=function(){return($S=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},DS=l._FusedDepthwiseConv2D=function(){return(DS=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},RS=l._Gather=function(){return(RS=l._Gather=l.asm.Gather).apply(null,arguments)},FS=l._GatherNd=function(){return(FS=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},OS=l._Greater=function(){return(OS=l._Greater=l.asm.Greater).apply(null,arguments)},PS=l._GreaterEqual=function(){return(PS=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},LS=l._LeakyRelu=function(){return(LS=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},MS=l._Less=function(){return(MS=l._Less=l.asm.Less).apply(null,arguments)},zS=l._LessEqual=function(){return(zS=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},BS=l._Log=function(){return(BS=l._Log=l.asm.Log).apply(null,arguments)},VS=l._LogicalAnd=function(){return(VS=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},GS=l._LogicalNot=function(){return(GS=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},WS=l._LogicalOr=function(){return(WS=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},US=l._LogicalXor=function(){return(US=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},HS=l._Max=function(){return(HS=l._Max=l.asm.Max).apply(null,arguments)},Ng=l._MaxPool=function(){return(Ng=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},Vd=l._Mean=function(){return(Vd=l._Mean=l.asm.Mean).apply(null,arguments)},qS=l._Min=function(){return(qS=l._Min=l.asm.Min).apply(null,arguments)},KS=l._Minimum=function(){return(KS=l._Minimum=l.asm.Minimum).apply(null,arguments)},Qc=l._MirrorPad=function(){return(Qc=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},kg=l._Multiply=function(){return(kg=l._Multiply=l.asm.Multiply).apply(null,arguments)},tp=l._Neg=function(){return(tp=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},jS=l._NonMaxSuppressionV4=function(){return(jS=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},K=l._NonMaxSuppressionV5=function(){return(K=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},lt=l._NotEqual=function(){return(lt=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},At=l._OneHot=function(){return(At=l._OneHot=l.asm.OneHot).apply(null,arguments)},re=l._PadV2=function(){return(re=l._PadV2=l.asm.PadV2).apply(null,arguments)},Ke=l._Pow=function(){return(Ke=l._Pow=l.asm.Pow).apply(null,arguments)},je=l._Prelu=function(){return(je=l._Prelu=l.asm.Prelu).apply(null,arguments)},ee=l._Prod=function(){return(ee=l._Prod=l.asm.Prod).apply(null,arguments)},te=l._RealDiv=function(){return(te=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},dr=l._Relu=function(){return(dr=l._Relu=l.asm.Relu).apply(null,arguments)},jn=l._Relu6=function(){return(jn=l._Relu6=l.asm.Relu6).apply(null,arguments)},ta=l._ResizeBilinear=function(){return(ta=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},Eg=l._ResizeNearestNeighbor=function(){return(Eg=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Gd=l._Reverse=function(){return(Gd=l._Reverse=l.asm.Reverse).apply(null,arguments)},XS=l._RotateWithOffset=function(){return(XS=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},rn=l._Round=function(){return(rn=l._Round=l.asm.Round).apply(null,arguments)},Nl=l._Rsqrt=function(){return(Nl=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},_g=l._ScatterNd=function(){return(_g=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},QW=l._SelectV2=function(){return(QW=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},tU=l._Sigmoid=function(){return(tU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},eU=l._Sin=function(){return(eU=l._Sin=l.asm.Sin).apply(null,arguments)},rU=l._Softmax=function(){return(rU=l._Softmax=l.asm.Softmax).apply(null,arguments)},nU=l._SparseFillEmptyRows=function(){return(nU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},oU=l._SparseReshape=function(){return(oU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},sU=l._SparseSegmentReduction=function(){return(sU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},iU=l._Sqrt=function(){return(iU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},aU=l._Square=function(){return(aU=l._Square=l.asm.Square).apply(null,arguments)},lU=l._SquaredDifference=function(){return(lU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},uU=l._Step=function(){return(uU=l._Step=l.asm.Step).apply(null,arguments)},cU=l._StridedSlice=function(){return(cU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},pU=l._Sub=function(){return(pU=l._Sub=l.asm.Sub).apply(null,arguments)},mU=l._Sum=function(){return(mU=l._Sum=l.asm.Sum).apply(null,arguments)},fU=l._Tan=function(){return(fU=l._Tan=l.asm.Tan).apply(null,arguments)},dU=l._Tanh=function(){return(dU=l._Tanh=l.asm.Tanh).apply(null,arguments)},hU=l._Tile=function(){return(hU=l._Tile=l.asm.Tile).apply(null,arguments)},gU=l._TopK=function(){return(gU=l._TopK=l.asm.TopK).apply(null,arguments)},xU=l._Transform=function(){return(xU=l._Transform=l.asm.Transform).apply(null,arguments)},yU=l._Transpose=function(){return(yU=l._Transpose=l.asm.Transpose).apply(null,arguments)},bU=l.__FusedMatMul=function(){return(bU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},wU=l._malloc=function(){return(wU=l._malloc=l.asm.malloc).apply(null,arguments)},CU=l._free=function(){return(CU=l._free=l.asm.free).apply(null,arguments)},IU=l.__emscripten_tls_init=function(){return(IU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},Ag=l._pthread_self=function(){return(Ag=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},SU=l.___errno_location=function(){return(SU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},Zk=l.__emscripten_thread_init=function(){return(Zk=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},vU=l.__emscripten_thread_crashed=function(){return(vU=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},NU=l._emscripten_main_thread_process_queued_calls=function(){return(NU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},TU=l._emscripten_main_browser_thread_id=function(){return(TU=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},Jk=l._emscripten_run_in_main_runtime_thread_js=function(){return(Jk=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},kU=l._emscripten_dispatch_to_thread_=function(){return(kU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},Qk=l.__emscripten_proxy_execute_task_queue=function(){return(Qk=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},YS=l.__emscripten_thread_free_data=function(){return(YS=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},t1=l.__emscripten_thread_exit=function(){return(t1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},e1=l._emscripten_stack_set_limits=function(){return(e1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},ZS=l.stackSave=function(){return(ZS=l.stackSave=l.asm.stackSave).apply(null,arguments)},$g=l.stackRestore=function(){return($g=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Dg=l.stackAlloc=function(){return(Dg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},EU=l.dynCall_iijjiiii=function(){return(EU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},_U=l.dynCall_jiji=function(){return(_U=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=Mo,l.wasmMemory=st,l.cwrap=YI,l.ExitStatus=Ru,l.PThread=Kt;var Rg;Qi=function L(){Rg||r1(),Rg||(Qi=L)};function r1(L){if(L=L||d,Sl>0)return;if(C){c(l),Tr(),postMessage({cmd:"loaded"});return}if(Il(),Sl>0)return;function U(){Rg||(Rg=!0,l.calledRun=!0,!ht&&(Tr(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),Ji()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();r1();var Fg;m&&(Fg={uncaughtException:process.listeners("uncaughtException").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Og;if(typeof WasmBackendModule!="undefined")Og=WasmBackendModule;else if(typeof t!="undefined")Og=t;else throw new Error("Could not find wasm module in post.js");if(Fg){var AU=Og._dispose;Og._dispose=function(){AU(),Fg.uncaughtException.forEach(function(L){process.removeListener("uncaughtException",L)}),Fg.unhandledRejection.forEach(function(L){process.removeListener("unhandledRejection",L)})}}return t.ready}})();typeof fI=="object"&&typeof Ok=="object"?Ok.exports=Fk:typeof define=="function"&&define.amd?define([],function(){return Fk}):typeof fI=="object"&&(fI.WasmBackendModuleThreadedSimd=Fk)});var HW=gr((G5e,UW)=>{UW.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" -");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var qW=gr((dI,Lk)=>{var Pk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(K,lt)=>{throw lt},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Xc)return;A("exiting due to exception: "+K)}if(m){p?f=ig().dirname(f)+"/":f=__dirname+"/";var C,N;typeof Pg=="function"&&(C=Zb(),N=ig()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:"utf8")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,At)=>{K=N.normalize(K),C.readFile(K,function(re,Ke){re?At(re):lt(Ke.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Xc))throw K}),process.on("unhandledRejection",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.responseType="arraybuffer",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,At)=>{var re=new XMLHttpRequest;re.open("GET",K,!0),re.responseType="arraybuffer",re.onload=()=>{if(re.status==200||re.status==0&&re.response){lt(re.response);return}At()},re.onerror=At,re.send(null)},b=K=>document.title=K);var _=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Xr("no native wasm support detected");var V,G=!1,W;function q(K,lt){K||Xr(lt)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(K,lt,At){for(var re=lt+At,Ke=lt;K[Ke]&&!(Ke>=re);)++Ke;if(Ke-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Ke));for(var je="";lt>10,56320|jn&1023)}}return je}function Y(K,lt){return K?j(at,K,lt):""}function Z(K,lt,At,re){if(!(re>0))return 0;for(var Ke=At,je=At+re-1,ee=0;ee=55296&&te<=57343){var dr=K.charCodeAt(++ee);te=65536+((te&1023)<<10)|dr&1023}if(te<=127){if(At>=je)break;lt[At++]=te}else if(te<=2047){if(At+1>=je)break;lt[At++]=192|te>>6,lt[At++]=128|te&63}else if(te<=65535){if(At+2>=je)break;lt[At++]=224|te>>12,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}else{if(At+3>=je)break;lt[At++]=240|te>>18,lt[At++]=128|te>>12&63,lt[At++]=128|te>>6&63,lt[At++]=128|te&63}}return lt[At]=0,At-Ke}function et(K,lt,At){return Z(K,at,lt,At)}var rt,ot,at,nt,st,dt,ht,bt,kt;function _t(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=ht=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function Ae(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)or(e.preRun.shift());Qi(ce)}function We(){ke=!0,Qi(he)}function _n(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Lr(e.postRun.shift());Qi(jt)}function or(K){ce.unshift(K)}function Hn(K){he.unshift(K)}function Lr(K){jt.unshift(K)}var qe=0,Mr=null,zr=null;function qn(K){qe++,e.monitorRunDependencies&&e.monitorRunDependencies(qe)}function Kn(K){if(qe--,e.monitorRunDependencies&&e.monitorRunDependencies(qe),qe==0&&(Mr!==null&&(clearInterval(Mr),Mr=null),zr)){var lt=zr;zr=null,lt()}}function Xr(K){e.onAbort&&e.onAbort(K),K="Aborted("+K+")",A(K),G=!0,W=1,K+=". Build with -sASSERTIONS for more info.";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var Zi="data:application/octet-stream;base64,";function Mo(K){return K.startsWith(Zi)}function Il(K){return K.startsWith("file://")}var Tr;Tr="tfjs-backend-wasm.wasm",Mo(Tr)||(Tr=d(Tr));function Ji(K){try{if(K==Tr&&F)return new Uint8Array(F);if(x)return x(K);throw"both async and sync fetching of the wasm failed"}catch(lt){Xr(lt)}}function Rd(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Il(Tr))return fetch(Tr,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+Tr+"'";return K.arrayBuffer()}).catch(function(){return Ji(Tr)});if(g)return new Promise(function(K,lt){g(Tr,function(At){K(new Uint8Array(At))},lt)})}return Promise.resolve().then(function(){return Ji(Tr)})}function Fd(){var K={env:Ld,wasi_snapshot_preview1:Ld};function lt(ee,te){var dr=ee.exports;e.asm=dr,V=e.asm.memory,_t(V.buffer),Zt=e.asm.__indirect_function_table,Hn(e.asm.__wasm_call_ctors),Kn("wasm-instantiate")}qn("wasm-instantiate");function At(ee){lt(ee.instance)}function re(ee){return Rd().then(function(te){return WebAssembly.instantiate(te,K)}).then(function(te){return te}).then(ee,function(te){A("failed to asynchronously prepare wasm: "+te),Xr(te)})}function Ke(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!Mo(Tr)&&!Il(Tr)&&!m&&typeof fetch=="function"?fetch(Tr,{credentials:"same-origin"}).then(function(ee){var te=WebAssembly.instantiateStreaming(ee,K);return te.then(At,function(dr){return A("wasm streaming compile failed: "+dr),A("falling back to ArrayBuffer instantiation"),re(At)})}):re(At)}if(e.instantiateWasm)try{var je=e.instantiateWasm(K,lt);return je}catch(ee){A("Module.instantiateWasm callback failed with error: "+ee),o(ee)}return Ke().catch(o),{}}var Gk,Sl;function Xc(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}function Qi(K){for(;K.length>0;)K.shift()(e)}function Wk(K){return K}function Uk(K){var lt=/\b_Z[\w\d_]+/g;return K.replace(lt,function(At){var re=At;return At===re?At:re+" ["+At+"]"})}function Yc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return"(no stack trace available)"}return K.stack.toString()}function gI(K,lt){ot.set(K,lt)}function pg(){Xr("")}function Od(){return 2147483648}function en(){return Od()}function mg(K,lt,At){at.copyWithin(K,lt,lt+At)}function xI(K){try{return V.grow(K-rt.byteLength+65535>>>16),_t(V.buffer),1}catch(lt){}}function yI(K){var lt=at.length;K=K>>>0;var At=Od();if(K>At)return!1;let re=(dr,jn)=>dr+(jn-dr%jn)%jn;for(var Ke=1;Ke<=4;Ke*=2){var je=lt*(1+.2/Ke);je=Math.min(je,K+100663296);var ee=Math.min(At,re(Math.max(K,je),65536)),te=xI(ee);if(te)return!0}return!1}var bI={varargs:void 0,get:function(){bI.varargs+=4;var K=dt[bI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function Hk(K){return 52}function wI(K,lt,At,re,Ke){return 70}var Ru=[null,[],[]];function CI(K,lt){var At=Ru[K];lt===0||lt===10?((K===1?_:A)(j(At,0)),At.length=0):At.push(lt)}function II(K,lt,At,re){for(var Ke=0,je=0;je>2],te=ht[lt+4>>2];lt+=8;for(var dr=0;dr>2]=Ke,0}function Pd(K){var lt=e["_"+K];return lt}function fg(K,lt,At,re,Ke){var je={string:rn=>{var Nl=0;if(rn!=null&&rn!==0){var _g=(rn.length<<2)+1;Nl=Vd(_g),et(rn,Nl,_g)}return Nl},array:rn=>{var Nl=Vd(rn.length);return gI(rn,Nl),Nl}};function ee(rn){return lt==="string"?Y(rn):lt==="boolean"?Boolean(rn):rn}var te=Pd(K),dr=[],jn=0;if(re)for(var ta=0;taee==="number"||ee==="boolean"),je=lt!=="string";return je&&Ke&&!re?Pd(K):function(){return fg(K,lt,At,arguments,re)}}var Ld={abort:pg,emscripten_get_heap_max:en,emscripten_memcpy_big:mg,emscripten_resize_heap:yI,fd_close:Hk,fd_seek:wI,fd_write:II},qk=Fd(),hg=e.___wasm_call_ctors=function(){return(hg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Md=e._get_threads_count=function(){return(Md=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},vI=e._register_tensor=function(){return(vI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Kk=e._dispose_data=function(){return(Kk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},jk=e._dispose=function(){return(jk=e._dispose=e.asm.dispose).apply(null,arguments)},NI=e._Abs=function(){return(NI=e._Abs=e.asm.Abs).apply(null,arguments)},gg=e._Add=function(){return(gg=e._Add=e.asm.Add).apply(null,arguments)},Zc=e._AddN=function(){return(Zc=e._AddN=e.asm.AddN).apply(null,arguments)},TI=e._All=function(){return(TI=e._All=e.asm.All).apply(null,arguments)},kI=e._Any=function(){return(kI=e._Any=e.asm.Any).apply(null,arguments)},Xk=e._ArgMax=function(){return(Xk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},EI=e._AvgPool=function(){return(EI=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},_I=e._BatchMatMul=function(){return(_I=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},AI=e._Ceil=function(){return(AI=e._Ceil=e.asm.Ceil).apply(null,arguments)},$I=e._ClipByValue=function(){return($I=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},xg=e._Conv2D=function(){return(xg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},yg=e._Conv2DBackpropInput=function(){return(yg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},DI=e._Cos=function(){return(DI=e._Cos=e.asm.Cos).apply(null,arguments)},RI=e._Cosh=function(){return(RI=e._Cosh=e.asm.Cosh).apply(null,arguments)},FI=e._CropAndResize=function(){return(FI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},zd=e._Cumprod=function(){return(zd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},OI=e._Cumsum=function(){return(OI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},PI=e._DepthToSpace=function(){return(PI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},LI=e._DepthwiseConv2dNative=function(){return(LI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Fu=e._Elu=function(){return(Fu=e._Elu=e.asm.Elu).apply(null,arguments)},MI=e._Equal=function(){return(MI=e._Equal=e.asm.Equal).apply(null,arguments)},zI=e._Exp=function(){return(zI=e._Exp=e.asm.Exp).apply(null,arguments)},bg=e._FlipLeftRight=function(){return(bg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},BI=e._Floor=function(){return(BI=e._Floor=e.asm.Floor).apply(null,arguments)},Jc=e._FloorDiv=function(){return(Jc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},VI=e._FusedBatchNorm=function(){return(VI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},GI=e._FusedConv2D=function(){return(GI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},vl=e._FusedDepthwiseConv2D=function(){return(vl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Bd=e._Gather=function(){return(Bd=e._Gather=e.asm.Gather).apply(null,arguments)},WI=e._GatherNd=function(){return(WI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},UI=e._Greater=function(){return(UI=e._Greater=e.asm.Greater).apply(null,arguments)},HI=e._GreaterEqual=function(){return(HI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},qI=e._LeakyRelu=function(){return(qI=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},wg=e._Less=function(){return(wg=e._Less=e.asm.Less).apply(null,arguments)},Cg=e._LessEqual=function(){return(Cg=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},KI=e._Log=function(){return(KI=e._Log=e.asm.Log).apply(null,arguments)},jI=e._LogicalAnd=function(){return(jI=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Ig=e._LogicalNot=function(){return(Ig=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},Sg=e._LogicalOr=function(){return(Sg=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},XI=e._LogicalXor=function(){return(XI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},YI=e._Max=function(){return(YI=e._Max=e.asm.Max).apply(null,arguments)},ZI=e._MaxPool=function(){return(ZI=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},vg=e._Maximum=function(){return(vg=e._Maximum=e.asm.Maximum).apply(null,arguments)},Yk=e._Mean=function(){return(Yk=e._Mean=e.asm.Mean).apply(null,arguments)},JI=e._Min=function(){return(JI=e._Min=e.asm.Min).apply(null,arguments)},QI=e._Minimum=function(){return(QI=e._Minimum=e.asm.Minimum).apply(null,arguments)},tS=e._MirrorPad=function(){return(tS=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},eS=e._Multiply=function(){return(eS=e._Multiply=e.asm.Multiply).apply(null,arguments)},rS=e._Neg=function(){return(rS=e._Neg=e.asm.Neg).apply(null,arguments)},nS=e._NonMaxSuppressionV3=function(){return(nS=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},oS=e._NonMaxSuppressionV4=function(){return(oS=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},sS=e._NonMaxSuppressionV5=function(){return(sS=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},iS=e._NotEqual=function(){return(iS=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},aS=e._OneHot=function(){return(aS=e._OneHot=e.asm.OneHot).apply(null,arguments)},lS=e._PadV2=function(){return(lS=e._PadV2=e.asm.PadV2).apply(null,arguments)},uS=e._Pow=function(){return(uS=e._Pow=e.asm.Pow).apply(null,arguments)},cS=e._Prelu=function(){return(cS=e._Prelu=e.asm.Prelu).apply(null,arguments)},pS=e._Prod=function(){return(pS=e._Prod=e.asm.Prod).apply(null,arguments)},mS=e._RealDiv=function(){return(mS=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},fS=e._Relu=function(){return(fS=e._Relu=e.asm.Relu).apply(null,arguments)},dS=e._Relu6=function(){return(dS=e._Relu6=e.asm.Relu6).apply(null,arguments)},hS=e._ResizeBilinear=function(){return(hS=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},gS=e._ResizeNearestNeighbor=function(){return(gS=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},xS=e._Reverse=function(){return(xS=e._Reverse=e.asm.Reverse).apply(null,arguments)},yS=e._RotateWithOffset=function(){return(yS=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},bS=e._Round=function(){return(bS=e._Round=e.asm.Round).apply(null,arguments)},wS=e._Rsqrt=function(){return(wS=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},CS=e._ScatterNd=function(){return(CS=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},IS=e._SelectV2=function(){return(IS=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},SS=e._Sigmoid=function(){return(SS=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},vS=e._Sin=function(){return(vS=e._Sin=e.asm.Sin).apply(null,arguments)},NS=e._Softmax=function(){return(NS=e._Softmax=e.asm.Softmax).apply(null,arguments)},TS=e._SparseFillEmptyRows=function(){return(TS=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},kS=e._SparseReshape=function(){return(kS=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},ES=e._SparseSegmentReduction=function(){return(ES=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},_S=e._Sqrt=function(){return(_S=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},AS=e._Square=function(){return(AS=e._Square=e.asm.Square).apply(null,arguments)},$S=e._SquaredDifference=function(){return($S=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},DS=e._Step=function(){return(DS=e._Step=e.asm.Step).apply(null,arguments)},RS=e._StridedSlice=function(){return(RS=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},FS=e._Sub=function(){return(FS=e._Sub=e.asm.Sub).apply(null,arguments)},OS=e._Sum=function(){return(OS=e._Sum=e.asm.Sum).apply(null,arguments)},PS=e._Tan=function(){return(PS=e._Tan=e.asm.Tan).apply(null,arguments)},LS=e._Tanh=function(){return(LS=e._Tanh=e.asm.Tanh).apply(null,arguments)},MS=e._Tile=function(){return(MS=e._Tile=e.asm.Tile).apply(null,arguments)},zS=e._TopK=function(){return(zS=e._TopK=e.asm.TopK).apply(null,arguments)},BS=e._Transform=function(){return(BS=e._Transform=e.asm.Transform).apply(null,arguments)},VS=e._Transpose=function(){return(VS=e._Transpose=e.asm.Transpose).apply(null,arguments)},GS=e.__FusedMatMul=function(){return(GS=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},WS=e._malloc=function(){return(WS=e._malloc=e.asm.malloc).apply(null,arguments)},US=e._free=function(){return(US=e._free=e.asm.free).apply(null,arguments)},HS=e.___errno_location=function(){return(HS=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Ng=e.stackSave=function(){return(Ng=e.stackSave=e.asm.stackSave).apply(null,arguments)},Tg=e.stackRestore=function(){return(Tg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Vd=e.stackAlloc=function(){return(Vd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},qS=e.dynCall_iijjiiii=function(){return(qS=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},KS=e.dynCall_jiji=function(){return(KS=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=dg;var Qc;zr=function K(){Qc||kg(),Qc||(zr=K)};function kg(K){if(K=K||a,qe>0||(Ae(),qe>0))return;function lt(){Qc||(Qc=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),_n()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();kg();var tp;s&&(tp={uncaughtException:process.listeners("uncaughtException").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var ep;if(typeof t!="undefined")ep=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")ep=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(tp){var jS=ep._dispose;ep._dispose=function(){jS(),tp.uncaughtException.forEach(function(K){process.removeListener("uncaughtException",K)}),tp.unhandledRejection.forEach(function(K){process.removeListener("unhandledRejection",K)})}}return t.ready}})();typeof dI=="object"&&typeof Lk=="object"?Lk.exports=Pk:typeof define=="function"&&define.amd?define([],function(){return Pk}):typeof dI=="object"&&(dI.WasmBackendModule=Pk)});var ra=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},zo=class{refCount(t){return $n("refCount")}incRef(t){return $n("incRef")}timerAvailable(){return!0}time(t){return $n("time")}read(t){return $n("read")}readSync(t){return $n("readSync")}readToGPU(t,e){return $n("readToGPU")}numDataIds(){return $n("numDataIds")}disposeData(t,e){return $n("disposeData")}write(t,e,n){return $n("write")}move(t,e,n,o,s){return $n("move")}createTensorFromTexture(t,e,n){return $n("createTensorFromTexture")}memory(){return $n("memory")}floatPrecision(){return $n("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return $n("dispose")}};function $n(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function s1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Lg(r,t,e)}function MU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Lg(r,e,n),Lg(t,e,n)}function np(r,t,e){return Math.max(r,Math.min(t,e))}function zU(r){return r%2===0?r:r+1}function Lg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function BU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Yn(r){E(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Bo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||xr(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function jU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function lr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),E(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),E(r.every(n=>na(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function tv(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:lr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function ev(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function rv(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function nv(r,t){for(let e=0;et+=e.length),t}function Vo(r){return typeof r=="string"||r instanceof String}function i1(r){return typeof r=="boolean"}function a1(r){return typeof r=="number"}function op(r){return Array.isArray(r)?op(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":a1(r)?"float32":Vo(r)?"string":i1(r)?"bool":"float32"}function oi(r){return!!(r&&r.constructor&&r.call&&r.apply)}function sp(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function l1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return l1(0,r,t,e)}function Wd(r,t){let e=ip(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Ou(r,new Float32Array(e));if(t==="int32")return Ou(r,new Int32Array(e));if(t==="bool")return Ou(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Ud(r){r.forEach(t=>{E(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function ZU(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=r4(o,s)})}};function t4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(e4(t,n[0],n[1]),n.join("="))),t}function e4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function r4(r,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function z(){return iv}var iv=null;function c1(r){iv=r}var av;function lv(){if(av==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");av=r}return av}function n4(){let r=lv();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function Kd(r,t){let e=n4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ii="Abs",oa="Acos",sa="Acosh",Zn="Add",Go="AddN",ia="All",aa="Any",Wo="ArgMax",kl="ArgMin",la="Asin",ua="Asinh",ca="Atan",pa="Atanh",ma="Atan2",Uo="AvgPool",ap="AvgPoolGrad",El="AvgPool3D",lp="AvgPool3DGrad",Ho="BatchMatMul",ai="BatchToSpaceND",up="Bincount",p1="BroadcastTo",cp="BroadcastArgs",lo="Cast",qo="Ceil",uo="ClipByValue",pp="Complex",_l="ComplexAbs",li="Concat",Ko="Conv2D",mp="Conv2DBackpropFilter",jo="Conv2DBackpropInput",Al="Conv3D",fp="Conv3DBackpropFilterV2",dp="Conv3DBackpropInputV2",Xo="Cos",Yo="Cosh",fa="Cumprod",Zo="Cumsum",da="CropAndResize",hp="DenseBincount",ha="DepthToSpace",Jo="DepthwiseConv2dNative",gp="DepthwiseConv2dNativeBackpropFilter",xp="DepthwiseConv2dNativeBackpropInput",yp="Diag",$l="Dilation2D",jd="Dilation2DBackpropInput",Xd="Dilation2DBackpropFilter",Qo="RealDiv",bp="Einsum",ts="Elu",wp="EluGrad",ga="Erf",xa="Equal",es="Exp",ui="ExpandDims",ya="Expm1",Cp="FFT",Dl="Fill",ba="FlipLeftRight",rs="Floor",ns="FloorDiv",os="FusedBatchNorm",ci="GatherV2",wa="GatherNd",Ca="Greater",ss="GreaterEqual",co="Identity",Ip="IFFT",Sp="Imag",Ia="IsFinite",Sa="IsInf",va="IsNan",is="LeakyRelu",Na="Less",Ta="LessEqual",vp="LinSpace",as="Log",ka="Log1p",Ea="LogicalAnd",_a="LogicalNot",Aa="LogicalOr",m1="LogicalXor",f1="LogSoftmax",xlt="LowerBound",Rl="LRN",Np="LRNGrad",ls="Max",us="Maximum",cs="MaxPool",Tp="MaxPoolGrad",Fl="MaxPool3D",kp="MaxPool3DGrad",Ep="MaxPoolWithArgmax",ps="Mean",ms="Min",fs="Minimum",ds="MirrorPad",$a="Mod",_p="Multinomial",hs="Multiply",pi="Neg",Da="NotEqual",Ra="NonMaxSuppressionV3",Fa="NonMaxSuppressionV4",Oa="NonMaxSuppressionV5",mi="OnesLike",gs="OneHot",fi="Pack",xs="PadV2",ylt="Pool",ys="Pow",bs="Prelu",ws="Prod",Ap="RaggedGather",$p="RaggedRange",Dp="RaggedTensorToTensor",Ol="Range",Rp="Real",Pa="Reciprocal",Cs="Relu",di="Reshape",Is="ResizeNearestNeighbor",Fp="ResizeNearestNeighborGrad",Ss="ResizeBilinear",Op="ResizeBilinearGrad",vs="Relu6",Ns="Reverse",Ts="Round",ks="Rsqrt",La="ScatterNd",Pp="SearchSorted",hi="Select",Ma="Selu",gi="Slice",Es="Sin",za="Sinh",Ba="Sign",_s="Sigmoid",Va="Softplus",As="Sqrt",$s="Sum",xi="SpaceToBatchND",yi="SplitV",Ds="Softmax",Pl="SparseFillEmptyRows",Ga="SparseReshape",Ll="SparseSegmentMean",Ml="SparseSegmentSum",Lp="SparseToDense",Rs="SquaredDifference",zl="Square",Wa="StridedSlice",Bl="StringNGrams",Vl="StringSplit",Gl="StringToHashBucketFast",Fs="Sub",Os="Tan",Ps="Tanh",Jn="Tile",Ua="TopK",Ha="Transform",Qn="Transpose",Mp="Unique",bi="Unpack",Wl="UnsortedSegmentSum",blt="UpperBound",wi="ZerosLike",po="Step",Yd="FromPixels",qa="RotateWithOffset",Ci="_FusedMatMul",Ii="FusedConv2D",Si="FusedDepthwiseConv2D";function vi(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.warn(...r)}function o4(...r){z().getBool("IS_TEST")||z().getBool("PROD")||console.log(...r)}var zp=Kd("kernelRegistry",()=>new Map),Zd=Kd("gradRegistry",()=>new Map);function Jd(r,t){let e=cv(r,t);return zp.get(e)}function uv(r){return Zd.get(r)}function zg(r){let t=zp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function Lu(r){let{kernelName:t,backendName:e}=r,n=cv(t,e);zp.has(n)&&vi(`The kernel '${t}' for backend '${e}' is already registered`),zp.set(n,r)}function h1(r){let{kernelName:t}=r;Zd.has(t)&&z().getBool("DEBUG")&&vi(`Overriding the gradient for '${t}'`),Zd.set(t,r)}function vlt(r,t){let e=cv(r,t);if(!zp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);zp.delete(e)}function Nlt(r){if(!Zd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Zd.delete(r)}function Tlt(r,t){zg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});Lu(o)})}function cv(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>Dn,assert:()=>E,assertNonNegativeIntegerDimensions:()=>Ud,assertNonNull:()=>Yn,assertShapesMatch:()=>$e,bytesFromStringArray:()=>sv,bytesPerElement:()=>Mg,checkConversionForErrors:()=>nv,clamp:()=>np,computeStrides:()=>si,createScalarValue:()=>p4,createShuffledIndices:()=>qU,decodeString:()=>Wp,distSquared:()=>GU,encodeString:()=>Hl,fetch:()=>f4,fingerPrint64:()=>c4,flatten:()=>Bo,getArrayFromDType:()=>rv,getTypedArrayFromDType:()=>ev,hasEncodingLoss:()=>XU,hexToLong:()=>Qd,indexToLoc:()=>JU,inferDtype:()=>op,inferFromImplicitShape:()=>jU,isBoolean:()=>i1,isFunction:()=>oi,isInt:()=>na,isNumber:()=>a1,isPromise:()=>Hd,isScalarShape:()=>WU,isString:()=>Vo,isTypedArray:()=>xr,isValidDtype:()=>ov,locToIndex:()=>ZU,makeOnesTypedArray:()=>Wd,makeZerosNestedTypedArray:()=>YU,makeZerosTypedArray:()=>ip,nearestDivisor:()=>sp,nearestLargerEven:()=>zU,now:()=>Gu,parseAxisParam:()=>lr,randUniform:()=>VU,repeatedTry:()=>KU,rightPad:()=>Pu,shuffle:()=>s1,shuffleCombo:()=>MU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>HU,squeezeShape:()=>tv,sum:()=>BU,swap:()=>Lg,tanh:()=>UU,toNestedArray:()=>Ou,toTypedArray:()=>Gp});var dv=Tl(T1());var Vu=dv.default||dv;function Qd(r){return Vu.fromString(r,!0,16)}var E1=Qd("c3a5c85c97cb3127"),Bu=Qd("b492b66fbe98f273"),nn=Qd("9ae16a3b2f90404f");function fv(r){return r.xor(r.shru(47))}function _1(r,t,e){let n=r.slice(t,t+e);return Vu.fromBytes(Array.from(n),!0,!0)}function Pe(r,t){return _1(r,t,8)}function k1(r,t){return _1(r,t,4)}function kr(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Ul(r,t,e=Qd("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function i4(r,t,e,n,o,s){o=o.add(r),s=kr(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(kr(o,44)),[o.add(n),s.add(i)]}function Vg(r,t,e,n){return i4(Pe(r,t),Pe(r,t+8),Pe(r,t+16),Pe(r,t+24),e,n)}function a4(r,t=r.length){if(t>=8){let e=nn.add(t*2),n=Pe(r,0).add(nn),o=Pe(r,t-8),s=kr(o,37).mul(e).add(n),i=kr(n,25).add(o).mul(e);return Ul(s,i,e)}if(t>=4){let e=nn.add(t*2),n=k1(r,0);return Ul(n.shl(3).add(t),k1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return fv(nn.mul(s).xor(E1.mul(i))).mul(nn)}return nn}function l4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(Bu),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn);return Ul(kr(n.add(o),43).add(kr(s,30)).add(i),n.add(kr(o.add(nn),18)).add(s),e)}function u4(r,t=r.length){let e=nn.add(t*2),n=Pe(r,0).mul(nn),o=Pe(r,8),s=Pe(r,t-8).mul(e),i=Pe(r,t-16).mul(nn),a=kr(n.add(o),43).add(kr(s,30)).add(i),u=Ul(a,n.add(kr(o.add(nn),18)).add(s),e),l=Pe(r,16).mul(e),c=Pe(r,24),p=a.add(Pe(r,t-32)).mul(e),m=u.add(Pe(r,t-24)).mul(e);return Ul(kr(l.add(c),43).add(kr(p,30)).add(m),l.add(kr(c.add(n),18)).add(p),e)}function c4(r,t=r.length){let e=Vu.fromNumber(81,!0);if(t<=32)return t<=16?a4(r,t):l4(r,t);if(t<=64)return u4(r,t);let n=e,o=e.mul(Bu).add(113),s=fv(o.mul(nn).add(113)).mul(nn),i=[Vu.UZERO,Vu.UZERO],a=[Vu.UZERO,Vu.UZERO];n=n.mul(nn).add(Pe(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(Bu),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(Bu),n=n.xor(a[1]),o=o.add(i[0]).add(Pe(r,u+40)),s=kr(s.add(a[0]),33).mul(Bu),i=Vg(r,u,i[1].mul(Bu),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Bu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=kr(n.add(o).add(i[0]).add(Pe(r,u+8)),37).mul(p),o=kr(o.add(i[1]).add(Pe(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Pe(r,u+40))),s=kr(s.add(a[0]),33).mul(p),i=Vg(r,u,i[1].mul(p),n.add(a[0])),a=Vg(r,u+32,s.add(a[1]),o.add(Pe(r,u+16))),[s,n]=[n,s],Ul(Ul(i[0],a[0],p).add(fv(o).mul(E1)).add(s),Ul(i[1],a[1],p).add(n),p)}function p4(r,t){return t==="string"?Hl(r):Gp([r],t)}function m4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Gp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=Bo(r)),z().getBool("DEBUG")&&nv(r,t),m4(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Gu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Gu()-a})}if(z().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{d4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function d4(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function A1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!Dn(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var D1=20,th=3,gv=7;function R1(r,t,e,n){let o=si(t),s=h4(r,t,e,o),i=t.length,a=Wg(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` +`));var j=l.print||q,Y=l.printErr||H;Object.assign(l,f),f=null,l.arguments&&(d=l.arguments),l.thisProgram&&(h=l.thisProgram),l.quit&&(g=l.quit);var Z=4,et=Atomics.load,rt=Atomics.store,ot=Atomics.compareExchange,at;l.wasmBinary&&(at=l.wasmBinary);var nt=l.noExitRuntime||!0;typeof WebAssembly!="object"&&Zc("no native wasm support detected");var st,dt,gt=!1,bt;function kt(L,U){L||Zc(U)}var At=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function Vt(L,U,ut){for(var yt=U+ut,Dt=U;L[Dt]&&!(Dt>=yt);)++Dt;if(Dt-U>16&&L.buffer&&At)return At.decode(L.buffer instanceof SharedArrayBuffer?L.slice(U,Dt):L.subarray(U,Dt));for(var ae="";U>10,56320|Zn&1023)}}return ae}function Zt(L,U){return L?Vt(n(),L,U):""}function ce(L,U,ut,yt){if(!(yt>0))return 0;for(var Dt=ut,ae=ut+yt-1,Gt=0;Gt=55296&&Xt<=57343){var xr=L.charCodeAt(++Gt);Xt=65536+((Xt&1023)<<10)|xr&1023}if(Xt<=127){if(ut>=ae)break;U[ut++]=Xt}else if(Xt<=2047){if(ut+1>=ae)break;U[ut++]=192|Xt>>6,U[ut++]=128|Xt&63}else if(Xt<=65535){if(ut+2>=ae)break;U[ut++]=224|Xt>>12,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}else{if(ut+3>=ae)break;U[ut++]=240|Xt>>18,U[ut++]=128|Xt>>12&63,U[ut++]=128|Xt>>6&63,U[ut++]=128|Xt&63}}return U[ut]=0,ut-Dt}function he(L,U,ut){return ce(L,n(),U,ut)}var jt,ke,fe,$e,We,Dn,ir,Kn,zr;C&&(jt=l.buffer);function je(L){jt=L,l.HEAP8=ke=new Int8Array(L),l.HEAP16=$e=new Int16Array(L),l.HEAP32=Dn=new Int32Array(L),l.HEAPU8=fe=new Uint8Array(L),l.HEAPU16=We=new Uint16Array(L),l.HEAPU32=ir=new Uint32Array(L),l.HEAPF32=Kn=new Float32Array(L),l.HEAPF64=zr=new Float64Array(L)}var Br=l.INITIAL_MEMORY||16777216;if(C)st=l.wasmMemory,jt=l.buffer;else if(l.wasmMemory)st=l.wasmMemory;else if(st=new WebAssembly.Memory({initial:Br/65536,maximum:32768,shared:!0}),!(st.buffer instanceof SharedArrayBuffer))throw Y("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag"),w&&console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)"),Error("bad memory");st&&(jt=st.buffer),Br=jt.byteLength,je(jt);var Vr,jn=[],Xn=[],Zr=[],ra=!1;function zo(){return nt}function Nl(){if(l.preRun)for(typeof l.preRun=="function"&&(l.preRun=[l.preRun]);l.preRun.length;)Od(l.preRun.shift());Bd(jn)}function Er(){ra=!0,!C&&Bd(Xn)}function na(){if(!C){if(l.postRun)for(typeof l.postRun=="function"&&(l.postRun=[l.postRun]);l.postRun.length;)Hk(l.postRun.shift());Bd(Zr)}}function Od(L){jn.unshift(L)}function Pd(L){Xn.unshift(L)}function Hk(L){Zr.unshift(L)}var Tl=0,Yc=null,oa=null;function qk(L){Tl++,l.monitorRunDependencies&&l.monitorRunDependencies(Tl)}function Kk(L){if(Tl--,l.monitorRunDependencies&&l.monitorRunDependencies(Tl),Tl==0&&(Yc!==null&&(clearInterval(Yc),Yc=null),oa)){var U=oa;oa=null,U()}}function Zc(L){C?postMessage({cmd:"onAbort",arg:L}):l.onAbort&&l.onAbort(L),L="Aborted("+L+")",Y(L),gt=!0,bt=1,L+=". Build with -sASSERTIONS for more info.";var U=new WebAssembly.RuntimeError(L);throw p(U),U}var xI="data:application/octet-stream;base64,";function mg(L){return L.startsWith(xI)}function Ld(L){return L.startsWith("file://")}var rn;rn="tfjs-backend-wasm-threaded-simd.wasm",mg(rn)||(rn=E(rn));function fg(L){try{if(L==rn&&at)return new Uint8Array(at);if(F)return F(L);throw"both async and sync fetching of the wasm failed"}catch(U){Zc(U)}}function yI(){if(!at&&(x||b)){if(typeof fetch=="function"&&!Ld(rn))return fetch(rn,{credentials:"same-origin"}).then(function(L){if(!L.ok)throw"failed to load wasm binary file at '"+rn+"'";return L.arrayBuffer()}).catch(function(){return fg(rn)});if($)return new Promise(function(L,U){$(rn,function(ut){L(new Uint8Array(ut))},U)})}return Promise.resolve().then(function(){return fg(rn)})}function bI(){var L={env:Ng,wasi_snapshot_preview1:Ng};function U(Gt,Xt){var xr=Gt.exports;if(l.asm=xr,_I(l.asm._emscripten_tls_init),Vr=l.asm.__indirect_function_table,Pd(l.asm.__wasm_call_ctors),dt=Xt,!C){var Zn=Kt.unusedWorkers.length;Kt.unusedWorkers.forEach(function(ia){Kt.loadWasmModuleToWorker(ia,function(){--Zn||Kk("wasm-instantiate")})})}}C||qk("wasm-instantiate");function ut(Gt){U(Gt.instance,Gt.module)}function yt(Gt){return yI().then(function(Xt){return WebAssembly.instantiate(Xt,L)}).then(function(Xt){return Xt}).then(Gt,function(Xt){Y("failed to asynchronously prepare wasm: "+Xt),Zc(Xt)})}function Dt(){return!at&&typeof WebAssembly.instantiateStreaming=="function"&&!mg(rn)&&!Ld(rn)&&!w&&typeof fetch=="function"?fetch(rn,{credentials:"same-origin"}).then(function(Gt){var Xt=WebAssembly.instantiateStreaming(Gt,L);return Xt.then(ut,function(xr){return Y("wasm streaming compile failed: "+xr),Y("falling back to ArrayBuffer instantiation"),yt(ut)})}):yt(ut)}if(l.instantiateWasm)try{var ae=l.instantiateWasm(L,U);return ae}catch(Gt){Y("Module.instantiateWasm callback failed with error: "+Gt),p(Gt)}return Dt().catch(p),{}}var wI,jk,CI={};function Ou(L){this.name="ExitStatus",this.message="Program terminated with exit("+L+")",this.status=L}function II(L){var U=Kt.pthreads[L];delete Kt.pthreads[L],U.terminate(),Qv(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(U),1),U.pthread_ptr=0}function vI(L){var U=Kt.pthreads[L];U.postMessage({cmd:"cancel"})}function Md(L){var U=Kt.pthreads[L];kt(U),Kt.returnWorkerToPool(U)}function dg(L){var U=Kt.getNewWorker();if(!U)return 6;Kt.runningWorkers.push(U),Kt.pthreads[L.pthread_ptr]=U,U.pthread_ptr=L.pthread_ptr;var ut={cmd:"run",start_routine:L.startRoutine,arg:L.arg,pthread_ptr:L.pthread_ptr};return U.runPthread=()=>{ut.time=performance.now(),U.postMessage(ut,L.transferList)},U.loaded&&(U.runPthread(),delete U.runPthread),0}var hg={varargs:void 0,get:function(){hg.varargs+=4;var L=s()[hg.varargs-4>>2];return L},getStr:function(L){var U=Zt(L);return U}};function zd(L){if(C)return kl(1,1,L);bt=L,zo()||(Kt.terminateAllThreads(),l.onExit&&l.onExit(L),gt=!0),g(L,new Ou(L))}function Xk(L,U){if(bt=L,!U&&C)throw xg(L),"unwind";zd(L)}var gg=Xk;function SI(L){if(L instanceof Ou||L=="unwind")return bt;g(1,L)}var Kt={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],pthreads:{},init:function(){C?Kt.initWorker():Kt.initMainThread()},initMainThread:function(){for(var L=8;L--;)Kt.allocateUnusedWorker()},initWorker:function(){nt=!1},setExitStatus:function(L){bt=L},terminateAllThreads:function(){for(var L of Object.values(Kt.pthreads))Kt.returnWorkerToPool(L);for(var L of Kt.unusedWorkers)L.terminate();Kt.unusedWorkers=[]},returnWorkerToPool:function(L){var U=L.pthread_ptr;delete Kt.pthreads[U],Kt.unusedWorkers.push(L),Kt.runningWorkers.splice(Kt.runningWorkers.indexOf(L),1),L.pthread_ptr=0,Qv(U)},receiveObjectTransfer:function(L){},threadInitTLS:function(){Kt.tlsInitFunctions.forEach(L=>L())},loadWasmModuleToWorker:function(L,U){L.onmessage=ut=>{var yt=ut.data,Dt=yt.cmd;if(L.pthread_ptr&&(Kt.currentProxiedOperationCallerThread=L.pthread_ptr),yt.targetThread&&yt.targetThread!=$g()){var ae=Kt.pthreads[yt.targetThread];ae?ae.postMessage(yt,yt.transferList):Y('Internal error! Worker sent a message "'+Dt+'" to target pthread '+yt.targetThread+", but that thread no longer exists!"),Kt.currentProxiedOperationCallerThread=void 0;return}Dt==="processProxyingQueue"?Vd(yt.queue):Dt==="spawnThread"?dg(yt):Dt==="cleanupThread"?Md(yt.thread):Dt==="killThread"?II(yt.thread):Dt==="cancelThread"?vI(yt.thread):Dt==="loaded"?(L.loaded=!0,U&&U(L),L.runPthread&&(L.runPthread(),delete L.runPthread)):Dt==="print"?j("Thread "+yt.threadId+": "+yt.text):Dt==="printErr"?Y("Thread "+yt.threadId+": "+yt.text):Dt==="alert"?alert("Thread "+yt.threadId+": "+yt.text):yt.target==="setimmediate"?L.postMessage(yt):Dt==="onAbort"?l.onAbort&&l.onAbort(yt.arg):Dt&&Y("worker sent an unknown command "+Dt),Kt.currentProxiedOperationCallerThread=void 0},L.onerror=ut=>{var yt="worker sent an error!";throw Y(yt+" "+ut.filename+":"+ut.lineno+": "+ut.message),ut},w&&(L.on("message",function(ut){L.onmessage({data:ut})}),L.on("error",function(ut){L.onerror(ut)}),L.on("detachedExit",function(){})),L.postMessage({cmd:"load",urlOrBlob:l.mainScriptUrlOrBlob||r,wasmMemory:st,wasmModule:dt})},allocateUnusedWorker:function(){var L=E("tfjs-backend-wasm-threaded-simd.worker.js");Kt.unusedWorkers.push(new Worker(L))},getNewWorker:function(){return Kt.unusedWorkers.length==0&&(Kt.allocateUnusedWorker(),Kt.loadWasmModuleToWorker(Kt.unusedWorkers[0])),Kt.unusedWorkers.pop()}};l.PThread=Kt;function Bd(L){for(;L.length>0;)L.shift()(l)}function NI(L){var U=tS(),ut=L();return Dg(U),ut}function Yk(L){return L}function Zk(L){var U=/\b_Z[\w\d_]+/g;return L.replace(U,function(ut){var yt=ut;return ut===yt?ut:yt+" ["+ut+"]"})}function TI(){var L=$g(),U=s()[L+44>>2],ut=s()[L+48>>2],yt=U-ut;o1(U,yt),Dg(U)}l.establishStackSpace=TI;function xg(L){if(C)return kl(2,0,L);try{gg(L)}catch(U){SI(U)}}var Jc=[];function kI(L){var U=Jc[L];return U||(L>=Jc.length&&(Jc.length=L+1),Jc[L]=U=Vr.get(L)),U}function EI(L,U){var ut=kI(L)(U);zo()?Kt.setExitStatus(ut):n1(ut)}l.invokeEntryPoint=EI;function Jk(){var L=new Error;if(!L.stack){try{throw new Error}catch(U){L=U}if(!L.stack)return"(no stack trace available)"}return L.stack.toString()}function _I(L){Kt.tlsInitFunctions.push(L)}function AI(L,U){e().set(L,U)}function $I(L){t1(L,!b,1,!x),Kt.threadInitTLS()}function DI(L){C?postMessage({cmd:"cleanupThread",thread:L}):Md(L)}function yg(L,U,ut,yt){return C?kl(3,1,L,U,ut,yt):bg(L,U,ut,yt)}function bg(L,U,ut,yt){if(typeof SharedArrayBuffer=="undefined")return Y("Current environment does not support SharedArrayBuffer, pthreads are not available!"),6;var Dt=[],ae=0;if(C&&(Dt.length===0||ae))return yg(L,U,ut,yt);if(ae)return ae;var Gt={startRoutine:ut,pthread_ptr:L,arg:yt,transferList:Dt};return C?(Gt.cmd="spawnThread",postMessage(Gt,Dt),0):dg(Gt)}function RI(){return 2097152}var FI=!0;function OI(){return FI}function Vd(L){Atomics.store(s(),L>>2,1),$g()&&r1(L),Atomics.compareExchange(s(),L>>2,1,0)}l.executeNotifiedProxyingQueue=Vd;function PI(L,U,ut,yt){if(L==U)setTimeout(()=>Vd(yt));else if(C)postMessage({targetThread:L,cmd:"processProxyingQueue",queue:yt});else{var Dt=Kt.pthreads[L];if(!Dt)return;Dt.postMessage({cmd:"processProxyingQueue",queue:yt})}return 1}function LI(L,U,ut){return-1}function MI(){Zc("")}function Pu(L){Pu.shown||(Pu.shown={}),Pu.shown[L]||(Pu.shown[L]=1,w&&(L="warning: "+L),Y(L))}function zI(){w||b||Pu("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}function BI(){return Date.now()}function wg(){return 2147483648}function VI(){return wg()}var Qc;w?Qc=()=>{var L=process.hrtime();return L[0]*1e3+L[1]/1e6}:C?Qc=()=>performance.now()-l.__performance_now_clock_drift:Qc=()=>performance.now();function GI(L,U,ut){n().copyWithin(L,U,U+ut)}function WI(){return w?KW().cpus().length:navigator.hardwareConcurrency}function kl(L,U){var ut=arguments.length-2,yt=arguments;return NI(()=>{for(var Dt=ut,ae=Rg(Dt*8),Gt=ae>>3,Xt=0;Xt>3,Dt=0;Dt>>16),je(st.buffer),1}catch(U){}}function qI(L){var U=n().length;if(L=L>>>0,L<=U)return!1;var ut=wg();if(L>ut)return!1;let yt=(xr,Zn)=>xr+(Zn-xr%Zn)%Zn;for(var Dt=1;Dt<=4;Dt*=2){var ae=U*(1+.2/Dt);ae=Math.min(ae,L+100663296);var Gt=Math.min(ut,yt(Math.max(L,ae),65536)),Xt=HI(Gt);if(Xt)return!0}return!1}function KI(){throw"unwind"}function Cg(L){return C?kl(4,1,L):52}function Ig(L,U,ut,yt,Dt){return C?kl(5,1,L,U,ut,yt,Dt):70}var jI=[null,[],[]];function XI(L,U){var ut=jI[L];U===0||U===10?((L===1?j:Y)(Vt(ut,0)),ut.length=0):ut.push(U)}function vg(L,U,ut,yt){if(C)return kl(6,1,L,U,ut,yt);for(var Dt=0,ae=0;ae>2],Xt=i()[U+4>>2];U+=8;for(var xr=0;xr>2]=Dt,0}function Sg(L){var U=l["_"+L];return U}function YI(L,U,ut,yt,Dt){var ae={string:Rn=>{var np=0;if(Rn!=null&&Rn!==0){var a1=(Rn.length<<2)+1;np=Rg(a1),he(Rn,np,a1)}return np},array:Rn=>{var np=Rg(Rn.length);return AI(Rn,np),np}};function Gt(Rn){return U==="string"?Zt(Rn):U==="boolean"?Boolean(Rn):Rn}var Xt=Sg(L),xr=[],Zn=0;if(yt)for(var ia=0;iaGt==="number"||Gt==="boolean"),ae=U!=="string";return ae&&Dt&&!yt?Sg(L):function(){return YI(L,U,ut,arguments,yt)}}Kt.init();var JI=[null,zd,xg,yg,Cg,Ig,vg],Ng={__emscripten_init_main_thread_js:$I,__emscripten_thread_cleanup:DI,__pthread_create_js:bg,_emscripten_default_pthread_stack_size:RI,_emscripten_get_now_is_monotonic:OI,_emscripten_notify_task_queue:PI,_emscripten_set_offscreencanvas_size:LI,abort:MI,emscripten_check_blocking_allowed:zI,emscripten_date_now:BI,emscripten_get_heap_max:VI,emscripten_get_now:Qc,emscripten_memcpy_big:GI,emscripten_num_logical_cores:WI,emscripten_receive_on_main_thread_js:UI,emscripten_resize_heap:qI,emscripten_unwind_to_js_event_loop:KI,exit:gg,fd_close:Cg,fd_seek:Ig,fd_write:vg,memory:st||l.wasmMemory},Qk=bI(),QI=l.___wasm_call_ctors=function(){return(QI=l.___wasm_call_ctors=l.asm.__wasm_call_ctors).apply(null,arguments)},tv=l._init=function(){return(tv=l._init=l.asm.init).apply(null,arguments)},ev=l._init_with_threads_count=function(){return(ev=l._init_with_threads_count=l.asm.init_with_threads_count).apply(null,arguments)},rv=l._get_threads_count=function(){return(rv=l._get_threads_count=l.asm.get_threads_count).apply(null,arguments)},nv=l._register_tensor=function(){return(nv=l._register_tensor=l.asm.register_tensor).apply(null,arguments)},ov=l._dispose_data=function(){return(ov=l._dispose_data=l.asm.dispose_data).apply(null,arguments)},sv=l._dispose=function(){return(sv=l._dispose=l.asm.dispose).apply(null,arguments)},iv=l._Abs=function(){return(iv=l._Abs=l.asm.Abs).apply(null,arguments)},av=l._Add=function(){return(av=l._Add=l.asm.Add).apply(null,arguments)},lv=l._AddN=function(){return(lv=l._AddN=l.asm.AddN).apply(null,arguments)},uv=l._All=function(){return(uv=l._All=l.asm.All).apply(null,arguments)},cv=l._Any=function(){return(cv=l._Any=l.asm.Any).apply(null,arguments)},pv=l._ArgMax=function(){return(pv=l._ArgMax=l.asm.ArgMax).apply(null,arguments)},mv=l._AvgPool=function(){return(mv=l._AvgPool=l.asm.AvgPool).apply(null,arguments)},fv=l._BatchMatMul=function(){return(fv=l._BatchMatMul=l.asm.BatchMatMul).apply(null,arguments)},dv=l._Ceil=function(){return(dv=l._Ceil=l.asm.Ceil).apply(null,arguments)},hv=l._ClipByValue=function(){return(hv=l._ClipByValue=l.asm.ClipByValue).apply(null,arguments)},gv=l._Conv2D=function(){return(gv=l._Conv2D=l.asm.Conv2D).apply(null,arguments)},xv=l._Conv2DBackpropInput=function(){return(xv=l._Conv2DBackpropInput=l.asm.Conv2DBackpropInput).apply(null,arguments)},yv=l._Cos=function(){return(yv=l._Cos=l.asm.Cos).apply(null,arguments)},bv=l._Cosh=function(){return(bv=l._Cosh=l.asm.Cosh).apply(null,arguments)},wv=l._CropAndResize=function(){return(wv=l._CropAndResize=l.asm.CropAndResize).apply(null,arguments)},Cv=l._Cumprod=function(){return(Cv=l._Cumprod=l.asm.Cumprod).apply(null,arguments)},Iv=l._Cumsum=function(){return(Iv=l._Cumsum=l.asm.Cumsum).apply(null,arguments)},vv=l._DepthToSpace=function(){return(vv=l._DepthToSpace=l.asm.DepthToSpace).apply(null,arguments)},Sv=l._DepthwiseConv2dNative=function(){return(Sv=l._DepthwiseConv2dNative=l.asm.DepthwiseConv2dNative).apply(null,arguments)},Nv=l._Elu=function(){return(Nv=l._Elu=l.asm.Elu).apply(null,arguments)},Tv=l._Equal=function(){return(Tv=l._Equal=l.asm.Equal).apply(null,arguments)},kv=l._Exp=function(){return(kv=l._Exp=l.asm.Exp).apply(null,arguments)},Ev=l._FlipLeftRight=function(){return(Ev=l._FlipLeftRight=l.asm.FlipLeftRight).apply(null,arguments)},_v=l._Floor=function(){return(_v=l._Floor=l.asm.Floor).apply(null,arguments)},Av=l._FloorDiv=function(){return(Av=l._FloorDiv=l.asm.FloorDiv).apply(null,arguments)},$v=l._FusedBatchNorm=function(){return($v=l._FusedBatchNorm=l.asm.FusedBatchNorm).apply(null,arguments)},Dv=l._FusedConv2D=function(){return(Dv=l._FusedConv2D=l.asm.FusedConv2D).apply(null,arguments)},Rv=l._FusedDepthwiseConv2D=function(){return(Rv=l._FusedDepthwiseConv2D=l.asm.FusedDepthwiseConv2D).apply(null,arguments)},Fv=l._Gather=function(){return(Fv=l._Gather=l.asm.Gather).apply(null,arguments)},Ov=l._GatherNd=function(){return(Ov=l._GatherNd=l.asm.GatherNd).apply(null,arguments)},Pv=l._Greater=function(){return(Pv=l._Greater=l.asm.Greater).apply(null,arguments)},Lv=l._GreaterEqual=function(){return(Lv=l._GreaterEqual=l.asm.GreaterEqual).apply(null,arguments)},Mv=l._IsNan=function(){return(Mv=l._IsNan=l.asm.IsNan).apply(null,arguments)},zv=l._LeakyRelu=function(){return(zv=l._LeakyRelu=l.asm.LeakyRelu).apply(null,arguments)},Bv=l._Less=function(){return(Bv=l._Less=l.asm.Less).apply(null,arguments)},Vv=l._LessEqual=function(){return(Vv=l._LessEqual=l.asm.LessEqual).apply(null,arguments)},Gv=l._Log=function(){return(Gv=l._Log=l.asm.Log).apply(null,arguments)},Wv=l._LogicalAnd=function(){return(Wv=l._LogicalAnd=l.asm.LogicalAnd).apply(null,arguments)},Uv=l._LogicalNot=function(){return(Uv=l._LogicalNot=l.asm.LogicalNot).apply(null,arguments)},Hv=l._LogicalOr=function(){return(Hv=l._LogicalOr=l.asm.LogicalOr).apply(null,arguments)},qv=l._LogicalXor=function(){return(qv=l._LogicalXor=l.asm.LogicalXor).apply(null,arguments)},Kv=l._Max=function(){return(Kv=l._Max=l.asm.Max).apply(null,arguments)},jv=l._MaxPool=function(){return(jv=l._MaxPool=l.asm.MaxPool).apply(null,arguments)},Tg=l._Maximum=function(){return(Tg=l._Maximum=l.asm.Maximum).apply(null,arguments)},kg=l._Mean=function(){return(kg=l._Mean=l.asm.Mean).apply(null,arguments)},Wd=l._Min=function(){return(Wd=l._Min=l.asm.Min).apply(null,arguments)},Xv=l._Minimum=function(){return(Xv=l._Minimum=l.asm.Minimum).apply(null,arguments)},Yv=l._MirrorPad=function(){return(Yv=l._MirrorPad=l.asm.MirrorPad).apply(null,arguments)},tp=l._Multiply=function(){return(tp=l._Multiply=l.asm.Multiply).apply(null,arguments)},Eg=l._Neg=function(){return(Eg=l._Neg=l.asm.Neg).apply(null,arguments)},ep=l._NonMaxSuppressionV3=function(){return(ep=l._NonMaxSuppressionV3=l.asm.NonMaxSuppressionV3).apply(null,arguments)},rp=l._NonMaxSuppressionV4=function(){return(rp=l._NonMaxSuppressionV4=l.asm.NonMaxSuppressionV4).apply(null,arguments)},Zv=l._NonMaxSuppressionV5=function(){return(Zv=l._NonMaxSuppressionV5=l.asm.NonMaxSuppressionV5).apply(null,arguments)},K=l._NotEqual=function(){return(K=l._NotEqual=l.asm.NotEqual).apply(null,arguments)},lt=l._OneHot=function(){return(lt=l._OneHot=l.asm.OneHot).apply(null,arguments)},$t=l._PadV2=function(){return($t=l._PadV2=l.asm.PadV2).apply(null,arguments)},ne=l._Pow=function(){return(ne=l._Pow=l.asm.Pow).apply(null,arguments)},Xe=l._Prelu=function(){return(Xe=l._Prelu=l.asm.Prelu).apply(null,arguments)},Ye=l._Prod=function(){return(Ye=l._Prod=l.asm.Prod).apply(null,arguments)},re=l._RealDiv=function(){return(re=l._RealDiv=l.asm.RealDiv).apply(null,arguments)},ee=l._Reciprocal=function(){return(ee=l._Reciprocal=l.asm.Reciprocal).apply(null,arguments)},gr=l._Relu=function(){return(gr=l._Relu=l.asm.Relu).apply(null,arguments)},Yn=l._Relu6=function(){return(Yn=l._Relu6=l.asm.Relu6).apply(null,arguments)},sa=l._ResizeBilinear=function(){return(sa=l._ResizeBilinear=l.asm.ResizeBilinear).apply(null,arguments)},_g=l._ResizeNearestNeighbor=function(){return(_g=l._ResizeNearestNeighbor=l.asm.ResizeNearestNeighbor).apply(null,arguments)},Ud=l._Reverse=function(){return(Ud=l._Reverse=l.asm.Reverse).apply(null,arguments)},Jv=l._RotateWithOffset=function(){return(Jv=l._RotateWithOffset=l.asm.RotateWithOffset).apply(null,arguments)},nn=l._Round=function(){return(nn=l._Round=l.asm.Round).apply(null,arguments)},El=l._Rsqrt=function(){return(El=l._Rsqrt=l.asm.Rsqrt).apply(null,arguments)},Ag=l._ScatterNd=function(){return(Ag=l._ScatterNd=l.asm.ScatterNd).apply(null,arguments)},oU=l._SelectV2=function(){return(oU=l._SelectV2=l.asm.SelectV2).apply(null,arguments)},sU=l._Sigmoid=function(){return(sU=l._Sigmoid=l.asm.Sigmoid).apply(null,arguments)},iU=l._Sin=function(){return(iU=l._Sin=l.asm.Sin).apply(null,arguments)},aU=l._Softmax=function(){return(aU=l._Softmax=l.asm.Softmax).apply(null,arguments)},lU=l._SparseFillEmptyRows=function(){return(lU=l._SparseFillEmptyRows=l.asm.SparseFillEmptyRows).apply(null,arguments)},uU=l._SparseReshape=function(){return(uU=l._SparseReshape=l.asm.SparseReshape).apply(null,arguments)},cU=l._SparseSegmentReduction=function(){return(cU=l._SparseSegmentReduction=l.asm.SparseSegmentReduction).apply(null,arguments)},pU=l._Sqrt=function(){return(pU=l._Sqrt=l.asm.Sqrt).apply(null,arguments)},mU=l._Square=function(){return(mU=l._Square=l.asm.Square).apply(null,arguments)},fU=l._SquaredDifference=function(){return(fU=l._SquaredDifference=l.asm.SquaredDifference).apply(null,arguments)},dU=l._Step=function(){return(dU=l._Step=l.asm.Step).apply(null,arguments)},hU=l._StridedSlice=function(){return(hU=l._StridedSlice=l.asm.StridedSlice).apply(null,arguments)},gU=l._Sub=function(){return(gU=l._Sub=l.asm.Sub).apply(null,arguments)},xU=l._Sum=function(){return(xU=l._Sum=l.asm.Sum).apply(null,arguments)},yU=l._Tan=function(){return(yU=l._Tan=l.asm.Tan).apply(null,arguments)},bU=l._Tanh=function(){return(bU=l._Tanh=l.asm.Tanh).apply(null,arguments)},wU=l._Tile=function(){return(wU=l._Tile=l.asm.Tile).apply(null,arguments)},CU=l._TopK=function(){return(CU=l._TopK=l.asm.TopK).apply(null,arguments)},IU=l._Transform=function(){return(IU=l._Transform=l.asm.Transform).apply(null,arguments)},vU=l._Transpose=function(){return(vU=l._Transpose=l.asm.Transpose).apply(null,arguments)},SU=l.__FusedMatMul=function(){return(SU=l.__FusedMatMul=l.asm._FusedMatMul).apply(null,arguments)},NU=l._malloc=function(){return(NU=l._malloc=l.asm.malloc).apply(null,arguments)},TU=l._free=function(){return(TU=l._free=l.asm.free).apply(null,arguments)},kU=l.__emscripten_tls_init=function(){return(kU=l.__emscripten_tls_init=l.asm._emscripten_tls_init).apply(null,arguments)},$g=l._pthread_self=function(){return($g=l._pthread_self=l.asm.pthread_self).apply(null,arguments)},EU=l.___errno_location=function(){return(EU=l.___errno_location=l.asm.__errno_location).apply(null,arguments)},t1=l.__emscripten_thread_init=function(){return(t1=l.__emscripten_thread_init=l.asm._emscripten_thread_init).apply(null,arguments)},_U=l.__emscripten_thread_crashed=function(){return(_U=l.__emscripten_thread_crashed=l.asm._emscripten_thread_crashed).apply(null,arguments)},AU=l._emscripten_main_thread_process_queued_calls=function(){return(AU=l._emscripten_main_thread_process_queued_calls=l.asm.emscripten_main_thread_process_queued_calls).apply(null,arguments)},$U=l._emscripten_main_browser_thread_id=function(){return($U=l._emscripten_main_browser_thread_id=l.asm.emscripten_main_browser_thread_id).apply(null,arguments)},e1=l._emscripten_run_in_main_runtime_thread_js=function(){return(e1=l._emscripten_run_in_main_runtime_thread_js=l.asm.emscripten_run_in_main_runtime_thread_js).apply(null,arguments)},DU=l._emscripten_dispatch_to_thread_=function(){return(DU=l._emscripten_dispatch_to_thread_=l.asm.emscripten_dispatch_to_thread_).apply(null,arguments)},r1=l.__emscripten_proxy_execute_task_queue=function(){return(r1=l.__emscripten_proxy_execute_task_queue=l.asm._emscripten_proxy_execute_task_queue).apply(null,arguments)},Qv=l.__emscripten_thread_free_data=function(){return(Qv=l.__emscripten_thread_free_data=l.asm._emscripten_thread_free_data).apply(null,arguments)},n1=l.__emscripten_thread_exit=function(){return(n1=l.__emscripten_thread_exit=l.asm._emscripten_thread_exit).apply(null,arguments)},o1=l._emscripten_stack_set_limits=function(){return(o1=l._emscripten_stack_set_limits=l.asm.emscripten_stack_set_limits).apply(null,arguments)},tS=l.stackSave=function(){return(tS=l.stackSave=l.asm.stackSave).apply(null,arguments)},Dg=l.stackRestore=function(){return(Dg=l.stackRestore=l.asm.stackRestore).apply(null,arguments)},Rg=l.stackAlloc=function(){return(Rg=l.stackAlloc=l.asm.stackAlloc).apply(null,arguments)},RU=l.dynCall_iijjiiii=function(){return(RU=l.dynCall_iijjiiii=l.asm.dynCall_iijjiiii).apply(null,arguments)},FU=l.dynCall_jiji=function(){return(FU=l.dynCall_jiji=l.asm.dynCall_jiji).apply(null,arguments)};l.keepRuntimeAlive=zo,l.wasmMemory=st,l.cwrap=ZI,l.ExitStatus=Ou,l.PThread=Kt;var Fg;oa=function L(){Fg||s1(),Fg||(oa=L)};function s1(L){if(L=L||d,Tl>0)return;if(C){c(l),Er(),postMessage({cmd:"loaded"});return}if(Nl(),Tl>0)return;function U(){Fg||(Fg=!0,l.calledRun=!0,!gt&&(Er(),c(l),l.onRuntimeInitialized&&l.onRuntimeInitialized(),na()))}l.setStatus?(l.setStatus("Running..."),setTimeout(function(){setTimeout(function(){l.setStatus("")},1),U()},1)):U()}if(l.preInit)for(typeof l.preInit=="function"&&(l.preInit=[l.preInit]);l.preInit.length>0;)l.preInit.pop()();s1();var Og;m&&(Og={uncaughtException:process.listeners("uncaughtException").filter(function(L){return!m.uncaughtException.indexOf(L)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(L){return!m.unhandledRejection.indexOf(L)>-1})});var Pg;if(typeof WasmBackendModule!="undefined")Pg=WasmBackendModule;else if(typeof t!="undefined")Pg=t;else throw new Error("Could not find wasm module in post.js");if(Og){var OU=Pg._dispose;Pg._dispose=function(){OU(),Og.uncaughtException.forEach(function(L){process.removeListener("uncaughtException",L)}),Og.unhandledRejection.forEach(function(L){process.removeListener("unhandledRejection",L)})}}return t.ready}})();typeof dI=="object"&&typeof Mk=="object"?Mk.exports=Lk:typeof define=="function"&&define.amd?define([],function(){return Lk}):typeof dI=="object"&&(dI.WasmBackendModuleThreadedSimd=Lk)});var YW=yr((w8e,XW)=>{XW.exports.wasmWorkerContents=`"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",data=>onmessage({data:data}));var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+" +");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onunhandledrejection=e=>{throw e.reason??e};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}WasmBackendModuleThreadedSimd(Module).then(function(instance){Module=instance})}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.pthread_ptr,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else if(e.data.cmd){err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};`});var ZW=yr((hI,Bk)=>{var zk=(()=>{var r=typeof document!="undefined"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename!="undefined"&&(r=r||__filename),function(t){t=t||{};var e=typeof t!="undefined"?t:{},n,o;e.ready=new Promise(function(K,lt){n=K,o=lt});var s;typeof process!="undefined"&&process.listeners&&(s={uncaughtException:process.listeners("uncaughtException"),unhandledRejection:process.listeners("unhandledRejection")});var i=Object.assign({},e),a=[],u="./this.program",l=(K,lt)=>{throw lt},c=typeof window=="object",p=typeof importScripts=="function",m=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",f="";function d(K){return e.locateFile?e.locateFile(K,f):f+K}var h,g,x,b;function w(K){if(K instanceof Yc)return;A("exiting due to exception: "+K)}if(m){p?f=ag().dirname(f)+"/":f=__dirname+"/";var C,N;typeof Lg=="function"&&(C=Jb(),N=ag()),h=(K,lt)=>(K=N.normalize(K),C.readFileSync(K,lt?void 0:"utf8")),x=K=>{var lt=h(K,!0);return lt.buffer||(lt=new Uint8Array(lt)),lt},g=(K,lt,$t)=>{K=N.normalize(K),C.readFile(K,function(ne,Xe){ne?$t(ne):lt(Xe.buffer)})},process.argv.length>1&&(u=process.argv[1].replace(/\\/g,"/")),a=process.argv.slice(2),process.on("uncaughtException",function(K){if(!(K instanceof Yc))throw K}),process.on("unhandledRejection",function(K){throw K}),l=(K,lt)=>{if(fe())throw process.exitCode=K,lt;w(lt),process.exit(K)},e.inspect=function(){return"[Emscripten Module object]"}}else(c||p)&&(p?f=self.location.href:typeof document!="undefined"&&document.currentScript&&(f=document.currentScript.src),r&&(f=r),f.indexOf("blob:")!==0?f=f.substr(0,f.replace(/[?#].*/,"").lastIndexOf("/")+1):f="",h=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.send(null),lt.responseText},p&&(x=K=>{var lt=new XMLHttpRequest;return lt.open("GET",K,!1),lt.responseType="arraybuffer",lt.send(null),new Uint8Array(lt.response)}),g=(K,lt,$t)=>{var ne=new XMLHttpRequest;ne.open("GET",K,!0),ne.responseType="arraybuffer",ne.onload=()=>{if(ne.status==200||ne.status==0&&ne.response){lt(ne.response);return}$t()},ne.onerror=$t,ne.send(null)},b=K=>document.title=K);var E=e.print||console.log.bind(console),A=e.printErr||console.warn.bind(console);Object.assign(e,i),i=null,e.arguments&&(a=e.arguments),e.thisProgram&&(u=e.thisProgram),e.quit&&(l=e.quit);var $=4,F;e.wasmBinary&&(F=e.wasmBinary);var P=e.noExitRuntime||!0;typeof WebAssembly!="object"&&Zr("no native wasm support detected");var V,G=!1,W;function q(K,lt){K||Zr(lt)}var H=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):void 0;function j(K,lt,$t){for(var ne=lt+$t,Xe=lt;K[Xe]&&!(Xe>=ne);)++Xe;if(Xe-lt>16&&K.buffer&&H)return H.decode(K.subarray(lt,Xe));for(var Ye="";lt>10,56320|Yn&1023)}}return Ye}function Y(K,lt){return K?j(at,K,lt):""}function Z(K,lt,$t,ne){if(!(ne>0))return 0;for(var Xe=$t,Ye=$t+ne-1,re=0;re=55296&&ee<=57343){var gr=K.charCodeAt(++re);ee=65536+((ee&1023)<<10)|gr&1023}if(ee<=127){if($t>=Ye)break;lt[$t++]=ee}else if(ee<=2047){if($t+1>=Ye)break;lt[$t++]=192|ee>>6,lt[$t++]=128|ee&63}else if(ee<=65535){if($t+2>=Ye)break;lt[$t++]=224|ee>>12,lt[$t++]=128|ee>>6&63,lt[$t++]=128|ee&63}else{if($t+3>=Ye)break;lt[$t++]=240|ee>>18,lt[$t++]=128|ee>>12&63,lt[$t++]=128|ee>>6&63,lt[$t++]=128|ee&63}}return lt[$t]=0,$t-Xe}function et(K,lt,$t){return Z(K,at,lt,$t)}var rt,ot,at,nt,st,dt,gt,bt,kt;function At(K){rt=K,e.HEAP8=ot=new Int8Array(K),e.HEAP16=nt=new Int16Array(K),e.HEAP32=dt=new Int32Array(K),e.HEAPU8=at=new Uint8Array(K),e.HEAPU16=st=new Uint16Array(K),e.HEAPU32=gt=new Uint32Array(K),e.HEAPF32=bt=new Float32Array(K),e.HEAPF64=kt=new Float64Array(K)}var Vt=e.INITIAL_MEMORY||16777216,Zt,ce=[],he=[],jt=[],ke=!1;function fe(){return P}function $e(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)ir(e.preRun.shift());oa(ce)}function We(){ke=!0,oa(he)}function Dn(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)zr(e.postRun.shift());oa(jt)}function ir(K){ce.unshift(K)}function Kn(K){he.unshift(K)}function zr(K){jt.unshift(K)}var je=0,Br=null,Vr=null;function jn(K){je++,e.monitorRunDependencies&&e.monitorRunDependencies(je)}function Xn(K){if(je--,e.monitorRunDependencies&&e.monitorRunDependencies(je),je==0&&(Br!==null&&(clearInterval(Br),Br=null),Vr)){var lt=Vr;Vr=null,lt()}}function Zr(K){e.onAbort&&e.onAbort(K),K="Aborted("+K+")",A(K),G=!0,W=1,K+=". Build with -sASSERTIONS for more info.";var lt=new WebAssembly.RuntimeError(K);throw o(lt),lt}var ra="data:application/octet-stream;base64,";function zo(K){return K.startsWith(ra)}function Nl(K){return K.startsWith("file://")}var Er;Er="tfjs-backend-wasm.wasm",zo(Er)||(Er=d(Er));function na(K){try{if(K==Er&&F)return new Uint8Array(F);if(x)return x(K);throw"both async and sync fetching of the wasm failed"}catch(lt){Zr(lt)}}function Od(){if(!F&&(c||p)){if(typeof fetch=="function"&&!Nl(Er))return fetch(Er,{credentials:"same-origin"}).then(function(K){if(!K.ok)throw"failed to load wasm binary file at '"+Er+"'";return K.arrayBuffer()}).catch(function(){return na(Er)});if(g)return new Promise(function(K,lt){g(Er,function($t){K(new Uint8Array($t))},lt)})}return Promise.resolve().then(function(){return na(Er)})}function Pd(){var K={env:zd,wasi_snapshot_preview1:zd};function lt(re,ee){var gr=re.exports;e.asm=gr,V=e.asm.memory,At(V.buffer),Zt=e.asm.__indirect_function_table,Kn(e.asm.__wasm_call_ctors),Xn("wasm-instantiate")}jn("wasm-instantiate");function $t(re){lt(re.instance)}function ne(re){return Od().then(function(ee){return WebAssembly.instantiate(ee,K)}).then(function(ee){return ee}).then(re,function(ee){A("failed to asynchronously prepare wasm: "+ee),Zr(ee)})}function Xe(){return!F&&typeof WebAssembly.instantiateStreaming=="function"&&!zo(Er)&&!Nl(Er)&&!m&&typeof fetch=="function"?fetch(Er,{credentials:"same-origin"}).then(function(re){var ee=WebAssembly.instantiateStreaming(re,K);return ee.then($t,function(gr){return A("wasm streaming compile failed: "+gr),A("falling back to ArrayBuffer instantiation"),ne($t)})}):ne($t)}if(e.instantiateWasm)try{var Ye=e.instantiateWasm(K,lt);return Ye}catch(re){A("Module.instantiateWasm callback failed with error: "+re),o(re)}return Xe().catch(o),{}}var Hk,Tl;function Yc(K){this.name="ExitStatus",this.message="Program terminated with exit("+K+")",this.status=K}function oa(K){for(;K.length>0;)K.shift()(e)}function qk(K){return K}function Kk(K){var lt=/\b_Z[\w\d_]+/g;return K.replace(lt,function($t){var ne=$t;return $t===ne?$t:ne+" ["+$t+"]"})}function Zc(){var K=new Error;if(!K.stack){try{throw new Error}catch(lt){K=lt}if(!K.stack)return"(no stack trace available)"}return K.stack.toString()}function xI(K,lt){ot.set(K,lt)}function mg(){Zr("")}function Ld(){return 2147483648}function rn(){return Ld()}function fg(K,lt,$t){at.copyWithin(K,lt,lt+$t)}function yI(K){try{return V.grow(K-rt.byteLength+65535>>>16),At(V.buffer),1}catch(lt){}}function bI(K){var lt=at.length;K=K>>>0;var $t=Ld();if(K>$t)return!1;let ne=(gr,Yn)=>gr+(Yn-gr%Yn)%Yn;for(var Xe=1;Xe<=4;Xe*=2){var Ye=lt*(1+.2/Xe);Ye=Math.min(Ye,K+100663296);var re=Math.min($t,ne(Math.max(K,Ye),65536)),ee=yI(re);if(ee)return!0}return!1}var wI={varargs:void 0,get:function(){wI.varargs+=4;var K=dt[wI.varargs-4>>2];return K},getStr:function(K){var lt=Y(K);return lt}};function jk(K){return 52}function CI(K,lt,$t,ne,Xe){return 70}var Ou=[null,[],[]];function II(K,lt){var $t=Ou[K];lt===0||lt===10?((K===1?E:A)(j($t,0)),$t.length=0):$t.push(lt)}function vI(K,lt,$t,ne){for(var Xe=0,Ye=0;Ye<$t;Ye++){var re=gt[lt>>2],ee=gt[lt+4>>2];lt+=8;for(var gr=0;gr>2]=Xe,0}function Md(K){var lt=e["_"+K];return lt}function dg(K,lt,$t,ne,Xe){var Ye={string:nn=>{var El=0;if(nn!=null&&nn!==0){var Ag=(nn.length<<2)+1;El=Wd(Ag),et(nn,El,Ag)}return El},array:nn=>{var El=Wd(nn.length);return xI(nn,El),El}};function re(nn){return lt==="string"?Y(nn):lt==="boolean"?Boolean(nn):nn}var ee=Md(K),gr=[],Yn=0;if(ne)for(var sa=0;sare==="number"||re==="boolean"),Ye=lt!=="string";return Ye&&Xe&&!ne?Md(K):function(){return dg(K,lt,$t,arguments,ne)}}var zd={abort:mg,emscripten_get_heap_max:rn,emscripten_memcpy_big:fg,emscripten_resize_heap:bI,fd_close:jk,fd_seek:CI,fd_write:vI},Xk=Pd(),gg=e.___wasm_call_ctors=function(){return(gg=e.___wasm_call_ctors=e.asm.__wasm_call_ctors).apply(null,arguments)},SI=e._init=function(){return(SI=e._init=e.asm.init).apply(null,arguments)},Kt=e._init_with_threads_count=function(){return(Kt=e._init_with_threads_count=e.asm.init_with_threads_count).apply(null,arguments)},Bd=e._get_threads_count=function(){return(Bd=e._get_threads_count=e.asm.get_threads_count).apply(null,arguments)},NI=e._register_tensor=function(){return(NI=e._register_tensor=e.asm.register_tensor).apply(null,arguments)},Yk=e._dispose_data=function(){return(Yk=e._dispose_data=e.asm.dispose_data).apply(null,arguments)},Zk=e._dispose=function(){return(Zk=e._dispose=e.asm.dispose).apply(null,arguments)},TI=e._Abs=function(){return(TI=e._Abs=e.asm.Abs).apply(null,arguments)},xg=e._Add=function(){return(xg=e._Add=e.asm.Add).apply(null,arguments)},Jc=e._AddN=function(){return(Jc=e._AddN=e.asm.AddN).apply(null,arguments)},kI=e._All=function(){return(kI=e._All=e.asm.All).apply(null,arguments)},EI=e._Any=function(){return(EI=e._Any=e.asm.Any).apply(null,arguments)},Jk=e._ArgMax=function(){return(Jk=e._ArgMax=e.asm.ArgMax).apply(null,arguments)},_I=e._AvgPool=function(){return(_I=e._AvgPool=e.asm.AvgPool).apply(null,arguments)},AI=e._BatchMatMul=function(){return(AI=e._BatchMatMul=e.asm.BatchMatMul).apply(null,arguments)},$I=e._Ceil=function(){return($I=e._Ceil=e.asm.Ceil).apply(null,arguments)},DI=e._ClipByValue=function(){return(DI=e._ClipByValue=e.asm.ClipByValue).apply(null,arguments)},yg=e._Conv2D=function(){return(yg=e._Conv2D=e.asm.Conv2D).apply(null,arguments)},bg=e._Conv2DBackpropInput=function(){return(bg=e._Conv2DBackpropInput=e.asm.Conv2DBackpropInput).apply(null,arguments)},RI=e._Cos=function(){return(RI=e._Cos=e.asm.Cos).apply(null,arguments)},FI=e._Cosh=function(){return(FI=e._Cosh=e.asm.Cosh).apply(null,arguments)},OI=e._CropAndResize=function(){return(OI=e._CropAndResize=e.asm.CropAndResize).apply(null,arguments)},Vd=e._Cumprod=function(){return(Vd=e._Cumprod=e.asm.Cumprod).apply(null,arguments)},PI=e._Cumsum=function(){return(PI=e._Cumsum=e.asm.Cumsum).apply(null,arguments)},LI=e._DepthToSpace=function(){return(LI=e._DepthToSpace=e.asm.DepthToSpace).apply(null,arguments)},MI=e._DepthwiseConv2dNative=function(){return(MI=e._DepthwiseConv2dNative=e.asm.DepthwiseConv2dNative).apply(null,arguments)},Pu=e._Elu=function(){return(Pu=e._Elu=e.asm.Elu).apply(null,arguments)},zI=e._Equal=function(){return(zI=e._Equal=e.asm.Equal).apply(null,arguments)},BI=e._Exp=function(){return(BI=e._Exp=e.asm.Exp).apply(null,arguments)},wg=e._FlipLeftRight=function(){return(wg=e._FlipLeftRight=e.asm.FlipLeftRight).apply(null,arguments)},VI=e._Floor=function(){return(VI=e._Floor=e.asm.Floor).apply(null,arguments)},Qc=e._FloorDiv=function(){return(Qc=e._FloorDiv=e.asm.FloorDiv).apply(null,arguments)},GI=e._FusedBatchNorm=function(){return(GI=e._FusedBatchNorm=e.asm.FusedBatchNorm).apply(null,arguments)},WI=e._FusedConv2D=function(){return(WI=e._FusedConv2D=e.asm.FusedConv2D).apply(null,arguments)},kl=e._FusedDepthwiseConv2D=function(){return(kl=e._FusedDepthwiseConv2D=e.asm.FusedDepthwiseConv2D).apply(null,arguments)},Gd=e._Gather=function(){return(Gd=e._Gather=e.asm.Gather).apply(null,arguments)},UI=e._GatherNd=function(){return(UI=e._GatherNd=e.asm.GatherNd).apply(null,arguments)},HI=e._Greater=function(){return(HI=e._Greater=e.asm.Greater).apply(null,arguments)},qI=e._GreaterEqual=function(){return(qI=e._GreaterEqual=e.asm.GreaterEqual).apply(null,arguments)},KI=e._IsNan=function(){return(KI=e._IsNan=e.asm.IsNan).apply(null,arguments)},Cg=e._LeakyRelu=function(){return(Cg=e._LeakyRelu=e.asm.LeakyRelu).apply(null,arguments)},Ig=e._Less=function(){return(Ig=e._Less=e.asm.Less).apply(null,arguments)},jI=e._LessEqual=function(){return(jI=e._LessEqual=e.asm.LessEqual).apply(null,arguments)},XI=e._Log=function(){return(XI=e._Log=e.asm.Log).apply(null,arguments)},vg=e._LogicalAnd=function(){return(vg=e._LogicalAnd=e.asm.LogicalAnd).apply(null,arguments)},Sg=e._LogicalNot=function(){return(Sg=e._LogicalNot=e.asm.LogicalNot).apply(null,arguments)},YI=e._LogicalOr=function(){return(YI=e._LogicalOr=e.asm.LogicalOr).apply(null,arguments)},ZI=e._LogicalXor=function(){return(ZI=e._LogicalXor=e.asm.LogicalXor).apply(null,arguments)},JI=e._Max=function(){return(JI=e._Max=e.asm.Max).apply(null,arguments)},Ng=e._MaxPool=function(){return(Ng=e._MaxPool=e.asm.MaxPool).apply(null,arguments)},Qk=e._Maximum=function(){return(Qk=e._Maximum=e.asm.Maximum).apply(null,arguments)},QI=e._Mean=function(){return(QI=e._Mean=e.asm.Mean).apply(null,arguments)},tv=e._Min=function(){return(tv=e._Min=e.asm.Min).apply(null,arguments)},ev=e._Minimum=function(){return(ev=e._Minimum=e.asm.Minimum).apply(null,arguments)},rv=e._MirrorPad=function(){return(rv=e._MirrorPad=e.asm.MirrorPad).apply(null,arguments)},nv=e._Multiply=function(){return(nv=e._Multiply=e.asm.Multiply).apply(null,arguments)},ov=e._Neg=function(){return(ov=e._Neg=e.asm.Neg).apply(null,arguments)},sv=e._NonMaxSuppressionV3=function(){return(sv=e._NonMaxSuppressionV3=e.asm.NonMaxSuppressionV3).apply(null,arguments)},iv=e._NonMaxSuppressionV4=function(){return(iv=e._NonMaxSuppressionV4=e.asm.NonMaxSuppressionV4).apply(null,arguments)},av=e._NonMaxSuppressionV5=function(){return(av=e._NonMaxSuppressionV5=e.asm.NonMaxSuppressionV5).apply(null,arguments)},lv=e._NotEqual=function(){return(lv=e._NotEqual=e.asm.NotEqual).apply(null,arguments)},uv=e._OneHot=function(){return(uv=e._OneHot=e.asm.OneHot).apply(null,arguments)},cv=e._PadV2=function(){return(cv=e._PadV2=e.asm.PadV2).apply(null,arguments)},pv=e._Pow=function(){return(pv=e._Pow=e.asm.Pow).apply(null,arguments)},mv=e._Prelu=function(){return(mv=e._Prelu=e.asm.Prelu).apply(null,arguments)},fv=e._Prod=function(){return(fv=e._Prod=e.asm.Prod).apply(null,arguments)},dv=e._RealDiv=function(){return(dv=e._RealDiv=e.asm.RealDiv).apply(null,arguments)},hv=e._Reciprocal=function(){return(hv=e._Reciprocal=e.asm.Reciprocal).apply(null,arguments)},gv=e._Relu=function(){return(gv=e._Relu=e.asm.Relu).apply(null,arguments)},xv=e._Relu6=function(){return(xv=e._Relu6=e.asm.Relu6).apply(null,arguments)},yv=e._ResizeBilinear=function(){return(yv=e._ResizeBilinear=e.asm.ResizeBilinear).apply(null,arguments)},bv=e._ResizeNearestNeighbor=function(){return(bv=e._ResizeNearestNeighbor=e.asm.ResizeNearestNeighbor).apply(null,arguments)},wv=e._Reverse=function(){return(wv=e._Reverse=e.asm.Reverse).apply(null,arguments)},Cv=e._RotateWithOffset=function(){return(Cv=e._RotateWithOffset=e.asm.RotateWithOffset).apply(null,arguments)},Iv=e._Round=function(){return(Iv=e._Round=e.asm.Round).apply(null,arguments)},vv=e._Rsqrt=function(){return(vv=e._Rsqrt=e.asm.Rsqrt).apply(null,arguments)},Sv=e._ScatterNd=function(){return(Sv=e._ScatterNd=e.asm.ScatterNd).apply(null,arguments)},Nv=e._SelectV2=function(){return(Nv=e._SelectV2=e.asm.SelectV2).apply(null,arguments)},Tv=e._Sigmoid=function(){return(Tv=e._Sigmoid=e.asm.Sigmoid).apply(null,arguments)},kv=e._Sin=function(){return(kv=e._Sin=e.asm.Sin).apply(null,arguments)},Ev=e._Softmax=function(){return(Ev=e._Softmax=e.asm.Softmax).apply(null,arguments)},_v=e._SparseFillEmptyRows=function(){return(_v=e._SparseFillEmptyRows=e.asm.SparseFillEmptyRows).apply(null,arguments)},Av=e._SparseReshape=function(){return(Av=e._SparseReshape=e.asm.SparseReshape).apply(null,arguments)},$v=e._SparseSegmentReduction=function(){return($v=e._SparseSegmentReduction=e.asm.SparseSegmentReduction).apply(null,arguments)},Dv=e._Sqrt=function(){return(Dv=e._Sqrt=e.asm.Sqrt).apply(null,arguments)},Rv=e._Square=function(){return(Rv=e._Square=e.asm.Square).apply(null,arguments)},Fv=e._SquaredDifference=function(){return(Fv=e._SquaredDifference=e.asm.SquaredDifference).apply(null,arguments)},Ov=e._Step=function(){return(Ov=e._Step=e.asm.Step).apply(null,arguments)},Pv=e._StridedSlice=function(){return(Pv=e._StridedSlice=e.asm.StridedSlice).apply(null,arguments)},Lv=e._Sub=function(){return(Lv=e._Sub=e.asm.Sub).apply(null,arguments)},Mv=e._Sum=function(){return(Mv=e._Sum=e.asm.Sum).apply(null,arguments)},zv=e._Tan=function(){return(zv=e._Tan=e.asm.Tan).apply(null,arguments)},Bv=e._Tanh=function(){return(Bv=e._Tanh=e.asm.Tanh).apply(null,arguments)},Vv=e._Tile=function(){return(Vv=e._Tile=e.asm.Tile).apply(null,arguments)},Gv=e._TopK=function(){return(Gv=e._TopK=e.asm.TopK).apply(null,arguments)},Wv=e._Transform=function(){return(Wv=e._Transform=e.asm.Transform).apply(null,arguments)},Uv=e._Transpose=function(){return(Uv=e._Transpose=e.asm.Transpose).apply(null,arguments)},Hv=e.__FusedMatMul=function(){return(Hv=e.__FusedMatMul=e.asm._FusedMatMul).apply(null,arguments)},qv=e._malloc=function(){return(qv=e._malloc=e.asm.malloc).apply(null,arguments)},Kv=e._free=function(){return(Kv=e._free=e.asm.free).apply(null,arguments)},jv=e.___errno_location=function(){return(jv=e.___errno_location=e.asm.__errno_location).apply(null,arguments)},Tg=e.stackSave=function(){return(Tg=e.stackSave=e.asm.stackSave).apply(null,arguments)},kg=e.stackRestore=function(){return(kg=e.stackRestore=e.asm.stackRestore).apply(null,arguments)},Wd=e.stackAlloc=function(){return(Wd=e.stackAlloc=e.asm.stackAlloc).apply(null,arguments)},Xv=e.dynCall_iijjiiii=function(){return(Xv=e.dynCall_iijjiiii=e.asm.dynCall_iijjiiii).apply(null,arguments)},Yv=e.dynCall_jiji=function(){return(Yv=e.dynCall_jiji=e.asm.dynCall_jiji).apply(null,arguments)};e.cwrap=hg;var tp;Vr=function K(){tp||Eg(),tp||(Vr=K)};function Eg(K){if(K=K||a,je>0||($e(),je>0))return;function lt(){tp||(tp=!0,e.calledRun=!0,!G&&(We(),n(e),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Dn()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),lt()},1)):lt()}if(e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();Eg();var ep;s&&(ep={uncaughtException:process.listeners("uncaughtException").filter(function(K){return!s.uncaughtException.indexOf(K)>-1}),unhandledRejection:process.listeners("unhandledRejection").filter(function(K){return!s.unhandledRejection.indexOf(K)>-1})});var rp;if(typeof t!="undefined")rp=t;else if(typeof WasmBackendModuleThreadedSimd!="undefined")rp=WasmBackendModuleThreadedSimd;else throw new Error("Could not find wasm module in post.js");if(ep){var Zv=rp._dispose;rp._dispose=function(){Zv(),ep.uncaughtException.forEach(function(K){process.removeListener("uncaughtException",K)}),ep.unhandledRejection.forEach(function(K){process.removeListener("unhandledRejection",K)})}}return t.ready}})();typeof hI=="object"&&typeof Bk=="object"?Bk.exports=zk:typeof define=="function"&&define.amd?define([],function(){return zk}):typeof hI=="object"&&(hI.WasmBackendModule=zk)});var aa=class{constructor(t,e){this.backend=t,this.dataMover=e,this.data=new WeakMap,this.dataIdsCount=0}get(t){return this.data.has(t)||this.dataMover.moveData(this.backend,t),this.data.get(t)}set(t,e){this.dataIdsCount++,this.data.set(t,e)}has(t){return this.data.has(t)}delete(t){return this.dataIdsCount--,this.data.delete(t)}numDataIds(){return this.dataIdsCount}},Bo=class{refCount(t){return Fn("refCount")}incRef(t){return Fn("incRef")}timerAvailable(){return!0}time(t){return Fn("time")}read(t){return Fn("read")}readSync(t){return Fn("readSync")}readToGPU(t,e){return Fn("readToGPU")}numDataIds(){return Fn("numDataIds")}disposeData(t,e){return Fn("disposeData")}write(t,e,n){return Fn("write")}move(t,e,n,o,s){return Fn("move")}createTensorFromTexture(t,e,n){return Fn("createTensorFromTexture")}memory(){return Fn("memory")}floatPrecision(){return Fn("floatPrecision")}epsilon(){return this.floatPrecision()===32?1e-7:1e-4}dispose(){return Fn("dispose")}};function Fn(r){throw new Error(`'${r}' not yet implemented or not found in the registry. This kernel may not be supported by the tfjs backend you have chosen`)}function l1(r){let t=r.length,e=0;for(;t>0;)e=Math.random()*t|0,t--,Mg(r,t,e)}function WU(r,t){if(r.length!==t.length)throw new Error(`Array sizes must match to be shuffled together First array length was ${r.length}Second array length was ${t.length}`);let e=r.length,n=0;for(;e>0;)n=Math.random()*e|0,e--,Mg(r,e,n),Mg(t,e,n)}function op(r,t,e){return Math.max(r,Math.min(t,e))}function UU(r){return r%2===0?r:r+1}function Mg(r,t,e){let n=r[t];r[t]=r[e],r[e]=n}function HU(r){let t=0;for(let e=0;ee+` Shapes ${r} and ${t} must match`)}function Jn(r){_(r!=null,()=>"The input to the tensor constructor must be a non-null value.")}function Vo(r,t=[],e=!1){if(t==null&&(t=[]),Array.isArray(r)||br(r)&&!e)for(let n=0;n0,e,n){return new Promise((o,s)=>{let i=0,a=()=>{if(r()){o();return}i++;let u=t(i);if(e!=null&&i>=e){s();return}n!=null?n(a,u):setTimeout(a,u)};a()})}function QU(r,t){let e=1,n=-1;for(let s=0;s=0)e*=r[s];else if(r[s]===-1){if(n!==-1)throw Error(`Shapes can only have 1 implicit size. Found -1 at dim ${n} and dim ${s}`);n=s}else if(r[s]<0)throw Error(`Shapes can not be < 0. Found ${r[s]} at dim ${s}`);if(n===-1){if(t>0&&t!==e)throw Error(`Size(${t}) must match the product of shape ${r}`);return r}if(e===0)throw Error(`Cannot infer the missing size in [${r}] when there are 0 elements`);if(t%e!==0)throw Error(`The implicit shape can't be a fractional number. Got ${t} / ${e}`);let o=r.slice();return o[n]=t/e,o}function cr(r,t){let e=t.length;return r=r==null?t.map((n,o)=>o):[].concat(r),_(r.every(n=>n>=-e&&n`All values in axis param must be in range [-${e}, ${e}) but got axis ${r}`),_(r.every(n=>la(n)),()=>`All values in axis param must be integers but got axis ${r}`),r.map(n=>n<0?e+n:n)}function nS(r,t){let e=[],n=[],o=t!=null&&Array.isArray(t)&&t.length===0,s=t==null||o?null:cr(t,r).sort(),i=0;for(let a=0;aa)&&r[a]===1&&(e.push(r[a]),n.push(a)),s[i]<=a&&i++}r[a]!==1&&(e.push(r[a]),n.push(a))}return{newShape:e,keptDims:n}}function oS(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else throw new Error(`Unknown data type ${r}`);return e}function sS(r,t){let e=null;if(r==null||r==="float32")e=new Float32Array(t);else if(r==="int32")e=new Int32Array(t);else if(r==="bool")e=new Uint8Array(t);else if(r==="string")e=new Array(t);else throw new Error(`Unknown data type ${r}`);return e}function iS(r,t){for(let e=0;et+=e.length),t}function Go(r){return typeof r=="string"||r instanceof String}function u1(r){return typeof r=="boolean"}function c1(r){return typeof r=="number"}function sp(r){return Array.isArray(r)?sp(r[0]):r instanceof Float32Array?"float32":r instanceof Int32Array||r instanceof Uint8Array||r instanceof Uint8ClampedArray?"int32":c1(r)?"float32":Go(r)?"string":u1(r)?"bool":"float32"}function ai(r){return!!(r&&r.constructor&&r.call&&r.apply)}function ip(r,t){for(let e=t;e=0;--n)e[n]=e[n+1]*r[n+1];return e}function p1(r,t,e,n=!1){let o=new Array;if(t.length===1){let s=t[0]*(n?2:1);for(let i=0;iu*l)*(n?2:1);for(let u=0;uo*s)*(e?2:1);if(n===0)return[];if(n!==t.length)throw new Error(`[${r}] does not match the input size ${t.length}${e?" for a complex tensor":""}.`);return p1(0,r,t,e)}function Hd(r,t){let e=ap(r,t);for(let n=0;nn*o,1);if(t==null||t==="float32")return Lu(r,new Float32Array(e));if(t==="int32")return Lu(r,new Int32Array(e));if(t==="bool")return Lu(r,new Uint8Array(e));throw new Error(`Unknown data type ${t}`)}function Pe(r){r.forEach(t=>{_(Number.isInteger(t)&&t>=0,()=>`Tensor must have a shape comprised of positive integers but got shape [${r}].`)})}function r4(r,t,e){if(t===0)return 0;if(t===1)return r[0];let n=r[r.length-1];for(let o=0;o{let[o,s]=n.split(":");this.urlFlags[o]=a4(o,s)})}};function s4(r){let t={};return r.replace(/[?&]([^=?&]+)(?:=([^&]*))?/g,(e,...n)=>(i4(t,n[0],n[1]),n.join("="))),t}function i4(r,t,e){r[decodeURIComponent(t)]=decodeURIComponent(e||"")}function a4(r,t){if(t=t.toLowerCase(),t==="true"||t==="false")return t==="true";if(`${+t}`===t)return+t;throw new Error(`Could not parse value flag value ${t} for flag ${r}.`)}function M(){return uS}var uS=null;function f1(r){uS=r}var cS;function pS(){if(cS==null){let r;if(typeof window!="undefined")r=window;else if(typeof global!="undefined")r=global;else if(typeof process!="undefined")r=process;else if(typeof self!="undefined")r=self;else throw new Error("Could not find a global object");cS=r}return cS}function l4(){let r=pS();return r._tfGlobals==null&&(r._tfGlobals=new Map),r._tfGlobals}function jd(r,t){let e=l4();if(e.has(r))return e.get(r);{let n=t();return e.set(r,n),e.get(r)}}var ui="Abs",ua="Acos",ca="Acosh",Qn="Add",Wo="AddN",pa="All",ma="Any",Uo="ArgMax",Al="ArgMin",fa="Asin",da="Asinh",ha="Atan",ga="Atanh",xa="Atan2",Ho="AvgPool",lp="AvgPoolGrad",$l="AvgPool3D",up="AvgPool3DGrad",qo="BatchMatMul",ci="BatchToSpaceND",cp="Bincount",d1="BroadcastTo",pp="BroadcastArgs",co="Cast",Ko="Ceil",po="ClipByValue",mp="Complex",Dl="ComplexAbs",pi="Concat",jo="Conv2D",fp="Conv2DBackpropFilter",Xo="Conv2DBackpropInput",Rl="Conv3D",dp="Conv3DBackpropFilterV2",hp="Conv3DBackpropInputV2",Yo="Cos",Zo="Cosh",ya="Cumprod",Jo="Cumsum",ba="CropAndResize",gp="DenseBincount",wa="DepthToSpace",Qo="DepthwiseConv2dNative",xp="DepthwiseConv2dNativeBackpropFilter",yp="DepthwiseConv2dNativeBackpropInput",bp="Diag",Fl="Dilation2D",Xd="Dilation2DBackpropInput",Yd="Dilation2DBackpropFilter",ts="RealDiv",wp="Einsum",es="Elu",Cp="EluGrad",Ca="Erf",Ia="Equal",rs="Exp",mi="ExpandDims",va="Expm1",Ip="FFT",Ol="Fill",Sa="FlipLeftRight",ns="Floor",os="FloorDiv",ss="FusedBatchNorm",fi="GatherV2",Na="GatherNd",Ta="Greater",is="GreaterEqual",mo="Identity",vp="IFFT",Sp="Imag",ka="IsFinite",Ea="IsInf",as="IsNan",ls="LeakyRelu",_a="Less",Aa="LessEqual",Np="LinSpace",us="Log",$a="Log1p",Da="LogicalAnd",Ra="LogicalNot",Fa="LogicalOr",h1="LogicalXor",g1="LogSoftmax",Nlt="LowerBound",Pl="LRN",Tp="LRNGrad",cs="Max",ps="Maximum",ms="MaxPool",kp="MaxPoolGrad",Ll="MaxPool3D",Ep="MaxPool3DGrad",_p="MaxPoolWithArgmax",fs="Mean",ds="Min",hs="Minimum",gs="MirrorPad",Oa="Mod",Ap="Multinomial",xs="Multiply",di="Neg",Pa="NotEqual",La="NonMaxSuppressionV3",Ma="NonMaxSuppressionV4",za="NonMaxSuppressionV5",hi="OnesLike",ys="OneHot",gi="Pack",bs="PadV2",Tlt="Pool",ws="Pow",Cs="Prelu",Is="Prod",$p="RaggedGather",Dp="RaggedRange",Rp="RaggedTensorToTensor",Ml="Range",Fp="Real",vs="Reciprocal",Ss="Relu",xi="Reshape",Ns="ResizeNearestNeighbor",Op="ResizeNearestNeighborGrad",Ts="ResizeBilinear",Pp="ResizeBilinearGrad",ks="Relu6",Es="Reverse",_s="Round",As="Rsqrt",Ba="ScatterNd",Lp="SearchSorted",yi="Select",Va="Selu",bi="Slice",$s="Sin",Ga="Sinh",Wa="Sign",Ds="Sigmoid",Ua="Softplus",Rs="Sqrt",Fs="Sum",wi="SpaceToBatchND",Ci="SplitV",Os="Softmax",zl="SparseFillEmptyRows",Ha="SparseReshape",Bl="SparseSegmentMean",Vl="SparseSegmentSum",Mp="SparseToDense",Ps="SquaredDifference",Gl="Square",qa="StridedSlice",Wl="StringNGrams",Ul="StringSplit",Hl="StringToHashBucketFast",Ls="Sub",Ms="Tan",zs="Tanh",to="Tile",Ka="TopK",ja="Transform",eo="Transpose",zp="Unique",Ii="Unpack",ql="UnsortedSegmentSum",klt="UpperBound",vi="ZerosLike",fo="Step",Zd="FromPixels",Xa="RotateWithOffset",Si="_FusedMatMul",Ni="FusedConv2D",Ti="FusedDepthwiseConv2D";function ki(...r){M().getBool("IS_TEST")||M().getBool("PROD")||console.warn(...r)}function u4(...r){M().getBool("IS_TEST")||M().getBool("PROD")||console.log(...r)}var Bp=jd("kernelRegistry",()=>new Map),Jd=jd("gradRegistry",()=>new Map);function Qd(r,t){let e=fS(r,t);return Bp.get(e)}function mS(r){return Jd.get(r)}function Bg(r){let t=Bp.entries(),e=[];for(;;){let{done:n,value:o}=t.next();if(n)break;let[s,i]=o,[a]=s.split("_");a===r&&e.push(i)}return e}function zu(r){let{kernelName:t,backendName:e}=r,n=fS(t,e);Bp.has(n)&&ki(`The kernel '${t}' for backend '${e}' is already registered`),Bp.set(n,r)}function y1(r){let{kernelName:t}=r;Jd.has(t)&&M().getBool("DEBUG")&&ki(`Overriding the gradient for '${t}'`),Jd.set(t,r)}function Dlt(r,t){let e=fS(r,t);if(!Bp.has(e))throw new Error(`The kernel '${r}' for backend '${t}' is not registered`);Bp.delete(e)}function Rlt(r){if(!Jd.has(r))throw new Error(`The gradient '${r}' for backend is not registered`);Jd.delete(r)}function Flt(r,t){Bg(r).forEach(n=>{let o=Object.assign({},n,{backendName:t});zu(o)})}function fS(r,t){return`${t}_${r}`}var y={};Wt(y,{arraysEqual:()=>On,assert:()=>_,assertNonNegativeIntegerDimensions:()=>Pe,assertNonNull:()=>Jn,assertShapesMatch:()=>De,bytesFromStringArray:()=>lS,bytesPerElement:()=>zg,checkConversionForErrors:()=>iS,clamp:()=>op,computeStrides:()=>li,createScalarValue:()=>g4,createShuffledIndices:()=>ZU,decodeString:()=>Up,distSquared:()=>KU,encodeString:()=>jl,fetch:()=>y4,fingerPrint64:()=>h4,flatten:()=>Vo,getArrayFromDType:()=>sS,getTypedArrayFromDType:()=>oS,hasEncodingLoss:()=>t4,hexToLong:()=>th,indexToLoc:()=>n4,inferDtype:()=>sp,inferFromImplicitShape:()=>QU,isBoolean:()=>u1,isFunction:()=>ai,isInt:()=>la,isNumber:()=>c1,isPromise:()=>qd,isScalarShape:()=>jU,isString:()=>Go,isTypedArray:()=>br,isValidDtype:()=>aS,locToIndex:()=>r4,makeOnesTypedArray:()=>Hd,makeZerosNestedTypedArray:()=>e4,makeZerosTypedArray:()=>ap,nearestDivisor:()=>ip,nearestLargerEven:()=>UU,now:()=>Uu,parseAxisParam:()=>cr,randUniform:()=>qU,repeatedTry:()=>JU,rightPad:()=>Mu,shuffle:()=>l1,shuffleCombo:()=>WU,sizeFromShape:()=>Jt,sizeToSquarishShape:()=>YU,squeezeShape:()=>nS,sum:()=>HU,swap:()=>Mg,tanh:()=>XU,toNestedArray:()=>Lu,toTypedArray:()=>Wp});var xS=_l(_1());var Wu=xS.default||xS;function th(r){return Wu.fromString(r,!0,16)}var $1=th("c3a5c85c97cb3127"),Gu=th("b492b66fbe98f273"),on=th("9ae16a3b2f90404f");function gS(r){return r.xor(r.shru(47))}function D1(r,t,e){let n=r.slice(t,t+e);return Wu.fromBytes(Array.from(n),!0,!0)}function Le(r,t){return D1(r,t,8)}function A1(r,t){return D1(r,t,4)}function _r(r,t){return t===0?r:r.shru(t).or(r.shl(64-t))}function Kl(r,t,e=th("9ddfea08eb382d69")){let n=r.xor(t).mul(e);n=n.xor(n.shru(47));let o=t.xor(n).mul(e);return o=o.xor(o.shru(47)),o=o.mul(e),o}function p4(r,t,e,n,o,s){o=o.add(r),s=_r(s.add(o).add(n),21);let i=o;return o=o.add(t),o=o.add(e),s=s.add(_r(o,44)),[o.add(n),s.add(i)]}function Gg(r,t,e,n){return p4(Le(r,t),Le(r,t+8),Le(r,t+16),Le(r,t+24),e,n)}function m4(r,t=r.length){if(t>=8){let e=on.add(t*2),n=Le(r,0).add(on),o=Le(r,t-8),s=_r(o,37).mul(e).add(n),i=_r(n,25).add(o).mul(e);return Kl(s,i,e)}if(t>=4){let e=on.add(t*2),n=A1(r,0);return Kl(n.shl(3).add(t),A1(r,t-4),e)}if(t>0){let e=r[0],n=r[t>>1],o=r[t-1],s=e+(n<<8),i=t+(o<<2);return gS(on.mul(s).xor($1.mul(i))).mul(on)}return on}function f4(r,t=r.length){let e=on.add(t*2),n=Le(r,0).mul(Gu),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(on);return Kl(_r(n.add(o),43).add(_r(s,30)).add(i),n.add(_r(o.add(on),18)).add(s),e)}function d4(r,t=r.length){let e=on.add(t*2),n=Le(r,0).mul(on),o=Le(r,8),s=Le(r,t-8).mul(e),i=Le(r,t-16).mul(on),a=_r(n.add(o),43).add(_r(s,30)).add(i),u=Kl(a,n.add(_r(o.add(on),18)).add(s),e),l=Le(r,16).mul(e),c=Le(r,24),p=a.add(Le(r,t-32)).mul(e),m=u.add(Le(r,t-24)).mul(e);return Kl(_r(l.add(c),43).add(_r(p,30)).add(m),l.add(_r(c.add(n),18)).add(p),e)}function h4(r,t=r.length){let e=Wu.fromNumber(81,!0);if(t<=32)return t<=16?m4(r,t):f4(r,t);if(t<=64)return d4(r,t);let n=e,o=e.mul(Gu).add(113),s=gS(o.mul(on).add(113)).mul(on),i=[Wu.UZERO,Wu.UZERO],a=[Wu.UZERO,Wu.UZERO];n=n.mul(on).add(Le(r,0));let u=0,l=(t-1>>6)*64,c=l+(t-1&63)-63;do n=_r(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(Gu),o=_r(o.add(i[1]).add(Le(r,u+48)),42).mul(Gu),n=n.xor(a[1]),o=o.add(i[0]).add(Le(r,u+40)),s=_r(s.add(a[0]),33).mul(Gu),i=Gg(r,u,i[1].mul(Gu),n.add(a[0])),a=Gg(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],u+=64;while(u!==l);let p=Gu.add(s.and(255).shl(1));return u=c,a[0]=a[0].add(t-1&63),i[0]=i[0].add(a[0]),a[0]=a[0].add(i[0]),n=_r(n.add(o).add(i[0]).add(Le(r,u+8)),37).mul(p),o=_r(o.add(i[1]).add(Le(r,u+48)),42).mul(p),n=n.xor(a[1].mul(9)),o=o.add(i[0].mul(9).add(Le(r,u+40))),s=_r(s.add(a[0]),33).mul(p),i=Gg(r,u,i[1].mul(p),n.add(a[0])),a=Gg(r,u+32,s.add(a[1]),o.add(Le(r,u+16))),[s,n]=[n,s],Kl(Kl(i[0],a[0],p).add(gS(o).mul($1)).add(s),Kl(i[1],a[1],p).add(n),p)}function g4(r,t){return t==="string"?jl(r):Wp([r],t)}function x4(r,t){return r instanceof Float32Array&&t==="float32"||r instanceof Int32Array&&t==="int32"||r instanceof Uint8Array&&t==="bool"}function Wp(r,t){if(t==="string")throw new Error("Cannot convert a string[] to a TypedArray");if(Array.isArray(r)&&(r=Vo(r)),M().getBool("DEBUG")&&iS(r,t),x4(r,t))return r;if(t==null||t==="float32"||t==="complex64")return new Float32Array(r);if(t==="int32")return new Int32Array(r);if(t==="bool"){let e=new Uint8Array(r.length);for(let n=0;n{o=n()},i,a=Uu();if(this.backendTimer.timerAvailable())i=this.backendTimer.time(s);else{s();for(let l of o)l.dataSync();i=Promise.resolve({kernelMs:Uu()-a})}if(M().getBool("CHECK_COMPUTATION_FOR_ERRORS"))for(let l=0;l{b4(p,c.dtype,t)})}return{kernelName:t,outputs:o,inputs:e,timeMs:i.then(l=>l.kernelMs),extraInfo:i.then(l=>l.getExtraProfileInfo!=null?l.getExtraProfileInfo():"")}}logKernelProfile(t){let{kernelName:e,outputs:n,timeMs:o,inputs:s,extraInfo:i}=t;n.forEach(a=>{Promise.all([a.data(),o,i]).then(u=>{this.logger.logKernelProfile(e,a,u[0],u[1],s,u[2])})})}};function b4(r,t,e){if(t!=="float32")return!1;for(let n=0;n0?h:""} `}}console.log(`%c${u} %c${a} %c${l}D ${p} %c${c} %c${m} %c${i}`,"font-weight:bold","color:red","color:blue","color: orange","color: green","color: steelblue")}};function R1(r,t,e){let n={},o={};for(let u=0;un[h.id]=!0),f=!0,o[l.id]=!0;break}if(f)break}}let s={};s[e.id]=!0;let i={};for(let u=r.length-1;u>=0;u--){let l=r[u],c=l.inputs;for(let p=0;p=0;o--){let s=t[o],i=[];if(s.outputs.forEach(u=>{let l=r[u.id];l!=null?i.push(l):i.push(null)}),s.gradient==null)throw new Error(`Cannot compute gradient: gradient function not found for ${s.kernelName}.`);let a=s.gradient(i);for(let u in s.inputs){if(!(u in a))throw new Error(`Cannot backprop through input ${u}. Available gradients found: ${Object.keys(a)}.`);let l=e(()=>a[u]());if(l.dtype!=="float32")throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input ${u} must have 'float32' dtype, but has '${l.dtype}'`);let c=s.inputs[u];if(!On(l.shape,c.shape))throw new Error(`Error in gradient for op ${s.kernelName}. The gradient of input '${u}' has shape '${l.shape}', which does not match the shape of the input '${c.shape}'`);if(r[c.id]==null)r[c.id]=l;else{let p=r[c.id];r[c.id]=n(p,l),p.dispose()}}}}var O1=20,eh=3,bS=7;function P1(r,t,e,n){let o=li(t),s=w4(r,t,e,o),i=t.length,a=Ug(r,t,e,o,s),u=["Tensor"];return n&&(u.push(` dtype: ${e}`),u.push(` rank: ${i}`),u.push(` shape: [${t}]`),u.push(" values:")),u.push(a.map(l=>" "+l).join(` `)),u.join(` -`)}function h4(r,t,e,n){let o=Jt(t),s=n[n.length-1],i=new Array(s).fill(0),a=t.length,u=e==="complex64"?rh(r):r;if(a>1)for(let l=0;lD1){let g=th*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-th)*i,a*i));return e==="complex64"&&(x=rh(x),b=rh(b)),["["+x.map((w,C)=>eh(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>eh(w,o[a-th+C],e)).join(", ")+"]"]}return["["+(e==="complex64"?rh(r):Array.from(r)).map((g,x)=>eh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>D1){for(let h=0;h1)for(let l=0;lO1){let g=eh*i,x=Array.from(r.slice(0,g)),b=Array.from(r.slice((a-eh)*i,a*i));return e==="complex64"&&(x=nh(x),b=nh(b)),["["+x.map((w,C)=>rh(w,o[C],e)).join(", ")+", ..., "+b.map((w,C)=>rh(w,o[a-eh+C],e)).join(", ")+"]"]}return["["+(e==="complex64"?nh(r):Array.from(r)).map((g,x)=>rh(g,o[x],e)).join(", ")+"]"]}let l=t.slice(1),c=n.slice(1),p=n[0]*i,m=[];if(a>O1){for(let h=0;h`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||rv(e,this.size),this.strides=si(t)}set(t,...e){e.length===0&&(e=[0]),E(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oWp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),Ms().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Ms().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Wp(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await Ms().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Ms().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return Up.print(this,t)}clone(){return this.throwIfDisposed(),Up.clone(this)}toString(t=!1){let e=this.dataSync();return R1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Up.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Ms().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return Kd("Tensor",()=>Ft)}O();var Ka=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!Dn(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Ms().disposeTensor(this),this.dataId=t.dataId,Ms().incRef(this,null)}dispose(){Ms().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ka,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var go={};Wt(go,{assertTypesMatch:()=>Iv,getTensorsInContainer:()=>nh,isTensorInList:()=>y4,makeTypesMatch:()=>Ut});var xv;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(xv||(xv={}));var yv;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(yv||(yv={}));var bv;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(bv||(bv={}));var wv;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(wv||(wv={}));var Cv;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(Cv||(Cv={}));var x4={float32:wv,int32:yv,bool:bv,complex64:Cv};function sr(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return x4[r][t]}function Wu(r){return sr(r,"int32")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=sr(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function Iv(r,t){E(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function y4(r,t){return t.some(e=>e.id===r.id)}function nh(r){let t=[];return M1(r,t,new Set),t}function M1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!b4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),M1(s,t,e))}}function b4(r){return Array.isArray(r)||typeof r=="object"}function Sv(r){return r.kernelName!=null}var Ug=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},ql=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Ug}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){zg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof zo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return ql.nextTensorId++}nextVariableId(){return ql.nextVariableId++}clone(t){let e=k.runKernel(co,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return k.runKernel(lo,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Jd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=Sv(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(Sv(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Jd(d,this.backendName);E(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=Sv(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=uv(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(E(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Vo(t[0])&&(s=t.map(u=>Hl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=sv(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ka(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*Mg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ka||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*Mg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=uv(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ip(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=nh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(E(e.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));E(s instanceof Ft,()=>"The result y returned by f() must be a tensor.");let i=A1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let a={};a[s.id]=n==null?w4(s.shape):n,$1(a,i,l=>this.tidy(l),C4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return E(oi(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{E(e.every(a=>a instanceof Ft),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),E(n.value instanceof Ft,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),E(oi(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];E(c.length===e.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),E(c.every(m=>m instanceof Ft),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Gu(),n=await this.backend.time(t);return n.wallMs=Gu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Ug;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};ql.nextTensorId=0;ql.nextVariableId=0;function w4(r){let t=Wd(Jt(r),"float32");return k.makeTensor(t,r,"float32")}function vv(){let r=lv();if(r._tfengine==null){let t=new qd(r);r._tfengine=new ql(t)}return c1(r._tfengine.ENV),O1(()=>r._tfengine),r._tfengine}var k=vv();function C4(r,t){let e={a:r,b:t};return k.runKernel(Zn,e)}var Kl={};Wt(Kl,{isBrowser:()=>Tv,isMobile:()=>v4,mockIsMobile:()=>S4});function I4(){return typeof navigator!="undefined"&&navigator!=null}var Nv;function S4(r){Nv=r}function v4(r){if(Nv!==void 0)return Nv;if(r||I4()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function Tv(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var On=z();On.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});On.registerFlag("IS_BROWSER",()=>Tv());On.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");On.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));On.registerFlag("PROD",()=>!1);On.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>On.getBool("DEBUG"));On.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);On.registerFlag("IS_TEST",()=>!1);On.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);On.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);On.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);On.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);On.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Br(r,t){let e=r;if(xr(r))return t==="string"?[]:[r.length];if(typeof r=="object"&&"texture"in r){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||xr(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&z().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&B1(r,n,[]),n}function B1(r,t,e){if(e=e||[],!Array.isArray(r)&&!xr(r)){E(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}E(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),E(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),z1(n,o,t,e),r==null||!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Br(r,o);!xr(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Gp(r,o):Bo(r,[],!0);return k.makeTensor(a,s,o)}function ja(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>I(s,`${t}[${i}]`,e,n))}var kv="__op";function T(r){let t=Object.keys(r);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+kv;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return Hd(i)&&console.error("Cannot return a Promise inside of tidy."),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function N4(r,t){let e=I(r,"real","complex"),n=I(t,"imag","complex");$e(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(pp,o)}var wn=T({complex_:N4});function on(r,t,e,n){if(n==null&&(n=op(r)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof r=="object"&&"texture"in r){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||"RGBA",k.backend.createTensorFromTexture(r,t||e,n)}if(!xr(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Ud(t);let o=Jt(t),s=Jt(e);E(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!xr(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Gp(r,n):Bo(r,[],!0),k.makeTensor(r,t,n)}function ur(r,t,e){let n=Br(r,e);return on(r,t,n,e)}var oh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var Hg=4;async function G1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+Hg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var Ev=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function V1(r){return Ev?Buffer.byteLength(r):new Blob([r]).size}function W1(r){if(Ev)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function _v(r){let t="/";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function Kg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function Av(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!e)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function qp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),Av(r,e,n)}function Ni(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:V1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:V1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function jg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function k4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function E4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function _4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function A4(){let r=k4(),t=E4(),e=_4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,"save")}static getLoadHandlers(t,e){return Ce.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},H1=r=>Ce.registerSaveRouter(r),q1=r=>Ce.registerLoadRouter(r),K1=r=>Ce.getSaveHandlers(r),j1=(r,t)=>Ce.getLoadHandlers(r,t);var $v="tensorflowjs",Dv=1,Uu="models_store",jl="model_info_store";function X1(){if(!z().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function Rv(r){let t=r.result;t.createObjectStore(Uu,{keyPath:"modelPath"}),t.createObjectStore(jl,{keyPath:"modelPath"})}var Ti=class{constructor(t){if(this.indexedDB=X1(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open($v,Dv);s.onupgradeneeded=()=>Rv(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(Uu,"readonly"),l=a.objectStore(Uu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ni(e),u=i.transaction(jl,"readwrite"),l=u.objectStore(jl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(Uu,"readwrite");let f=p.objectStore(Uu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(jl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};Ti.URL_SCHEME="indexeddb://";var Y1=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ti.URL_SCHEME)?$4(r.slice(Ti.URL_SCHEME.length)):null;Ce.registerSaveRouter(Y1);Ce.registerLoadRouter(Y1);function $4(r){return new Ti(r)}function D4(r){return r.startsWith(Ti.URL_SCHEME)?r.slice(Ti.URL_SCHEME.length):r}var Xg=class{constructor(){this.indexedDB=X1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open($v,Dv);n.onupgradeneeded=()=>Rv(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(jl,"readonly"),a=s.objectStore(jl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=D4(t),new Promise((e,n)=>{let o=this.indexedDB.open($v,Dv);o.onupgradeneeded=()=>Rv(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(jl,"readwrite"),a=i.objectStore(jl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(Uu,"readwrite");let f=l.objectStore(Uu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Xa="/",Kp="tensorflowjs_models",Z1="info",R4="model_topology",F4="weight_specs",O4="weight_data",P4="model_metadata";function J1(r){return{info:[Kp,r,Z1].join(Xa),topology:[Kp,r,R4].join(Xa),weightSpecs:[Kp,r,F4].join(Xa),weightData:[Kp,r,O4].join(Xa),modelMetadata:[Kp,r,P4].join(Xa)}}function Q1(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function L4(r){let t=r.split(Xa);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Xa)}function M4(r){return r.startsWith(ki.URL_SCHEME)?r.slice(ki.URL_SCHEME.length):r}var ki=class{constructor(t){if(!z().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=J1(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ni(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,W1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw Q1(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=U1(i),e}};ki.URL_SCHEME="localstorage://";var tE=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(ki.URL_SCHEME)?z4(r.slice(ki.URL_SCHEME.length)):null;Ce.registerSaveRouter(tE);Ce.registerLoadRouter(tE);function z4(r){return new ki(r)}var Yg=class{constructor(){E(z().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),E(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let t={},e=Kp+Xa,n=Xa+Z1;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(jp)&&(t=t.slice(0,t.indexOf(jp))),E(t.length>0,()=>"scheme must not be an empty string.");let n=Er.getInstance();E(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Er.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Er.getInstance().managers)}};function Zg(r){if(r.indexOf(jp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Er.getSchemes().join(",")}`);return{scheme:r.split(jp)[0],path:r.split(jp)[1]}}async function eE(r,t,e=!1){E(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);E(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),E(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);E(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),E(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Zg(r).scheme,u=Zg(r).path,l=a===Zg(r).scheme,c=await o.load();e&&l&&await Er.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Er.getManager(a).removeModel(u),p.modelArtifactsInfo}async function rE(){let r=Er.getSchemes(),t={};for(let e of r){let n=await Er.getManager(e).listModels();for(let o in n){let s=e+jp+o;t[s]=n[o]}}return t}async function nE(r){let t=Zg(r);return Er.getManager(t.scheme).removeModel(t.path)}async function oE(r,t){return eE(r,t,!1)}async function sE(r,t){return eE(r,t,!0)}var Fv=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!z().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(z().get("IS_BROWSER")){z().setPlatform("browser",new Fv);try{Er.registerManager(ki.URL_SCHEME,new Yg)}catch(r){}try{Er.registerManager(Ti.URL_SCHEME,new Xg)}catch(r){}}var B4={importFetch:()=>iE()},Ov;var Pv=class{constructor(){this.util=aE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return z().global.fetch!=null?z().global.fetch(t,e):(Ov==null&&(Ov=B4.importFetch()),Ov(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}};z().get("IS_NODE")&&!z().get("IS_BROWSER")&&z().setPlatform("node",new Pv);function wt(r,t="float32",e){return t=t||"float32",Ud(r),new pe(r,t,e)}function V4(r,t){let e=I(r,"x","cast");if(!ov(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return k.runKernel(lo,n,o)}var J=T({cast_:V4});function G4(r){let e={x:I(r,"x","clone","string_or_numeric")};return k.runKernel(co,e)}var sn=T({clone_:G4});function Jg(r,t=!1){console.log(r.toString(t))}vv();var W4={buffer:wt,cast:J,clone:sn,print:Jg};P1(W4);var _r={};Wt(_r,{browserFiles:()=>uE,browserHTTPRequest:()=>mE,concatenateArrayBuffers:()=>Hp,copyModel:()=>oE,decodeWeights:()=>qg,encodeWeights:()=>G1,fromMemory:()=>fE,fromMemorySync:()=>Gv,getLoadHandlers:()=>j1,getModelArtifactsForJSON:()=>qp,getModelArtifactsForJSONSync:()=>Av,getModelArtifactsInfoForJSON:()=>Ni,getSaveHandlers:()=>K1,getWeightSpecs:()=>jg,http:()=>tx,isHTTPScheme:()=>Qg,listModels:()=>rE,loadWeights:()=>cE,moveModel:()=>sE,registerLoadRouter:()=>q1,registerSaveRouter:()=>H1,removeModel:()=>nE,weightsLoaderFactory:()=>Bv,withSaveHandler:()=>dE,withSaveHandlerSync:()=>hE});var U4="model",H4=".json",q4=".weights.bin";function lE(r){return new Promise(t=>setTimeout(t)).then(r)}var Ya=class{constructor(t){if(!z().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Ya.URL_SCHEME)&&(t=t.slice(Ya.URL_SCHEME.length)),(t==null||t.length===0)&&(t=U4),this.modelJsonFileName=t+H4,this.weightDataFileName=t+q4}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],o=Kg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await lE(()=>i.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await lE(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ni(t)}}}};Ya.URL_SCHEME="downloads://";var Lv=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=qp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,Hp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>_v(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=_v(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},K4=r=>z().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ya.URL_SCHEME)?j4(r.slice(Ya.URL_SCHEME.length)):null;Ce.registerSaveRouter(K4);function j4(r="model"){return new Ya(r)}function uE(r){return new Lv(r)}function Mv(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){E(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){E(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),E(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),E(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function zv(r,t){t==null&&(t={});let e=t.fetchFunc==null?z().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await Mv(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await Mv(a,t.onProgress,u,l)}async function cE(r,t="",e,n){return Bv(i=>zv(i,{requestInit:n}))(r,t,e)}function Bv(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=oh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. -Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),_=qg(N,[C.manifestEntry]);for(let A in _)p[A]=_[A]}),m+=d}),p}}var X4="application/octet-stream",Y4="application/json",sh=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(E(typeof e.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=e.fetchFunc):this.fetch=z().platform.fetch,E(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&E(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=Kg(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:Y4}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:X4}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ni(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return qp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=Z4(e),s=this.weightPathPrefix||n,i=jg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await zv(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,Hp(l)]}};sh.URL_SCHEME_REGEX=/^https?:\/\//;function Z4(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function Qg(r){return r.match(sh.URL_SCHEME_REGEX)!=null}var pE=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>Qg(n)):e=Qg(r),e)return tx(r,t)}return null};Ce.registerSaveRouter(pE);Ce.registerLoadRouter(pE);function tx(r,t){return new sh(r,t)}function mE(r,t){return tx(r,t)}var ih=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},ex=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},Vv=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function fE(r,t,e,n){let o=arguments;return new Vv(Gv(...o))}function Gv(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ih(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ih({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ih({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function dE(r){return new ex(r)}function hE(r){return new ex(r)}var yE={};Wt(yE,{confusionMatrix:()=>xE});function J4(r,t,e=!1,n=!1){let o=I(r,"a","matMul"),s=I(t,"b","matMul");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(Ho,i,a)}var Lt=T({matMul_:J4});function Q4(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:I(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(gs,i,a)}var Ei=T({oneHot_:Q4});function dpt(){z().set("PROD",!0)}function hpt(){z().set("DEBUG",!0)}function gpt(){z().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function Wv(r){z().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}L1(Wv);function xpt(){k.disposeVariables()}function Pn(){return k}function ah(){return k.memory()}function ypt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function vt(r){nh(r).forEach(e=>e.dispose())}function De(r){return k.keep(r)}function bpt(r){return k.time(r)}function tH(r){return k.setBackend(r)}function wpt(){return k.ready()}function Cpt(){return k.backendName}function Ipt(r){k.removeBackend(r)}function Spt(r){return k.findBackend(r)}function vpt(r){return k.findBackendFactory(r)}function Xp(r,t,e=1){return k.registerBackend(r,t,e)}function gE(){return k.backend}function Npt(r,t){z().setPlatform(r,t)}function eH(r){let e={input:I(r,"input","imag")};return k.runKernel(Sp,e)}var Xl=T({imag_:eH});function rH(r){let e={x:I(r,"x","neg")};return k.runKernel(pi,e)}var Ht=T({neg_:rH});function nH(r){let e={input:I(r,"input","real")};return k.runKernel(Rp,e)}var Za=T({real_:nH});function oH(r,t,e){let n=I(r,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),E(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{E(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=Za(n),a=Xl(n);return i=k.runKernel(Qn,{x:i},s),a=k.runKernel(Qn,{x:a},s),e&&(a=Ht(a)),wn(i,a)}):k.runKernel(Qn,o,s)}var Ot=T({transpose_:oH});function sH(r,t,e){let n=I(r,"labels","confusionMatrix"),o=I(t,"predictions","confusionMatrix");E(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),E(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),E(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),E(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),E(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=Ei(J(n,"int32"),e),i=Ei(J(o,"int32"),e),a=Ot(s),u=Lt(a,i);return J(u,"int32")}var xE=T({confusionMatrix_:sH});var Vr={};Wt(Vr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>bE,getReductionAxes:()=>ge});function bE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;omH,fromPixelsAsync:()=>cH,toPixels:()=>pH});function rx(r,t,e){if(Yn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Br(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}var Hu;function wE(r,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(Jd(Yd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Yd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Hu==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Hu=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Hu=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Hu.canvas.width=l,Hu.canvas.height=c,Hu.drawImage(r,0,0,l,c),p=Hu.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var mH=T({fromPixels_:wE});var ox={};Wt(ox,{prepareAndValidate:()=>CE});function CE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var lh={};Wt(lh,{calculateShapes:()=>IE,validateInput:()=>sx,validateUpdateShape:()=>Uv});function Uv(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pdH,computeFlatOffset:()=>bH,computeOutShape:()=>gH,getNormalizedAxes:()=>xH,isSliceContinous:()=>yH,maskToAxes:()=>hH,parseSliceParams:()=>qv,sliceInfo:()=>wH,startForAxis:()=>AE,startIndicesWithElidedDims:()=>kE,stopForAxis:()=>$E,stopIndicesWithElidedDims:()=>EE,stridesForAxis:()=>_E,stridesWithElidedDims:()=>vE});var Hv=-2,fH=-1;function dH(r,t,e){let n=r.shape.length;E(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),E(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function hH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function gH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=kE(i,f,d,n,r),p=EE(a,f,d,o,r),m=vE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=NE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=NE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=np(0,i,u-1),i}function $E(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=np(0,i,u):i=np(-1,i,u-1),i}function yH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function bH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{E(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(E(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function wH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=SE(m.begin[w],0,m.strides[w],N,_,A),m.end[w]=SE(m.end[w],1,m.strides[w],N,_,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===Hv&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==Hv),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function CH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>uh,SerializationMap:()=>_i,registerClass:()=>Cn});var uh=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},_i=class{constructor(){this.classNameMap={}}static getMap(){return _i.instance==null&&(_i.instance=new _i),_i.instance}static register(t){_i.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function Cn(r){E(r.className!=null,()=>"Class being registered does not have the static className property defined."),E(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),E(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),_i.register(r)}var OE={};Wt(OE,{TEST_EPSILON_FLOAT16:()=>DE,createVideoElement:()=>EH,encodeStrings:()=>FE,expectArrayBuffersEqual:()=>kH,expectArraysClose:()=>SH,expectArraysEqual:()=>NH,expectNumbersClose:()=>RE,expectPromiseToFail:()=>vH,expectValuesInRange:()=>TH,play:()=>_H,testEpsilon:()=>ix});var IH=.001,DE=.1;function SH(r,t,e){return e==null&&(e=ix()),Kv(r,t,(n,o)=>jv(n,o,e))}function ix(){return k.backend.floatPrecision()===32?IH:DE}function Kv(r,t,e){let n=!0;if((xr(r)||xr(t))&&(n=!1),xr(r)&&xr(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Br(r),a=Br(t);if(!Dn(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=xr(r)?r:Bo(r),s=xr(t)?t:Bo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. +`;return m[m.length-1]=" "+m[m.length-1]+"]"+(s?"":d),m}function nh(r){let t=[];for(let e=0;e`Length of values '${o}' does not match the size inferred by the shape '${this.size}'.`)}if(e==="complex64")throw new Error("complex64 dtype TensorBuffers are not supported. Please create a TensorBuffer for the real and imaginary parts separately and call tf.complex(real, imag).");this.values=n||sS(e,this.size),this.strides=li(t)}set(t,...e){e.length===0&&(e=[0]),_(e.length===this.rank,()=>`The number of provided coordinates (${e.length}) must match the rank (${this.rank})`);let n=this.locToIndex(e);this.values[n]=t}get(...t){t.length===0&&(t=[0]);let e=0;for(let o of t){if(o<0||o>=this.shape[e]){let s=`Requested out of range element at ${t}. Buffer shape=${this.shape}`;throw new Error(s)}e++}let n=t[t.length-1];for(let o=0;oUp(n))}catch(n){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}}return t}dataToGPU(t){return this.throwIfDisposed(),Vs().readToGPU(this.dataId,t)}dataSync(){this.throwIfDisposed();let t=Vs().readSync(this.dataId);if(this.dtype==="string")try{return t.map(e=>Up(e))}catch(e){throw new Error("Failed to decode the string bytes into utf-8. To get the original bytes, call tensor.bytes().")}return t}async bytes(){this.throwIfDisposed();let t=await Vs().read(this.dataId);return this.dtype==="string"?t:new Uint8Array(t.buffer)}dispose(){this.isDisposed||(Vs().disposeTensor(this),this.isDisposedInternal=!0)}get isDisposed(){return this.isDisposedInternal}throwIfDisposed(){if(this.isDisposed)throw new Error("Tensor is disposed.")}print(t=!1){return Hp.print(this,t)}clone(){return this.throwIfDisposed(),Hp.clone(this)}toString(t=!1){let e=this.dataSync();return P1(e,this.shape,this.dtype,t)}cast(t){return this.throwIfDisposed(),Hp.cast(this,t)}variable(t=!0,e,n){return this.throwIfDisposed(),Vs().makeVariable(this,t,e,n)}};Object.defineProperty(Ft,Symbol.hasInstance,{value:r=>!!r&&r.data!=null&&r.dataSync!=null&&r.throwIfDisposed!=null});function O(){return jd("Tensor",()=>Ft)}O();var Ya=class extends Ft{constructor(t,e,n,o){super(t.shape,t.dtype,t.dataId,o),this.trainable=e,this.name=n}assign(t){if(t.dtype!==this.dtype)throw new Error(`dtype of the new value (${t.dtype}) and previous value (${this.dtype}) must match`);if(!On(t.shape,this.shape))throw new Error(`shape of the new value (${t.shape}) and previous value (${this.shape}) must match`);Vs().disposeTensor(this),this.dataId=t.dataId,Vs().incRef(this,null)}dispose(){Vs().disposeVariable(this),this.isDisposedInternal=!0}};Object.defineProperty(Ya,Symbol.hasInstance,{value:r=>r instanceof Ft&&r.assign!=null&&r.assign instanceof Function});var yo={};Wt(yo,{assertTypesMatch:()=>NS,getTensorsInContainer:()=>oh,isTensorInList:()=>v4,makeTypesMatch:()=>Ut});var wS;(function(r){r.R0="R0",r.R1="R1",r.R2="R2",r.R3="R3",r.R4="R4",r.R5="R5",r.R6="R6"})(wS||(wS={}));var CS;(function(r){r.float32="float32",r.int32="int32",r.bool="int32",r.complex64="complex64"})(CS||(CS={}));var IS;(function(r){r.float32="float32",r.int32="int32",r.bool="bool",r.complex64="complex64"})(IS||(IS={}));var vS;(function(r){r.float32="float32",r.int32="float32",r.bool="float32",r.complex64="complex64"})(vS||(vS={}));var SS;(function(r){r.float32="complex64",r.int32="complex64",r.bool="complex64",r.complex64="complex64"})(SS||(SS={}));var I4={float32:vS,int32:CS,bool:IS,complex64:SS};function ar(r,t){if(r==="string"||t==="string"){if(r==="string"&&t==="string")return"string";throw new Error(`Can not upcast ${r} with ${t}`)}return I4[r][t]}function Hu(r){return ar(r,"int32")}function Ut(r,t){if(r.dtype===t.dtype)return[r,t];let e=ar(r.dtype,t.dtype);return[r.cast(e),t.cast(e)]}function NS(r,t){_(r.dtype===t.dtype,()=>`The dtypes of the first(${r.dtype}) and second(${t.dtype}) input must match`)}function v4(r,t){return t.some(e=>e.id===r.id)}function oh(r){let t=[];return V1(r,t,new Set),t}function V1(r,t,e){if(r==null)return;if(r instanceof Ft){t.push(r);return}if(!S4(r))return;let n=r;for(let o in n){let s=n[o];e.has(s)||(e.add(s),V1(s,t,e))}}function S4(r){return Array.isArray(r)||typeof r=="object"}function TS(r){return r.kernelName!=null}var Hg=class{constructor(){this.registeredVariables={},this.nextTapeNodeId=0,this.numBytes=0,this.numTensors=0,this.numStringTensors=0,this.numDataBuffers=0,this.gradientDepth=0,this.kernelDepth=0,this.scopeStack=[],this.numDataMovesStack=[],this.nextScopeId=0,this.tensorInfo=new WeakMap,this.profiling=!1,this.activeProfile={newBytes:0,newTensors:0,peakBytes:0,kernels:[],result:null,get kernelNames(){return Array.from(new Set(this.kernels.map(t=>t.name)))}}}dispose(){for(let t in this.registeredVariables)this.registeredVariables[t].dispose()}},Xl=class{constructor(t){this.ENV=t,this.registry={},this.registryFactory={},this.pendingBackendInitId=0,this.state=new Hg}async ready(){if(this.pendingBackendInit!=null)return this.pendingBackendInit.then(()=>{});if(this.backendInstance!=null)return;let t=this.getSortedBackends();for(let e=0;e{e.setupFunc!=null&&e.setupFunc(this.backendInstance)})}disposeRegisteredKernels(t){Bg(t).forEach(n=>{n.disposeFunc!=null&&n.disposeFunc(this.registry[t])})}initializeBackend(t){let e=this.registryFactory[t];if(e==null)throw new Error(`Cannot initialize backend ${t}, no registration found.`);try{let n=e.factory();if(n&&!(n instanceof Bo)&&typeof n.then=="function"){let o=++this.pendingBackendInitId,s=n.then(i=>o(othis.registryFactory[e].priority-this.registryFactory[t].priority)}initializeBackendsAndReturnBest(){let t=this.getSortedBackends();for(let e=0;ethis.startScope(n),()=>this.endScope(o),()=>(o=e(),o instanceof Promise&&console.error("Cannot return a Promise inside of tidy."),o))}scopedRun(t,e,n){t();try{let o=n();return e(),o}catch(o){throw e(),o}}nextTensorId(){return Xl.nextTensorId++}nextVariableId(){return Xl.nextVariableId++}clone(t){let e=k.runKernel(mo,{x:t}),n={x:t},o=i=>({x:()=>{let a="float32",u={x:i},l={dtype:a};return k.runKernel(co,u,l)}}),s=[];return this.addTapeNode(this.state.activeScope.name,n,[e],o,s,{}),e}runKernel(t,e,n){if(this.backendName==null&&this.backend,!(Qd(t,this.backendName)!=null))throw new Error(`Kernel '${t}' not registered for backend '${this.backendName}'`);return this.runKernelFunc({kernelName:t,inputs:e,attrs:n})}shouldCheckForMemLeaks(){return this.ENV.getBool("IS_TEST")}checkKernelForMemLeak(t,e,n){let o=this.backend.numDataIds(),s=0;n.forEach(u=>{s+=u.dtype==="complex64"?3:1});let i=this.state.numDataMovesStack[this.state.numDataMovesStack.length-1],a=o-e-s-i;if(a>0)throw new Error(`Backend '${this.backendName}' has an internal memory leak (${a} data ids) after running '${t}'`)}runKernelFunc(t){let e,n=[],o=this.isTapeOn(),s=this.state.numBytes,i=this.state.numTensors;this.shouldCheckForMemLeaks()&&this.state.numDataMovesStack.push(0);let a;this.backendName==null&&this.backend;let u,l=TS(t)?t.kernelName:this.state.activeScope!=null?this.state.activeScope.name:"";if(TS(t)){let{kernelName:d,inputs:h,attrs:g}=t;this.backendName==null&&this.backend;let x=Qd(d,this.backendName);_(x!=null,()=>`Cannot find registered kernel '${d}' for backend '${this.backendName}'`),a=()=>{let b=this.backend.numDataIds();u=x.kernelFunc({inputs:h,attrs:g,backend:this.backend});let w=Array.isArray(u)?u:[u];this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(d,b,w);let C=w.map(N=>N.rank!=null?N:this.makeTensorFromTensorInfo(N));if(o){let N=this.getTensorsForGradient(d,h,C);n=this.saveTensorsForBackwardMode(N)}return C}}else{let{forwardFunc:d}=t,h=g=>{!o||(n=g.map(x=>this.keep(this.clone(x))))};a=()=>{let g=this.backend.numDataIds();u=this.tidy(()=>d(this.backend,h));let x=Array.isArray(u)?u:[u];return this.shouldCheckForMemLeaks()&&this.checkKernelForMemLeak(l,g,x),x}}let{inputs:c,attrs:p}=t,m=TS(t)?null:t.backwardsFunc,f;return this.scopedRun(()=>this.state.kernelDepth++,()=>this.state.kernelDepth--,()=>{!this.ENV.getBool("DEBUG")&&!this.state.profiling?e=a():(f=this.profiler.profileKernel(l,c,()=>a()),this.ENV.getBool("DEBUG")&&this.profiler.logKernelProfile(f),e=f.outputs)}),o&&this.addTapeNode(l,c,e,m,n,p),this.state.profiling&&this.state.activeProfile.kernels.push({name:l,bytesAdded:this.state.numBytes-s,totalBytesSnapshot:this.state.numBytes,tensorsAdded:this.state.numTensors-i,totalTensorsSnapshot:this.state.numTensors,inputShapes:Object.keys(c).map(d=>c[d]!=null?c[d].shape:null),outputShapes:e.map(d=>d.shape),kernelTimeMs:f.timeMs,extraInfo:f.extraInfo}),Array.isArray(u)?e:e[0]}saveTensorsForBackwardMode(t){return t.map(n=>this.keep(this.clone(n)))}getTensorsForGradient(t,e,n){let o=mS(t);if(o!=null){let s=o.inputsToSave||[],i=o.outputsToSave||[],a;o.saveAllInputs?(_(Array.isArray(e),()=>"saveAllInputs is true, expected inputs to be an array."),a=Object.keys(e).map(l=>e[l])):a=s.map(l=>e[l]);let u=n.filter((l,c)=>i[c]);return a.concat(u)}return[]}makeTensor(t,e,n,o){if(t==null)throw new Error("Values passed to engine.makeTensor() are null");n=n||"float32",o=o||this.backend;let s=t;n==="string"&&Go(t[0])&&(s=t.map(u=>jl(u)));let i=o.write(s,e,n),a=new Ft(e,n,i,this.nextTensorId());if(this.trackTensor(a,o),n==="string"){let u=this.state.tensorInfo.get(i),l=lS(s);this.state.numBytes+=l-u.bytes,u.bytes=l}return a}makeTensorFromDataId(t,e,n,o){n=n||"float32";let s={dataId:t,shape:e,dtype:n};return this.makeTensorFromTensorInfo(s,o)}makeTensorFromTensorInfo(t,e){let{dataId:n,shape:o,dtype:s}=t,i=new Ft(o,s,n,this.nextTensorId());return this.trackTensor(i,e),i}makeVariable(t,e=!0,n,o){n=n||this.nextVariableId().toString(),o!=null&&o!==t.dtype&&(t=t.cast(o));let s=new Ya(t,e,n,this.nextTensorId());if(this.state.registeredVariables[s.name]!=null)throw new Error(`Variable with name ${s.name} was already registered`);return this.state.registeredVariables[s.name]=s,this.incRef(s,this.backend),s}trackTensor(t,e){this.state.numTensors++,t.dtype==="string"&&this.state.numStringTensors++;let n=0;t.dtype!=="complex64"&&t.dtype!=="string"&&(n=t.size*zg(t.dtype)),this.state.numBytes+=n,this.state.tensorInfo.has(t.dataId)||(this.state.numDataBuffers++,this.state.tensorInfo.set(t.dataId,{backend:e||this.backend,dtype:t.dtype,shape:t.shape,bytes:n})),t instanceof Ya||this.track(t)}incRef(t,e){this.trackTensor(t,e),this.backend.incRef(t.dataId)}removeDataId(t,e){this.state.tensorInfo.has(t)&&this.state.tensorInfo.get(t).backend===e&&(this.state.tensorInfo.delete(t),this.state.numDataBuffers--)}disposeTensor(t){if(!this.state.tensorInfo.has(t.dataId))return;let e=this.state.tensorInfo.get(t.dataId);if(this.state.numTensors--,t.dtype==="string"&&(this.state.numStringTensors--,this.state.numBytes-=e.bytes),t.dtype!=="complex64"&&t.dtype!=="string"){let n=t.size*zg(t.dtype);this.state.numBytes-=n}e.backend.disposeData(t.dataId)&&this.removeDataId(t.dataId,e.backend)}disposeVariables(){for(let t in this.state.registeredVariables){let e=this.state.registeredVariables[t];this.disposeVariable(e)}}disposeVariable(t){this.disposeTensor(t),this.state.registeredVariables[t.name]!=null&&delete this.state.registeredVariables[t.name]}memory(){let t=this.backend.memory();return t.numTensors=this.state.numTensors,t.numDataBuffers=this.state.numDataBuffers,t.numBytes=this.state.numBytes,this.state.numStringTensors>0&&(t.unreliable=!0,t.reasons==null&&(t.reasons=[]),t.reasons.push("Memory usage by string tensors is approximate (2 bytes per character)")),t}async profile(t){this.state.profiling=!0;let e=this.state.numBytes,n=this.state.numTensors;this.state.activeProfile.kernels=[],this.state.activeProfile.result=await t(),this.state.profiling=!1,this.state.activeProfile.peakBytes=Math.max(...this.state.activeProfile.kernels.map(o=>o.totalBytesSnapshot)),this.state.activeProfile.newBytes=this.state.numBytes-e,this.state.activeProfile.newTensors=this.state.numTensors-n;for(let o of this.state.activeProfile.kernels)o.kernelTimeMs=await o.kernelTimeMs,o.extraInfo=await o.extraInfo;return this.state.activeProfile}isTapeOn(){return this.state.gradientDepth>0&&this.state.kernelDepth===0}addTapeNode(t,e,n,o,s,i){let a={id:this.state.nextTapeNodeId++,kernelName:t,inputs:e,outputs:n,saved:s},u=mS(t);u!=null&&(o=u.gradFunc),o!=null&&(a.gradient=l=>(l=l.map((c,p)=>{if(c==null){let m=n[p],f=ap(m.size,m.dtype);return this.makeTensor(f,m.shape,m.dtype)}return c}),o(l.length>1?l:l[0],s,i))),this.state.activeTape.push(a)}keep(t){return t.kept=!0,t}startTape(){this.state.gradientDepth===0&&(this.state.activeTape=[]),this.state.gradientDepth++}endTape(){this.state.gradientDepth--}startScope(t){let e={track:[],name:"unnamed scope",id:this.state.nextScopeId++};t&&(e.name=t),this.state.scopeStack.push(e),this.state.activeScope=e}endScope(t){let e=oh(t),n=new Set(e.map(s=>s.id));for(let s=0;s{!s.kept&&s.scopeId===o.id&&this.track(s)})}gradients(t,e,n,o=!1){if(_(e.length>0,()=>"gradients() received an empty list of xs."),n!=null&&n.dtype!=="float32")throw new Error(`dy must have 'float32' dtype, but has '${n.dtype}'`);let s=this.scopedRun(()=>this.startTape(),()=>this.endTape(),()=>this.tidy("forward",t));_(s instanceof Ft,()=>"The result y returned by f() must be a tensor.");let i=R1(this.state.activeTape,e,s);if(!o&&i.length===0&&e.length>0)throw new Error("Cannot compute gradient of y=f(x) with respect to x. Make sure that the f you passed encloses all operations that lead from x to y.");return this.tidy("backward",()=>{let a={};a[s.id]=n==null?N4(s.shape):n,F1(a,i,l=>this.tidy(l),T4);let u=e.map(l=>a[l.id]);return this.state.gradientDepth===0&&(this.state.activeTape.forEach(l=>{for(let c of l.saved)c.dispose()}),this.state.activeTape=null),{value:s,grads:u}})}customGrad(t){return _(ai(t),()=>"The f passed in customGrad(f) must be a function."),(...e)=>{_(e.every(a=>a instanceof Ft),()=>"The args passed in customGrad(f)(x1, x2,...) must all be tensors");let n,o={};e.forEach((a,u)=>{o[u]=a});let s=(a,u)=>(n=t(...e,u),_(n.value instanceof Ft,()=>"The function f passed in customGrad(f) must return an object where `obj.value` is a tensor"),_(ai(n.gradFunc),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function."),n.value),i=(a,u)=>{let l=n.gradFunc(a,u),c=Array.isArray(l)?l:[l];_(c.length===e.length,()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns the same number of tensors as inputs passed to f(...)."),_(c.every(m=>m instanceof Ft),()=>"The function f passed in customGrad(f) must return an object where `obj.gradFunc` is a function that returns a list of only tensors.");let p={};return c.forEach((m,f)=>{p[f]=()=>m}),p};return this.runKernelFunc({forwardFunc:s,backwardsFunc:i,inputs:o})}}readSync(t){return this.state.tensorInfo.get(t).backend.readSync(t)}read(t){return this.state.tensorInfo.get(t).backend.read(t)}readToGPU(t,e){return this.state.tensorInfo.get(t).backend.readToGPU(t,e)}async time(t){let e=Uu(),n=await this.backend.time(t);return n.wallMs=Uu()-e,n}track(t){return this.state.activeScope!=null&&(t.scopeId=this.state.activeScope.id,this.state.activeScope.track.push(t)),t}get registeredVariables(){return this.state.registeredVariables}reset(){this.pendingBackendInitId++,this.state.dispose(),this.ENV.reset(),this.state=new Hg;for(let t in this.registry)this.disposeRegisteredKernels(t),this.registry[t].dispose(),delete this.registry[t];this.backendName=null,this.backendInstance=null,this.pendingBackendInit=null}};Xl.nextTensorId=0;Xl.nextVariableId=0;function N4(r){let t=Hd(Jt(r),"float32");return k.makeTensor(t,r,"float32")}function kS(){let r=pS();if(r._tfengine==null){let t=new Kd(r);r._tfengine=new Xl(t)}return f1(r._tfengine.ENV),M1(()=>r._tfengine),r._tfengine}var k=kS();function T4(r,t){let e={a:r,b:t};return k.runKernel(Qn,e)}var Yl={};Wt(Yl,{isBrowser:()=>_S,isMobile:()=>_4,mockIsMobile:()=>E4});function k4(){return typeof navigator!="undefined"&&navigator!=null}var ES;function E4(r){ES=r}function _4(r){if(ES!==void 0)return ES;if(r||k4()){if(r||(r=navigator),r.product==="ReactNative")return!0;let t=r.userAgent||r.vendor||(typeof window!="undefined"?window.opera:"");if(!t){let e=r;return e.userAgentData&&e.userAgentData.mobile}return/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(t)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(t.substr(0,4))}return!1}function _S(){return typeof window!="undefined"&&window.document!=null||typeof WorkerGlobalScope!="undefined"}var ro=M();ro.registerFlag("DEBUG",()=>!1,r=>{r&&console.warn("Debugging mode is ON. The output of every math call will be downloaded to CPU and checked for NaNs. This significantly impacts performance.")});ro.registerFlag("IS_BROWSER",()=>_S());ro.registerFlag("IS_NODE",()=>typeof process!="undefined"&&typeof process.versions!="undefined"&&typeof process.versions.node!="undefined");ro.registerFlag("IS_CHROME",()=>typeof navigator!="undefined"&&navigator!=null&&navigator.userAgent!=null&&/Chrome/.test(navigator.userAgent)&&/Google Inc/.test(navigator.vendor));ro.registerFlag("PROD",()=>!1);ro.registerFlag("TENSORLIKE_CHECK_SHAPE_CONSISTENCY",()=>ro.getBool("DEBUG"));ro.registerFlag("DEPRECATION_WARNINGS_ENABLED",()=>!0);ro.registerFlag("IS_TEST",()=>!1);ro.registerFlag("CHECK_COMPUTATION_FOR_ERRORS",()=>!0);ro.registerFlag("WRAP_TO_IMAGEBITMAP",()=>!1);ro.registerFlag("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU",()=>!1);ro.registerFlag("USE_SETTIMEOUTCUSTOM",()=>!1);function Gr(r,t){let e=r;if(br(r))return t==="string"?[]:[r.length];if(typeof r=="object"&&"texture"in r){let o=r.channels||"RGBA";return[r.height,r.width*o.length]}if(!Array.isArray(r))return[];let n=[];for(;Array.isArray(e)||br(e)&&t!=="string";)n.push(e.length),e=e[0];return Array.isArray(r)&&M().getBool("TENSORLIKE_CHECK_SHAPE_CONSISTENCY")&&W1(r,n,[]),n}function W1(r,t,e){if(e=e||[],!Array.isArray(r)&&!br(r)){_(t.length===0,()=>`Element arr[${e.join("][")}] is a primitive, but should be an array/TypedArray of ${t[0]} elements`);return}_(t.length>0,()=>`Element arr[${e.join("][")}] should be a primitive, but is an array of ${r.length} elements`),_(r.length===t[0],()=>`Element arr[${e.join("][")}] should have ${t[0]} elements, but has ${r.length} elements`);let n=t.slice(1);for(let o=0;o=0&&(o=n),G1(n,o,t,e),r==null||!br(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string"){let u=r==null?"null":r.constructor.name;throw new Error(`Argument '${t}' passed to '${e}' must be a Tensor or TensorLike, but got '${u}'`)}let s=Gr(r,o);!br(r)&&!Array.isArray(r)&&(r=[r]);let a=o!=="string"?Wp(r,o):Vo(r,[],!0);return k.makeTensor(a,s,o)}function Za(r,t,e,n="numeric"){if(!Array.isArray(r))throw new Error(`Argument ${t} passed to ${e} must be a \`Tensor[]\` or \`TensorLike[]\``);return r.map((s,i)=>v(s,`${t}[${i}]`,e,n))}var AS="__op";function T(r){let t=Object.keys(r);if(t.length!==1)throw new Error(`Please provide an object with a single key (operation name) mapping to a function. Got an object with ${t.length} keys.`);let e=t[0],n=r[e];e.endsWith("_")&&(e=e.substring(0,e.length-1)),e=e+AS;let o=(...s)=>{k.startScope(e);try{let i=n(...s);return qd(i)&&console.error("Cannot return a Promise inside of tidy."),k.endScope(i),i}catch(i){throw k.endScope(null),i}};return Object.defineProperty(o,"name",{value:e,configurable:!0}),o}function A4(r,t){let e=v(r,"real","complex"),n=v(t,"imag","complex");De(e.shape,n.shape,`real and imag shapes, ${e.shape} and ${n.shape}, must match in call to tf.complex().`);let o={real:e,imag:n};return k.runKernel(mp,o)}var In=T({complex_:A4});function sn(r,t,e,n){if(n==null&&(n=sp(r)),n==="complex64")throw new Error("Cannot construct a complex64 tensor directly. Please use tf.complex(real, imag).");if(typeof r=="object"&&"texture"in r){if(n!=="float32"&&n!=="int32")throw new Error(`Creating tensor from texture only supports 'float32'|'int32' dtype, while the dtype is ${n}.`);return r.channels=r.channels||"RGBA",k.backend.createTensorFromTexture(r,t||e,n)}if(!br(r)&&!Array.isArray(r)&&typeof r!="number"&&typeof r!="boolean"&&typeof r!="string")throw new Error("values passed to tensor(values) must be a number/boolean/string or an array of numbers/booleans/strings, or a TypedArray");if(t!=null){Pe(t);let o=Jt(t),s=Jt(e);_(o===s,()=>`Based on the provided shape, [${t}], the tensor should have ${o} values but has ${s}`);for(let i=0;i`Error creating a new Tensor. Inferred shape (${e}) does not match the provided shape (${t}). `)}}return!br(r)&&!Array.isArray(r)&&(r=[r]),t=t||e,r=n!=="string"?Wp(r,n):Vo(r,[],!0),k.makeTensor(r,t,n)}function nr(r,t,e){let n=Gr(r,e);return sn(r,t,n,e)}var sh={float32:4,float16:2,int32:4,uint16:2,uint8:1,bool:1,complex64:8};var qg=4;async function H1(r,t){let e=[],n=[],o=Array.isArray(r)?r.map(i=>i.name):Object.keys(r);for(let i=0;i{let m=await u.bytes(),f=m.reduce((g,x)=>g+x.length,0)+qg*m.length,d=new Uint8Array(f),h=0;for(let g=0;g{if(t+=s.byteLength,e.push(s.byteLength===s.buffer.byteLength?s:new s.constructor(s)),!(s instanceof Float32Array||s instanceof Int32Array||s instanceof Uint8Array))throw new Error(`Unsupported TypedArray subtype: ${s.constructor.name}`)});let n=new Uint8Array(t),o=0;return e.forEach(s=>{n.set(new Uint8Array(s.buffer),o),o+=s.byteLength}),n.buffer}var $S=typeof Buffer!="undefined"&&(typeof Blob=="undefined"||typeof atob=="undefined"||typeof btoa=="undefined");function U1(r){return $S?Buffer.byteLength(r):new Blob([r]).size}function q1(r){if($S)return Buffer.from(r).toString("base64");let t=new Uint8Array(r),e="";for(let n=0,o=t.length;n{t+=o.byteLength});let e=new Uint8Array(t),n=0;return r.forEach(o=>{e.set(new Uint8Array(o),n),n+=o.byteLength}),e.buffer}function DS(r){let t="/";for(r=r.trim();r.endsWith(t);)r=r.slice(0,r.length-1);let e=r.split(t);return e[e.length-1]}function jg(r,t){let e={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy,weightsManifest:t};return r.signature!=null&&(e.signature=r.signature),r.userDefinedMetadata!=null&&(e.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(e.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(e.initializerSignature=r.initializerSignature),r.trainingConfig!=null&&(e.trainingConfig=r.trainingConfig),e}function RS(r,t,e){let n={modelTopology:r.modelTopology,format:r.format,generatedBy:r.generatedBy,convertedBy:r.convertedBy};if(r.trainingConfig!=null&&(n.trainingConfig=r.trainingConfig),r.weightsManifest!=null){if(!t)throw new Error("modelJSON has weightsManifest but weightSpecs is null");if(!e)throw new Error("modelJSON has weightsManifest but weightData is null");n.weightSpecs=t,n.weightData=e}return r.signature!=null&&(n.signature=r.signature),r.userDefinedMetadata!=null&&(n.userDefinedMetadata=r.userDefinedMetadata),r.modelInitializer!=null&&(n.modelInitializer=r.modelInitializer),r.initializerSignature!=null&&(n.initializerSignature=r.initializerSignature),n}async function Kp(r,t){let e,n;return r.weightsManifest!=null&&([e,n]=await t(r.weightsManifest)),RS(r,e,n)}function Ei(r){if(r.modelTopology instanceof ArrayBuffer)throw new Error("Expected JSON model topology, received ArrayBuffer.");return{dateSaved:new Date,modelTopologyType:"JSON",modelTopologyBytes:r.modelTopology==null?0:U1(JSON.stringify(r.modelTopology)),weightSpecsBytes:r.weightSpecs==null?0:U1(JSON.stringify(r.weightSpecs)),weightDataBytes:r.weightData==null?0:r.weightData.byteLength}}function Xg(r){let t=[];for(let e of r)t.push(...e.weights);return t}function D4(){let r=e=>{let n=e<<13,o=0;for(;(n&8388608)===0;)o-=8388608,n<<=1;return n&=-8388609,o+=947912704,n|o},t=new Uint32Array(2048);t[0]=0;for(let e=1;e<1024;e++)t[e]=r(e);for(let e=1024;e<2048;e++)t[e]=939524096+(e-1024<<13);return t}function R4(){let r=new Uint32Array(64);r[0]=0,r[31]=1199570944,r[32]=2147483648,r[63]=3347054592;for(let t=1;t<31;t++)r[t]=t<<23;for(let t=33;t<63;t++)r[t]=2147483648+(t-32<<23);return r}function F4(){let r=new Uint32Array(64);for(let t=0;t<64;t++)r[t]=1024;return r[0]=r[32]=0,r}function O4(){let r=D4(),t=R4(),e=F4();return n=>{let o=new ArrayBuffer(4*n.length),s=new Uint32Array(o);for(let i=0;i>10]+(a&1023)]+t[a>>10];s[i]=u}return new Float32Array(o)}}var Ce=class{constructor(){this.saveRouters=[],this.loadRouters=[]}static getInstance(){return Ce.instance==null&&(Ce.instance=new Ce),Ce.instance}static registerSaveRouter(t){Ce.getInstance().saveRouters.push(t)}static registerLoadRouter(t){Ce.getInstance().loadRouters.push(t)}static getSaveHandlers(t){return Ce.getHandlers(t,"save")}static getLoadHandlers(t,e){return Ce.getHandlers(t,"load",e)}static getHandlers(t,e,n){let o=[];return(e==="load"?Ce.getInstance().loadRouters:Ce.getInstance().saveRouters).forEach(i=>{let a=i(t,n);a!==null&&o.push(a)}),o}},j1=r=>Ce.registerSaveRouter(r),X1=r=>Ce.registerLoadRouter(r),Y1=r=>Ce.getSaveHandlers(r),Z1=(r,t)=>Ce.getLoadHandlers(r,t);var FS="tensorflowjs",OS=1,qu="models_store",Zl="model_info_store";function J1(){if(!M().getBool("IS_BROWSER"))throw new Error("Failed to obtain IndexedDB factory because the current environmentis not a web browser.");let r=typeof window=="undefined"?self:window,t=r.indexedDB||r.mozIndexedDB||r.webkitIndexedDB||r.msIndexedDB||r.shimIndexedDB;if(t==null)throw new Error("The current browser does not appear to support IndexedDB.");return t}function PS(r){let t=r.result;t.createObjectStore(qu,{keyPath:"modelPath"}),t.createObjectStore(Zl,{keyPath:"modelPath"})}var _i=class{constructor(t){if(this.indexedDB=J1(),t==null||!t)throw new Error("For IndexedDB, modelPath must not be null, undefined or empty.");this.modelPath=t}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");return this.databaseAction(this.modelPath,t)}async load(){return this.databaseAction(this.modelPath)}databaseAction(t,e){return new Promise((n,o)=>{let s=this.indexedDB.open(FS,OS);s.onupgradeneeded=()=>PS(s),s.onsuccess=()=>{let i=s.result;if(e==null){let a=i.transaction(qu,"readonly"),l=a.objectStore(qu).get(this.modelPath);l.onsuccess=()=>{if(l.result==null)return i.close(),o(new Error(`Cannot find model with path '${this.modelPath}' in IndexedDB.`));n(l.result.modelArtifacts)},l.onerror=c=>(i.close(),o(l.error)),a.oncomplete=()=>i.close()}else{let a=Ei(e),u=i.transaction(Zl,"readwrite"),l=u.objectStore(Zl),c=l.put({modelPath:this.modelPath,modelArtifactsInfo:a}),p;c.onsuccess=()=>{p=i.transaction(qu,"readwrite");let f=p.objectStore(qu).put({modelPath:this.modelPath,modelArtifacts:e,modelArtifactsInfo:a});f.onsuccess=()=>n({modelArtifactsInfo:a}),f.onerror=d=>{l=u.objectStore(Zl);let h=l.delete(this.modelPath);h.onsuccess=()=>(i.close(),o(f.error)),h.onerror=g=>(i.close(),o(f.error))}},c.onerror=m=>(i.close(),o(c.error)),u.oncomplete=()=>{p==null?i.close():p.oncomplete=()=>i.close()}}},s.onerror=i=>o(s.error)})}};_i.URL_SCHEME="indexeddb://";var Q1=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(_i.URL_SCHEME)?P4(r.slice(_i.URL_SCHEME.length)):null;Ce.registerSaveRouter(Q1);Ce.registerLoadRouter(Q1);function P4(r){return new _i(r)}function L4(r){return r.startsWith(_i.URL_SCHEME)?r.slice(_i.URL_SCHEME.length):r}var Yg=class{constructor(){this.indexedDB=J1()}async listModels(){return new Promise((t,e)=>{let n=this.indexedDB.open(FS,OS);n.onupgradeneeded=()=>PS(n),n.onsuccess=()=>{let o=n.result,s=o.transaction(Zl,"readonly"),a=s.objectStore(Zl).getAll();a.onsuccess=()=>{let u={};for(let l of a.result)u[l.modelPath]=l.modelArtifactsInfo;t(u)},a.onerror=u=>(o.close(),e(a.error)),s.oncomplete=()=>o.close()},n.onerror=o=>e(n.error)})}async removeModel(t){return t=L4(t),new Promise((e,n)=>{let o=this.indexedDB.open(FS,OS);o.onupgradeneeded=()=>PS(o),o.onsuccess=()=>{let s=o.result,i=s.transaction(Zl,"readwrite"),a=i.objectStore(Zl),u=a.get(t),l;u.onsuccess=()=>{if(u.result==null)return s.close(),n(new Error(`Cannot find model with path '${t}' in IndexedDB.`));{let c=a.delete(t),p=()=>{l=s.transaction(qu,"readwrite");let f=l.objectStore(qu).delete(t);f.onsuccess=()=>e(u.result.modelArtifactsInfo),f.onerror=d=>n(u.error)};c.onsuccess=p,c.onerror=m=>(p(),s.close(),n(u.error))}},u.onerror=c=>(s.close(),n(u.error)),i.oncomplete=()=>{l==null?s.close():l.oncomplete=()=>s.close()}},o.onerror=s=>n(o.error)})}};var Ja="/",jp="tensorflowjs_models",tE="info",M4="model_topology",z4="weight_specs",B4="weight_data",V4="model_metadata";function eE(r){return{info:[jp,r,tE].join(Ja),topology:[jp,r,M4].join(Ja),weightSpecs:[jp,r,z4].join(Ja),weightData:[jp,r,B4].join(Ja),modelMetadata:[jp,r,V4].join(Ja)}}function rE(r){for(let t of Object.values(r))window.localStorage.removeItem(t)}function G4(r){let t=r.split(Ja);if(t.length<3)throw new Error(`Invalid key format: ${r}`);return t.slice(1,t.length-1).join(Ja)}function W4(r){return r.startsWith(Ai.URL_SCHEME)?r.slice(Ai.URL_SCHEME.length):r}var Ai=class{constructor(t){if(!M().getBool("IS_BROWSER")||typeof window=="undefined"||typeof window.localStorage=="undefined")throw new Error("The current environment does not support local storage.");if(this.LS=window.localStorage,t==null||!t)throw new Error("For local storage, modelPath must not be null, undefined or empty.");this.modelPath=t,this.keys=eE(this.modelPath)}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserLocalStorage.save() does not support saving model topology in binary formats yet.");{let e=JSON.stringify(t.modelTopology),n=JSON.stringify(t.weightSpecs),o=Ei(t);try{this.LS.setItem(this.keys.info,JSON.stringify(o)),this.LS.setItem(this.keys.topology,e),this.LS.setItem(this.keys.weightSpecs,n),this.LS.setItem(this.keys.weightData,q1(t.weightData));let s={format:t.format,generatedBy:t.generatedBy,convertedBy:t.convertedBy,signature:t.signature!=null?t.signature:void 0,userDefinedMetadata:t.userDefinedMetadata!=null?t.userDefinedMetadata:void 0,modelInitializer:t.modelInitializer!=null?t.modelInitializer:void 0,initializerSignature:t.initializerSignature!=null?t.initializerSignature:void 0,trainingConfig:t.trainingConfig!=null?t.trainingConfig:void 0};return this.LS.setItem(this.keys.modelMetadata,JSON.stringify(s)),{modelArtifactsInfo:o}}catch(s){throw rE(this.keys),new Error(`Failed to save model '${this.modelPath}' to local storage: size quota being exceeded is a possible cause of this failure: modelTopologyBytes=${o.modelTopologyBytes}, weightSpecsBytes=${o.weightSpecsBytes}, weightDataBytes=${o.weightDataBytes}.`)}}}async load(){let t=JSON.parse(this.LS.getItem(this.keys.info));if(t==null)throw new Error(`In local storage, there is no model with name '${this.modelPath}'`);if(t.modelTopologyType!=="JSON")throw new Error("BrowserLocalStorage does not support loading non-JSON model topology yet.");let e={},n=JSON.parse(this.LS.getItem(this.keys.topology));if(n==null)throw new Error(`In local storage, the topology of model '${this.modelPath}' is missing.`);e.modelTopology=n;let o=JSON.parse(this.LS.getItem(this.keys.weightSpecs));if(o==null)throw new Error(`In local storage, the weight specs of model '${this.modelPath}' are missing.`);e.weightSpecs=o;let s=this.LS.getItem(this.keys.modelMetadata);if(s!=null){let a=JSON.parse(s);e.format=a.format,e.generatedBy=a.generatedBy,e.convertedBy=a.convertedBy,a.signature!=null&&(e.signature=a.signature),a.userDefinedMetadata!=null&&(e.userDefinedMetadata=a.userDefinedMetadata),a.modelInitializer!=null&&(e.modelInitializer=a.modelInitializer),a.initializerSignature!=null&&(e.initializerSignature=a.initializerSignature),a.trainingConfig!=null&&(e.trainingConfig=a.trainingConfig)}let i=this.LS.getItem(this.keys.weightData);if(i==null)throw new Error(`In local storage, the binary weight values of model '${this.modelPath}' are missing.`);return e.weightData=K1(i),e}};Ai.URL_SCHEME="localstorage://";var nE=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Ai.URL_SCHEME)?U4(r.slice(Ai.URL_SCHEME.length)):null;Ce.registerSaveRouter(nE);Ce.registerLoadRouter(nE);function U4(r){return new Ai(r)}var Zg=class{constructor(){_(M().getBool("IS_BROWSER"),()=>"Current environment is not a web browser"),_(typeof window=="undefined"||typeof window.localStorage!="undefined",()=>"Current browser does not appear to support localStorage"),this.LS=window.localStorage}async listModels(){let t={},e=jp+Ja,n=Ja+tE;for(let o=0;o"scheme must not be undefined or null."),t.endsWith(Xp)&&(t=t.slice(0,t.indexOf(Xp))),_(t.length>0,()=>"scheme must not be an empty string.");let n=Ar.getInstance();_(n.managers[t]==null,()=>`A model store manager is already registered for scheme '${t}'.`),n.managers[t]=e}static getManager(t){let e=Ar.getInstance().managers[t];if(e==null)throw new Error(`Cannot find model manager for scheme '${t}'`);return e}static getSchemes(){return Object.keys(Ar.getInstance().managers)}};function Jg(r){if(r.indexOf(Xp)===-1)throw new Error(`The url string provided does not contain a scheme. Supported schemes are: ${Ar.getSchemes().join(",")}`);return{scheme:r.split(Xp)[0],path:r.split(Xp)[1]}}async function oE(r,t,e=!1){_(r!==t,()=>`Old path and new path are the same: '${r}'`);let n=Ce.getLoadHandlers(r);_(n.length>0,()=>`Copying failed because no load handler is found for source URL ${r}.`),_(n.length<2,()=>`Copying failed because more than one (${n.length}) load handlers for source URL ${r}.`);let o=n[0],s=Ce.getSaveHandlers(t);_(s.length>0,()=>`Copying failed because no save handler is found for destination URL ${t}.`),_(s.length<2,()=>`Copying failed because more than one (${n.length}) save handlers for destination URL ${t}.`);let i=s[0],a=Jg(r).scheme,u=Jg(r).path,l=a===Jg(r).scheme,c=await o.load();e&&l&&await Ar.getManager(a).removeModel(u);let p=await i.save(c);return e&&!l&&await Ar.getManager(a).removeModel(u),p.modelArtifactsInfo}async function sE(){let r=Ar.getSchemes(),t={};for(let e of r){let n=await Ar.getManager(e).listModels();for(let o in n){let s=e+Xp+o;t[s]=n[o]}}return t}async function iE(r){let t=Jg(r);return Ar.getManager(t.scheme).removeModel(t.path)}async function aE(r,t){return oE(r,t,!1)}async function lE(r,t){return oE(r,t,!0)}var LS=class{constructor(){this.messageName="setTimeoutCustom",this.functionRefs=[],this.handledMessageCount=0,this.hasEventListener=!1}fetch(t,e){return fetch(t,e)}now(){return performance.now()}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Browser's encoder only supports utf-8, but got ${e}`);return this.textEncoder==null&&(this.textEncoder=new TextEncoder),this.textEncoder.encode(t)}decode(t,e){return new TextDecoder(e).decode(t)}setTimeoutCustom(t,e){if(typeof window=="undefined"||!M().getBool("USE_SETTIMEOUTCUSTOM")){setTimeout(t,e);return}this.functionRefs.push(t),setTimeout(()=>{window.postMessage({name:this.messageName,index:this.functionRefs.length-1},"*")},e),this.hasEventListener||(this.hasEventListener=!0,window.addEventListener("message",n=>{if(n.source===window&&n.data.name===this.messageName){n.stopPropagation();let o=this.functionRefs[n.data.index];o(),this.handledMessageCount++,this.handledMessageCount===this.functionRefs.length&&(this.functionRefs=[],this.handledMessageCount=0)}},!0))}};if(M().get("IS_BROWSER")){M().setPlatform("browser",new LS);try{Ar.registerManager(Ai.URL_SCHEME,new Zg)}catch(r){}try{Ar.registerManager(_i.URL_SCHEME,new Yg)}catch(r){}}var H4={importFetch:()=>uE()},MS;var zS=class{constructor(){this.util=cE(),this.textEncoder=new this.util.TextEncoder}fetch(t,e){return M().global.fetch!=null?M().global.fetch(t,e):(MS==null&&(MS=H4.importFetch()),MS(t,e))}now(){let t=process.hrtime();return t[0]*1e3+t[1]/1e6}encode(t,e){if(e!=="utf-8"&&e!=="utf8")throw new Error(`Node built-in encoder only supports utf-8, but got ${e}`);return this.textEncoder.encode(t)}decode(t,e){return t.length===0?"":new this.util.TextDecoder(e).decode(t)}};M().get("IS_NODE")&&!M().get("IS_BROWSER")&&M().setPlatform("node",new zS);function wt(r,t="float32",e){return t=t||"float32",Pe(r),new pe(r,t,e)}function q4(r,t){let e=v(r,"x","cast");if(!aS(t))throw new Error(`Failed to cast to unknown dtype ${t}`);if(t==="string"&&e.dtype!=="string"||t!=="string"&&e.dtype==="string")throw new Error("Only strings can be casted to strings");let n={x:e},o={dtype:t};return k.runKernel(co,n,o)}var J=T({cast_:q4});function K4(r){let e={x:v(r,"x","clone","string_or_numeric")};return k.runKernel(mo,e)}var an=T({clone_:K4});function Qg(r,t=!1){console.log(r.toString(t))}kS();var j4={buffer:wt,cast:J,clone:an,print:Qg};z1(j4);var $r={};Wt($r,{browserFiles:()=>mE,browserHTTPRequest:()=>hE,concatenateArrayBuffers:()=>qp,copyModel:()=>aE,decodeWeights:()=>Kg,encodeWeights:()=>H1,fromMemory:()=>gE,fromMemorySync:()=>HS,getLoadHandlers:()=>Z1,getModelArtifactsForJSON:()=>Kp,getModelArtifactsForJSONSync:()=>RS,getModelArtifactsInfoForJSON:()=>Ei,getSaveHandlers:()=>Y1,getWeightSpecs:()=>Xg,http:()=>ex,isHTTPScheme:()=>tx,listModels:()=>sE,loadWeights:()=>fE,moveModel:()=>lE,registerLoadRouter:()=>X1,registerSaveRouter:()=>j1,removeModel:()=>iE,weightsLoaderFactory:()=>WS,withSaveHandler:()=>xE,withSaveHandlerSync:()=>yE});var X4="model",Y4=".json",Z4=".weights.bin";function pE(r){return new Promise(t=>setTimeout(t)).then(r)}var Qa=class{constructor(t){if(!M().getBool("IS_BROWSER"))throw new Error("browserDownloads() cannot proceed because the current environment is not a browser.");t.startsWith(Qa.URL_SCHEME)&&(t=t.slice(Qa.URL_SCHEME.length)),(t==null||t.length===0)&&(t=X4),this.modelJsonFileName=t+Y4,this.weightDataFileName=t+Z4}async save(t){if(typeof document=="undefined")throw new Error("Browser downloads are not supported in this environment since `document` is not present");let e=window.URL.createObjectURL(new Blob([t.weightData],{type:"application/octet-stream"}));if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserDownloads.save() does not support saving model topology in binary formats yet.");{let n=[{paths:["./"+this.weightDataFileName],weights:t.weightSpecs}],o=jg(t,n),s=window.URL.createObjectURL(new Blob([JSON.stringify(o)],{type:"application/json"})),i=this.modelJsonAnchor==null?document.createElement("a"):this.modelJsonAnchor;if(i.download=this.modelJsonFileName,i.href=s,await pE(()=>i.dispatchEvent(new MouseEvent("click"))),t.weightData!=null){let a=this.weightDataAnchor==null?document.createElement("a"):this.weightDataAnchor;a.download=this.weightDataFileName,a.href=e,await pE(()=>a.dispatchEvent(new MouseEvent("click")))}return{modelArtifactsInfo:Ei(t)}}}};Qa.URL_SCHEME="downloads://";var BS=class{constructor(t){if(t==null||t.length<1)throw new Error(`When calling browserFiles, at least 1 file is required, but received ${t}`);this.jsonFile=t[0],this.weightsFiles=t.slice(1)}async load(){return new Promise((t,e)=>{let n=new FileReader;n.onload=o=>{let s=JSON.parse(o.target.result),i=s.modelTopology;if(i==null){e(new Error(`modelTopology field is missing from file ${this.jsonFile.name}`));return}if(s.weightsManifest==null){e(new Error(`weightManifest field is missing from file ${this.jsonFile.name}`));return}if(this.weightsFiles.length===0){t({modelTopology:i});return}let u=Kp(s,l=>this.loadWeights(l));t(u)},n.onerror=o=>e(`Failed to read model topology and weights manifest JSON from file '${this.jsonFile.name}'. BrowserFiles supports loading Keras-style tf.Model artifacts only.`),n.readAsText(this.jsonFile)})}loadWeights(t){let e=[],n=[];for(let i of t)e.push(...i.weights),n.push(...i.paths);let o=this.checkManifestAndWeightFiles(t),s=n.map(i=>this.loadWeightsFile(i,o[i]));return Promise.all(s).then(i=>[e,qp(i)])}loadWeightsFile(t,e){return new Promise((n,o)=>{let s=new FileReader;s.onload=i=>{let a=i.target.result;n(a)},s.onerror=i=>o(`Failed to weights data from file of path '${t}'.`),s.readAsArrayBuffer(e)})}checkManifestAndWeightFiles(t){let e=[],n=this.weightsFiles.map(s=>DS(s.name)),o={};for(let s of t)s.paths.forEach(i=>{let a=DS(i);if(e.indexOf(a)!==-1)throw new Error(`Duplicate file basename found in weights manifest: '${a}'`);if(e.push(a),n.indexOf(a)===-1)throw new Error(`Weight file with basename '${a}' is not provided.`);o[i]=this.weightsFiles[n.indexOf(a)]});if(e.length!==this.weightsFiles.length)throw new Error(`Mismatch in the number of files in weights manifest (${e.length}) and the number of weight files provided (${this.weightsFiles.length}).`);return o}},J4=r=>M().getBool("IS_BROWSER")&&!Array.isArray(r)&&r.startsWith(Qa.URL_SCHEME)?Q4(r.slice(Qa.URL_SCHEME.length)):null;Ce.registerSaveRouter(J4);function Q4(r="model"){return new Qa(r)}function mE(r){return new BS(r)}function VS(r,t,e,n){i(r),e=e==null?0:e,n=n==null?1:n,a(e,n);let o=0,s=u=>(u.then(l=>{let c=e+ ++o/r.length*(n-e);return t(c),l}),u);function i(u){_(u!=null&&Array.isArray(u)&&u.length>0,()=>"promises must be a none empty array")}function a(u,l){_(u>=0&&u<=1,()=>`Progress fraction must be in range [0, 1], but got startFraction ${u}`),_(l>=0&&l<=1,()=>`Progress fraction must be in range [0, 1], but got endFraction ${l}`),_(l>=u,()=>`startFraction must be no more than endFraction, but got startFraction ${u} and endFraction ${l}`)}return Promise.all(r.map(s))}async function GS(r,t){t==null&&(t={});let e=t.fetchFunc==null?M().platform.fetch:t.fetchFunc,n=r.map(p=>e(p,t.requestInit,{isBinary:!0})),o=0,s=.5,a=(t.onProgress==null?await Promise.all(n):await VS(n,t.onProgress,o,s)).map(p=>p.arrayBuffer()),u=.5,l=1;return t.onProgress==null?await Promise.all(a):await VS(a,t.onProgress,u,l)}async function fE(r,t="",e,n){return WS(i=>GS(i,{requestInit:n}))(r,t,e)}function WS(r){return async(t,e="",n)=>{let o=t.map(()=>!1),s={},i=n!=null?n.map(()=>!1):[],a=[];if(t.forEach((f,d)=>{let h=0;f.weights.forEach(g=>{let x="quantization"in g?g.quantization.dtype:g.dtype,b=sh[x]*Jt(g.shape),w=()=>{o[d]=!0,s[d]==null&&(s[d]=[]),s[d].push({manifestEntry:g,groupOffset:h,sizeBytes:b})};n!=null?n.forEach((C,N)=>{C===g.name&&(w(),i[N]=!0)}):w(),a.push(g.name),h+=b})}),!i.every(f=>f)){let f=n.filter((d,h)=>!i[h]);throw new Error(`Could not find weights in manifest with names: ${f.join(", ")}. +Manifest JSON has weights with names: ${a.join(", ")}.`)}let u=o.reduce((f,d,h)=>(d&&f.push(h),f),[]),l=[];u.forEach(f=>{t[f].paths.forEach(d=>{let h=e+(e.endsWith("/")?"":"/")+d;l.push(h)})});let c=await r(l),p={},m=0;return u.forEach(f=>{let d=t[f].paths.length,h=0;for(let C=0;C{let N=g.slice(C.groupOffset,C.groupOffset+C.sizeBytes),E=Kg(N,[C.manifestEntry]);for(let A in E)p[A]=E[A]}),m+=d}),p}}var tH="application/octet-stream",eH="application/json",ih=class{constructor(t,e){if(this.DEFAULT_METHOD="POST",e==null&&(e={}),this.weightPathPrefix=e.weightPathPrefix,this.onProgress=e.onProgress,this.weightUrlConverter=e.weightUrlConverter,e.fetchFunc!=null?(_(typeof e.fetchFunc=="function",()=>"Must pass a function that matches the signature of `fetch` (see https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API)"),this.fetch=e.fetchFunc):this.fetch=M().platform.fetch,_(t!=null&&t.length>0,()=>"URL path for http must not be null, undefined or empty."),Array.isArray(t)&&_(t.length===2,()=>`URL paths for http must have a length of 2, (actual length is ${t.length}).`),this.path=t,e.requestInit!=null&&e.requestInit.body!=null)throw new Error("requestInit is expected to have no pre-existing body, but has one.");this.requestInit=e.requestInit||{}}async save(t){if(t.modelTopology instanceof ArrayBuffer)throw new Error("BrowserHTTPRequest.save() does not support saving model topology in binary formats yet.");let e=Object.assign({method:this.DEFAULT_METHOD},this.requestInit);e.body=new FormData;let n=[{paths:["./model.weights.bin"],weights:t.weightSpecs}],o=jg(t,n);e.body.append("model.json",new Blob([JSON.stringify(o)],{type:eH}),"model.json"),t.weightData!=null&&e.body.append("model.weights.bin",new Blob([t.weightData],{type:tH}),"model.weights.bin");let s=await this.fetch(this.path,e);if(s.ok)return{modelArtifactsInfo:Ei(t),responses:[s]};throw new Error(`BrowserHTTPRequest.save() failed due to HTTP response status ${s.status}.`)}async load(){let t=await this.fetch(this.path,this.requestInit);if(!t.ok)throw new Error(`Request to ${this.path} failed with status code ${t.status}. Please verify this URL points to the model JSON of the model to load.`);let e;try{e=await t.json()}catch(s){let i=`Failed to parse model JSON of response from ${this.path}.`;throw this.path.endsWith(".pb")?i+=" Your path contains a .pb file extension. Support for .pb models have been removed in TensorFlow.js 1.0 in favor of .json models. You can re-convert your Python TensorFlow model using the TensorFlow.js 1.0 conversion scripts or you can convert your.pb models with the 'pb2json'NPM script in the tensorflow/tfjs-converter repository.":i+=" Please make sure the server is serving valid JSON for this request.",new Error(i)}let n=e.modelTopology,o=e.weightsManifest;if(n==null&&o==null)throw new Error(`The JSON from HTTP path ${this.path} contains neither model topology or manifest for weights.`);return Kp(e,s=>this.loadWeights(s))}async loadWeights(t){let e=Array.isArray(this.path)?this.path[1]:this.path,[n,o]=rH(e),s=this.weightPathPrefix||n,i=Xg(t),a=[],u=[];for(let c of t)for(let p of c.paths)this.weightUrlConverter!=null?u.push(this.weightUrlConverter(p)):a.push(s+p+o);this.weightUrlConverter&&a.push(...await Promise.all(u));let l=await GS(a,{requestInit:this.requestInit,fetchFunc:this.fetch,onProgress:this.onProgress});return[i,qp(l)]}};ih.URL_SCHEME_REGEX=/^https?:\/\//;function rH(r){let t=r.lastIndexOf("/"),e=r.lastIndexOf("?"),n=r.substring(0,t),o=e>t?r.substring(e):"";return[n+"/",o]}function tx(r){return r.match(ih.URL_SCHEME_REGEX)!=null}var dE=(r,t)=>{if(typeof fetch=="undefined"&&(t==null||t.fetchFunc==null))return null;{let e=!0;if(Array.isArray(r)?e=r.every(n=>tx(n)):e=tx(r),e)return ex(r,t)}return null};Ce.registerSaveRouter(dE);Ce.registerLoadRouter(dE);function ex(r,t){return new ih(r,t)}function hE(r,t){return ex(r,t)}var ah=class{constructor(t){this.modelArtifacts=t}load(){return this.modelArtifacts}},rx=class{constructor(t){this.saveHandler=t}save(t){return this.saveHandler(t)}},US=class{constructor(t){t.load&&(this.load=()=>Promise.resolve(t.load())),t.save&&(this.save=e=>Promise.resolve(t.save(e)))}};function gE(r,t,e,n){let o=arguments;return new US(HS(...o))}function HS(r,t,e,n){return arguments.length===1?r.modelTopology!=null||r.weightSpecs!=null?new ah(r):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ah({modelTopology:r})):(console.warn("Please call tf.io.fromMemory() with only one argument. The argument should be of type ModelArtifacts. The multi-argument signature of tf.io.fromMemory() has been deprecated and will be removed in a future release."),new ah({modelTopology:r,weightSpecs:t,weightData:e,trainingConfig:n}))}function xE(r){return new rx(r)}function yE(r){return new rx(r)}var CE={};Wt(CE,{confusionMatrix:()=>wE});function nH(r,t,e=!1,n=!1){let o=v(r,"a","matMul"),s=v(t,"b","matMul");[o,s]=Ut(o,s);let i={a:o,b:s},a={transposeA:e,transposeB:n};return k.runKernel(qo,i,a)}var Lt=T({matMul_:nH});function oH(r,t,e=1,n=0,o="int32"){if(t<2)throw new Error(`Error in oneHot: depth must be >=2, but it is ${t}`);let i={indices:v(r,"indices","oneHot","int32")},a={dtype:o,depth:t,onValue:e,offValue:n};return k.runKernel(ys,i,a)}var $i=T({oneHot_:oH});function Ipt(){M().set("PROD",!0)}function vpt(){M().set("DEBUG",!0)}function Spt(){M().set("DEPRECATION_WARNINGS_ENABLED",!1),console.warn("TensorFlow.js deprecation warnings have been disabled.")}function qS(r){M().getBool("DEPRECATION_WARNINGS_ENABLED")&&console.warn(r+" You can disable deprecation warnings with tf.disableDeprecationWarnings().")}B1(qS);function Npt(){k.disposeVariables()}function Mn(){return k}function lh(){return k.memory()}function Tpt(r){return k.profile(r)}function B(r,t){return k.tidy(r,t)}function Nt(r){oh(r).forEach(e=>e.dispose())}function Ae(r){return k.keep(r)}function kpt(r){return k.time(r)}function sH(r){return k.setBackend(r)}function Ept(){return k.ready()}function _pt(){return k.backendName}function Apt(r){k.removeBackend(r)}function $pt(r){return k.findBackend(r)}function Dpt(r){return k.findBackendFactory(r)}function Yp(r,t,e=1){return k.registerBackend(r,t,e)}function bE(){return k.backend}function Rpt(r,t){M().setPlatform(r,t)}function iH(r){let e={input:v(r,"input","imag")};return k.runKernel(Sp,e)}var Jl=T({imag_:iH});function aH(r){let e={x:v(r,"x","neg")};return k.runKernel(di,e)}var Ht=T({neg_:aH});function lH(r){let e={input:v(r,"input","real")};return k.runKernel(Fp,e)}var tl=T({real_:lH});function uH(r,t,e){let n=v(r,"x","transpose");if(t==null&&(t=n.shape.map((i,a)=>a).reverse()),_(n.rank===t.length,()=>`Error in transpose: rank of input ${n.rank} must match length of perm ${t}.`),t.forEach(i=>{_(i>=0&&i`All entries in 'perm' must be between 0 and ${n.rank-1} but got ${t}`)}),n.rank<=1)return n.clone();let o={x:n},s={perm:t};return n.dtype==="complex64"?B(()=>{let i=tl(n),a=Jl(n);return i=k.runKernel(eo,{x:i},s),a=k.runKernel(eo,{x:a},s),e&&(a=Ht(a)),In(i,a)}):k.runKernel(eo,o,s)}var Ot=T({transpose_:uH});function cH(r,t,e){let n=v(r,"labels","confusionMatrix"),o=v(t,"predictions","confusionMatrix");_(e==null||e>0&&Number.isInteger(e),()=>`If provided, numClasses must be a positive integer, but got ${e}`),_(n.rank===1,()=>`Expected the rank of labels to be 1, but got ${n.rank}`),_(o.rank===1,()=>`Expected the rank of predictions to be 1, but got ${o.rank}`),_(n.shape[0]===o.shape[0],()=>`Mismatch in the number of examples: ${n.shape[0]} vs. ${o.shape[0]}. Labels and predictions should have the same number of elements.`),_(e>0&&Number.isInteger(e),()=>`numClasses is required to be a positive integer, but got ${e}`);let s=$i(J(n,"int32"),e),i=$i(J(o,"int32"),e),a=Ot(s),u=Lt(a,i);return J(u,"int32")}var wE=T({confusionMatrix_:cH});var Wr={};Wt(Wr,{assertAndGetBroadcastShape:()=>Pt,getBroadcastDims:()=>IE,getReductionAxes:()=>ge});function IE(r,t){let e=r.length,n=[];for(let o=0;o1&&i===1&&n.unshift(s)}return n}function ge(r,t){let e=[];for(let n=0;n1)&&e.unshift(s)}return e}function Pt(r,t){let e=[],n=Math.max(r.length,t.length);for(let o=0;oxH,fromPixelsAsync:()=>hH,toPixels:()=>gH});function nx(r,t,e){if(Jn(r),t!=null&&t.length!==3)throw new Error("tensor3d() requires shape to have three numbers");let n=Gr(r,e);if(n.length!==3&&n.length!==1)throw new Error("tensor3d() requires values to be number[][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor3d() requires shape to be provided when `values` are a flat array");return sn(r,t,n,e)}var Ku;function vE(r,t=3){if(t>4)throw new Error("Cannot construct Tensor with more than 4 channels from pixels.");if(r==null)throw new Error("pixels passed to tf.browser.fromPixels() can not be null");let e=!1,n=!1,o=!1,s=!1,i=!1,a=!1;if(r.data instanceof Uint8Array)e=!0;else if(typeof ImageData!="undefined"&&r instanceof ImageData)n=!0;else if(typeof HTMLVideoElement!="undefined"&&r instanceof HTMLVideoElement)o=!0;else if(typeof HTMLImageElement!="undefined"&&r instanceof HTMLImageElement)s=!0;else if(r.getContext!=null)i=!0;else if(typeof ImageBitmap!="undefined"&&r instanceof ImageBitmap)a=!0;else throw new Error(`pixels passed to tf.browser.fromPixels() must be either an HTMLVideoElement, HTMLImageElement, HTMLCanvasElement, ImageData in browser, or OffscreenCanvas, ImageData in webworker or {data: Uint32Array, width: number, height: number}, but was ${r.constructor.name}`);if(Qd(Zd,k.backendName)!=null){let d={pixels:r},h={numChannels:t};return k.runKernel(Zd,d,h)}let[l,c]=o?[r.videoWidth,r.videoHeight]:[r.width,r.height],p;if(i)p=r.getContext("2d").getImageData(0,0,l,c).data;else if(n||e)p=r.data;else if(s||o||a){if(Ku==null)if(typeof document=="undefined")if(typeof OffscreenCanvas!="undefined"&&typeof OffscreenCanvasRenderingContext2D!="undefined")Ku=new OffscreenCanvas(1,1).getContext("2d");else throw new Error("Cannot parse input in current context. Reason: OffscreenCanvas Context2D rendering is not supported.");else Ku=document.createElement("canvas").getContext("2d",{willReadFrequently:!0});Ku.canvas.width=l,Ku.canvas.height=c,Ku.drawImage(r,0,0,l,c),p=Ku.getImageData(0,0,l,c).data}let m;if(t===4)m=new Int32Array(p);else{let d=l*c;m=new Int32Array(d*t);for(let h=0;h4||s===2)throw new Error(`toPixels only supports depth of size 1, 3 or 4 but got ${s}`);if(e.dtype!=="float32"&&e.dtype!=="int32")throw new Error(`Unsupported type for toPixels: ${e.dtype}. Please use float32 or int32 tensors.`);let i=await e.data(),a=e.dtype==="float32"?255:1,u=new Uint8ClampedArray(o*n*4);for(let l=0;l1)throw new Error(`Tensor values for a float32 Tensor must be in the range [0 - 1] but encountered ${f}.`)}else if(e.dtype==="int32"&&(f<0||f>255))throw new Error(`Tensor values for a int32 Tensor must be in the range [0 - 255] but encountered ${f}.`);s===1?(c[0]=f*a,c[1]=f*a,c[2]=f*a):c[m]=f*a}let p=l*4;u[p+0]=Math.round(c[0]),u[p+1]=Math.round(c[1]),u[p+2]=Math.round(c[2]),u[p+3]=Math.round(c[3])}if(t!=null){t.width=o,t.height=n;let l=t.getContext("2d"),c=new ImageData(u,o,n);l.putImageData(c,0,0)}return e!==r&&e.dispose(),u}var xH=T({fromPixels_:vE});var sx={};Wt(sx,{prepareAndValidate:()=>SE});function SE(r,t){let e=r.shape.length,n=t.shape.length;if(e<1)throw new Error(`tf.gatherND() expects the input to be rank 1 or higher, but the rank was ${e}.`);if(n<1)throw new Error(`tf.gatherND() expects the indices to be rank 1 or higher, but the rank was ${n}.`);if(t.dtype!=="int32")throw new Error(`tf.gatherND() expects the indices to be int32 type, but the dtype was ${t.dtype}.`);if(t.shape[n-1]>e)throw new Error(`index innermost dimension length must be <= tensor rank; saw: ${t.shape[n-1]} vs. ${e}`);if(Jt(r.shape)===0)throw new Error(`Requested more than 0 entries, but input is empty. Input shape: ${r.shape}.`);let o=t.shape,s=o[o.length-1],i=1;for(let p=0;pp/l),1].slice(0,s);return[u,i,l,c]}var uh={};Wt(uh,{calculateShapes:()=>NE,validateInput:()=>ix,validateUpdateShape:()=>KS});function KS(r,t,e){let n=t.rank>1?t.shape[t.rank-1]:1,o=t.rank>1?t.rank-1:1,s=`Must have updates.shape = indices.shape[:batchDim] + shape[sliceDim:], got updates.shape: ${e.shape}, indices.shape: ${t.shape}, shape: ${r}, sliceDim: ${n}, and batchDim: ${o}.`;if(e.rank1?t.shape[n-1]:1,s=e.length,i=1;for(let p=o;pbH,computeFlatOffset:()=>SH,computeOutShape:()=>CH,getNormalizedAxes:()=>IH,isSliceContinous:()=>vH,maskToAxes:()=>wH,parseSliceParams:()=>XS,sliceInfo:()=>NH,startForAxis:()=>RE,startIndicesWithElidedDims:()=>AE,stopForAxis:()=>FE,stopIndicesWithElidedDims:()=>$E,stridesForAxis:()=>DE,stridesWithElidedDims:()=>kE});var jS=-2,yH=-1;function bH(r,t,e){let n=r.shape.length;_(n===t.length,()=>`Error in slice${n}D: Length of begin ${t} must match the rank of the array (${n}).`),_(n===e.length,()=>`Error in slice${n}D: Length of size ${e} must match the rank of the array (${n}).`);for(let o=0;o`Error in slice${n}D: begin[${o}] + size[${o}] (${t[o]+e[o]}) would overflow input.shape[${o}] (${r.shape[o]})`)}function wH(r){let t=[],e=0;for(;r>0;)r&1&&t.push(e),r/=2,e++;return t}function CH(r,t,e){let n=[];for(let o=0;o0){let f=t[0],d=e+1;c=AE(i,f,d,n,r),p=$E(a,f,d,o,r),m=kE(s,f,d,r)}else for(let f=0;f-1)s[a]=0;else{let u=EE(t,e,a),l=n[u];r&1<-1)s[a]=Number.MAX_SAFE_INTEGER;else{let u=EE(t,e,a),l=n[u];r&1<0?i=Number.MIN_SAFE_INTEGER:i=Number.MAX_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),i=op(0,i,u-1),i}function FE(r,t,e,n,o,s){let i=t[o],a=e[o]||1;(r&1<0?i=Number.MAX_SAFE_INTEGER:i=Number.MIN_SAFE_INTEGER);let u=n[o];return i<0&&(i+=u),a>0?i=op(0,i,u):i=op(-1,i,u-1),i}function vH(r,t,e){let n=e.length;for(let o=0;o1){n=o;break}for(let o=n+1;o0||e[o]!==r[o])return!1;return!0}function SH(r,t){let e=r.length>0?r[r.length-1]:1;for(let n=0;n{_(i!==-1,()=>"slice() does not support negative begin indexing.")});let s;return e==null?s=new Array(o).fill(-1):typeof e=="number"?s=[e,...new Array(o-1).fill(-1)]:e.lengthi>=0?i:(_(i===-1,()=>`Negative size values should be exactly -1 but got ${i} for the slice() size at index ${a}.`),r.shape[a]-n[a])),[n,s]}function NH(r,t,e,n,o,s,i,a,u){let l;if(n==null?(l=new Array(t.length),l.fill(1)):l=n,i!=null&&(i&i-1)!==0)throw new Error("Multiple ellipses in slice is not allowed.");let c=!1,p={dims:l.length,numAddAxisAfterEllipsis:0,begin:t.slice(),end:e.slice(),strides:l.slice(),beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};for(let w=0;w0?0:-1,m.strides[w]>0?N:N-1];if(C&&m.strides[w]<=0)throw Error("only stride 1 allowed on non-range indexing.");h=h&&m.strides[w]===1;let $=!!(m.beginMask&1<=N)throw Error(`slice index ${m.begin[w]} of dimension ${w} out of bounds.`)}else m.begin[w]=TE(m.begin[w],0,m.strides[w],N,E,A),m.end[w]=TE(m.end[w],1,m.strides[w],N,E,A);let V=m.strides[w]===1&&m.begin[w]===0&&m.end[w]===N;f=f&&V,d=d&&(w===0&&m.strides[w]===1||V)}else f=f&&m.strides[w]===1&&$,d=d&&(w===0&&m.strides[w]===1||$);let F,P=!1;if(m.beginValid&&m.endValid?(F=m.end[w]-m.begin[w],P=!0):C?(F=1,P=!0):$&&N>=0&&(m.strides[w]<0?F=-N:F=N,P=!0),P){let V;F===0||F<0!=m.strides[w]<0?V=0:V=Math.trunc(F/m.strides[w])+(F%m.strides[w]!==0?1:0),g.push(V)}else g.push(-1)}for(let w=0;w=0?x.push(g[C]):C===jS&&x.push(1)}return{finalShapeSparse:x.filter((w,C)=>m.finalShapeGatherIndices[C]!==jS),finalShape:x,isIdentity:f,sliceDim0:d,isSimpleSlice:h,begin:m.begin,end:m.end,strides:m.strides}}function TH(r,t){t.beginMask=0,t.endMask=0,t.shrinkAxisMask=0;let e=0;t.beginValid=r.begin!=null,t.endValid=r.end!=null,t.begin=new Array(t.dims),t.end=new Array(t.dims),t.strides=new Array(t.dims),t.finalShapeGatherIndices=[],t.finalShapeGatherIndicesSparse=[],t.inputShapeGatherIndicesSparse=new Array(t.dims);for(let n=0;n0?s[t]:s[t+1&1];{let i=r<0?n+r:r;return is[1]?s[1]:i}}var Q={};Wt(Q,{Serializable:()=>ch,SerializationMap:()=>Di,registerClass:()=>vn});var ch=class{getClassName(){return this.constructor.className}static fromConfig(t,e){return new t(e)}},Di=class{constructor(){this.classNameMap={}}static getMap(){return Di.instance==null&&(Di.instance=new Di),Di.instance}static register(t){Di.getMap().classNameMap[t.className]=[t,t.fromConfig]}};function vn(r){_(r.className!=null,()=>"Class being registered does not have the static className property defined."),_(typeof r.className=="string",()=>"className is required to be a string, but got type "+typeof r.className),_(r.className.length>0,()=>"Class being registered has an empty-string as its className, which is disallowed."),Di.register(r)}var ME={};Wt(ME,{TEST_EPSILON_FLOAT16:()=>OE,createVideoElement:()=>RH,encodeStrings:()=>LE,expectArrayBuffersEqual:()=>DH,expectArraysClose:()=>EH,expectArraysEqual:()=>AH,expectNumbersClose:()=>PE,expectPromiseToFail:()=>_H,expectValuesInRange:()=>$H,play:()=>FH,testEpsilon:()=>ax});var kH=.001,OE=.1;function EH(r,t,e){return e==null&&(e=ax()),YS(r,t,(n,o)=>ZS(n,o,e))}function ax(){return k.backend.floatPrecision()===32?kH:OE}function YS(r,t,e){let n=!0;if((br(r)||br(t))&&(n=!1),br(r)&&br(t)&&(n=!0),n){let i=r.constructor.name,a=t.constructor.name;if(i!==a)throw new Error(`Arrays are of different type. Actual: ${i}. Expected: ${a}`)}if(Array.isArray(r)&&Array.isArray(t)){let i=Gr(r),a=Gr(t);if(!On(i,a))throw new Error(`Arrays have different shapes. Actual: [${i}]. Expected: [${a}]`)}let o=br(r)?r:Vo(r),s=br(t)?t:Vo(t);if(o.length!==s.length)throw new Error(`Arrays have different lengths actual: ${o.length} vs expected: ${s.length}. Actual: ${o}. Expected: ${s}.`);for(let i=0;it.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function NH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Vo(r)||Vo(r[0])||Vo(t)||Vo(t[0])?Kv(r,e,(n,o)=>n==o):Kv(r,t,(n,o)=>jv(n,o,0))}function RE(r,t,e){if(e==null&&(e=ix()),!jv(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function jv(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function TH(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function kH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function _H(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var PE="4.0.0";function AH(r,t){let e=I(r,"a","add"),n=I(t,"b","add");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Zn,o)}var X=T({add_:AH});function $H(r,t){let e=I(r,"a","floorDiv"),n=I(t,"b","floorDiv");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ns,o)}var Yp=T({floorDiv_:$H});function DH(r,t){let e=I(r,"a","div"),n=I(t,"b","div");if([e,n]=Ut(e,n),e.dtype==="int32"&&n.dtype==="int32")return Yp(e,n);let o={a:e,b:n},s={};return k.runKernel(Qo,o,s)}var pt=T({div_:DH});function RH(r,t){let e=I(r,"a","mul"),n=I(t,"b","mul");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(hs,o)}var D=T({mul_:RH});function FH(r){let t=I(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return k.runKernel(_l,e)}else{let e={x:t};return k.runKernel(ii,e)}}var Ee=T({abs_:FH});function OH(r){let e={x:I(r,"x","acos")};return k.runKernel(oa,e)}var ax=T({acos_:OH});function PH(r){let e={x:I(r,"x","acosh")};return k.runKernel(sa,e)}var lx=T({acosh_:PH});function LH(r){E(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),E(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>I(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!Dn(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return k.runKernel(Go,n)}var LE=T({addN_:LH});function MH(r,t=null,e=!1){let o={x:I(r,"x","all","bool")},s={axis:t,keepDims:e};return k.runKernel(ia,o,s)}var Zp=T({all_:MH});function zH(r,t=null,e=!1){let o={x:I(r,"x","any","bool")},s={axis:t,keepDims:e};return k.runKernel(aa,o,s)}var qu=T({any_:zH});function BH(r,t=0){let n={x:I(r,"x","argMax")},o={axis:t};return k.runKernel(Wo,n,o)}var Ai=T({argMax_:BH});function VH(r,t=0){let n={x:I(r,"x","argMin")},o={axis:t};return k.runKernel(kl,n,o)}var ux=T({argMin_:VH});function GH(r){let e={x:I(r,"x","asin")};return k.runKernel(la,e)}var cx=T({asin_:GH});function WH(r){let e={x:I(r,"x","asinh")};return k.runKernel(ua,e)}var px=T({asinh_:WH});function UH(r){let e={x:I(r,"x","atan")};return k.runKernel(ca,e)}var mx=T({atan_:UH});function HH(r,t){let e=I(r,"a","atan2"),n=I(t,"b","atan2");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(ma,o)}var fx=T({atan2_:HH});function qH(r){let e={x:I(r,"x","atanh")};return k.runKernel(pa,e)}var dx=T({atanh_:qH});function KH(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=zE(o);return ju(r,a,e,s,n,null,null,u)}function Yv(r,t,e,n,o,s,i="channelsLast"){let[a,u]=hx(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ju(r,l,e,n,o,s,!1,i)}function jH(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=Xv(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return ME(r,c,e,n,o,!1,p,s)}function ju(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=hx(e),[x,b]=hx(n),w=Jp(m,x),C=Jp(f,b),{padInfo:N,outHeight:_,outWidth:A}=ZH(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a==="channelsFirst"?F=[u,$,_,A]:a==="channelsLast"&&(F=[u,_,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:_,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function ME(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=Xv(e),[C,N,_]=Xv(n),A=Jp(f,C),$=Jp(d,N),F=Jp(h,_),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=JH(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:_,inShape:r,outShape:H,filterShape:t}}function XH(r,t,e,n,o){n==null&&(n=Zv(r,t,e));let s=r[0],i=r[1],a=Ku((s-t+2*n)/e+1,o),u=Ku((i-t+2*n)/e+1,o);return[a,u]}function YH(r,t,e,n,o,s){o==null&&(o=Zv(r,t,n));let i=r[0],a=r[1],u=r[2],l=Ku((i-t+2*o)/n+1,s),c=Ku((a-t+2*o)/n+1,s),p=Ku((u-t+2*o)/n+1,s);return[l,c,p,e]}function Zv(r,t,e,n=1){let o=Jp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function hx(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function Xv(r){return typeof r=="number"?[r,r,r]:r}function Jp(r,t){return t<=1?r:r+(r-1)*(t-1)}function ZH(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=XH([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=Ku((t-s+m+f)/n+1,a),p=Ku((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function JH(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=YH([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,_=Math.floor(x/2),A=x-_;p={top:C,bottom:N,left:_,right:A,front:b,back:w,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Ku(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function to(r){let[t,e,n]=hx(r);return t===1&&e===1&&n===1}function Ar(r,t){return to(r)||to(t)}function zE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")E(na(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{E(na(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function QH(r,t){let n={x:I(r,"x","reshape","string_or_numeric")},o={shape:t};return k.runKernel(di,n,o)}var R=T({reshape_:QH});function tq(r,t,e,n,o){let s=I(r,"x","avgPool","float32"),i=1;E(Ar(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Uo,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Yl=T({avgPool_:tq});function eq(r,t,e,n,o,s="NDHWC"){let i=I(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(El,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var gx=T({avgPool3d_:eq});function rq(r,t=0){E(r.length>=1,()=>"Pass at least one tensor to concat");let e=ja(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor - with dtype ${s.dtype}. `)}),e.length===1)return sn(e[0]);let n=e,o={axis:t};return k.runKernel(li,n,o)}var ne=T({concat_:rq});function nq(r){let e={x:I(r,"x","sigmoid","float32")};return k.runKernel(_s,e)}var Yr=T({sigmoid_:nq});function oq(r,t,e){let n=I(r,"x","slice","string_or_numeric");if(n.rank===0)throw new Error("Slicing scalar is not possible");let o={x:n},s={begin:t,size:e};return k.runKernel(gi,o,s)}var Rt=T({slice_:oq});function sq(r){let e={x:I(r,"x","tanh","float32")};return k.runKernel(Ps,e)}var $i=T({tanh_:sq});function iq(r,t,e,n,o,s){let i=I(r,"forgetBias","basicLSTMCell"),a=I(t,"lstmKernel","basicLSTMCell"),u=I(e,"lstmBias","basicLSTMCell"),l=I(n,"data","basicLSTMCell"),c=I(o,"c","basicLSTMCell"),p=I(s,"h","basicLSTMCell"),m=ne([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),_=X(D(Yr(b),$i(w)),D(c,Yr(X(i,C)))),A=D($i(_),Yr(N));return[_,A]}var BE=T({basicLSTMCell_:iq});function aq(r,t,e){let n=I(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);E(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),E(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),E(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ai,s,i)}var Zl=T({batchToSpaceND_:aq});function VE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function lq(r,t,e,n,o,s){s==null&&(s=.001);let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;n!=null&&(c=I(n,"offset","batchNorm")),E(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),E(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),E(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:VE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(os,m,f);return R(d,i.shape)}var Di=T({batchNorm_:lq});function uq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),E(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),E(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var xx=T({batchNorm2d_:uq});function cq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),E(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),E(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var yx=T({batchNorm3d_:cq});function pq(r,t,e,n,o,s){let i=I(r,"x","batchNorm"),a=I(t,"mean","batchNorm"),u=I(e,"variance","batchNorm"),l;o!=null&&(l=I(o,"scale","batchNorm"));let c;return n!=null&&(c=I(n,"offset","batchNorm")),E(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),E(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),E(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&E(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&E(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Di(i,a,u,c,l,s)}var bx=T({batchNorm4d_:pq});function mq(r,t,e){let n=I(r,"x","bincount"),o=I(t,"weights","bincount");E(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(up,s,i)}var wx=T({bincount_:mq});function fq(r,t){let e=I(r,"s0","broadcastArgs","int32"),n=I(t,"s1","broadcastArgs","int32");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(cp,o)}var GE=T({broadcastArgs_:fq});function dq(r,t){let e=I(r,"broadcastTo","x"),n=e.shape;if(t.some(l=>!(l>0)||l%1!==0))throw new Error(`broadcastTo(): Invalid broadcast shape [${t}].`);if(t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return sn(e);let a={x:e},u={reps:s};return k.runKernel(Jn,a,u)}var Ri=T({broadcastTo_:dq});function hq(r){let e={x:I(r,"x","ceil","float32")};return k.runKernel(qo,e)}var Cx=T({ceil_:hq});function xo(r,t,e){let n={shape:r,value:t,dtype:e};return k.runKernel(Dl,{},n)}function gq(r,t,e){let n=I(r,"x","clipByValue");if(E(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return xo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(uo,o,s)}var Cr=T({clipByValue_:gq});function xq(r){return ne(r,0)}var Ix=T({concat1d_:xq});function yq(r,t){return ne(r,t)}var Sx=T({concat2d_:yq});function bq(r,t){return ne(r,t)}var vx=T({concat3d_:bq});function wq(r,t){return ne(r,t)}var Nx=T({concat4d_:wq});function Cq(r,t,e,n,o="NHWC",s=[1,1],i){let a=I(r,"x","conv2d","float32"),u=I(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Ko,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var In=T({conv2d_:Cq});function Iq(r,t,e,n,o="NWC",s=1,i){let a=I(r,"x","conv1d"),u=I(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),E(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),E(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie("conv1d",n,i),E(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),E(Ar(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),E(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=In(m,p,[1,e],n,"NHWC",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var Qp=T({conv1d_:Iq});function Sq(r,t,e,n,o,s="NHWC",i){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),E(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),E(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),E(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s==="NHWC"?a[3]:a[1],p=s==="NHWC"?u.shape[3]:u.shape[1];E(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),E(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(jo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var tm=T({conv2DBackpropInput_:Sq});function vq(r,t,e,n,o,s){let i=I(r,"x","conv2dTranspose"),a=I(t,"filter","conv2dTranspose");return tm(e,i,a,n,o,"NHWC",s)}var em=T({conv2dTranspose_:vq});function Nq(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=I(r,"x","conv3d"),a=I(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),E(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),E(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),E(Ar(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),E(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Al,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Tx=T({conv3d_:Nq});function Tq(r,t,e,n,o){E(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];E(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),E(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),E(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),E(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),E(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(dp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3DBackpropInput_:Tq});function kq(r,t,e,n,o){let s=I(r,"x","conv3dTranspose"),i=I(t,"filter","conv3dTranspose");return kx(e,s,i,n,o)}var Ex=T({conv3dTranspose_:kq});function Eq(r){let e={x:I(r,"x","cos","float32")};return k.runKernel(Xo,e)}var Jl=T({cos_:Eq});function _q(r){let e={x:I(r,"x","cosh","float32")};return k.runKernel(Yo,e)}var rm=T({cosh_:_q});function Aq(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(fa,s,i)}var Xu=T({cumprod_:Aq});function $q(r,t=0,e=!1,n=!1){let s={x:I(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Zo,s,i)}var nm=T({cumsum_:$q});function Dq(r,t,e,n=!1){let o=I(r,"x","denseBincount"),s=I(t,"weights","denseBincount");E(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),E(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),E(e>=0,()=>`size must be non-negative, but got ${e}.`),E(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(hp,i,a)}var ch=T({denseBincount_:Dq});function Rq(r,t,e="NHWC"){let n=I(r,"x","depthToSpace","float32"),o=e==="NHWC"?n.shape[1]:n.shape[2],s=e==="NHWC"?n.shape[2]:n.shape[3],i=e==="NHWC"?n.shape[3]:n.shape[1];E(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),E(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying +Expected: ${s}.`)}typeof expect!="undefined"&&expect().nothing()}function _H(r,t){r().then(()=>t.fail(),()=>t()),typeof expect!="undefined"&&expect().nothing()}function AH(r,t){let e=typeof t=="string"||typeof t=="number"||typeof t=="boolean"?[t]:t;return Go(r)||Go(r[0])||Go(t)||Go(t[0])?YS(r,e,(n,o)=>n==o):YS(r,t,(n,o)=>ZS(n,o,0))}function PE(r,t,e){if(e==null&&(e=ax()),!ZS(r,t,e))throw new Error(`Numbers differ: actual === ${r}, expected === ${t}`);typeof expect!="undefined"&&expect().nothing()}function ZS(r,t,e){return!isFinite(r)&&!isFinite(t)?!0:!(isNaN(r)||isNaN(t)||Math.abs(r-t)>e)}function $H(r,t,e){for(let n=0;ne)throw new Error(`Value out of range:${r[n]} low: ${t}, high: ${e}`)}function DH(r,t){let e=new Float32Array(r),n=new Float32Array(t);if(e.length!==n.length)throw new Error(`Expected ArrayBuffer to be of length ${n.length}, but it was ${e.length}`);for(let o=0;o{t.addEventListener("loadeddata",n=>e(t)),t.load()})}async function FH(r){await r.play(),"requestVideoFrameCallback"in r&&await new Promise(t=>{r.requestVideoFrameCallback(t)})}var zE="4.1.0";function OH(r,t){let e=v(r,"a","add"),n=v(t,"b","add");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Qn,o)}var X=T({add_:OH});function PH(r,t){let e=v(r,"a","floorDiv"),n=v(t,"b","floorDiv");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(os,o)}var Zp=T({floorDiv_:PH});function LH(r,t){let e=v(r,"a","div"),n=v(t,"b","div");if([e,n]=Ut(e,n),e.dtype==="int32"&&n.dtype==="int32")return Zp(e,n);let o={a:e,b:n},s={};return k.runKernel(ts,o,s)}var pt=T({div_:LH});function MH(r,t){let e=v(r,"a","mul"),n=v(t,"b","mul");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(xs,o)}var D=T({mul_:MH});function zH(r){let t=v(r,"x","abs");if(t.dtype==="complex64"){let e={x:t};return k.runKernel(Dl,e)}else{let e={x:t};return k.runKernel(ui,e)}}var Ee=T({abs_:zH});function BH(r){let e={x:v(r,"x","acos")};return k.runKernel(ua,e)}var lx=T({acos_:BH});function VH(r){let e={x:v(r,"x","acosh")};return k.runKernel(ca,e)}var ux=T({acosh_:VH});function GH(r){_(Array.isArray(r),()=>"The argument passed to tf.addN() must be a list of tensors"),_(r.length>=1,()=>`Must pass at least one tensor to tf.addN(), but got ${r.length}`);let t=r.map((o,s)=>v(o,`tensors${s}`,"addN")),e=t[0];t.forEach(o=>{if(o.dtype!==e.dtype)throw new Error("All tensors passed to tf.addN() must have the same dtype")}),t.forEach(o=>{if(!On(o.shape,e.shape))throw new Error("All tensors passed to tf.addN() must have the same shape")});let n=t;return k.runKernel(Wo,n)}var BE=T({addN_:GH});function WH(r,t=null,e=!1){let o={x:v(r,"x","all","bool")},s={axis:t,keepDims:e};return k.runKernel(pa,o,s)}var Jp=T({all_:WH});function UH(r,t=null,e=!1){let o={x:v(r,"x","any","bool")},s={axis:t,keepDims:e};return k.runKernel(ma,o,s)}var ju=T({any_:UH});function HH(r,t=0){let n={x:v(r,"x","argMax")},o={axis:t};return k.runKernel(Uo,n,o)}var Ri=T({argMax_:HH});function qH(r,t=0){let n={x:v(r,"x","argMin")},o={axis:t};return k.runKernel(Al,n,o)}var cx=T({argMin_:qH});function KH(r){let e={x:v(r,"x","asin")};return k.runKernel(fa,e)}var px=T({asin_:KH});function jH(r){let e={x:v(r,"x","asinh")};return k.runKernel(da,e)}var mx=T({asinh_:jH});function XH(r){let e={x:v(r,"x","atan")};return k.runKernel(ha,e)}var fx=T({atan_:XH});function YH(r,t){let e=v(r,"a","atan2"),n=v(t,"b","atan2");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(xa,o)}var dx=T({atan2_:YH});function ZH(r){let e={x:v(r,"x","atanh")};return k.runKernel(ga,e)}var hx=T({atanh_:ZH});function JH(r,t,e,n,o="NHWC",s){let i=r[3],a=[...t,i],u=GE(o);return Yu(r,a,e,s,n,null,null,u)}function QS(r,t,e,n,o,s,i="channelsLast"){let[a,u]=gx(t),l;if(i==="channelsLast")l=[a,u,r[3],r[3]];else if(i==="channelsFirst")l=[a,u,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return Yu(r,l,e,n,o,s,!1,i)}function QH(r,t,e,n,o,s,i="NDHWC"){let[a,u,l]=JS(t),c,p;if(i==="NDHWC")p="channelsLast",c=[a,u,l,r[4],r[4]];else if(i==="NCDHW")p="channelsFirst",c=[a,u,l,r[1],r[1]];else throw new Error(`Unknown dataFormat ${i}`);return VE(r,c,e,n,o,!1,p,s)}function Yu(r,t,e,n,o,s,i=!1,a="channelsLast"){let[u,l,c,p]=[-1,-1,-1,-1];if(a==="channelsLast")[u,l,c,p]=r;else if(a==="channelsFirst")[u,p,l,c]=r;else throw new Error(`Unknown dataFormat ${a}`);let[m,f,,d]=t,[h,g]=gx(e),[x,b]=gx(n),w=Qp(m,x),C=Qp(f,b),{padInfo:N,outHeight:E,outWidth:A}=rq(o,l,c,h,g,w,C,s,a),$=i?d*p:d,F;return a==="channelsFirst"?F=[u,$,E,A]:a==="channelsLast"&&(F=[u,E,A,$]),{batchSize:u,dataFormat:a,inHeight:l,inWidth:c,inChannels:p,outHeight:E,outWidth:A,outChannels:$,padInfo:N,strideHeight:h,strideWidth:g,filterHeight:m,filterWidth:f,effectiveFilterHeight:w,effectiveFilterWidth:C,dilationHeight:x,dilationWidth:b,inShape:r,outShape:F,filterShape:t}}function VE(r,t,e,n,o,s=!1,i="channelsLast",a){let[u,l,c,p,m]=[-1,-1,-1,-1,-1];if(i==="channelsLast")[u,l,c,p,m]=r;else if(i==="channelsFirst")[u,m,l,c,p]=r;else throw new Error(`Unknown dataFormat ${i}`);let[f,d,h,,g]=t,[x,b,w]=JS(e),[C,N,E]=JS(n),A=Qp(f,C),$=Qp(d,N),F=Qp(h,E),{padInfo:P,outDepth:V,outHeight:G,outWidth:W}=nq(o,l,c,p,x,b,w,A,$,F,a),q=s?g*m:g,H;return i==="channelsFirst"?H=[u,q,V,G,W]:i==="channelsLast"&&(H=[u,V,G,W,q]),{batchSize:u,dataFormat:i,inDepth:l,inHeight:c,inWidth:p,inChannels:m,outDepth:V,outHeight:G,outWidth:W,outChannels:q,padInfo:P,strideDepth:x,strideHeight:b,strideWidth:w,filterDepth:f,filterHeight:d,filterWidth:h,effectiveFilterDepth:A,effectiveFilterHeight:$,effectiveFilterWidth:F,dilationDepth:C,dilationHeight:N,dilationWidth:E,inShape:r,outShape:H,filterShape:t}}function tq(r,t,e,n,o){n==null&&(n=t0(r,t,e));let s=r[0],i=r[1],a=Xu((s-t+2*n)/e+1,o),u=Xu((i-t+2*n)/e+1,o);return[a,u]}function eq(r,t,e,n,o,s){o==null&&(o=t0(r,t,n));let i=r[0],a=r[1],u=r[2],l=Xu((i-t+2*o)/n+1,s),c=Xu((a-t+2*o)/n+1,s),p=Xu((u-t+2*o)/n+1,s);return[l,c,p,e]}function t0(r,t,e,n=1){let o=Qp(t,n);return Math.floor((r[0]*(e-1)-e+o)/2)}function gx(r){return typeof r=="number"?[r,r,r]:r.length===2?[r[0],r[1],1]:r}function JS(r){return typeof r=="number"?[r,r,r]:r}function Qp(r,t){return t<=1?r:r+(r-1)*(t-1)}function rq(r,t,e,n,o,s,i,a,u){let l,c,p;if(typeof r=="number"){l={top:r,bottom:r,left:r,right:r,type:r===0?"VALID":"NUMBER"};let f=tq([t,e],s,n,r,a);c=f[0],p=f[1]}else if(r==="same"){c=Math.ceil(t/n),p=Math.ceil(e/o);let m=Math.max(0,(c-1)*n+s-t),f=Math.max(0,(p-1)*o+i-e),d=Math.floor(m/2),h=m-d,g=Math.floor(f/2),x=f-g;l={top:d,bottom:h,left:g,right:x,type:"SAME"}}else if(r==="valid")l={top:0,bottom:0,left:0,right:0,type:"VALID"},c=Math.ceil((t-s+1)/n),p=Math.ceil((e-i+1)/o);else if(typeof r=="object"){let m=u==="channelsLast"?r[1][0]:r[2][0],f=u==="channelsLast"?r[1][1]:r[2][1],d=u==="channelsLast"?r[2][0]:r[3][0],h=u==="channelsLast"?r[2][1]:r[3][1];l={top:m,bottom:f,left:d,right:h,type:m===0&&f===0&&d===0&&h===0?"VALID":"EXPLICIT"},c=Xu((t-s+m+f)/n+1,a),p=Xu((e-i+d+h)/o+1,a)}else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:l,outHeight:c,outWidth:p}}function nq(r,t,e,n,o,s,i,a,u,l,c){let p,m,f,d;if(typeof r=="number"){p={top:r,bottom:r,left:r,right:r,front:r,back:r,type:r===0?"VALID":"NUMBER"};let g=eq([t,e,n,1],a,1,o,r,c);m=g[0],f=g[1],d=g[2]}else if(r==="same"){m=Math.ceil(t/o),f=Math.ceil(e/s),d=Math.ceil(n/i);let h=(m-1)*o+a-t,g=(f-1)*s+u-e,x=(d-1)*i+l-n,b=Math.floor(h/2),w=h-b,C=Math.floor(g/2),N=g-C,E=Math.floor(x/2),A=x-E;p={top:C,bottom:N,left:E,right:A,front:b,back:w,type:"SAME"}}else if(r==="valid")p={top:0,bottom:0,left:0,right:0,front:0,back:0,type:"VALID"},m=Math.ceil((t-a+1)/o),f=Math.ceil((e-u+1)/s),d=Math.ceil((n-l+1)/i);else throw Error(`Unknown padding parameter: ${r}`);return{padInfo:p,outDepth:m,outHeight:f,outWidth:d}}function Xu(r,t){if(!t)return Math.trunc(r);switch(t){case"round":return Math.round(r);case"ceil":return Math.ceil(r);case"floor":return Math.floor(r);default:throw new Error(`Unknown roundingMode ${t}`)}}function no(r){let[t,e,n]=gx(r);return t===1&&e===1&&n===1}function Dr(r,t){return no(r)||no(t)}function GE(r){if(r==="NHWC")return"channelsLast";if(r==="NCHW")return"channelsFirst";throw new Error(`Unknown dataFormat ${r}`)}function Ie(r,t,e){if(e!=null){if(typeof t=="string")throw Error(`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);if(typeof t=="number")_(la(t),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${t}.`);else if(typeof t=="object")t.forEach(n=>{n.forEach(o=>{_(la(o),()=>`Error in ${r}: pad must be an integer when using dimRoundingMode ${e} but got pad ${o}.`)})});else throw Error(`Error in ${r}: Unknown padding parameter: ${t}`)}}function oq(r,t){let n={x:v(r,"x","reshape","string_or_numeric")},o={shape:t};return k.runKernel(xi,n,o)}var R=T({reshape_:oq});function sq(r,t,e,n,o){let s=v(r,"x","avgPool","float32"),i=1;_(Dr(e,i),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`);let a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in avgPool: x must be rank 4 but got rank ${a.rank}.`),Ie("avgPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(Ho,l,c);return p=J(p,s.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var Ql=T({avgPool_:sq});function iq(r,t,e,n,o,s="NDHWC"){let i=v(r,"x","avgPool3d","float32"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in avgPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in avgPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("avgPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel($l,l,c);return p=J(p,a.dtype),u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var xx=T({avgPool3d_:iq});function aq(r,t=0){_(r.length>=1,()=>"Pass at least one tensor to concat");let e=Za(r,"tensors","concat","string_or_numeric");if(e[0].dtype==="complex64"&&e.forEach(s=>{if(s.dtype!=="complex64")throw new Error(`Cannot concatenate complex64 tensors with a tensor + with dtype ${s.dtype}. `)}),e.length===1)return an(e[0]);let n=e,o={axis:t};return k.runKernel(pi,n,o)}var oe=T({concat_:aq});function lq(r){let e={x:v(r,"x","sigmoid","float32")};return k.runKernel(Ds,e)}var Jr=T({sigmoid_:lq});function uq(r,t,e){let n=v(r,"x","slice","string_or_numeric");if(n.rank===0)throw new Error("Slicing scalar is not possible");let o={x:n},s={begin:t,size:e};return k.runKernel(bi,o,s)}var Rt=T({slice_:uq});function cq(r){let e={x:v(r,"x","tanh","float32")};return k.runKernel(zs,e)}var Fi=T({tanh_:cq});function pq(r,t,e,n,o,s){let i=v(r,"forgetBias","basicLSTMCell"),a=v(t,"lstmKernel","basicLSTMCell"),u=v(e,"lstmBias","basicLSTMCell"),l=v(n,"data","basicLSTMCell"),c=v(o,"c","basicLSTMCell"),p=v(s,"h","basicLSTMCell"),m=oe([l,p],1),f=Lt(m,a),d=X(f,u),h=d.shape[0],g=d.shape[1]/4,x=[h,g],b=Rt(d,[0,0],x),w=Rt(d,[0,g],x),C=Rt(d,[0,g*2],x),N=Rt(d,[0,g*3],x),E=X(D(Jr(b),Fi(w)),D(c,Jr(X(i,C)))),A=D(Fi(E),Jr(N));return[E,A]}var WE=T({basicLSTMCell_:pq});function mq(r,t,e){let n=v(r,"x","batchToSpaceND"),o=t.reduce((a,u)=>a*u);_(n.rank>=1+t.length,()=>`input rank is ${n.rank} but should be > than blockShape.length ${t.length}`),_(e.length===t.length,()=>`crops.length is ${e.length} but should be equal to blockShape.length ${t.length}`),_(n.shape[0]%o===0,()=>`input tensor batch is ${n.shape[0]} but is not divisible by the product of the elements of blockShape ${t.join(" * ")} === ${o}`);let s={x:n},i={blockShape:t,crops:e};return k.runKernel(ci,s,i)}var tu=T({batchToSpaceND_:mq});function UE(r){let t;return r.rank===0||r.rank===1?t=R(r,[1,1,1,r.size]):r.rank===2?t=R(r,[1,1,r.shape[0],r.shape[1]]):r.rank===3?t=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]):t=r,t}function fq(r,t,e,n,o,s){s==null&&(s=.001);let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;n!=null&&(c=v(n,"offset","batchNorm")),_(a.rank===u.rank,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),_(c==null||a.rank===c.rank,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),_(l==null||a.rank===l.rank,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let m={x:UE(i),scale:l,offset:c,mean:a,variance:u},f={varianceEpsilon:s},d=k.runKernel(ss,m,f);return R(d,i.shape)}var Oi=T({batchNorm_:fq});function dq(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),_(i.rank===2,()=>`Error in batchNorm2D: x must be rank 2 but got rank ${i.rank}.`),_(a.rank===2||a.rank===1,()=>`Error in batchNorm2D: mean must be rank 2 or rank 1 but got rank ${a.rank}.`),_(u.rank===2||u.rank===1,()=>`Error in batchNorm2D: variance must be rank 2 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===2||l.rank===1,()=>`Error in batchNorm2D: scale must be rank 2 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===2||c.rank===1,()=>`Error in batchNorm2D: offset must be rank 2 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var yx=T({batchNorm2d_:dq});function hq(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),_(i.rank===3,()=>`Error in batchNorm3D: x must be rank 3 but got rank ${i.rank}.`),_(a.rank===3||a.rank===1,()=>`Error in batchNorm3D: mean must be rank 3 or rank 1 but got rank ${a.rank}.`),_(u.rank===3||u.rank===1,()=>`Error in batchNorm3D: variance must be rank 3 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===3||l.rank===1,()=>`Error in batchNorm3D: scale must be rank 3 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===3||c.rank===1,()=>`Error in batchNorm3D: offset must be rank 3 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var bx=T({batchNorm3d_:hq});function gq(r,t,e,n,o,s){let i=v(r,"x","batchNorm"),a=v(t,"mean","batchNorm"),u=v(e,"variance","batchNorm"),l;o!=null&&(l=v(o,"scale","batchNorm"));let c;return n!=null&&(c=v(n,"offset","batchNorm")),_(i.rank===4,()=>`Error in batchNorm4D: x must be rank 4 but got rank ${i.rank}.`),_(a.rank===4||a.rank===1,()=>`Error in batchNorm4D: mean must be rank 4 or rank 1 but got rank ${a.rank}.`),_(u.rank===4||u.rank===1,()=>`Error in batchNorm4D: variance must be rank 4 or rank 1 but got rank ${u.rank}.`),l!=null&&_(l.rank===4||l.rank===1,()=>`Error in batchNorm4D: scale must be rank 4 or rank 1 but got rank ${l.rank}.`),c!=null&&_(c.rank===4||c.rank===1,()=>`Error in batchNorm4D: offset must be rank 4 or rank 1 but got rank ${c.rank}.`),Oi(i,a,u,c,l,s)}var wx=T({batchNorm4d_:gq});function xq(r,t,e){let n=v(r,"x","bincount"),o=v(t,"weights","bincount");_(n.dtype==="int32",()=>`Error in bincount: input dtype must be int32, but got ${n.dtype}`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(o.size===n.size||o.size===0,()=>`Error in bincount: weights must have the same size as input or0-length, but got input shape: ${n.shape}, weights shape: ${o.shape}.`);let s={x:n,weights:o},i={size:e};return k.runKernel(cp,s,i)}var Cx=T({bincount_:xq});function yq(r,t){let e=v(r,"s0","broadcastArgs","int32"),n=v(t,"s1","broadcastArgs","int32");if(e.rank!==1)throw new Error(`broadcastArgs(): first input must be a vector (rank=1). Has rank ${e.rank}`);if(n.rank!==1)throw new Error(`broadcastArgs(): second input must be a vector (rank=1). Has rank ${n.rank}`);let o={s0:e,s1:n};return k.runKernel(pp,o)}var HE=T({broadcastArgs_:yq});function bq(r,t){let e=v(r,"broadcastTo","x"),n=e.shape;if(Pe(t),t.lengthe.rank){let l=e.shape.slice();for(;l.length=0;l--)if(o[l]===t[l])s[l]=1;else if(e.shape[l]!==1)throw new Error(`broadcastTo(): [${n}] cannot be broadcast to [${t}].`);if(s.map((l,c)=>l>1?c:-1).filter(l=>l>=0).length===0)return an(e);let a={x:e},u={reps:s};return k.runKernel(to,a,u)}var Pi=T({broadcastTo_:bq});function wq(r){let e={x:v(r,"x","ceil","float32")};return k.runKernel(Ko,e)}var Ix=T({ceil_:wq});function bo(r,t,e){Pe(r);let n={shape:r,value:t,dtype:e};return k.runKernel(Ol,{},n)}function Cq(r,t,e){let n=v(r,"x","clipByValue");if(_(t<=e,()=>`Error in clip: min (${t}) must be less than or equal to max (${e}).`),t===e)return bo(n.shape,t,n.dtype);let o={x:n},s={clipValueMin:t,clipValueMax:e};return k.runKernel(po,o,s)}var vr=T({clipByValue_:Cq});function Iq(r){return oe(r,0)}var vx=T({concat1d_:Iq});function vq(r,t){return oe(r,t)}var Sx=T({concat2d_:vq});function Sq(r,t){return oe(r,t)}var Nx=T({concat3d_:Sq});function Nq(r,t){return oe(r,t)}var Tx=T({concat4d_:Nq});function Tq(r,t,e,n,o="NHWC",s=[1,1],i){let a=v(r,"x","conv2d","float32"),u=v(t,"filter","conv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in conv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in conv2d: filter must be rank 4, but got rank ${u.rank}.`),Ie("conv2d",n,i);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in conv2d: depth of input (${p}) must match input depth for filter ${u.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Sn=T({conv2d_:Tq});function kq(r,t,e,n,o="NWC",s=1,i){let a=v(r,"x","conv1d"),u=v(t,"filter","conv1d"),l=a,c=!1;a.rank===2&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1]])),_(l.rank===3,()=>`Error in conv1d: input must be rank 3, but got rank ${l.rank}.`),_(u.rank===3,()=>`Error in conv1d: filter must be rank 3, but got rank ${u.rank}.`),Ie("conv1d",n,i),_(l.shape[2]===u.shape[1],()=>`Error in conv1d: depth of input (${l.shape[2]}) must match input depth for filter ${u.shape[1]}.`),_(Dr(e,s),()=>`Error in conv1D: Either stride or dilation must be 1. Got stride ${e} and dilation '${s}'`),_(o==="NWC",()=>`Error in conv1d: got dataFormat of ${o} but only NWC is currently supported.`);let p=R(u,[1,u.shape[0],u.shape[1],u.shape[2]]),m=R(l,[l.shape[0],1,l.shape[1],l.shape[2]]),g=Sn(m,p,[1,e],n,"NHWC",[1,s],i);return c?R(g,[g.shape[2],g.shape[3]]):R(g,[g.shape[0],g.shape[2],g.shape[3]])}var tm=T({conv1d_:kq});function Eq(r,t,e,n,o,s="NHWC",i){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let a=r,u=t,l=!1;t.rank===3&&(l=!0,u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]),a=[1,r[0],r[1],r[2]]),_(a.length===4,()=>`Error in conv2dDerInput: inShape must be length 4, but got length ${a.length}.`),_(u.rank===4,()=>`Error in conv2dDerInput: dy must be rank 4, but got rank ${u.rank}`),_(e.rank===4,()=>`Error in conv2dDerInput: filter must be rank 4, but got rank ${e.rank}`);let c=s==="NHWC"?a[3]:a[1],p=s==="NHWC"?u.shape[3]:u.shape[1];_(c===e.shape[2],()=>`Error in conv2dDerInput: depth of input (${c}) must match input depth for filter ${e.shape[2]}.`),_(p===e.shape[3],()=>`Error in conv2dDerInput: depth of output (${p}) must match output depth for filter ${e.shape[3]}.`),Ie("conv2dDerInput",o,i);let m={dy:u,filter:e},f={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,inputShape:a},d=k.runKernel(Xo,m,f);return l?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var em=T({conv2DBackpropInput_:Eq});function _q(r,t,e,n,o,s){let i=v(r,"x","conv2dTranspose"),a=v(t,"filter","conv2dTranspose");return em(e,i,a,n,o,"NHWC",s)}var rm=T({conv2dTranspose_:_q});function Aq(r,t,e,n,o="NDHWC",s=[1,1,1]){let i=v(r,"x","conv3d"),a=v(t,"filter","conv3d"),u=i,l=!1;i.rank===4&&(l=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(u.rank===5,()=>`Error in conv3d: input must be rank 5, but got rank ${u.rank}.`),_(a.rank===5,()=>`Error in conv3d: filter must be rank 5, but got rank ${a.rank}.`),_(u.shape[4]===a.shape[3],()=>`Error in conv3d: depth of input (${u.shape[4]}) must match input depth for filter ${a.shape[3]}.`),_(Dr(e,s),()=>`Error in conv3D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),_(o==="NDHWC",()=>`Error in conv3d: got dataFormat of ${o} but only NDHWC is currently supported.`);let c={x:u,filter:a},p={strides:e,pad:n,dataFormat:o,dilations:s},m=k.runKernel(Rl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var kx=T({conv3d_:Aq});function $q(r,t,e,n,o){_(r.length===t.rank,()=>`Length of inShape (${r.length}) and rank of dy (${t.rank}) must match`);let s=r,i=t,a=!1;t.rank===4&&(a=!0,i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]]),s=[1,r[0],r[1],r[2],r[3]]);let u=s[4],l=i.shape[4];_(s.length===5,()=>`Error in conv3dDerInput: inShape must be length 5, but got length ${s.length}.`),_(i.rank===5,()=>`Error in conv3dDerInput: dy must be rank 5, but got rank ${i.rank}`),_(e.rank===5,()=>`Error in conv3dDerInput: filter must be rank 5, but got rank ${e.rank}`),_(u===e.shape[3],()=>`Error in conv3dDerInput: depth of input (${u}) must match input depth for filter ${e.shape[3]}.`),_(l===e.shape[4],()=>`Error in conv3dDerInput: depth of output (${l}) must match output depth for filter ${e.shape[4]}.`);let c={dy:i,filter:e},p={pad:o,strides:n,inputShape:s},m=k.runKernel(hp,c,p);return a?R(m,[m.shape[1],m.shape[2],m.shape[3],m.shape[4]]):m}var Ex=T({conv3DBackpropInput_:$q});function Dq(r,t,e,n,o){let s=v(r,"x","conv3dTranspose"),i=v(t,"filter","conv3dTranspose");return Ex(e,s,i,n,o)}var _x=T({conv3dTranspose_:Dq});function Rq(r){let e={x:v(r,"x","cos","float32")};return k.runKernel(Yo,e)}var eu=T({cos_:Rq});function Fq(r){let e={x:v(r,"x","cosh","float32")};return k.runKernel(Zo,e)}var nm=T({cosh_:Fq});function Oq(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumprod")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(ya,s,i)}var Zu=T({cumprod_:Oq});function Pq(r,t=0,e=!1,n=!1){let s={x:v(r,"x","cumsum")},i={axis:t,exclusive:e,reverse:n};return k.runKernel(Jo,s,i)}var om=T({cumsum_:Pq});function Lq(r,t,e,n=!1){let o=v(r,"x","denseBincount"),s=v(t,"weights","denseBincount");_(o.dtype==="int32",()=>`Error in denseBincount: input dtype must be int32, but got ${o.dtype}`),_(o.rank<=2,()=>`Error in denseBincount: input must be at most rank 2, but got rank ${o.rank}.`),_(e>=0,()=>`size must be non-negative, but got ${e}.`),_(s.size===o.size||s.size===0,()=>`Error in denseBincount: weights must have the same shape as x or 0-length, but got x shape: ${o.shape}, weights shape: ${s.shape}.`);let i={x:o,weights:s},a={size:e,binaryOutput:n};return k.runKernel(gp,i,a)}var ph=T({denseBincount_:Lq});function Mq(r,t,e="NHWC"){let n=v(r,"x","depthToSpace","float32"),o=e==="NHWC"?n.shape[1]:n.shape[2],s=e==="NHWC"?n.shape[2]:n.shape[3],i=e==="NHWC"?n.shape[3]:n.shape[1];_(t>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${t}`),_(o*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${o} and ${t} for depthToSpace with input shape - ${n.shape}`),E(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying + ${n.shape}`),_(s*t>=0,()=>`Negative dimension size caused by overflow when multiplying ${s} and ${t} for depthToSpace with input shape - ${n.shape}`),E(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(ha,a,u)}var _x=T({depthToSpace_:Rq});function Fq(r,t,e,n,o="NHWC",s=[1,1],i){let a=I(r,"x","depthwiseConv2d","float32"),u=I(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),E(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];E(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Jo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Fi=T({depthwiseConv2d_:Fq});function Oq(r){let e={x:I(r,"x","diag")};return k.runKernel(yp,e)}var WE=T({diag_:Oq});function Pq(r,t,e,n,o=[1,1],s="NHWC"){let i=I(r,"x","dilation2d"),a=I(t,"filter","dilation2d");E(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),E(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),E(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel($l,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var Ax=T({dilation2d_:Pq});function Lq(r,t){let e=I(r,"a","equal","string_or_numeric"),n=I(t,"b","equal","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(xa,o)}var $r=T({equal_:Lq});function Mq(r,t,e){let n=I(t,"a","where"),o=I(e,"b","where"),s=I(r,"condition","where","bool"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Ri(s,i),u=Ri(n,i),l=Ri(o,i),c={condition:a,t:u,e:l};return k.runKernel(hi,c)}var _e=T({where_:Mq});function zq(r){let e={x:I(r,"x","zerosLike")};return k.runKernel(wi,e)}var It=T({zerosLike_:zq});function Bq(r,t){let e=I(r,"a","div"),n=I(t,"b","div");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=$r(n,s);return _e(i,s,o)}var $x=T({divNoNan_:Bq});function Vq(r,t){let e=I(r,"t1","dot"),n=I(t,"t2","dot");E((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(E(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Dx=T({dot_:Vq});function Gq(r,...t){let e=t.map((o,s)=>I(o,`tensors${s}`,"einsum")),n={equation:r};return k.runKernel(bp,e,n)}var UE=T({einsum_:Gq});function Wq(r){let e={x:I(r,"x","elu","float32")};return k.runKernel(ts,e)}var Oi=T({elu_:Wq});function Uq(r){let t=I(r,"x","erf");E(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return k.runKernel(ga,e)}var Rx=T({erf_:Uq});function Jv(r,t){for(let e=0;er[s]);return[e,o]}function yo(r,t){let e=t.map(n=>1);return HE(r,e,t)}function Hq(r,t,e){E(Jv(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function t0(r,t){if(Jv(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function ph(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function qq(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return k.runKernel(ui,n,o)}var rr=T({expandDims_:rK});function nK(r){let e={x:I(r,"x","expm1")};return k.runKernel(ya,e)}var Ox=T({expm1_:nK});function oK(r,t){let e=I(r,"x","tile","string_or_numeric");E(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(Jn,n,o)}var Dr=T({tile_:oK});function sK(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got - rank ${s.rank}.`),E(na(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Rl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var zx=T({localResponseNormalization_:gK});function xK(r){let e={x:I(r,"x","log","float32")};return k.runKernel(as,e)}var Sr=T({log_:xK});function yK(r){let e={x:I(r,"x","log1p")};return k.runKernel(ka,e)}var tu=T({log1p_:yK});function bK(r){return E(oi(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=I(t,"x","tf.grad","string_or_numeric"),o=e!=null?I(e,"dy","tf.grad"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Vx(i),i[0]})}}function wK(r){return E(oi(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{E(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=ja(t,"args","tf.grads","string_or_numeric"),o=e!=null?I(e,"dy","tf.grads"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&$e(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Vx(i),i})}}function CK(r){return E(oi(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{E(t instanceof Ft,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),E(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Vx(n),{grad:n[0],value:o}}}function IK(r){return E(oi(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{E(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),E(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=k.gradients(()=>r(...t),t,e);return e!=null&&$e(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Vx(n.grads),n}}function Bx(r,t){E(oi(r),()=>"The f passed in variableGrads(f) must be a function"),E(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ka),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),E(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);E(a.some(l=>l!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),E(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function un(r){return k.customGrad(r)}function Vx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that - the f you passed encloses all operations that lead from x to y.`)}function SK(r){let e={x:I(r,"x","softplus")};return k.runKernel(Va,e)}var zs=T({softplus_:SK});function vK(r){let t=I(r,"x","logSigmoid");return un(n=>({value:Ht(zs(Ht(n))),gradFunc:i=>D(i,Yr(Ht(n)))}))(t)}var Gx=T({logSigmoid_:vK});function NK(r,t){let e=I(r,"a","sub"),n=I(t,"b","sub");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Fs,o)}var ct=T({sub_:NK});function TK(r,t=-1){let e=I(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return un((o,s)=>{let a=Ir(o,t,!0),u=ct(o,a),l=ct(J(u,"float32"),Sr(ft(er(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=er(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var sm=T({logSoftmax_:TK});function kK(r,t=null,e=!1){let n=I(r,"x","logSumExp"),o=lr(t,n.shape),s=Ir(n,o,!0),i=ct(n,s),a=er(i),u=ft(a,o),l=Sr(u),c=X(R(s,l.shape),l);if(e){let p=yo(c.shape,o);return R(c,p)}return c}var im=T({logSumExp_:kK});function EK(r,t){let e=I(r,"a","logicalAnd","bool"),n=I(t,"b","logicalAnd","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ea,o)}var Rr=T({logicalAnd_:EK});function _K(r){let e={x:I(r,"x","logicalNot","bool")};return k.runKernel(_a,e)}var eu=T({logicalNot_:_K});function AK(r,t){let e=I(r,"a","logicalOr","bool"),n=I(t,"b","logicalOr","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Aa,o)}var am=T({logicalOr_:AK});function $K(r,t){let e=I(r,"a","logicalXor","bool"),n=I(t,"b","logicalXor","bool");return Pt(e.shape,n.shape),Rr(am(r,t),eu(Rr(r,t)))}var Wx=T({logicalXor_:$K});var Ux=2147483648;function DK(r,t,e="left"){let n=I(r,"sortedSequence","searchSorted"),o=I(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Jt(u.shape)>=Ux)throw new Error(`values tensor size must less than ${Ux}`);if(a.shape[1]>=Ux)throw new Error(`trailing dim_size must less than ${Ux} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Pp,l,c)}var mh=T({searchSorted_:DK});function jE(r,t){return mh(r,t,"left")}function RK(r,t,e,n,o){let s=I(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),E(Ar(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(cs,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var ru=T({maxPool_:RK});function FK(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=I(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),E(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),E(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Fl,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var Hx=T({maxPool3d_:FK});function OK(r,t,e,n,o=!1){let i={x:I(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(Ep,i,a);return{result:u[0],indexes:u[1]}}var XE=T({maxPoolWithArgmax_:OK});function PK(r,t){let e=I(r,"a","maximum"),n=I(t,"b","maximum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(us,o)}var Sn=T({maximum_:PK});function LK(r,t=null,e=!1){let o={x:I(r,"x","mean")},s={axis:t,keepDims:e};return k.runKernel(ps,o,s)}var ve=T({mean_:LK});function Ne(r,t="float32"){if(t==="complex64"){let n=Ne(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=ip(Jt(r),t);return k.makeTensor(e,r,t)}function cr(r,t="float32"){if(t==="complex64"){let n=cr(r,"float32"),o=Ne(r,"float32");return wn(n,o)}let e=Wd(Jt(r),t);return k.makeTensor(e,r,t)}function YE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=I(r,"x","meshgrid",r instanceof Ft?r.dtype:"float32");if(t===void 0)return[n];let o=I(t,"y","meshgrid",t instanceof Ft?t.dtype:"float32"),s=Jt(n.shape),i=Jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(cr([i,1],n.dtype),n),Lt(o,cr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,cr([1,i],n.dtype)),Lt(cr([s,1],o.dtype),o)])}function MK(r,t){let e=I(r,"a","minimum"),n=I(t,"b","minimum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(fs,o)}var Mi=T({minimum_:MK});function zK(r,t,e){E(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=I(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");E(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),E(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(ds,i,s)}var qx=T({mirrorPad_:zK});function BK(r,t){let e=I(r,"a","mod"),n=I(t,"b","mod");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel($a,o)}var Kx=T({mod_:BK});function VK(r,t=null,e=!1){r=I(r,"x","moments");let n=lr(t,r.shape),o=ve(r,n,e),s=o.shape;e||(s=yo(o.shape,n));let i=Mt(ct(J(r,"float32"),R(o,s))),a=ve(i,n,e);return{mean:o,variance:a}}var Zu=T({moments_:VK});function GK(r,t,e,n){let o=I(t,"data","multiRNNCell"),s=ja(e,"c","multiRNNCell"),i=ja(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(_p,u,l);return i===1?R(c,[c.size]):c}var JE=T({multinomial_:WK});function UK(r,t){let e=I(r,"a","notEqual","string_or_numeric"),n=I(t,"b","notEqual","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Bs=T({notEqual_:UK});function HK(r){let e={x:I(r,"x","onesLike")};return k.runKernel(mi,e)}var yr=T({onesLike_:HK});function qK(r,t){let e=I(r,"v1","outerProduct"),n=I(t,"v2","outerProduct");E(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var QE=T({outerProduct_:qK});function KK(r,t,e=0){let n=I(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(xs,s,o)}var cn=T({pad_:KK});function jK(r,t,e=0){return E(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),cn(r,[t],e)}var t_=T({pad1d_:jK});function XK(r,t,e=0){return E(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var e_=T({pad2d_:XK});function YK(r,t,e=0){return E(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var r_=T({pad3d_:YK});function ZK(r,t,e=0){return E(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),cn(r,t,e)}var n_=T({pad4d_:ZK});function JK(r,t,e){let n=I(r,"x","spaceToBatchND");E(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),E(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),E(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(xi,o,s)}var nu=T({spaceToBatchND_:JK});function QK(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=I(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),E(Ar(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=Yv(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=ej([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=tj([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:nu(u,p,d),w=(e==="avg"?()=>Yl(x,t,s,g,i):()=>ru(x,t,s,g,i))(),C=f?w:Zl(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function tj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ej(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var jx=T({pool_:QK});function rj(r,t){let e=I(r,"x","prelu"),n=I(t,"alpha","prelu"),o={x:e,alpha:n};return k.runKernel(bs,o)}var ou=T({prelu_:rj});function nj(r,t=null,e=!1){let n=I(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(ws,o,s)}var Xx=T({prod_:nj});function oj(r,t,e,n){let o=r.map((c,p)=>I(c,`tensors${p}`,"raggedGather","int32")),s=I(t,"paramsDenseValues","raggedGather"),i=I(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel(Ap,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var o_=T({raggedGather_:oj});function sj(r,t,e){let n=I(r,"starts","raggedRange"),o=I(t,"limits","raggedRange",n.dtype),s=I(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel($p,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var s_=T({raggedRange_:sj});function ij(r,t,e,n,o){let s=I(r,"shape","raggedTensorToTensor","int32"),i=I(t,"values","raggedTensorToTensor"),a=I(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>I(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Dp,l,c)}var i_=T({raggedTensorToTensor_:ij});function aj(r,t,e){let n=Jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Zx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=Qx.alea(s.toString()),this.randn=new Qu(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=Qx.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function dj(r,t,e=1,n="float32",o){if(e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new Zx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),pr(t,0)}var T_=T({reverse1d_:Ij});function Sj(r,t){let e=I(r,"x","reverse");return E(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),pr(e,t)}var k_=T({reverse2d_:Sj});function vj(r,t){let e=I(r,"x","reverse");return E(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),pr(e,t)}var E_=T({reverse3d_:vj});function Nj(r,t){let e=I(r,"x","reverse");return E(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),pr(e,t)}var __=T({reverse4d_:Nj});function Tj(r){let e={x:I(r,"x","round")};return k.runKernel(Ts,e)}var um=T({round_:Tj});function kj(r){let e={x:I(r,"x","rsqrt","float32")};return k.runKernel(ks,e)}var cm=T({rsqrt_:kj});function Ej(r){let e={x:I(r,"x","selu")};return k.runKernel(Ma,e)}var pm=T({selu_:Ej});function _j(r,t,e,n,o,s=[1,1],i="NHWC"){let a=I(r,"x","separableConv2d"),u=I(t,"depthwiseFilter","separableConv2d"),l=I(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");E(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),E(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),E(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),E(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];E(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Fi(c,u,n,o,i,s),g=In(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var mm=T({separableConv2d_:_j});async function Aj(r,t){let e=I(r,"x","setdiff1d"),n=I(t,"y","setdiff1d");E(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),E(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),E(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var hm=T({slice1d_:Fj});function Oj(r,t,e){let n=I(r,"x","slice2d");return E(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var dh=T({slice2d_:Oj});function Pj(r,t,e){let n=I(r,"x","slice3d");return E(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var gm=T({slice3d_:Pj});function Lj(r,t,e){let n=I(r,"x","slice4d");return E(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var ec=T({slice4d_:Lj});function Mj(r,t=-1){let e=I(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Ds,n,o)}var iu=T({softmax_:Mj});function zj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Cp,t)}var au=T({fft_:zj});function Bj(r){E(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var tl=T({ifft_:Bj});function Vj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=tl(o)}else{let o=[e,2*(t-1)],s=R(Za(r),[e,t]),i=R(Xl(r),[e,t]),a=pr(Rt(s,[0,1],[e,t-2]),1),u=D(pr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=ne([s,a],1),c=ne([i,u],1),p=R(wn(l,c),[o[0],o[1]]);n=tl(p)}if(n=Za(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var xm=T({irfft_:Vj});function Gj(r,t,e=0){let o={x:I(r,"x","split")},s={numOrSizeSplits:t,axis:e};return k.runKernel(yi,o,s)}var mr=T({split_:Gj});function Wj(r,t){E(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=ne([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(wn(o,s),[n,e]),a=au(i),u=Math.floor(e/2)+1,l=Za(a),c=Xl(a),p=mr(l,[u,e-u],l.shape.length-1),m=mr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(wn(p[0],m[0]),f)}var lu=T({rfft_:Wj});function Uj(r,t){let e=I(r,"a","squaredDifference"),n=I(t,"b","squaredDifference");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Rs,o,s)}var ym=T({squaredDifference_:Uj});function Hj(r,t){let e=I(r,"x","squeeze","string_or_numeric");return R(e,tv(e.shape,t).newShape)}var Mn=T({squeeze_:Hj});function qj(r,t=0){let e=ja(r,"tensors","stack","string_or_numeric");E(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&E(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return k.runKernel(fi,n,o)}var nr=T({stack_:qj});function Kj(r,t=0){let n={x:I(r,"x","step")},o={alpha:t};return k.runKernel(po,n,o)}var bo=T({step_:Kj});function jj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:I(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(Wa,c,p)}var ry=T({stridedSlice_:jj});function Xj(r){let e={x:I(r,"x","tan","float32")};return k.runKernel(Os,e)}var ny=T({tan_:Xj});function Me(r,t){Yn(r);let e=Br(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return on(r,null,e,t)}function Vs(r,t,e){if(Yn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Br(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return on(r,t,n,e)}function $_(r,t,e){if(Yn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Br(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function D_(r,t,e){if(Yn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Br(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return on(r,t,n,e)}function R_(r,t,e){if(Yn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Br(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,on(r,t,n,e)}function Yj(r,t=1,e=!0){let n=I(r,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ua,s,i);return{values:a,indices:u}}var oy=T({topk_:Yj});function Zj(r,t=0,e=1,n,o){if(n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new Qu(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=k.runKernel(Mp,n,o);return{values:s,indices:i}}var sy=T({unique_:Jj});function Qj(r,t,e){let n=I(r,"x","unsortedSegmentSum"),o=I(t,"segmentIds","unsortedSegmentSum","int32");E(na(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(Wl,s,i)}var wm=T({unsortedSegmentSum_:Qj});function t6(r,t=0){let e=I(r,"x","unstack","string_or_numeric");E(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(bi,n,o)}var vr=T({unstack_:t6});function F_(r,t){return mh(r,t,"right")}function iy(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ay(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),$e(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;h"Shape mismatch in v and x");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){E(n!=null,()=>"When using zeroDebias: true, step is required.");let p=I(n,"step","movingAverage");c=pt(c,ct(u,an(a,p)))}return X(s,c)}var s6=T({movingAverage_:o6});function i6(r,t,e){let n=I(r,"indices","scatterND","int32"),o=I(t,"updates","scatterND");sx(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(La,s,i)}var a6=T({scatterND_:i6});function O_(r,t,e,n){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function u6(r,t,e,n=0){let o=I(r,"sparseIndices","sparseToDense","int32"),s=I(t,"sparseValues","sparseToDense","string_or_numeric"),i=I(n,"defaultValue","sparseToDense",s.dtype);O_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Lp,a,u)}var c6=T({sparseToDense_:u6});function p6(r,t){let e=I(t,"indices","gatherND","int32"),o={params:I(r,"x","gatherND","string_or_numeric"),indices:e};return k.runKernel(wa,o)}var m6=T({gatherND_:p6});function P_(r,t){if(t==null)return r.shape.slice();if(Dn(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),E(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=P_(o,e),i=1-t,a=pt(Pi(X(zi(s,0,1,"float32",n),i)),i);return D(o,a)}var l0=T({dropout_:f6});function u0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function hh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),E(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),$e(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];E(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=ev("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hL_,depthwiseConv2d:()=>M_,matMul:()=>z_});function g6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),E(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),E(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),E(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];E(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),E(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(mp,p,m)}var Cm=T({conv2DBackpropFilter_:g6});function rc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return D(r,bo(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function nc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function oc(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Fr(r);if(t==="elu")return Oi(r);if(t==="relu6")return lm(r);if(t==="prelu")return ou(r,e);if(t==="leakyrelu")return Ql(r,n);if(t==="sigmoid")return Yr(r);throw new Error(`Unknown fused activation ${t}.`)}var sc=(r,t)=>!(r>0)||t==="linear";function x6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",sc(k.state.gradientDepth,u)===!1){E(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let _=In(r,t,e,n,o,s,i);return a!=null&&(_=X(_,a)),oc(_,u,l,c)}let p=I(r,"x","conv2d","float32"),m=I(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];E(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),E(Ar(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=ju(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=I(a,"bias","fused conv2d"),[x]=Ut(x,p),o==="NHWC"?Pt(g.outShape,x.shape):(E(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),E(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let _=l.shape;if(E(_.length<=1||_.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${_.length}.`),_.length===1)E(_[0]===1||_[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the number of output channels (${g.outChannels}).`);else if(_.length===3)try{Pt(_,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${_}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=I(l,"prelu weights","fused conv2d")}let w=(_,A)=>{E(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=rc(_,P,u);E(to(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=tm(F.shape,G,$,e,n),q=Cm(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=nc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((A,$,F)=>{let P=k.runKernel(Ii,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):un((A,$,F,P)=>{let V=k.runKernel(Ii,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var L_=T({fusedConv2d_:x6});function y6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(gp,l,c)}var uy=T({depthwiseConv2dNativeBackpropFilter_:y6});function b6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(xp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var cy=T({depthwiseConv2dNativeBackpropInput_:b6});function w6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(sc(k.state.gradientDepth,u)===!1){let N=Fi(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),oc(N,u,l,c)}let p=I(r,"x","depthwiseConv2d","float32"),m=I(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),E(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),E(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),E(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),E(Ar(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie("fused depthwiseConv2d",n,i);let h=ju(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=I(a,"bias","fused conv2d"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=I(l,"prelu weights","fused depthwiseConv2d"));let b=(N,_)=>{E(to(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=_,V=rc(N,F,u),G=cy($.shape,V,A,e,n,s,i),W=uy($,V,A.shape,e,n,s,i);if(P!=null){let q=nc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?un((_,A,$)=>{let F=k.runKernel(Si,w,C);return $([A,_,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):un((_,A,$,F)=>{let P=k.runKernel(Si,w,C);return F([A,_,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var M_=T({fusedDepthwiseConv2d_:w6});function C6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(sc(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),oc(V,s,i,a)}let u=I(r,"a","fused matMul"),l=I(t,"b","fused matMul");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);E(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),_;o!=null&&(_=I(o,"bias","fused matMul"),[_]=Ut(_,u),Pt(w,_.shape));let A;i!=null&&(A=I(i,"prelu weights","fused matMul"));let $=(V,G)=>{let[W,q,H,j]=G,Y=rc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=nc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:_,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?un((G,W,q)=>{let H=k.runKernel(Ci,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):un((G,W,q,H)=>{let j=k.runKernel(Ci,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,_)}var z_=T({fusedMatMul_:C6});function I6(r){return hh(r,.54,.46)}var B_=T({hammingWindow_:I6});function S6(r){return hh(r,.5,.5)}var py=T({hannWindow_:S6});function v6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),E(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),E(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),E(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),E(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(da,c,p)}var G_=T({cropAndResize_:T6});function k6(r){let t=I(r,"image","flipLeftRight","float32");E(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(ba,e,{})}var W_=T({flipLeftRight_:k6});function E6(r){let t=I(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];E(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),E(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Dr(t,o)}var U_=T({grayscaleToRGB_:E6});function _6(r,t,e=0,n=.5){let o=I(r,"image","rotateWithOffset","float32");E(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(qa,s,i)}var H_=T({rotateWithOffset_:_6});function wo(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),E(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),E(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),E(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),E(t.rank===1,()=>"scores must be a 1D tensor"),E(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),E(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function A6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppression","float32"),i=I(t,"scores","nonMaxSuppression","float32"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(Ra,{boxes:s,scores:i},u)}var q_=T({nonMaxSuppression_:A6});function K_(r,t,e){let n=$6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function $6(r,t,e){return R6(r,t,e||D6)}function D6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function fy(r,t,e,n,o){return c0(r,t,e,n,o,0)}function dy(r,t,e,n,o,s){return c0(r,t,e,n,o,0,!1,s,!0)}function hy(r,t,e,n,o,s){return c0(r,t,e,n,o,s,!0)}function c0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(j_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let _=F6(r,b,p[N]);if(_>=n){C=!0;break}if(g.score=g.score*O6(n,c,_),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&K_(l,g,j_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function F6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function O6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function j_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function P6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=I(r,"boxes","nonMaxSuppressionAsync"),i=I(t,"scores","nonMaxSuppressionAsync"),a=wo(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=fy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Me(p,"int32")}var X_=P6;function L6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(Oa,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Y_=T({nonMaxSuppressionWithScore_:L6});async function M6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=hy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(m,"int32"),selectedScores:Me(f)}}var Z_=M6;function z6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppression"),a=I(t,"scores","nonMaxSuppression"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Fa,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var J_=T({nonMaxSuppressionPadded_:z6});async function B6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=I(r,"boxes","nonMaxSuppressionAsync"),a=I(t,"scores","nonMaxSuppressionAsync"),u=wo(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=dy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Me(d,"int32"),validOutputs:mt(h,"int32")}}var Q_=B6;function V6(r,t,e=!1,n=!1){let o=I(r,"images","resizeBilinear");E(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),E(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ss,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var gy=T({resizeBilinear_:V6});function G6(r,t,e=!1,n=!1){let o=I(r,"images","resizeNearestNeighbor");E(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),E(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),E(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),E(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Is,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeNearestNeighbor_:G6});function W6(r,t="binary",e=!1,n=.5){let o=I(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Me([n]),255),c,p,m,f;if(E(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),E(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),E(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),E(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=mr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=wx(J(um(f),"int32"),ur([]),256);l=U6(g,u)}let d=e?Ln(f,l):Re(f,l);return J(D(d,255),"int32")}function U6(r,t){let e=Me([-1]),n=Me([0]),o=Me([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),E(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),E(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(Ha,u,l)}var eA=T({transform_:H6});function q6(r,t,e){E(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),E(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=I(r,"a","bandPart");E(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(su(0,s,1,"int32"),[-1,1]),u=su(0,i,1,"int32"),l=ct(a,u),c=Rr(Ln(l,mt(+t,"int32")),ln(l,mt(-e,"int32"))),p=Ne([s,i],n.dtype);return R(nr(vr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var rA=T({bandPart_:q6});function K6(r){let t;if(Array.isArray(r)){t=!1,E(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=mr(r,r.shape[0],0).map(o=>Mn(o,[0]));E(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return oA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=vr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=oA(u,t);o.push(l),s.push(c)});let i=R(nr(o,0),r.shape),a=R(nr(s,0),r.shape);return[i,a]}}function oA(r,t=!1){return k.tidy(()=>{E(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Yu(e),s=sn(r),i=Vs([[1]],[1,1]),a=sn(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=Qa(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Vs([[-1]]),Vs([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=sn(i):a=ne([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),_=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(_,C)));else{let F=ct(C,Lt(N,Lt(_,C)));s=ne([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=ne([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),vt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var sA=T({qr_:j6});var Xe;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Xe||(Xe={}));function X6(r,t,e=Xe.SUM_BY_NONZERO_WEIGHTS){let n=I(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=I(t,"weights","computeWeightedLoss"));let s=o==null?n:D(n,o);if(e===Xe.NONE)return s;if(e===Xe.SUM)return ft(s);if(e===Xe.MEAN){if(o==null)return ve(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Xe.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,cr(n.shape)),a=J(ft(Bs(i,mt(0))),"float32");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Gr=T({computeWeightedLoss_:X6});function Y6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","absoluteDifference"),s=I(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=I(e,"weights","absoluteDifference")),$e(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(ct(o,s));return Gr(a,i,n)}var iA=T({absoluteDifference_:Y6});function Z6(r,t,e,n,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","cosineDistance"),i=I(t,"predictions","cosineDistance"),a=null;n!=null&&(a=I(n,"weights","cosineDistance")),$e(s.shape,i.shape,"Error in cosineDistance: ");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Gr(l,a,o)}var aA=T({cosineDistance_:Z6});function J6(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","hingeLoss"),s=I(t,"predictions","hingeLoss"),i=null;e!=null&&(i=I(e,"weights","hingeLoss")),$e(o.shape,s.shape,"Error in hingeLoss: ");let a=mt(1);o=ct(D(mt(2),o),a);let u=Fr(ct(a,D(o,s)));return Gr(u,i,n)}var lA=T({hingeLoss_:J6});function Q6(r,t,e,n=1,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","huberLoss"),i=I(t,"predictions","huberLoss"),a=null;e!=null&&(a=I(e,"weights","huberLoss")),$e(s.shape,i.shape,"Error in huberLoss: ");let u=mt(n),l=Ee(ct(i,s)),c=Mi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Gr(m,a,o)}var uA=T({huberLoss_:Q6});function tX(r,t,e,n=1e-7,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"labels","logLoss"),i=I(t,"predictions","logLoss"),a=null;e!=null&&(a=I(e,"weights","logLoss")),$e(s.shape,i.shape,"Error in logLoss: ");let u=mt(1),l=mt(n),c=Ht(D(s,Sr(X(i,l)))),p=D(ct(u,s),Sr(X(ct(u,i),l))),m=ct(c,p);return Gr(m,a,o)}var cA=T({logLoss_:tX});function eX(r,t,e,n=Xe.SUM_BY_NONZERO_WEIGHTS){let o=I(r,"labels","meanSquaredError"),s=I(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=I(e,"weights","meanSquaredError")),$e(o.shape,s.shape,"Error in meanSquaredError: ");let a=ym(o,s);return Gr(a,i,n)}var pA=T({meanSquaredError_:eX});function rX(r,t){let e=I(r,"labels","sigmoidCrossEntropyWithLogits"),n=I(t,"logits","sigmoidCrossEntropyWithLogits");$e(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Fr(n),s=D(n,e),i=tu(er(Ht(Ee(n))));return X(ct(o,s),i)}function nX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"multiClassLabels","sigmoidCrossEntropy"),i=I(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","sigmoidCrossEntropy")),$e(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=rX(s,i);return Gr(u,a,o)}var mA=T({sigmoidCrossEntropy_:nX});function oX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${e}`);return un((o,s,i)=>{let u=im(s,[e],!0),l=ct(J(s,"float32"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=yo(f.shape,[e]);return[D(R(f,x),ct(J(h,"float32"),er(g))),D(R(f,x),ct(er(g),J(h,"float32")))]}}})(r,t)}function sX(r,t,e,n=0,o=Xe.SUM_BY_NONZERO_WEIGHTS){let s=I(r,"onehotLabels","softmaxCrossEntropy"),i=I(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=I(e,"weights","softmaxCrossEntropy")),$e(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=oX(s,i);return Gr(u,a,o)}var fA=T({softmaxCrossEntropy_:sX});function iX(r,t,e,n){let o=I(r,"indices","sparseFillEmptyRows","int32"),s=I(t,"values","sparseFillEmptyRows"),i=I(e,"denseShape","sparseFillEmptyRows","int32"),a=I(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape - ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(Pl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var dA=T({sparseFillEmptyRows_:iX});function aX(r,t,e){let n=I(r,"inputIndices","sparseReshape","int32"),o=I(t,"inputShape","sparseReshape","int32"),s=I(e,"newShape","sparseReshape","int32");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape - ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ga,i);return{outputIndices:a[0],outputShape:a[1]}}var hA=T({sparseReshape_:aX});function lX(r,t,e){let n=I(r,"data","sparseSegmentMean"),o=I(t,"indices","sparseSegmentMean","int32"),s=I(e,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${n.shape}`),_(i%(t*t)===0,()=>`Dimension size must be evenly divisible by ${t*t} but is ${i} for depthToSpace with input shape ${n.shape}`);let a={x:n},u={blockSize:t,dataFormat:e};return k.runKernel(wa,a,u)}var Ax=T({depthToSpace_:Mq});function zq(r,t,e,n,o="NHWC",s=[1,1],i){let a=v(r,"x","depthwiseConv2d","float32"),u=v(t,"filter","depthwiseConv2d","float32"),l=a,c=!1;a.rank===3&&(c=!0,l=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(l.rank===4,()=>`Error in depthwiseConv2d: input must be rank 4, but got rank ${l.rank}.`),_(u.rank===4,()=>`Error in depthwiseConv2d: filter must be rank 4, but got rank ${u.rank}.`);let p=o==="NHWC"?l.shape[3]:l.shape[1];_(p===u.shape[2],()=>`Error in depthwiseConv2d: number of input channels (${p}) must match the inChannels dimension in filter ${u.shape[2]}.`),Ie("depthwiseConv2d",n,i);let m={x:l,filter:u},f={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i},d=k.runKernel(Qo,m,f);return c?R(d,[d.shape[1],d.shape[2],d.shape[3]]):d}var Li=T({depthwiseConv2d_:zq});function Bq(r){let e={x:v(r,"x","diag")};return k.runKernel(bp,e)}var qE=T({diag_:Bq});function Vq(r,t,e,n,o=[1,1],s="NHWC"){let i=v(r,"x","dilation2d"),a=v(t,"filter","dilation2d");_(i.rank===3||i.rank===4,()=>`Error in dilation2d: input must be rank 3 or 4, but got rank ${i.rank}.`),_(a.rank===3,()=>`Error in dilation2d: filter must be rank 3, but got rank ${a.rank}.`),_(s==="NHWC",()=>`Error in dilation2d: Only NHWC is currently supported, but got dataFormat of ${s}`);let u=i,l=!1;i.rank===3&&(u=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),l=!0);let c={x:u,filter:a},p={strides:e,pad:n,dilations:o},m=k.runKernel(Fl,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var $x=T({dilation2d_:Vq});function Gq(r,t){let e=v(r,"a","equal","string_or_numeric"),n=v(t,"b","equal","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Ia,o)}var Rr=T({equal_:Gq});function Wq(r,t,e){let n=v(t,"a","where"),o=v(e,"b","where"),s=v(r,"condition","where","bool"),i=Pt(Pt(s.shape,n.shape),o.shape),a=Pi(s,i),u=Pi(n,i),l=Pi(o,i),c={condition:a,t:u,e:l};return k.runKernel(yi,c)}var _e=T({where_:Wq});function Uq(r){let e={x:v(r,"x","zerosLike")};return k.runKernel(vi,e)}var It=T({zerosLike_:Uq});function Hq(r,t){let e=v(r,"a","div"),n=v(t,"b","div");[e,n]=Ut(e,n);let o=pt(e,n),s=It(o),i=Rr(n,s);return _e(i,s,o)}var Dx=T({divNoNan_:Hq});function qq(r,t){let e=v(r,"t1","dot"),n=v(t,"t2","dot");_((e.rank===1||e.rank===2)&&(n.rank===1||n.rank===2),()=>`Error in dot: inputs must all be rank 1 or 2, but got ranks ${e.rank} and ${n.rank}.`);let o=e.rank===1?e.size:e.shape[1],s=n.rank===1?n.size:n.shape[0];if(_(o===s,()=>`Error in dot: inner dimensions of inputs must match, but got ${o} and ${s}.`),e.rank===1&&n.rank===1){let i=R(e,[1,-1]),a=R(n,[-1,1]),u=Lt(i,a);return R(u,[])}else if(e.rank===1&&n.rank===2){let i=R(e,[1,-1]),a=R(n,[n.shape[0],n.shape[1]]),u=Lt(i,a);return R(u,[u.size])}else if(e.rank===2&&n.rank===1){let i=R(n,[-1,1]),a=Lt(e,i);return R(a,[a.size])}else{let i=R(n,[n.shape[0],n.shape[1]]);return Lt(e,i)}}var Rx=T({dot_:qq});function Kq(r,...t){let e=t.map((o,s)=>v(o,`tensors${s}`,"einsum")),n={equation:r};return k.runKernel(wp,e,n)}var KE=T({einsum_:Kq});function jq(r){let e={x:v(r,"x","elu","float32")};return k.runKernel(es,e)}var Mi=T({elu_:jq});function Xq(r){let t=v(r,"x","erf");_(t.dtype==="int32"||t.dtype==="float32",()=>"Input dtype must be `int32` or `float32`."),t.dtype==="int32"&&(t=J(t,"float32"));let e={x:t};return k.runKernel(Ca,e)}var Fx=T({erf_:Xq});function e0(r,t){for(let e=0;er[s]);return[e,o]}function wo(r,t){let e=t.map(n=>1);return jE(r,e,t)}function Yq(r,t,e){_(e0(t,e),()=>`${r} supports only inner-most axes for now. Got axes ${t} and rank-${e} input.`)}function n0(r,t){if(e0(r,t))return null;let e=[];for(let n=0;ne.push(n)),e}function mh(r){return r.map((t,e)=>[e,t]).sort((t,e)=>t[1]-e[1]).map(t=>t[0])}function Zq(r,t){let e=[];for(let n=t-r;n"Axis must be <= rank of the tensor");let n={input:e},o={dim:t};return k.runKernel(mi,n,o)}var sr=T({expandDims_:aK});function lK(r){let e={x:v(r,"x","expm1")};return k.runKernel(va,e)}var Px=T({expm1_:lK});function uK(r,t){let e=v(r,"x","tile","string_or_numeric");_(e.rank===t.length,()=>`Error in transpose: rank of input ${e.rank} must match length of reps ${t}.`);let n={x:e},o={reps:t};return k.runKernel(to,n,o)}var Fr=T({tile_:uK});function cK(r,t,e,n="float32"){t==null&&(t=r);let o=wt([r,t],n),s=r<=t?r:t;for(let a=0;a`Error in localResponseNormalization: x must be rank 3 or 4 but got + rank ${s.rank}.`),_(la(t),()=>`Error in localResponseNormalization: depthRadius must be an integer but got depthRadius ${t}.`);let i=s,a=!1;s.rank===3&&(a=!0,i=R(s,[1,s.shape[0],s.shape[1],s.shape[2]]));let u={x:i},l={depthRadius:t,bias:e,alpha:n,beta:o},c=k.runKernel(Pl,u,l);return a?R(c,[c.shape[1],c.shape[2],c.shape[3]]):c}var Bx=T({localResponseNormalization_:CK});function IK(r){let e={x:v(r,"x","log","float32")};return k.runKernel(us,e)}var Nr=T({log_:IK});function vK(r){let e={x:v(r,"x","log1p")};return k.runKernel($a,e)}var nu=T({log1p_:vK});function SK(r){return _(ai(r),()=>"The f passed in grad(f) must be a function"),(t,e)=>{let n=v(t,"x","tf.grad","string_or_numeric"),o=e!=null?v(e,"dy","tf.grad"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(n),[n],o);return o!=null&&De(s.shape,o.shape,"The shape of dy passed in grad(f)(x, dy) must match the shape returned by f(x)"),Gx(i),i[0]})}}function NK(r){return _(ai(r),()=>"The f passed in grads(f) must be a function"),(t,e)=>{_(Array.isArray(t),()=>"The args passed in grads(f)(args) must be an array of `Tensor`s or `TensorLike`s");let n=Za(t,"args","tf.grads","string_or_numeric"),o=e!=null?v(e,"dy","tf.grads"):null;return k.tidy(()=>{let{value:s,grads:i}=k.gradients(()=>r(...n),n,o);return o!=null&&De(s.shape,o.shape,"The shape of dy passed in grads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gx(i),i})}}function TK(r){return _(ai(r),()=>"The f passed in valueAndGrad(f) must be a function"),(t,e)=>{_(t instanceof Ft,()=>"The x passed in valueAndGrad(f)(x) must be a tensor"),_(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrad(f)(x, dy) must be a tensor");let{grads:n,value:o}=k.gradients(()=>r(t),[t],e);return Gx(n),{grad:n[0],value:o}}}function kK(r){return _(ai(r),()=>"The f passed in valueAndGrads(f) must be a function"),(t,e)=>{_(Array.isArray(t)&&t.every(o=>o instanceof Ft),()=>"The args passed in valueAndGrads(f)(args) must be array of tensors"),_(e==null||e instanceof Ft,()=>"The dy passed in valueAndGrads(f)(args, dy) must be a tensor");let n=k.gradients(()=>r(...t),t,e);return e!=null&&De(n.value.shape,e.shape,"The shape of dy passed in valueAndGrads(f)([x1,...], dy) must match the shape returned by f([x1,...])"),Gx(n.grads),n}}function Vx(r,t){_(ai(r),()=>"The f passed in variableGrads(f) must be a function"),_(t==null||Array.isArray(t)&&t.every(l=>l instanceof Ya),()=>"The varList passed in variableGrads(f, varList) must be an array of variables");let e=t!=null;if(!e){t=[];for(let l in k.registeredVariables)t.push(k.registeredVariables[l])}let n=e?t.filter(l=>!l.trainable):null,o=t.length;t=t.filter(l=>l.trainable),_(t.length>0,()=>`variableGrads() expects at least one of the input variables to be trainable, but none of the ${o} variables is trainable.`);let s=!0,{value:i,grads:a}=k.gradients(r,t,null,s);_(a.some(l=>l!=null),()=>"Cannot find a connection between any variable and the result of the loss function y=f(x). Please make sure the operations that use variables are inside the function f passed to minimize()."),_(i.rank===0,()=>`The f passed in variableGrads(f) must return a scalar, but it returned a rank-${i.rank} tensor`);let u={};return t.forEach((l,c)=>{a[c]!=null&&(u[l.name]=a[c])}),n!=null&&n.forEach(l=>u[l.name]=null),{value:i,grads:u}}function cn(r){return k.customGrad(r)}function Gx(r){if(r.filter(e=>e==null).length>0)throw new Error(`Cannot compute gradient of y=f(x) with respect to x. Make sure that + the f you passed encloses all operations that lead from x to y.`)}function EK(r){let e={x:v(r,"x","softplus")};return k.runKernel(Ua,e)}var Gs=T({softplus_:EK});function _K(r){let t=v(r,"x","logSigmoid");return cn(n=>({value:Ht(Gs(Ht(n))),gradFunc:i=>D(i,Jr(Ht(n)))}))(t)}var Wx=T({logSigmoid_:_K});function AK(r,t){let e=v(r,"a","sub"),n=v(t,"b","sub");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Ls,o)}var ct=T({sub_:AK});function $K(r,t=-1){let e=v(r,"logits","logSoftmax");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Log Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and axis was ${t}`);return cn((o,s)=>{let a=Sr(o,t,!0),u=ct(o,a),l=ct(J(u,"float32"),Nr(ft(or(u),t,!0)));return s([l]),{value:l,gradFunc:(p,m)=>{let[f]=m,d=!0,h=or(f);return ct(p,D(ft(p,t,d),h))}}})(e)}var im=T({logSoftmax_:$K});function DK(r,t=null,e=!1){let n=v(r,"x","logSumExp"),o=cr(t,n.shape),s=Sr(n,o,!0),i=ct(n,s),a=or(i),u=ft(a,o),l=Nr(u),c=X(R(s,l.shape),l);if(e){let p=wo(c.shape,o);return R(c,p)}return c}var am=T({logSumExp_:DK});function RK(r,t){let e=v(r,"a","logicalAnd","bool"),n=v(t,"b","logicalAnd","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Da,o)}var Or=T({logicalAnd_:RK});function FK(r){let e={x:v(r,"x","logicalNot","bool")};return k.runKernel(Ra,e)}var ou=T({logicalNot_:FK});function OK(r,t){let e=v(r,"a","logicalOr","bool"),n=v(t,"b","logicalOr","bool");Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Fa,o)}var lm=T({logicalOr_:OK});function PK(r,t){let e=v(r,"a","logicalXor","bool"),n=v(t,"b","logicalXor","bool");return Pt(e.shape,n.shape),Or(lm(r,t),ou(Or(r,t)))}var Ux=T({logicalXor_:PK});var Hx=2147483648;function LK(r,t,e="left"){let n=v(r,"sortedSequence","searchSorted"),o=v(t,"values","searchSorted"),s=n.shape[n.shape.length-1],i=o.shape[o.shape.length-1],a=R(n,[-1,s]),u=R(o,[-1,i]);if(a.rank<2)throw new Error("Sorted input argument must be at least 2-dimensional");if(a.shape[0]!==u.shape[0])throw new Error("Leading dimension of 'sortedSequence' and 'values' must match.");if(Jt(u.shape)>=Hx)throw new Error(`values tensor size must less than ${Hx}`);if(a.shape[1]>=Hx)throw new Error(`trailing dim_size must less than ${Hx} for int32 output type, was ${a.shape[1]}`);let l={sortedSequence:a,values:u},c={side:e};return k.runKernel(Lp,l,c)}var fh=T({searchSorted_:LK});function ZE(r,t){return fh(r,t,"left")}function MK(r,t,e,n,o){let s=v(r,"x","maxPool"),i=1,a=s,u=!1;s.rank===3&&(u=!0,a=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(a.rank===4,()=>`Error in maxPool: input must be rank 4 but got rank ${a.rank}.`),_(Dr(e,i),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${e} and dilations '${i}'`),Ie("maxPool",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o},p=k.runKernel(ms,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var su=T({maxPool_:MK});function zK(r,t=[1,1,1],e,n,o,s="NDHWC"){let i=v(r,"x","maxPool3d"),a=i,u=!1;i.rank===4&&(u=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]])),_(a.rank===5,()=>`Error in maxPool3d: x must be rank 5 but got rank ${a.rank}.`),_(s==="NDHWC",()=>`Error in maxPool3d: Only NDHWC is currently supported, but got dataFormat of ${s}`),Ie("maxPool3d",n,o);let l={x:a},c={filterSize:t,strides:e,pad:n,dimRoundingMode:o,dataFormat:s},p=k.runKernel(Ll,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3],p.shape[4]]):p}var qx=T({maxPool3d_:zK});function BK(r,t,e,n,o=!1){let i={x:v(r,"x","maxPoolWithArgmax")},a={filterSize:t,strides:e,pad:n,includeBatchInIndex:o},u=k.runKernel(_p,i,a);return{result:u[0],indexes:u[1]}}var JE=T({maxPoolWithArgmax_:BK});function VK(r,t){let e=v(r,"a","maximum"),n=v(t,"b","maximum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(ps,o)}var Nn=T({maximum_:VK});function GK(r,t=null,e=!1){let o={x:v(r,"x","mean")},s={axis:t,keepDims:e};return k.runKernel(fs,o,s)}var Se=T({mean_:GK});function Ne(r,t="float32"){if(Pe(r),t==="complex64"){let n=Ne(r,"float32"),o=Ne(r,"float32");return In(n,o)}let e=ap(Jt(r),t);return k.makeTensor(e,r,t)}function pr(r,t="float32"){if(Pe(r),t==="complex64"){let n=pr(r,"float32"),o=Ne(r,"float32");return In(n,o)}let e=Hd(Jt(r),t);return k.makeTensor(e,r,t)}function QE(r,t,{indexing:e="xy"}={}){if(e!=="xy"&&e!=="ij")throw new TypeError(`${e} is not a valid third argument to meshgrid`);if(r===void 0)return[];let n=v(r,"x","meshgrid",r instanceof Ft?r.dtype:"float32");if(t===void 0)return[n];let o=v(t,"y","meshgrid",t instanceof Ft?t.dtype:"float32"),s=Jt(n.shape),i=Jt(o.shape);return e==="xy"?(n=R(n,[1,-1]),o=R(o,[-1,1]),[Lt(pr([i,1],n.dtype),n),Lt(o,pr([1,s],o.dtype))]):(n=R(n,[-1,1]),o=R(o,[1,-1]),[Lt(n,pr([1,i],n.dtype)),Lt(pr([s,1],o.dtype),o)])}function WK(r,t){let e=v(r,"a","minimum"),n=v(t,"b","minimum");[e,n]=Ut(e,n),e.dtype==="bool"&&(e=J(e,"int32"),n=J(n,"int32")),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(hs,o)}var Vi=T({minimum_:WK});function UK(r,t,e){_(e==="reflect"||e==="symmetric",()=>`Invalid mode. Mode must be either reflect or symmetric. Got ${e}.`);let n=v(r,"x","mirrorPad");if(n.rank===0)throw new Error("mirrorPad(scalar) is not defined. Pass non-scalar to mirrorPad");_(t.length===n.rank,()=>`Padding doesn't match input. Must be ${n.rank}. Got ${t.length}.`);let o=e==="reflect"?1:0;for(let a=0;a"Invalid number of paddings. Must be length of 2 each."),_(t[a][0]>=0&&t[a][0]<=n.shape[a]-o&&t[a][1]>=0&&t[a][1]<=n.shape[a]-o,()=>`Padding in dimension ${a} cannot be greater than or equal to ${n.shape[a]-o} or less than 0 for input of shape ${n.shape}`);let s={paddings:t,mode:e},i={x:n};return k.runKernel(gs,i,s)}var Kx=T({mirrorPad_:UK});function HK(r,t){let e=v(r,"a","mod"),n=v(t,"b","mod");[e,n]=Ut(e,n);let o={a:e,b:n};return k.runKernel(Oa,o)}var jx=T({mod_:HK});function qK(r,t=null,e=!1){r=v(r,"x","moments");let n=cr(t,r.shape),o=Se(r,n,e),s=o.shape;e||(s=wo(o.shape,n));let i=Mt(ct(J(r,"float32"),R(o,s))),a=Se(i,n,e);return{mean:o,variance:a}}var Qu=T({moments_:qK});function KK(r,t,e,n){let o=v(t,"data","multiRNNCell"),s=Za(e,"c","multiRNNCell"),i=Za(n,"h","multiRNNCell"),a=o,u=[];for(let p=0;p2)throw new Error(`Rank of probabilities must be 1 or 2, but is ${i}`);e=e||Math.random();let u={logits:i===1?R(o,[1,-1]):o},l={numSamples:t,seed:e,normalized:n},c=k.runKernel(Ap,u,l);return i===1?R(c,[c.size]):c}var e_=T({multinomial_:jK});function XK(r,t){let e=v(r,"a","notEqual","string_or_numeric"),n=v(t,"b","notEqual","string_or_numeric");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n};return k.runKernel(Pa,o)}var Ws=T({notEqual_:XK});function YK(r){let e={x:v(r,"x","onesLike")};return k.runKernel(hi,e)}var wr=T({onesLike_:YK});function ZK(r,t){let e=v(r,"v1","outerProduct"),n=v(t,"v2","outerProduct");_(e.rank===1&&n.rank===1,()=>`Error in outerProduct: inputs must be rank 1, but got ranks ${e.rank} and ${n.rank}.`);let o=R(e,[-1,1]),s=R(n,[1,-1]);return Lt(o,s)}var r_=T({outerProduct_:ZK});function JK(r,t,e=0){let n=v(r,"x","pad");if(n.rank===0)throw new Error("pad(scalar) is not defined. Pass non-scalar to pad");let o={paddings:t,constantValue:e},s={x:n};return k.runKernel(bs,s,o)}var pn=T({pad_:JK});function QK(r,t,e=0){return _(t.length===2,()=>"Invalid number of paddings. Must be length of 2."),pn(r,[t],e)}var n_=T({pad1d_:QK});function tj(r,t,e=0){return _(t.length===2&&t[0].length===2&&t[1].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pn(r,t,e)}var o_=T({pad2d_:tj});function ej(r,t,e=0){return _(t.length===3&&t[0].length===2&&t[1].length===2&&t[2].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pn(r,t,e)}var s_=T({pad3d_:ej});function rj(r,t,e=0){return _(t.length===4&&t[0].length===2&&t[1].length===2&&t[2].length===2&&t[3].length===2,()=>"Invalid number of paddings. Must be length of 2 each."),pn(r,t,e)}var i_=T({pad4d_:rj});function nj(r,t,e){let n=v(r,"x","spaceToBatchND");_(n.rank>=1+t.length,()=>`input rank ${n.rank} should be > than [blockShape] ${t.length}`),_(e.length===t.length,()=>`paddings.shape[0] ${e.length} must be equal to [blockShape] ${t.length}`),_(n.shape.reduce((i,a,u)=>u>0&&u<=t.length?i&&(a+e[u-1][0]+e[u-1][1])%t[u-1]===0:i,!0),()=>`input spatial dimensions ${n.shape.slice(1)} with paddings ${e.toString()} must be divisible by blockShapes ${t.toString()}`);let o={x:n},s={blockShape:t,paddings:e};return k.runKernel(wi,o,s)}var iu=T({spaceToBatchND_:nj});function oj(r,t,e,n,o,s,i){o==null&&(o=[1,1]),s==null&&(s=1),n===0&&(n="valid");let a=v(r,"x","maxPool"),u=a,l=!1;a.rank===3&&(l=!0,u=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),_(Dr(s,o),()=>`Error in pool: Either strides or dilations must be 1. Got strides ${s} and dilations '${o}'`);let c=QS(u.shape,t,s,o,n),p=[c.dilationHeight,c.dilationWidth],m;n==="same"?m=ij([c.filterHeight,c.filterWidth],p):m=[[0,0],[0,0]];let f=p[0]===1&&p[1]===1,[d,h]=sj([c.inHeight,c.inWidth],p,m),g=f?n:"valid",x=f?u:iu(u,p,d),w=(e==="avg"?()=>Ql(x,t,s,g,i):()=>su(x,t,s,g,i))(),C=f?w:tu(w,p,h);return l?R(C,[C.shape[1],C.shape[2],C.shape[3]]):C}function sj(r,t,e){let n=e.map(c=>c[0]),o=e.map(c=>c[1]),s=r.concat(n,o),i=t.map((c,p)=>(c-s[p]%c)%c),a=o.map((c,p)=>c+i[p]),u=t.map((c,p)=>[n[p],a[p]]),l=t.map((c,p)=>[0,i[p]]);return[u,l]}function ij(r,t){let n=r.map((i,a)=>i+(i-1)*(t[a]-1)).map(i=>i-1),o=n.map(i=>Math.floor(i/2)),s=n.map((i,a)=>i-o[a]);return n.map((i,a)=>[o[a],s[a]])}var Xx=T({pool_:oj});function aj(r,t){let e=v(r,"x","prelu"),n=v(t,"alpha","prelu"),o={x:e,alpha:n};return k.runKernel(Cs,o)}var au=T({prelu_:aj});function lj(r,t=null,e=!1){let n=v(r,"x","prod");n.dtype==="bool"&&(n=J(n,"int32"));let o={x:n},s={axis:t,keepDims:e};return k.runKernel(Is,o,s)}var Yx=T({prod_:lj});function uj(r,t,e,n){let o=r.map((c,p)=>v(c,`tensors${p}`,"raggedGather","int32")),s=v(t,"paramsDenseValues","raggedGather"),i=v(e,"indices","raggedGather","int32"),a={paramsNestedSplits:o,paramsDenseValues:s,indices:i},u={outputRaggedRank:n},l=k.runKernel($p,a,u);return{outputNestedSplits:l.slice(0,l.length-1),outputDenseValues:l[l.length-1]}}var a_=T({raggedGather_:uj});function cj(r,t,e){let n=v(r,"starts","raggedRange"),o=v(t,"limits","raggedRange",n.dtype),s=v(e,"deltas","raggedRange",n.dtype),i={starts:n,limits:o,deltas:s},a=k.runKernel(Dp,i);return{rtNestedSplits:a[0],rtDenseValues:a[1]}}var l_=T({raggedRange_:cj});function pj(r,t,e,n,o){let s=v(r,"shape","raggedTensorToTensor","int32"),i=v(t,"values","raggedTensorToTensor"),a=v(e,"defaultValue","raggedTensorToTensor",i.dtype),u=n.map((p,m)=>v(p,`tensors${m}`,"raggedTensorToTensor","int32")),l={shape:s,values:i,defaultValue:a,rowPartitionTensors:u},c={rowPartitionTypes:o};return k.runKernel(Rp,l,c)}var u_=T({raggedTensorToTensor_:pj});function mj(r,t,e){Pe(r);let n=Jt(r),o=null;if(e==null||e==="float32")o=new Float32Array(n);else if(e==="int32")o=new Int32Array(n);else if(e==="bool")o=new Uint8Array(n);else throw new Error(`Unknown data type ${e}`);for(let s=0;s=1||i===0);let a=Math.sqrt(-2*Math.log(i)/i);t=this.mean+this.stdDev*o*a,e=this.mean+this.stdDev*s*a,(!this.truncated||this.isValidTruncated(t))&&(n=!0)}return(!this.truncated||this.isValidTruncated(e))&&(this.nextVal=this.convertValue(e)),this.convertValue(t)}convertValue(t){return this.dtype==null||this.dtype==="float32"?t:Math.round(t)}isValidTruncated(t){return t<=this.upper&&t>=this.lower}},Jx=class{constructor(t,e,n,o){this.alpha=t,this.beta=1/e,this.dtype=n;let s=o||Math.random();this.randu=ty.alea(s.toString()),this.randn=new ec(0,1,n,!1,this.randu()),t<1?this.d=t+2/3:this.d=t-1/3,this.c=1/Math.sqrt(9*this.d)}nextValue(){let t,e,n,o,s,i;for(;;){do o=this.randn.nextValue(),i=1+this.c*o;while(i<=0);if(i*=i*i,t=o*o,e=1-.331*t*t,n=.5*t+this.d*(1-i+Math.log(i)),s=this.randu(),sthis.dtype==null||this.dtype==="float32",this.min=t,this.range=e-t,this.dtype=n,o==null&&(o=Math.random()),typeof o=="number"&&(o=o.toString()),!this.canReturnFloat()&&this.range<=1)throw new Error(`The difference between ${t} - ${e} <= 1 and dtype is not float`);this.random=ty.alea(o)}convertValue(t){return this.canReturnFloat()?t:Math.round(t)}nextValue(){return this.convertValue(this.min+this.range*this.random())}};function bj(r,t,e=1,n="float32",o){if(Pe(r),e==null&&(e=1),n==null&&(n="float32"),n!=="float32"&&n!=="int32")throw new Error(`Unsupported data type ${n}`);let s=new Jx(t,e,n,o),i=wt(r,n);for(let a=0;a`Error in reverse1D: x must be rank 1 but got rank ${t.rank}.`),mr(t,0)}var __=T({reverse1d_:kj});function Ej(r,t){let e=v(r,"x","reverse");return _(e.rank===2,()=>`Error in reverse2D: x must be rank 2 but got rank ${e.rank}.`),mr(e,t)}var A_=T({reverse2d_:Ej});function _j(r,t){let e=v(r,"x","reverse");return _(e.rank===3,()=>`Error in reverse3D: x must be rank 3 but got rank ${e.rank}.`),mr(e,t)}var $_=T({reverse3d_:_j});function Aj(r,t){let e=v(r,"x","reverse");return _(e.rank===4,()=>`Error in reverse4D: x must be rank 4 but got rank ${e.rank}.`),mr(e,t)}var D_=T({reverse4d_:Aj});function $j(r){let e={x:v(r,"x","round")};return k.runKernel(_s,e)}var cm=T({round_:$j});function Dj(r){let e={x:v(r,"x","rsqrt","float32")};return k.runKernel(As,e)}var pm=T({rsqrt_:Dj});function Rj(r){let e={x:v(r,"x","selu")};return k.runKernel(Va,e)}var mm=T({selu_:Rj});function Fj(r,t,e,n,o,s=[1,1],i="NHWC"){let a=v(r,"x","separableConv2d"),u=v(t,"depthwiseFilter","separableConv2d"),l=v(e,"pointwiseFilter","separableConv2d"),c=a,p=!1;if(a.rank===3&&(p=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2]])),i==="NCHW")throw new Error("separableConv2d currently does not support dataFormat NCHW; only NHWC is supported");_(c.rank===4,()=>`Error in separableConv2d: input must be rank 4, but got rank ${c.rank}.`),_(u.rank===4,()=>`Error in separableConv2d: depthwise filter must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in separableConv2d: pointwise filter must be rank 4, but got rank ${u.rank}.`),_(l.shape[0]===1,()=>`Error in separableConv2d: the first dimension of pointwise filter must be 1, but got ${l.shape[0]}.`),_(l.shape[1]===1,()=>`Error in separableConv2d: the second dimension of pointwise filter must be 1, but got ${l.shape[1]}.`);let m=u.shape[2],f=u.shape[3];_(l.shape[2]===m*f,()=>`Error in separableConv2d: the third dimension of pointwise filter must be ${m*f}, but got ${l.shape[2]}.`);let d=Li(c,u,n,o,i,s),g=Sn(d,l,1,"valid",i);return p?R(g,[g.shape[1],g.shape[2],g.shape[3]]):g}var fm=T({separableConv2d_:Fj});async function Oj(r,t){let e=v(r,"x","setdiff1d"),n=v(t,"y","setdiff1d");_(e.dtype===n.dtype,()=>`x and y should have the same dtype, but got x (${e.dtype}) and y (${n.dtype}).`),_(e.rank===1,()=>`x should be 1D tensor, but got x (${e.shape}).`),_(n.rank===1,()=>`y should be 1D tensor, but got y (${n.shape}).`);let o=await e.data(),s=await n.data(),i=new Set(s),a=0;for(let c=0;c`slice1d expects a rank-1 tensor, but got a rank-${n.rank} tensor`),Rt(n,[t],[e])}var gm=T({slice1d_:zj});function Bj(r,t,e){let n=v(r,"x","slice2d");return _(n.rank===2,()=>`slice2d expects a rank-2 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var hh=T({slice2d_:Bj});function Vj(r,t,e){let n=v(r,"x","slice3d");return _(n.rank===3,()=>`slice3d expects a rank-3 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var xm=T({slice3d_:Vj});function Gj(r,t,e){let n=v(r,"x","slice4d");return _(n.rank===4,()=>`slice4d expects a rank-4 tensor, but got a rank-${n.rank} tensor`),Rt(n,t,e)}var nc=T({slice4d_:Gj});function Wj(r,t=-1){let e=v(r,"logits","softmax","float32");if(t===-1&&(t=e.rank-1),t!==e.rank-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${e.rank} and dim was ${t}`);let n={logits:e},o={dim:t};return k.runKernel(Os,n,o)}var lu=T({softmax_:Wj});function Uj(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.fft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(Ip,t)}var uu=T({fft_:Uj});function Hj(r){_(r.dtype==="complex64",()=>`The dtype for tf.spectral.ifft() must be complex64 but got ${r.dtype}.`);let t={input:r};return k.runKernel(vp,t)}var nl=T({ifft_:Hj});function qj(r){let t=r.shape[r.shape.length-1],e=r.size/t,n;if(t<=2){let o=R(r,[e,t]);n=nl(o)}else{let o=[e,2*(t-1)],s=R(tl(r),[e,t]),i=R(Jl(r),[e,t]),a=mr(Rt(s,[0,1],[e,t-2]),1),u=D(mr(Rt(i,[0,1],[e,t-2]),1),mt(-1)),l=oe([s,a],1),c=oe([i,u],1),p=R(In(l,c),[o[0],o[1]]);n=nl(p)}if(n=tl(n),r.rank===3&&r.shape[0]!==0){let o=n,s=r.shape[0];n=R(n,[s,n.shape[0]/s,n.shape[1]]),o.dispose()}return n}var ym=T({irfft_:qj});function Kj(r,t,e=0){let o={x:v(r,"x","split")},s={numOrSizeSplits:t,axis:e};return k.runKernel(Ci,o,s)}var fr=T({split_:Kj});function jj(r,t){_(r.dtype==="float32",()=>`The dtype for rfft() must be real value but got ${r.dtype}`);let e=r.shape[r.shape.length-1],n=r.size/e,o;if(t!=null&&t0),h=r.shape.map(g=>g);h[r.shape.length-1]=t,o=Rt(r,d,h),e=t}else if(t!=null&&t>e){let d=r.shape.map(h=>h);d[r.shape.length-1]=t-e,o=oe([r,Ne(d)],r.shape.length-1),e=t}else o=r;let s=It(o),i=R(In(o,s),[n,e]),a=uu(i),u=Math.floor(e/2)+1,l=tl(a),c=Jl(a),p=fr(l,[u,e-u],l.shape.length-1),m=fr(c,[u,e-u],c.shape.length-1),f=o.shape.slice();return f[o.shape.length-1]=u,R(In(p[0],m[0]),f)}var cu=T({rfft_:jj});function Xj(r,t){let e=v(r,"a","squaredDifference"),n=v(t,"b","squaredDifference");[e,n]=Ut(e,n),Pt(e.shape,n.shape);let o={a:e,b:n},s={};return k.runKernel(Ps,o,s)}var bm=T({squaredDifference_:Xj});function Yj(r,t){let e=v(r,"x","squeeze","string_or_numeric");return R(e,nS(e.shape,t).newShape)}var Bn=T({squeeze_:Yj});function Zj(r,t=0){let e=Za(r,"tensors","stack","string_or_numeric");_(e.length>=1,()=>"Pass at least one tensor to tf.stack"),e.length>0&&_(t<=e[0].rank,()=>"Axis must be <= rank of the tensor");let n=e,o={axis:t};return k.runKernel(gi,n,o)}var qe=T({stack_:Zj});function Jj(r,t=0){let n={x:v(r,"x","step")},o={alpha:t};return k.runKernel(fo,n,o)}var Co=T({step_:Jj});function Qj(r,t,e,n,o=0,s=0,i=0,a=0,u=0){let c={x:v(r,"x","stridedSlice","string_or_numeric")},p={begin:t,end:e,strides:n,beginMask:o,endMask:s,ellipsisMask:i,newAxisMask:a,shrinkAxisMask:u};return k.runKernel(qa,c,p)}var ny=T({stridedSlice_:Qj});function t6(r){let e={x:v(r,"x","tan","float32")};return k.runKernel(Ms,e)}var oy=T({tan_:t6});function Ke(r,t){Jn(r);let e=Gr(r,t);if(e.length!==1)throw new Error("tensor1d() requires values to be a flat/TypedArray");return sn(r,null,e,t)}function Us(r,t,e){if(Jn(r),t!=null&&t.length!==2)throw new Error("tensor2d() requires shape to have two numbers");let n=Gr(r,e);if(n.length!==2&&n.length!==1)throw new Error("tensor2d() requires values to be number[][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor2d() requires shape to be provided when `values` are a flat/TypedArray");return sn(r,t,n,e)}function F_(r,t,e){if(Jn(r),t!=null&&t.length!==4)throw new Error("tensor4d() requires shape to have four numbers");let n=Gr(r,e);if(n.length!==4&&n.length!==1)throw new Error("tensor4d() requires values to be number[][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor4d() requires shape to be provided when `values` are a flat array");return sn(r,t,n,e)}function O_(r,t,e){if(Jn(r),t!=null&&t.length!==5)throw new Error("tensor5d() requires shape to have five numbers");let n=Gr(r,e);if(n.length!==5&&n.length!==1)throw new Error("tensor5d() requires values to be number[][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor5d() requires shape to be provided when `values` are a flat array");return sn(r,t,n,e)}function P_(r,t,e){if(Jn(r),t!=null&&t.length!==6)throw new Error("tensor6d() requires shape to have six numbers");let n=Gr(r,e);if(n.length!==6&&n.length!==1)throw new Error("tensor6d() requires values to be number[][][][][][] or flat/TypedArray");if(n.length===1&&t==null)throw new Error("tensor6d() requires shape to be provided when `values` are a flat array");return t=t||n,sn(r,t,n,e)}function e6(r,t=1,e=!0){let n=v(r,"x","topk");if(n.rank===0)throw new Error("topk() expects the input to be of rank 1 or higher");let o=n.shape[n.shape.length-1];if(t<0)throw new Error(`'k' passed to topk() must be >= 0 but got ${t}`);if(t>o)throw new Error(`'k' passed to topk() must be <= the last dimension (${o}) but got ${t}`);let s={x:n},i={k:t,sorted:e},[a,u]=k.runKernel(Ka,s,i);return{values:a,indices:u}}var sy=T({topk_:e6});function r6(r,t=0,e=1,n,o){if(Pe(r),n!=null&&n==="bool")throw new Error("Unsupported data type $ { dtype }");let s=new ec(t,e,n,!0,o),i=wt(r,n);for(let a=0;a0,()=>"The input tensor must be at least 1D");let n={x:e},o={axis:t},[s,i]=k.runKernel(zp,n,o);return{values:s,indices:i}}var iy=T({unique_:n6});function o6(r,t,e){let n=v(r,"x","unsortedSegmentSum"),o=v(t,"segmentIds","unsortedSegmentSum","int32");_(la(e),()=>"numSegments must be of dtype int");let s={x:n,segmentIds:o},i={numSegments:e};return k.runKernel(ql,s,i)}var Cm=T({unsortedSegmentSum_:o6});function s6(r,t=0){let e=v(r,"x","unstack","string_or_numeric");_(t>=-e.shape.length&&t`Axis = ${t} is not in [-${e.shape.length}, ${e.shape.length})`);let n={value:e},o={axis:t};return k.runKernel(Ii,n,o)}var dr=T({unstack_:s6});function L_(r,t){return fh(r,t,"right")}function ay(r,t=!0,e,n){return k.makeVariable(r,t,e,n)}function ly(r,t){let e=[];for(let s=0;s0,()=>"mask cannot be scalar"),De(a.slice(s,s+i),o.shape,"mask's shape must match the first K dimensions of tensor's shape,");let u=1;for(let h=s;h"Shape mismatch in v and x");let u=mt(1),l=ct(u,a),c=D(ct(i,s),l);if(o){_(n!=null,()=>"When using zeroDebias: true, step is required.");let p=v(n,"step","movingAverage");c=pt(c,ct(u,ln(a,p)))}return X(s,c)}var c6=T({movingAverage_:u6});function p6(r,t,e){Pe(e);let n=v(r,"indices","scatterND","int32"),o=v(t,"updates","scatterND");ix(o,n,e);let s={indices:n,updates:o},i={shape:e};return k.runKernel(Ba,s,i)}var m6=T({scatterND_:p6});function M_(r,t,e,n){if(r.dtype!=="int32")throw new Error(`tf.sparseToDense() expects the indices to be int32 type, but the dtype was ${r.dtype}.`);if(r.rank>2)throw new Error(`sparseIndices should be a scalar, vector, or matrix, but got shape ${r.shape}.`);let o=r.rank>0?r.shape[0]:1,s=r.rank>1?r.shape[1]:1;if(e.length!==s)throw new Error(`outputShape has incorrect number of elements:, ${e.length}, should be: ${s}.`);let i=t.size;if(!(t.rank===0||t.rank===1&&i===o))throw new Error(`sparseValues has incorrect shape ${t.shape}, should be [] or [${o}]`);if(t.dtype!==n.dtype)throw new Error("sparseValues.dtype must match defaultValues.dtype")}function d6(r,t,e,n=0){Pe(e);let o=v(r,"sparseIndices","sparseToDense","int32"),s=v(t,"sparseValues","sparseToDense","string_or_numeric"),i=v(n,"defaultValue","sparseToDense",s.dtype);M_(o,s,e,i);let a={sparseIndices:o,sparseValues:s,defaultValue:i},u={outputShape:e};return k.runKernel(Mp,a,u)}var h6=T({sparseToDense_:d6});function g6(r,t){let e=v(t,"indices","gatherND","int32"),o={params:v(r,"x","gatherND","string_or_numeric"),indices:e};return k.runKernel(Na,o)}var x6=T({gatherND_:g6});function z_(r,t){if(t==null)return r.shape.slice();if(On(r.shape,t))return t;if(r.shape.length===t.length){let e=[];for(let n=0;n`x has to be a floating point tensor since it's going to be scaled, but got a ${o.dtype} tensor instead.`),_(t>=0&&t<1,()=>`rate must be a float in the range [0, 1), but got ${t}.`),t===0)return r instanceof Ft?o.clone():o;let s=z_(o,e),i=1-t,a=pt(zi(X(Gi(s,0,1,"float32",n),i)),i);return D(o,a)}var p0=T({dropout_:y6});function m0(r){return Math.floor(Math.pow(2,Math.ceil(Math.log(r)/Math.log(2))))}function gh(r,t,e){let n=1-r%2,o=new Float32Array(r);for(let s=0;s1,()=>`inTopK() expects the predictions to be of rank 2 or higher, but got ${n.rank}`),_(n.rank-1===o.rank,()=>`predictions rank should be 1 larger than targets rank, but got predictions rank ${n.rank} and targets rank ${o.rank}`),De(n.shape.slice(0,n.shape.length-1),o.shape,"predictions's shape should be align with the targets' shape, except the last dimension.");let s=n.shape[n.shape.length-1];_(e>0&&e<=s,()=>`'k' passed to inTopK() must be > 0 && <= the predictions last dimension (${s}), but got ${e}`);let i=await n.data(),a=await o.data(),[u,l]=[i.length/s,s],c=oS("bool",u);for(let p=0;pg.value-h.value),c[p]=0;for(let h=0;hB_,depthwiseConv2d:()=>V_,matMul:()=>G_});function C6(r,t,e,n,o,s="NHWC",i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]])),_(a.rank===4,()=>`Error in conv2dDerFilter: input must be rank 4, but got shape ${a.shape}.`),_(u.rank===4,()=>`Error in conv2dDerFilter: dy must be rank 4, but got shape ${u.shape}.`),_(e.length===4,()=>`Error in conv2dDerFilter: filterShape must be length 4, but got ${e}.`);let l=s==="NHWC"?a.shape[3]:a.shape[1],c=s==="NHWC"?u.shape[3]:u.shape[1];_(l===e[2],()=>`Error in conv2dDerFilter: depth of input ${l}) must match input depth in filter (${e[2]}.`),_(c===e[3],()=>`Error in conv2dDerFilter: depth of dy (${c}) must match output depth for filter (${e[3]}).`),Ie("conv2dDerFilter",o,i);let p={x:a,dy:u},m={strides:n,pad:o,dataFormat:s,dimRoundingMode:i,filterShape:e};return k.runKernel(fp,p,m)}var Im=T({conv2DBackpropFilter_:C6});function oc(r,t,e){if(e==null||e==="linear")return r;if(e==="relu")return D(r,Co(t));throw new Error(`Cannot compute gradient for fused activation ${e}.`)}function sc(r,t){let e=t,n=ge(r.shape,t.shape);return n.length>0&&(e=ft(e,n)),R(e,r.shape)}function ic(r,t,e,n){if(t==="linear")return r;if(t==="relu")return Pr(r);if(t==="elu")return Mi(r);if(t==="relu6")return um(r);if(t==="prelu")return au(r,e);if(t==="leakyrelu")return ru(r,n);if(t==="sigmoid")return Jr(r);throw new Error(`Unknown fused activation ${t}.`)}var ac=(r,t)=>!(r>0)||t==="linear";function I6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(u=u||"linear",ac(k.state.gradientDepth,u)===!1){_(o==="NHWC",()=>`Error in fused conv2d: got dataFormat of ${o} but only NHWC is currently supported for the case of gradient depth is 0 and the activation is not linear.`);let E=Sn(r,t,e,n,o,s,i);return a!=null&&(E=X(E,a)),ic(E,u,l,c)}let p=v(r,"x","conv2d","float32"),m=v(t,"filter","conv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused conv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused conv2d: filter must be rank 4, but got rank ${m.rank}.`),Ie("fused conv2d",n,i);let h=o==="NHWC"?f.shape[3]:f.shape[1];_(m.shape[2]===h,()=>`Error in conv2d: depth of input (${h}) must match input depth for filter ${m.shape[2]}.`),_(Dr(e,s),()=>`Error in conv2D: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`);let g=Yu(f.shape,m.shape,e,s,n,i),x;a!=null&&(x=v(a,"bias","fused conv2d"),[x]=Ut(x,p),o==="NHWC"?Pt(g.outShape,x.shape):(_(x.shape.length<=1,()=>`Error in fused conv2d: only supports scalar or 1-D Tensor bias for NCHW format but got the bias of rank-${x.shape.length}.`),_(x.shape.length===0||x.shape[0]===g.outChannels||x.shape[0]===1,()=>`Error in fused conv2d: bias shape (${x.shape}) is not compatible with the number of output channels (${g.outChannels})`)));let b;if(l!=null){let E=l.shape;if(_(E.length<=1||E.length===3,()=>`Error in fused conv2d: only supports scalar, 1-D Tensor or 3-D Tensor PReLU activation weights but got a tensor of rank-${E.length}.`),E.length===1)_(E[0]===1||E[0]===g.outChannels,()=>`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the number of output channels (${g.outChannels}).`);else if(E.length===3)try{Pt(E,g.outShape)}catch(A){let $=`Error in fused conv2d: PReLU activation weights (${E}) is not compatible with the output shape of the conv2d (${g.outShape}).`;throw Error($)}b=v(l,"prelu weights","fused conv2d")}let w=(E,A)=>{_(o==="NHWC",()=>`Error in gradient of fused conv2D: got dataFormat of ${o} but only NHWC is currently supported.`);let[$,F,P,V]=A,G=oc(E,P,u);_(no(s),()=>`Error in gradient of fused conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`);let W=em(F.shape,G,$,e,n),q=Im(F,G,$.shape,e,n),H=[W,q];if(V!=null){let j=sc(V,G);H.push(j)}return H},C={x:f,filter:m,bias:x,preluActivationWeights:b},N={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?cn((A,$,F)=>{let P=k.runKernel(Ni,C,N);return F([$,A,P]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:w}})(f,m):cn((A,$,F,P)=>{let V=k.runKernel(Ni,C,N);return P([$,A,V,F]),d&&(V=R(V,[V.shape[1],V.shape[2],V.shape[3]])),{value:V,gradFunc:w}})(f,m,x)}var B_=T({fusedConv2d_:I6});function v6(r,t,e,n,o,s=[1,1],i){let a=r;r.rank===3&&(a=R(r,[1,r.shape[0],r.shape[1],r.shape[2]]));let u=t;u.rank===3&&(u=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={x:a,dy:u},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,filterShape:e};return k.runKernel(xp,l,c)}var cy=T({depthwiseConv2dNativeBackpropFilter_:v6});function S6(r,t,e,n,o,s=[1,1],i){let a=t,u=!1;t.rank===3&&(u=!0,a=R(t,[1,t.shape[0],t.shape[1],t.shape[2]]));let l={dy:a,filter:e},c={strides:n,pad:o,dimRoundingMode:i,dilations:s,inputShape:r},p=k.runKernel(yp,l,c);return u?R(p,[p.shape[1],p.shape[2],p.shape[3]]):p}var py=T({depthwiseConv2dNativeBackpropInput_:S6});function N6({x:r,filter:t,strides:e,pad:n,dataFormat:o="NHWC",dilations:s=[1,1],dimRoundingMode:i,bias:a,activation:u="linear",preluActivationWeights:l,leakyreluAlpha:c}){if(ac(k.state.gradientDepth,u)===!1){let N=Li(r,t,e,n,o,s,i);return a!=null&&(N=X(N,a)),ic(N,u,l,c)}let p=v(r,"x","depthwiseConv2d","float32"),m=v(t,"filter","depthwiseConv2d","float32"),f=p,d=!1;p.rank===3&&(d=!0,f=R(p,[1,p.shape[0],p.shape[1],p.shape[2]])),_(f.rank===4,()=>`Error in fused depthwiseConv2d: input must be rank 4, but got rank ${f.rank}.`),_(m.rank===4,()=>`Error in fused depthwiseConv2d: filter must be rank 4, but got rank ${m.rank}.`),_(f.shape[3]===m.shape[2],()=>`Error in fused depthwiseConv2d: number of input channels (${f.shape[3]}) must match the inChannels dimension in filter ${m.shape[2]}.`),s==null&&(s=[1,1]),_(Dr(e,s),()=>`Error in fused depthwiseConv2d: Either strides or dilations must be 1. Got strides ${e} and dilations '${s}'`),Ie("fused depthwiseConv2d",n,i);let h=Yu(f.shape,m.shape,e,s,n,i,!0),g;a!=null&&(g=v(a,"bias","fused conv2d"),[g]=Ut(g,p),Pt(h.outShape,g.shape));let x;l!=null&&(x=v(l,"prelu weights","fused depthwiseConv2d"));let b=(N,E)=>{_(no(s),()=>`Error in gradient of fused depthwiseConv2d: dilation rates greater than 1 are not yet supported. Got dilations '${s}'`);let[A,$,F,P]=E,V=oc(N,F,u),G=py($.shape,V,A,e,n,s,i),W=cy($,V,A.shape,e,n,s,i);if(P!=null){let q=sc(g,V);return[G,W,q]}return[G,W]},w={x:f,filter:m,bias:g,preluActivationWeights:x},C={strides:e,pad:n,dataFormat:o,dilations:s,dimRoundingMode:i,activation:u,leakyreluAlpha:c};return a==null?cn((E,A,$)=>{let F=k.runKernel(Ti,w,C);return $([A,E,F]),d&&(F=R(F,[F.shape[1],F.shape[2],F.shape[3]])),{value:F,gradFunc:b}})(f,m):cn((E,A,$,F)=>{let P=k.runKernel(Ti,w,C);return F([A,E,P,$]),d&&(P=R(P,[P.shape[1],P.shape[2],P.shape[3]])),{value:P,gradFunc:b}})(f,m,g)}var V_=T({fusedDepthwiseConv2d_:N6});function T6({a:r,b:t,transposeA:e=!1,transposeB:n=!1,bias:o,activation:s="linear",preluActivationWeights:i,leakyreluAlpha:a=.2}){if(ac(k.state.gradientDepth,s)===!1){let V=Lt(r,t,e,n);return o!=null&&(V=X(V,o)),ic(V,s,i,a)}let u=v(r,"a","fused matMul"),l=v(t,"b","fused matMul");[u,l]=Ut(u,l);let c=e?u.shape[u.rank-2]:u.shape[u.rank-1],p=n?l.shape[l.rank-1]:l.shape[l.rank-2],m=e?u.shape[u.rank-1]:u.shape[u.rank-2],f=n?l.shape[l.rank-2]:l.shape[l.rank-1],d=u.shape.slice(0,-2),h=l.shape.slice(0,-2),g=Jt(d),x=Jt(h);_(c===p,()=>`Error in fused matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${u.shape} and ${l.shape} and transposeA=${e} and transposeB=${n} must match.`);let w=Pt(u.shape.slice(0,-2),l.shape.slice(0,-2)).concat([m,f]),C=e?R(u,[g,c,m]):R(u,[g,m,c]),N=n?R(l,[x,f,p]):R(l,[x,p,f]),E;o!=null&&(E=v(o,"bias","fused matMul"),[E]=Ut(E,u),Pt(w,E.shape));let A;i!=null&&(A=v(i,"prelu weights","fused matMul"));let $=(V,G)=>{let[W,q,H,j]=G,Y=oc(R(V,H.shape),H,s),Z,et;if(!e&&!n?(Z=Lt(Y,q,!1,!0),et=Lt(W,Y,!0,!1)):!e&&n?(Z=Lt(Y,q,!1,!1),et=Lt(Y,W,!0,!1)):e&&!n?(Z=Lt(q,Y,!1,!0),et=Lt(W,Y,!1,!1)):(Z=Lt(q,Y,!0,!0),et=Lt(Y,W,!0,!0)),o!=null){let rt=sc(j,Y);return[Z,et,rt]}else return[Z,et]},F={a:C,b:N,bias:E,preluActivationWeights:A},P={transposeA:e,transposeB:n,activation:s,leakyreluAlpha:a};return o==null?cn((G,W,q)=>{let H=k.runKernel(Si,F,P);return q([G,W,H]),{value:R(H,w),gradFunc:$}})(C,N):cn((G,W,q,H)=>{let j=k.runKernel(Si,F,P);return H([G,W,j,q]),{value:R(j,w),gradFunc:$}})(C,N,E)}var G_=T({fusedMatMul_:T6});function k6(r){return gh(r,.54,.46)}var W_=T({hammingWindow_:k6});function E6(r){return gh(r,.5,.5)}var my=T({hannWindow_:E6});function _6(r,t,e,n=!1,o=0){let s=0,i=[];for(;s+t<=r.size;)i.push(Rt(r,s,t)),s+=e;if(n)for(;s`Error in cropAndResize: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&a.shape[1]===4,()=>`Error in cropAndResize: boxes must be have size [${l},4] but had shape ${a.shape}.`),_(u.rank===1&&u.shape[0]===l,()=>`Error in cropAndResize: boxInd must be have size [${l}] but had shape ${a.shape}.`),_(n.length===2,()=>`Error in cropAndResize: cropSize must be of length 2, but got length ${n.length}.`),_(n[0]>=1&&n[1]>=1,()=>`cropSize must be atleast [1,1], but was ${n}`),_(o==="bilinear"||o==="nearest",()=>`method must be bilinear or nearest, but was ${o}`);let c={image:i,boxes:a,boxInd:u},p={method:o,extrapolationValue:s,cropSize:n};return k.runKernel(ba,c,p)}var H_=T({cropAndResize_:$6});function D6(r){let t=v(r,"image","flipLeftRight","float32");_(t.rank===4,()=>`Error in flipLeftRight: image must be rank 4,but got rank ${t.rank}.`);let e={image:t};return k.runKernel(Sa,e,{})}var q_=T({flipLeftRight_:D6});function R6(r){let t=v(r,"image","grayscaleToRGB"),e=t.rank-1,n=t.shape[e];_(t.rank>=2,()=>`Error in grayscaleToRGB: images must be at least rank 2, but got rank ${t.rank}.`),_(n===1,()=>`Error in grayscaleToRGB: last dimension of a grayscale image should be size 1, but got size ${n}.`);let o=new Array(t.rank);return o.fill(1,0,e),o[e]=3,Fr(t,o)}var K_=T({grayscaleToRGB_:R6});function F6(r,t,e=0,n=.5){let o=v(r,"image","rotateWithOffset","float32");_(o.rank===4,()=>`Error in rotateWithOffset: image must be rank 4,but got rank ${o.rank}.`);let s={image:o},i={radians:t,fillValue:e,center:n};return k.runKernel(Xa,s,i)}var j_=T({rotateWithOffset_:F6});function Io(r,t,e,n,o,s){n==null&&(n=.5),o==null&&(o=Number.NEGATIVE_INFINITY),s==null&&(s=0);let i=r.shape[0];return e=Math.min(e,i),_(0<=n&&n<=1,()=>`iouThreshold must be in [0, 1], but was '${n}'`),_(r.rank===2,()=>`boxes must be a 2D tensor, but was of rank '${r.rank}'`),_(r.shape[1]===4,()=>`boxes must have 4 columns, but 2nd dimension was ${r.shape[1]}`),_(t.rank===1,()=>"scores must be a 1D tensor"),_(t.shape[0]===i,()=>`scores has incompatible shape with boxes. Expected ${i}, but was ${t.shape[0]}`),_(0<=s&&s<=1,()=>`softNmsSigma must be in [0, 1], but was '${s}'`),{maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s}}function O6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppression","float32"),i=v(t,"scores","nonMaxSuppression","float32"),a=Io(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u={maxOutputSize:e,iouThreshold:n,scoreThreshold:o};return k.runKernel(La,{boxes:s,scores:i},u)}var X_=T({nonMaxSuppression_:O6});function Y_(r,t,e){let n=P6(r,t,e),o=n<0?-(n+1):n;r.splice(o,0,t)}function P6(r,t,e){return M6(r,t,e||L6)}function L6(r,t){return r>t?1:r>>1);let a=e(t,r[s]);a>0?n=s+1:(o=s,i=!a)}return i?n:-n-1}function dy(r,t,e,n,o){return f0(r,t,e,n,o,0)}function hy(r,t,e,n,o,s){return f0(r,t,e,n,o,0,!1,s,!0)}function gy(r,t,e,n,o,s){return f0(r,t,e,n,o,s,!0)}function f0(r,t,e,n,o,s,i=!1,a=!1,u=!1){let l=[];for(let g=0;go&&l.push({score:t[g],boxIndex:g,suppressBeginIndex:0});l.sort(Z_);let c=s>0?-.5/s:0,p=[],m=[];for(;p.length0;){let g=l.pop(),{score:x,boxIndex:b,suppressBeginIndex:w}=g;if(x=w;--N){let E=z6(r,b,p[N]);if(E>=n){C=!0;break}if(g.score=g.score*B6(n,c,E),g.score<=o)break}g.suppressBeginIndex=p.length,C||(g.score===x?(p.push(b),m.push(g.score)):g.score>o&&Y_(l,g,Z_))}let f=p.length,d=e-f;a&&d>0&&(p.push(...new Array(d).fill(0)),m.push(...new Array(d).fill(0)));let h={selectedIndices:p};return i&&(h.selectedScores=m),u&&(h.validOutputs=f),h}function z6(r,t,e){let n=r.subarray(t*4,t*4+4),o=r.subarray(e*4,e*4+4),s=Math.min(n[0],n[2]),i=Math.min(n[1],n[3]),a=Math.max(n[0],n[2]),u=Math.max(n[1],n[3]),l=Math.min(o[0],o[2]),c=Math.min(o[1],o[3]),p=Math.max(o[0],o[2]),m=Math.max(o[1],o[3]),f=(a-s)*(u-i),d=(p-l)*(m-c);if(f<=0||d<=0)return 0;let h=Math.max(s,l),g=Math.max(i,c),x=Math.min(a,p),b=Math.min(u,m),w=Math.max(x-h,0)*Math.max(b-g,0);return w/(f+d-w)}function B6(r,t,e){let n=Math.exp(t*e*e);return e<=r?n:0}function Z_(r,t){return r.score-t.score||r.score===t.score&&t.boxIndex-r.boxIndex}async function V6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY){let s=v(r,"boxes","nonMaxSuppressionAsync"),i=v(t,"scores","nonMaxSuppressionAsync"),a=Io(s,i,e,n,o);e=a.maxOutputSize,n=a.iouThreshold,o=a.scoreThreshold;let u=await Promise.all([s.data(),i.data()]),l=u[0],c=u[1],{selectedIndices:p}=dy(l,c,e,n,o);return s!==r&&s.dispose(),i!==t&&i.dispose(),Ke(p,"int32")}var J_=V6;function G6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=Io(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l={boxes:i,scores:a},c={maxOutputSize:e,iouThreshold:n,scoreThreshold:o,softNmsSigma:s},p=k.runKernel(za,l,c);return{selectedIndices:p[0],selectedScores:p[1]}}var Q_=T({nonMaxSuppressionWithScore_:G6});async function W6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=0){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=Io(i,a,e,n,o,s);e=u.maxOutputSize,n=u.iouThreshold,o=u.scoreThreshold,s=u.softNmsSigma;let l=await Promise.all([i.data(),a.data()]),c=l[0],p=l[1],{selectedIndices:m,selectedScores:f}=gy(c,p,e,n,o,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(m,"int32"),selectedScores:Ke(f)}}var tA=W6;function U6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppression"),a=v(t,"scores","nonMaxSuppression"),u=Io(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,m={boxes:i,scores:a},f={maxOutputSize:l,iouThreshold:c,scoreThreshold:p,padToMaxOutputSize:s},d=k.runKernel(Ma,m,f);return{selectedIndices:d[0],validOutputs:d[1]}}var eA=T({nonMaxSuppressionPadded_:U6});async function H6(r,t,e,n=.5,o=Number.NEGATIVE_INFINITY,s=!1){let i=v(r,"boxes","nonMaxSuppressionAsync"),a=v(t,"scores","nonMaxSuppressionAsync"),u=Io(i,a,e,n,o,null),l=u.maxOutputSize,c=u.iouThreshold,p=u.scoreThreshold,[m,f]=await Promise.all([i.data(),a.data()]),{selectedIndices:d,validOutputs:h}=hy(m,f,l,c,p,s);return i!==r&&i.dispose(),a!==t&&a.dispose(),{selectedIndices:Ke(d,"int32"),validOutputs:mt(h,"int32")}}var rA=H6;function q6(r,t,e=!1,n=!1){let o=v(r,"images","resizeBilinear");_(o.rank===3||o.rank===4,()=>`Error in resizeBilinear: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeBilinear: new shape must 2D, but got shape ${t}.`),_(n===!1||e===!1,()=>"Error in resizeBilinear: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ts,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var xy=T({resizeBilinear_:q6});function K6(r,t,e=!1,n=!1){let o=v(r,"images","resizeNearestNeighbor");_(o.rank===3||o.rank===4,()=>`Error in resizeNearestNeighbor: x must be rank 3 or 4, but got rank ${o.rank}.`),_(t.length===2,()=>`Error in resizeNearestNeighbor: new shape must 2D, but got shape ${t}.`),_(o.dtype==="float32"||o.dtype==="int32",()=>"`images` must have `int32` or `float32` as dtype"),_(n===!1||e===!1,()=>"Error in resizeNearestNeighbor: If halfPixelCenters is true, alignCorners must be false.");let s=o,i=!1;o.rank===3&&(i=!0,s=R(o,[1,o.shape[0],o.shape[1],o.shape[2]]));let[]=t,a={images:s},u={alignCorners:e,halfPixelCenters:n,size:t},l=k.runKernel(Ns,a,u);return i?R(l,[l.shape[1],l.shape[2],l.shape[3]]):l}var yy=T({resizeNearestNeighbor_:K6});function j6(r,t="binary",e=!1,n=.5){let o=v(r,"image","threshold"),s=.2989,i=.587,a=.114,u=o.shape[0]*o.shape[1],l=D(Ke([n]),255),c,p,m,f;if(_(o.rank===3,()=>`Error in threshold: image must be rank 3,but got rank ${o.rank}.`),_(o.shape[2]===3||o.shape[2]===1,()=>`Error in threshold: image color channel must be equal to 3 or 1but got ${o.shape[2]}.`),_(o.dtype==="int32"||o.dtype==="float32",()=>`Error in dtype: image dtype must be int32 or float32,but got dtype ${o.dtype}.`),_(t==="otsu"||t==="binary",()=>`Method must be binary or otsu, but was ${t}`),o.shape[2]===3){[c,p,m]=fr(o,[1,1,1],-1);let g=D(c,s),x=D(p,i),b=D(m,a);f=X(X(g,x),b)}else f=r;if(t==="otsu"){let g=Cx(J(cm(f),"int32"),nr([]),256);l=X6(g,u)}let d=e?zn(f,l):Re(f,l);return J(D(d,255),"int32")}function X6(r,t){let e=Ke([-1]),n=Ke([0]),o=Ke([0]),s,i,a,u,l,c;for(let p=0;p`Error in transform: image must be rank 4,but got rank ${i.rank}.`),_(a.rank===2&&(a.shape[0]===i.shape[0]||a.shape[0]===1)&&a.shape[1]===8,()=>"Error in transform: Input transform should be batch x 8 or 1 x 8"),_(s==null||s.length===2,()=>`Error in transform: outputShape must be [height, width] or null, but got ${s}.`);let u={image:i,transforms:a},l={interpolation:e,fillMode:n,fillValue:o,outputShape:s};return k.runKernel(ja,u,l)}var oA=T({transform_:Y6});function Z6(r,t,e){_(t%1===0,()=>`bandPart(): numLower must be an integer, got ${t}.`),_(e%1===0,()=>`bandPart(): numUpper must be an integer, got ${e}.`);let n=v(r,"a","bandPart");_(n.rank>=2,()=>`bandPart(): Rank must be at least 2, got ${n.rank}.`);let o=n.shape,[s,i]=n.shape.slice(-2);if(!(t<=s))throw new Error(`bandPart(): numLower (${t}) must not be greater than the number of rows (${s}).`);if(!(e<=i))throw new Error(`bandPart(): numUpper (${e}) must not be greater than the number of columns (${i}).`);t<0&&(t=s),e<0&&(e=i);let a=R(Wi(0,s,1,"int32"),[-1,1]),u=Wi(0,i,1,"int32"),l=ct(a,u),c=Or(zn(l,mt(+t,"int32")),un(l,mt(-e,"int32"))),p=Ne([s,i],n.dtype);return R(qe(dr(R(n,[-1,s,i])).map(m=>_e(c,m,p))),o)}var sA=T({bandPart_:Z6});function J6(r){let t;if(Array.isArray(r)){t=!1,_(r!=null&&r.length>0,()=>"Gram-Schmidt process: input must not be null, undefined, or empty");let o=r[0].shape[0];for(let s=1;s`Gram-Schmidt: Non-unique lengths found in the input vectors: (${r[s].shape[0]} vs. ${o})`)}else t=!0,r=fr(r,r.shape[0],0).map(o=>Bn(o,[0]));_(r.length<=r[0].shape[0],()=>`Gram-Schmidt: Number of vectors (${r.length}) exceeds number of dimensions (${r[0].shape[0]}).`);let e=[],n=r;for(let o=0;o{let s=n[o];if(o>0)for(let i=0;i=2,()=>`qr() requires input tensor to have a rank >= 2, but got rank ${r.rank}`),r.rank===2)return aA(r,t);{let e=r.shape.slice(0,r.shape.length-2).reduce((u,l)=>u*l),n=dr(R(r,[e,r.shape[r.shape.length-2],r.shape[r.shape.length-1]]),0),o=[],s=[];n.forEach(u=>{let[l,c]=aA(u,t);o.push(l),s.push(c)});let i=R(qe(o,0),r.shape),a=R(qe(s,0),r.shape);return[i,a]}}function aA(r,t=!1){return k.tidy(()=>{_(r.shape.length===2,()=>`qr2d() requires a 2D Tensor, but got a ${r.shape.length}D Tensor.`);let e=r.shape[0],n=r.shape[1],o=Ju(e),s=an(r),i=Us([[1]],[1,1]),a=an(i),u=e>=n?n:e;for(let l=0;l{let f=Rt(s,[l,l],[e-l,1]),d=rl(f),h=Rt(s,[l,l],[1,1]),g=_e(Re(h,0),Us([[-1]]),Us([[1]])),x=ct(h,D(g,d)),b=pt(f,x);b.shape[0]===1?a=an(i):a=oe([i,Rt(b,[1,0],[b.shape[0]-1,b.shape[1]])],0);let w=Ht(pt(Lt(g,x),d)),C=Rt(s,[l,0],[e-l,n]),N=D(w,a),E=Ot(a);if(l===0)s=ct(C,Lt(N,Lt(E,C)));else{let F=ct(C,Lt(N,Lt(E,C)));s=oe([Rt(s,[0,0],[l,n]),F],0)}let A=Ot(N),$=Rt(o,[0,l],[e,o.shape[1]-l]);if(l===0)o=ct($,Lt(Lt($,a),A));else{let F=ct($,Lt(Lt($,a),A));o=oe([Rt(o,[0,0],[e,l]),F],1)}return[a,s,o]}),Nt([c,p,m])}return!t&&e>n&&(o=Rt(o,[0,0],[e,n]),s=Rt(s,[0,0],[n,n])),[o,s]})}var lA=T({qr_:Q6});var Ze;(function(r){r[r.NONE=0]="NONE",r[r.MEAN=1]="MEAN",r[r.SUM=2]="SUM",r[r.SUM_BY_NONZERO_WEIGHTS=3]="SUM_BY_NONZERO_WEIGHTS"})(Ze||(Ze={}));function tX(r,t,e=Ze.SUM_BY_NONZERO_WEIGHTS){let n=v(r,"losses","computeWeightedLoss"),o=null;t!=null&&(o=v(t,"weights","computeWeightedLoss"));let s=o==null?n:D(n,o);if(e===Ze.NONE)return s;if(e===Ze.SUM)return ft(s);if(e===Ze.MEAN){if(o==null)return Se(s);{let i=n.size/o.size,a=pt(ft(s),ft(o));return i>1?pt(a,mt(i)):a}}if(e===Ze.SUM_BY_NONZERO_WEIGHTS){if(o==null)return pt(ft(s),mt(n.size));{let i=D(o,pr(n.shape)),a=J(ft(Ws(i,mt(0))),"float32");return pt(ft(s),a)}}throw Error(`Unknown reduction: ${e}`)}var Ur=T({computeWeightedLoss_:tX});function eX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","absoluteDifference"),s=v(t,"predictions","absoluteDifference"),i=null;e!=null&&(i=v(e,"weights","absoluteDifference")),De(o.shape,s.shape,"Error in absoluteDifference: ");let a=Ee(ct(o,s));return Ur(a,i,n)}var uA=T({absoluteDifference_:eX});function rX(r,t,e,n,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","cosineDistance"),i=v(t,"predictions","cosineDistance"),a=null;n!=null&&(a=v(n,"weights","cosineDistance")),De(s.shape,i.shape,"Error in cosineDistance: ");let u=mt(1),l=ct(u,ft(D(s,i),e,!0));return Ur(l,a,o)}var cA=T({cosineDistance_:rX});function nX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","hingeLoss"),s=v(t,"predictions","hingeLoss"),i=null;e!=null&&(i=v(e,"weights","hingeLoss")),De(o.shape,s.shape,"Error in hingeLoss: ");let a=mt(1);o=ct(D(mt(2),o),a);let u=Pr(ct(a,D(o,s)));return Ur(u,i,n)}var pA=T({hingeLoss_:nX});function oX(r,t,e,n=1,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","huberLoss"),i=v(t,"predictions","huberLoss"),a=null;e!=null&&(a=v(e,"weights","huberLoss")),De(s.shape,i.shape,"Error in huberLoss: ");let u=mt(n),l=Ee(ct(i,s)),c=Vi(l,u),p=ct(l,c),m=X(D(mt(.5),Mt(c)),D(u,p));return Ur(m,a,o)}var mA=T({huberLoss_:oX});function sX(r,t,e,n=1e-7,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"labels","logLoss"),i=v(t,"predictions","logLoss"),a=null;e!=null&&(a=v(e,"weights","logLoss")),De(s.shape,i.shape,"Error in logLoss: ");let u=mt(1),l=mt(n),c=Ht(D(s,Nr(X(i,l)))),p=D(ct(u,s),Nr(X(ct(u,i),l))),m=ct(c,p);return Ur(m,a,o)}var fA=T({logLoss_:sX});function iX(r,t,e,n=Ze.SUM_BY_NONZERO_WEIGHTS){let o=v(r,"labels","meanSquaredError"),s=v(t,"predictions","meanSquaredError"),i=null;e!=null&&(i=v(e,"weights","meanSquaredError")),De(o.shape,s.shape,"Error in meanSquaredError: ");let a=bm(o,s);return Ur(a,i,n)}var dA=T({meanSquaredError_:iX});function aX(r,t){let e=v(r,"labels","sigmoidCrossEntropyWithLogits"),n=v(t,"logits","sigmoidCrossEntropyWithLogits");De(e.shape,n.shape,"Error in sigmoidCrossEntropyWithLogits: ");let o=Pr(n),s=D(n,e),i=nu(or(Ht(Ee(n))));return X(ct(o,s),i)}function lX(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"multiClassLabels","sigmoidCrossEntropy"),i=v(t,"logits","sigmoidCrossEntropy"),a=null;if(e!=null&&(a=v(e,"weights","sigmoidCrossEntropy")),De(s.shape,i.shape,"Error in sigmoidCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(.5);s=X(D(s,ct(c,l)),D(p,l))}let u=aX(s,i);return Ur(u,a,o)}var hA=T({sigmoidCrossEntropy_:lX});function uX(r,t,e=-1){if(e===-1&&(e=t.rank-1),e!==t.rank-1)throw Error(`Softmax cross entropy along a non-last dimension is not yet supported. Labels / logits was rank ${t.rank} and dim was ${e}`);return cn((o,s,i)=>{let u=am(s,[e],!0),l=ct(J(s,"float32"),u);i([o,l]);let c=Ht(D(l,o));return{value:ft(c,[e]),gradFunc:(f,d)=>{let[h,g]=d,x=wo(f.shape,[e]);return[D(R(f,x),ct(J(h,"float32"),or(g))),D(R(f,x),ct(or(g),J(h,"float32")))]}}})(r,t)}function cX(r,t,e,n=0,o=Ze.SUM_BY_NONZERO_WEIGHTS){let s=v(r,"onehotLabels","softmaxCrossEntropy"),i=v(t,"logits","softmaxCrossEntropy"),a=null;if(e!=null&&(a=v(e,"weights","softmaxCrossEntropy")),De(s.shape,i.shape,"Error in softmaxCrossEntropy: "),n>0){let l=mt(n),c=mt(1),p=mt(s.shape[1]);s=X(D(s,ct(c,l)),pt(l,p))}let u=uX(s,i);return Ur(u,a,o)}var gA=T({softmaxCrossEntropy_:cX});function pX(r,t,e,n){let o=v(r,"indices","sparseFillEmptyRows","int32"),s=v(t,"values","sparseFillEmptyRows"),i=v(e,"denseShape","sparseFillEmptyRows","int32"),a=v(n,"defaultValue","sparseFillEmptyRows",s.dtype);if(o.rank!==2)throw new Error(`Indices should be Tensor2D but received shape + ${o.shape}`);if(s.rank!==1)throw new Error(`Values should be Tensor1D but received shape ${s.shape}`);if(i.rank!==1)throw new Error(`Dense shape should be Tensor1D but received shape ${i.shape}`);if(a.rank!==0)throw new Error(`Default value should be a scalar but received shape ${a.shape}`);let u={indices:o,values:s,denseShape:i,defaultValue:a},l=k.runKernel(zl,u);return{outputIndices:l[0],outputValues:l[1],emptyRowIndicator:l[2],reverseIndexMap:l[3]}}var xA=T({sparseFillEmptyRows_:pX});function mX(r,t,e){let n=v(r,"inputIndices","sparseReshape","int32"),o=v(t,"inputShape","sparseReshape","int32"),s=v(e,"newShape","sparseReshape","int32");if(n.rank!==2)throw new Error(`Input indices should be Tensor2D but received shape + ${n.shape}`);if(o.rank!==1)throw new Error(`Input shape should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`New shape should be Tensor1D but received shape ${s.shape}`);let i={inputIndices:n,inputShape:o,newShape:s},a=k.runKernel(Ha,i);return{outputIndices:a[0],outputShape:a[1]}}var yA=T({sparseReshape_:mX});function fX(r,t,e){let n=v(r,"data","sparseSegmentMean"),o=v(t,"indices","sparseSegmentMean","int32"),s=v(e,"segmentIds","sparseSegmentMean","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ll,i)}var gA=T({sparseSegmentMean_:lX});function uX(r,t,e){let n=I(r,"data","sparseSegmentSum"),o=I(t,"indices","sparseSegmentSum","int32"),s=I(e,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Bl,i)}var bA=T({sparseSegmentMean_:fX});function dX(r,t,e){let n=v(r,"data","sparseSegmentSum"),o=v(t,"indices","sparseSegmentSum","int32"),s=v(e,"segmentIds","sparseSegmentSum","int32");if(n.rank<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.rank!==1)throw new Error(`Indices should be Tensor1D but received shape ${o.shape}`);if(s.rank!==1)throw new Error(`Segment ids should be Tensor1D but received shape - ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Ml,i)}var xA=T({sparseSegmentSum_:uX});function cX(r,t,e,n,o,s,i,a){let u=I(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=I(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Bl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var yA=T({stringNGrams_:cX});function pX(r,t,e=!0){let n=I(r,"input","stringSplit","string"),o=I(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Vl,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var bA=T({stringSplit_:pX});function mX(r,t){let e=I(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return k.runKernel(Gl,o,n)}var wA=T({stringToHashBucketFast_:mX});var fX={fft:au,ifft:tl,rfft:lu,irfft:xm},dX={hammingWindow:B_,hannWindow:py,frame:my,stft:V_},Gs={flipLeftRight:W_,grayscaleToRGB:U_,resizeNearestNeighbor:xy,resizeBilinear:gy,rotateWithOffset:H_,cropAndResize:G_,nonMaxSuppression:q_,nonMaxSuppressionAsync:X_,nonMaxSuppressionWithScore:Y_,nonMaxSuppressionWithScoreAsync:Z_,nonMaxSuppressionPadded:J_,nonMaxSuppressionPaddedAsync:Q_,threshold:tA,transform:eA},p0={bandPart:rA,gramSchmidt:nA,qr:sA},hX={absoluteDifference:iA,computeWeightedLoss:Gr,cosineDistance:aA,hingeLoss:lA,huberLoss:uA,logLoss:cA,meanSquaredError:pA,sigmoidCrossEntropy:mA,softmaxCrossEntropy:fA},gX={sparseFillEmptyRows:dA,sparseReshape:hA,sparseSegmentMean:gA,sparseSegmentSum:xA},xX={stringNGrams:yA,stringSplit:bA,stringToHashBucketFast:wA};var Wr=class extends uh{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return vt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Bx(t,e)}dispose(){this.iterations_!=null&&vt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:mt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Wr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var cu=class extends Wr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(Se(X(l,this.epsilon)),Se(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(vt(this.accumulatedGrads.map(t=>t.variable)),vt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};cu.className="Adadelta";Cn(cu);var pu=class extends Wr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>xo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,Se(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&vt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};pu.className="Adagrad";Cn(pu);var mu=class extends Wr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(Se(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&vt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(an(this.beta1,this.iterations_+1)),this.accBeta2.assign(an(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};mu.className="Adam";Cn(mu);var fu=class extends Wr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Sn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&vt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&vt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};fu.className="Adamax";Cn(fu);var Bi=class extends Wr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=De(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Bi.className="SGD";Cn(Bi);var du=class extends Bi{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&vt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};du.className="Momentum";Cn(du);var hu=class extends Wr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),Se(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),Se(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&vt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&vt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&vt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};hu.className="RMSProp";Cn(hu);var Ws=class{static sgd(t){return new Bi(t)}static momentum(t,e,n=!1){return new du(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new hu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new mu(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new cu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new fu(t,e,n,o,s)}static adagrad(t,e=.1){return new pu(t,e)}};var ic={sgd:Ws.sgd,momentum:Ws.momentum,adadelta:Ws.adadelta,adagrad:Ws.adagrad,rmsprop:Ws.rmsprop,adamax:Ws.adamax,adam:Ws.adam};var yX=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function gh(){return new Promise(r=>yX(()=>r()))}var v={};Wt(v,{ERF_A1:()=>RX,ERF_A2:()=>FX,ERF_A3:()=>OX,ERF_A4:()=>PX,ERF_A5:()=>LX,ERF_P:()=>DX,PARALLELIZE_THRESHOLD:()=>yy,RowPartitionType:()=>Vi,SELU_SCALE:()=>f0,SELU_SCALEALPHA:()=>m0,applyActivation:()=>oc,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Hq,assertParamsConsistent:()=>bX,assignToTypedArray:()=>WX,axesAreInnerMostDims:()=>Jv,calculateShapes:()=>IE,checkEinsumDimSizes:()=>XX,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>HE,combineRaggedTensorToTensorShapes:()=>CX,complexWithEvenIndex:()=>BX,complexWithOddIndex:()=>VX,computeConv2DInfo:()=>ju,computeConv3DInfo:()=>ME,computeDefaultPad:()=>Zv,computeDilation2DInfo:()=>KH,computeOptimalWindowSize:()=>NX,computeOutAndReduceShapes:()=>Qv,computeOutShape:()=>wX,computePool2DInfo:()=>Yv,computePool3DInfo:()=>jH,convertConv2DDataFormat:()=>zE,decodeEinsumEquation:()=>KX,eitherStridesOrDilationsAreOne:()=>Ar,expandShapeToKeepDim:()=>yo,exponent:()=>HX,exponents:()=>UX,fromStringArrayToUint8:()=>g5,fromUint8ToStringArray:()=>h5,getAxesPermutation:()=>t0,getBroadcastDims:()=>bE,getComplexWithIndex:()=>GX,getEinsumComputePath:()=>YX,getEinsumPermutation:()=>jX,getFusedBiasGradient:()=>nc,getFusedDyActivation:()=>rc,getImageCenter:()=>TX,getInnerMostAxes:()=>qq,getPermuted:()=>EX,getRaggedRank:()=>SX,getReductionAxes:()=>ge,getReshaped:()=>kX,getReshapedPermuted:()=>_X,getRowPartitionTypesHelper:()=>IX,getSliceBeginCoords:()=>AX,getSliceSize:()=>$X,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>t5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>e5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>r5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>s5,getSparseReshapeInputOutputMismatchErrorMessage:()=>a5,getSparseReshapeInputOutputMultipleErrorMessage:()=>i5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>n5,getSparseReshapeNegativeOutputDimErrorMessage:()=>o5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>p5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>l5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>u5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>c5,getUndoAxesPermutation:()=>ph,isIdentityPermutation:()=>ZX,log:()=>o4,mergeRealAndImagArrays:()=>MX,prepareAndValidate:()=>CE,prepareSplitSize:()=>QX,segment_util:()=>h0,shouldFuse:()=>sc,slice_util:()=>Le,splitRealAndImagArrays:()=>zX,tupleValuesAreOne:()=>to,upcastType:()=>sr,validateDefaultValueShape:()=>vX,validateInput:()=>sx,validateUpdateShape:()=>Uv,warn:()=>vi});function bX(r,t){let e=r[0].length;r.forEach((o,s)=>{E(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),E(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function wX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function IX(r){let t={FIRST_DIM_SIZE:Vi.FIRST_DIM_SIZE,VALUE_ROWIDS:Vi.VALUE_ROWIDS,ROW_LENGTHS:Vi.ROW_LENGTHS,ROW_SPLITS:Vi.ROW_SPLITS,ROW_LIMITS:Vi.ROW_LIMITS,ROW_STARTS:Vi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function SX(r){return r.length===0?0:r[0]===Vi.FIRST_DIM_SIZE?r.length-1:r.length}function vX(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var yy=30;function NX(r){return r<=yy?r:sp(r,Math.floor(Math.sqrt(r)))}function TX(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function kX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function _X(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,CA=",",IA="...";function KX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(qX,"").length)/d0.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${d0}").`);let[n,o]=r.split(d0);E(n.indexOf(IA)===-1,()=>`The ellipsis notation ("${IA}") is not supported yet.`);let s=n.split(CA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function XX(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function YX(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function JX(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);E(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}E(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function t5(r){return`Received SparseTensor with denseShape[0] = 0 but - indices.shape[0] = ${r}`}function e5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function r5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function n5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function o5(r,t){return`size ${r} must be non-negative, not ${t}`}function s5(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function i5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e} - dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function a5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function l5(){return"segment ids must be >= 0"}function u5(){return"segment ids are not increasing"}function c5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function p5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var h0={};Wt(h0,{collectGatherOpShapeInfo:()=>d5,computeOutShape:()=>f5,segOpComputeOptimalWindowSize:()=>m5});function m5(r,t){let e=!1,n;for(r<=yy?(n=r,e=!0):n=sp(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=sp(r,n+1);return n}function f5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( - ${s}).`);if(eWp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function g5(r){return r.map(t=>Hl(t))}var Ur={};Wt(Ur,{nonMaxSuppressionV3Impl:()=>fy,nonMaxSuppressionV4Impl:()=>dy,nonMaxSuppressionV5Impl:()=>hy,whereImpl:()=>ay});var by={kernelName:ii,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,bo(J(e,"float32"),-1))}}};var SA={kernelName:oa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,"float32")),o=Se(ct(mt(1),n));return Ht(pt(r,o))}}}};var vA={kernelName:sa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(ct(Mt(J(e,"float32")),1));return pt(r,n)}}}};var NA={kernelName:Zn,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var TA={kernelName:Go,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var kA={kernelName:Wo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var EA={kernelName:kl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var _A={kernelName:la,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Se(ct(mt(1),Mt(J(e,"float32")))))}}};var AA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Se(X(mt(1),Mt(J(e,"float32"))));return pt(r,n)}}}};var $A={kernelName:ma,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var DA={kernelName:ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,"float32")),1))}}};var RA={kernelName:pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,"float32"))))}}};function x5(r,t,e,n,o,s){let i=I(r,"dy","avgPool3dGrad"),a=I(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),E(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),E(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(lp,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var FA=T({avgPool3dGrad_:x5});var OA={kernelName:El,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>FA(r,n,o,s,i,a)}}};function y5(r,t,e,n,o){let s=I(r,"dy","avgPoolGrad"),i=I(t,"input","avgPoolGrad");E(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),E(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),E(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(ap,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var PA=T({avgPoolGrad_:y5});var LA={kernelName:Uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>PA(r,n,o,s,i)}}};var MA={kernelName:Ho,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var zA={kernelName:ai,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>nu(r,n,o)}}};var BA={kernelName:p1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var VA={kernelName:lo,gradFunc:r=>({x:()=>r.clone()})};var GA={kernelName:qo,gradFunc:r=>({x:()=>It(r)})};var WA={kernelName:uo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Rr(ln(n,o),Ln(n,s)),r,It(r))}}};var UA={kernelName:_l,inputsToSave:["x"],gradFunc:by.gradFunc};var HA={kernelName:li,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=lr(o,t[0].shape)[0],i=n.map(u=>u[s]);return mr(r,i,s).map(u=>()=>u)}};var qA={kernelName:Ko,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return E(to(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>tm(n.shape,r,o,i,a,u),filter:()=>Cm(n,r,o.shape,i,a,u)}}};var KA={kernelName:jo,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>In(r,o,s,i,a,1,u),filter:()=>Cm(r,n,o.shape,s,i,a,u)}}};function b5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),E(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),E(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),E(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),E(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),E(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(fp,a,u)}var jA=T({conv3DBackpropFilter_:b5});var XA={kernelName:Al,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;E(to(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>kx(i.shape,r,a,o,s),filter:()=>jA(i,r,a.shape,o,s)}}};var YA={kernelName:Xo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(fm(J(e,"float32"))),r)}}};var ZA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(dm(J(e,"float32")),r)}}};var JA={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=t0([o],n.rank),u=nm(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var QA={kernelName:Jo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;E(to(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return E(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),E(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),E(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),E(Ar(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie("depthwiseConv2d",s,i),{x:()=>cy(u.shape,r,l,o,s,a,i),filter:()=>uy(u,r,l.shape,o,s,a,i)}}};var t2={kernelName:$l,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(jd,s,e),filter:()=>k.runKernel(Xd,i,e)}}};var e2={kernelName:ts,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(wp,n)}}};var r2={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(er(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var n2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var o2={kernelName:ui,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var s2={kernelName:ya,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,er(e))}}};var i2={kernelName:rs,gradFunc:r=>({x:()=>It(r)})};var a2={kernelName:ns,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var l2={kernelName:os,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Dr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var p2={kernelName:ci,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=lr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=u2(0,p),h=u2(p+1,p+1+f),g=c2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=c2([[p],d,h]),C=Ot(x,w),N=wm(C,b,n.shape[i]),_=ph(w);return N=Ot(N,_),N},indices:()=>o}}};function u2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var f2={kernelName:co,gradFunc:r=>({x:()=>J(r,"float32")})};var d2={kernelName:Ia,gradFunc:r=>({x:()=>It(r)})};var h2={kernelName:Sa,gradFunc:r=>({x:()=>It(r)})};var g2={kernelName:va,gradFunc:r=>({x:()=>It(r)})};var x2={kernelName:is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var y2={kernelName:ka,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var b2={kernelName:as,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,"float32"))}}};var w2={kernelName:f1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=er(n);return ct(r,D(ft(r,o,!0),i))}}}};function w5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Np,a,u)}var C2=T({localResponseNormalizationBackprop_:w5});var I2={kernelName:Rl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>C2(n,o,r,s,i,a,u)}}};function wy(r,t,e,n){return t.rankD(r,J($r(e,t),r.dtype))}}var g0={kernelName:ls,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var S2={kernelName:us,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(ln(e,n),"float32")),b:()=>D(r,J(om(e,n),"float32"))}}};function C5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPool3dGrad"),u=I(t,"input","maxPool3dGrad"),l=I(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),E(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),E(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),E(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(kp,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var v2=T({maxPool3dGrad_:C5});var N2={kernelName:Fl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>v2(r,n,o,s,i,a,u)}}};function I5(r,t,e,n,o,s,i){let a=I(r,"dy","maxPoolGrad"),u=I(t,"input","maxPoolGrad"),l=I(e,"output","maxPoolGrad");E(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),E(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),E(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(Tp,c,p)}var T2=T({maxPoolGrad_:I5});var k2={kernelName:cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>T2(r,n,o,s,i,a)}}};var E2={kernelName:ps,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=lr(o,n.shape),a=Qv(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,cr(n.shape,"float32")),u)}}}};var _2={kernelName:ms,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=lr(o,s.shape),u=wy(r,i,s,a);return{x:()=>u.x()}}};var A2={kernelName:fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(Ln(e,n),"float32")),b:()=>D(r,J(Re(e,n),"float32"))}}};var $2={kernelName:ds,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var D2={kernelName:$a,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(Pi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var R2={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var F2={kernelName:pi,gradFunc:r=>({x:()=>Ht(r)})};var O2={kernelName:gs,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,"float32")}}};var P2={kernelName:mi,gradFunc:r=>({x:()=>It(r)})};var L2={kernelName:fi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return vr(r,n).map(s=>()=>s)}};var x0={kernelName:xs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var M2={kernelName:ys,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=D(r,D(c,an(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Sr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var z2={kernelName:bs,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function S5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Xu(r,e,!0,!1),i=Xu(r,e,!0,!0),a=D(s,i);return D(o,a)}function v5(r,t,e){let n=r.shape.length,o=n-e.length,s=v.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=S5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=v.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var B2={kernelName:ws,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>v5(n,r,s)}}};var V2={kernelName:Qo,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var G2={kernelName:Pa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var W2={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(Ln(e,6),bo(e));return{x:()=>D(r,J(n,"float32"))}}};var U2={kernelName:Cs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(bo(e),"float32"))}}};var H2={kernelName:di,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var q2={kernelName:Ss,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var K2={kernelName:Is,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Fp,o,e)}}};var j2={kernelName:Ns,gradFunc:(r,t,e)=>{let{dims:n}=e,o=lr(n,r.shape);return{x:()=>pr(r,o)}}};var X2={kernelName:Ts,gradFunc:r=>({x:()=>It(r)})};var Y2={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(an(e,1.5),2)))}}};var Z2={kernelName:hi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),"float32"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(eu(e),r.dtype))}}};var J2={kernelName:Ma,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(m0),s=mt(f0),i=D(r,s),a=D(D(r,o),er(J(e,"float32")));return _e(n,i,a)}}}};var Q2={kernelName:_s,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var t$={kernelName:Ba,gradFunc:r=>({x:()=>It(r)})};var e$={kernelName:Es,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Jl(J(e,"float32")),r)}}};var r$={kernelName:za,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(rm(J(e,"float32")),r)}}};var n$={kernelName:gi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=qv(n,o,s),l=[];for(let c=0;ccn(r,l)}}};var o$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var s$={kernelName:Va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Yr(e))}}};var y0={kernelName:xi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>Zl(r,n,o)}}};var b0={kernelName:yi,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>ne(r,n)}}};var i$={kernelName:As,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(Se(J(e,"float32")),2))}}};var a$={kernelName:zl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,"float32"),2))}}};var l$={kernelName:Rs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var u$={kernelName:po,gradFunc:r=>({x:()=>It(r)})};var c$={kernelName:Fs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var p$={kernelName:$s,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;lr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,cr(n.shape,"float32"));return{x:()=>u}}};var m$={kernelName:Os,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(Jl(e)))}}};var f$={kernelName:Ps,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var d$={kernelName:Jn,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=ph(o);return{x:()=>Ot(r,s)}}};var g$={kernelName:bi,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>nr(r,o)}}};var x$={kernelName:Wl,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>N5(r,e)}}};function N5(r,t){let e=Sn(t,It(t)),n=Li(r,e),o=ln(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var T5=[by,SA,vA,NA,TA,kA,EA,_A,AA,$A,DA,RA,OA,LA,MA,zA,BA,VA,GA,WA,UA,HA,KA,qA,XA,YA,ZA,JA,QA,t2,V2,e2,r2,n2,o2,s2,a2,i2,l2,p2,m2,f2,d2,h2,g2,x2,y2,b2,w2,I2,g0,g0,S2,N2,k2,E2,_2,A2,$2,D2,R2,F2,O2,P2,L2,x0,x0,M2,z2,B2,G2,W2,U2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,y0,y0,b0,b0,i$,l$,a$,u$,c$,p$,m$,f$,d$,h$,g$,x$,y$];for(let r of T5)h1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),ax(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),lx(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Zp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),qu(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ai(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),ux(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),E(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),cx(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),px(this)};O().prototype.atan=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),fx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),dx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Yl(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),Zl(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Di(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Cx(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),Cr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),ne([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Qp(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),em(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),In(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),Jl(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),rm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Xu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),nm(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),_x(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Fi(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),Ax(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),$x(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Oi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),$r(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Rx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Fx(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),er(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),rr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Ox(this)};O().prototype.fft=function(){return this.throwIfDisposed(),au(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),Pi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Yp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Li(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),tl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),xm(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Px(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),Ql(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),Ln(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),om(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),zx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Gx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),im(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Sr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),tu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),eu(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),am(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Wx(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),ru(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Ir(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Sn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),ve(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),Ja(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Mi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),qx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),Kx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),Qa(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Bs(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),Ei(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),yr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),cn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),jx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),an(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),ou(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Xx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ty(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Fr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),lm(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),gy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),pr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),lu(this)};O().prototype.round=function(){return this.throwIfDisposed(),um(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),cm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),pm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),mm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Yr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ey(this)};O().prototype.sin=function(){return this.throwIfDisposed(),fm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),dm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),iu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),zs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),nu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),mr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),Se(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),ym(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Mn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return nr(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),bo(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ry(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),ny(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),$i(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Dr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),oy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),sy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),wm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),vr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var vn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vn.prototype)}},Hr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Hr.prototype)}},M=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,M.prototype)}},St=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,St.prototype)}},Im=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Im.prototype)}};var xh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var Co={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function w0(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>w0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:w0(n))}}}function Gi(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in Co)i=Co[s];else if(i=t[s],i==null)throw new M(`Unknown ${n}: ${r}. This may be due to one of the following reasons: + ${s.shape}`);let i={data:n,indices:o,segmentIds:s};return k.runKernel(Vl,i)}var wA=T({sparseSegmentSum_:dX});function hX(r,t,e,n,o,s,i,a){let u=v(r,"data","stringNGrams","string");if(u.dtype!=="string")throw new Error("Data must be of datatype string");if(u.shape.length!==1)throw new Error(`Data must be a vector, saw: ${u.shape}`);let l=v(t,"dataSplits","stringNGrams");if(l.dtype!=="int32")throw new Error("Data splits must be of datatype int32");let c={separator:e,nGramWidths:n,leftPad:o,rightPad:s,padWidth:i,preserveShortSequences:a},p={data:u,dataSplits:l},m=k.runKernel(Wl,p,c);return{nGrams:m[0],nGramsSplits:m[1]}}var CA=T({stringNGrams_:hX});function gX(r,t,e=!0){let n=v(r,"input","stringSplit","string"),o=v(t,"delimiter","stringSplit","string");if(n.rank!==1)throw new Error(`Input should be Tensor1D but received shape ${n.shape}`);if(o.rank!==0)throw new Error(`Delimiter should be a scalar but received shape ${o.shape}`);let s={skipEmpty:e},i={input:n,delimiter:o},a=k.runKernel(Ul,i,s);return{indices:a[0],values:a[1],shape:a[2]}}var IA=T({stringSplit_:gX});function xX(r,t){let e=v(r,"input","stringToHashBucketFast","string"),n={numBuckets:t};if(t<=0)throw new Error("Number of buckets must be at least 1");let o={input:e};return k.runKernel(Hl,o,n)}var vA=T({stringToHashBucketFast_:xX});var yX={fft:uu,ifft:nl,rfft:cu,irfft:ym},bX={hammingWindow:W_,hannWindow:my,frame:fy,stft:U_},so={flipLeftRight:q_,grayscaleToRGB:K_,resizeNearestNeighbor:yy,resizeBilinear:xy,rotateWithOffset:j_,cropAndResize:H_,nonMaxSuppression:X_,nonMaxSuppressionAsync:J_,nonMaxSuppressionWithScore:Q_,nonMaxSuppressionWithScoreAsync:tA,nonMaxSuppressionPadded:eA,nonMaxSuppressionPaddedAsync:rA,threshold:nA,transform:oA},d0={bandPart:sA,gramSchmidt:iA,qr:lA},wX={absoluteDifference:uA,computeWeightedLoss:Ur,cosineDistance:cA,hingeLoss:pA,huberLoss:mA,logLoss:fA,meanSquaredError:dA,sigmoidCrossEntropy:hA,softmaxCrossEntropy:gA},CX={sparseFillEmptyRows:xA,sparseReshape:yA,sparseSegmentMean:bA,sparseSegmentSum:wA},IX={stringNGrams:CA,stringSplit:IA,stringToHashBucketFast:vA};var Hr=class extends ch{minimize(t,e=!1,n){let{value:o,grads:s}=this.computeGradients(t,n);if(n!=null){let i=n.map(a=>({name:a.name,tensor:s[a.name]}));this.applyGradients(i)}else this.applyGradients(s);return Nt(s),e?o:(o.dispose(),null)}get iterations(){return this.iterations_==null&&(this.iterations_=0),this.iterations_}incrementIterations(){this.iterations_=this.iterations+1}computeGradients(t,e){return Vx(t,e)}dispose(){this.iterations_!=null&&Nt(this.iterations_)}async saveIterations(){return this.iterations_==null&&(this.iterations_=0),{name:"iter",tensor:mt(this.iterations_,"int32")}}async getWeights(){throw new Error("getWeights() is not implemented for this optimizer yet.")}async setWeights(t){throw new Error(`setWeights() is not implemented for this optimizer class ${this.getClassName()}`)}async extractIterations(t){return this.iterations_=(await t[0].tensor.data())[0],t.slice(1)}};Object.defineProperty(Hr,Symbol.hasInstance,{value:r=>r.minimize!=null&&r.computeGradients!=null&&r.applyGradients!=null});var mu=class extends Hr{constructor(t,e,n=null){super(),this.learningRate=t,this.rho=e,this.epsilon=n,this.accumulatedGrads=[],this.accumulatedUpdates=[],n==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accum_grad`,variable:B(()=>It(s).variable(i))}),this.accumulatedUpdates[o]==null&&(this.accumulatedUpdates[o]={originalName:`${n}/accum_var`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedGrads[o].variable,l=this.accumulatedUpdates[o].variable;B(()=>{let c=X(D(u,this.rho),D(Mt(a),1-this.rho)),p=D(pt(ve(X(l,this.epsilon)),ve(X(u,this.epsilon))),a),m=X(D(l,this.rho),D(Mt(p),1-this.rho));u.assign(c),l.assign(m);let f=X(D(p,-this.learningRate),s);s.assign(f)})}),this.incrementIterations()}dispose(){this.accumulatedUpdates!=null&&(Nt(this.accumulatedGrads.map(t=>t.variable)),Nt(this.accumulatedUpdates.map(t=>t.variable)))}async getWeights(){let t=[...this.accumulatedGrads,...this.accumulatedUpdates];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=t.length/2,n=!1;this.accumulatedGrads=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedUpdates=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,rho:this.rho,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.rho,e.epsilon)}};mu.className="Adadelta";vn(mu);var fu=class extends Hr{constructor(t,e=.1){super(),this.learningRate=t,this.initialAccumulatorValue=e,this.accumulatedGrads=[]}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulatedGrads[o]==null&&(this.accumulatedGrads[o]={originalName:`${n}/accumulator`,variable:B(()=>bo(s.shape,this.initialAccumulatorValue).variable(!1))});let i=Array.isArray(t)?t[o].tensor:t[n];if(i==null)return;let a=this.accumulatedGrads[o].variable;B(()=>{let u=X(a,Mt(i));a.assign(u);let l=X(D(pt(i,ve(X(u,k.backend.epsilon()))),-this.learningRate),s);s.assign(l)})}),this.incrementIterations()}dispose(){this.accumulatedGrads!=null&&Nt(this.accumulatedGrads.map(t=>t.variable))}async getWeights(){return[await this.saveIterations()].concat(this.accumulatedGrads.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulatedGrads=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,initialAccumulatorValue:this.initialAccumulatorValue}}static fromConfig(t,e){return new t(e.learningRate,e.initialAccumulatorValue)}};fu.className="Adagrad";vn(fu);var du=class extends Hr{constructor(t,e,n,o=null){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.accumulatedFirstMoment=[],this.accumulatedSecondMoment=[],B(()=>{this.accBeta1=mt(e).variable(),this.accBeta2=mt(n).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=ct(1,this.accBeta2);e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:B(()=>It(a).variable(u))}),this.accumulatedSecondMoment[i]==null&&(this.accumulatedSecondMoment[i]={originalName:`${s}/v`,variable:B(()=>It(a).variable(u))});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedSecondMoment[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=X(D(p,this.beta2),D(Mt(l),1-this.beta2)),d=pt(m,n),h=pt(f,o);c.assign(m),p.assign(f);let g=X(D(pt(d,X(ve(h),this.epsilon)),-this.learningRate),a);a.assign(g)}),this.accBeta1.assign(D(this.accBeta1,this.beta1)),this.accBeta2.assign(D(this.accBeta2,this.beta2))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.accBeta2.dispose(),this.accumulatedFirstMoment!=null&&Nt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedSecondMoment!=null&&Nt(this.accumulatedSecondMoment.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedFirstMoment,...this.accumulatedSecondMoment];return[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t),B(()=>{this.accBeta1.assign(ln(this.beta1,this.iterations_+1)),this.accBeta2.assign(ln(this.beta2,this.iterations_+1))});let e=t.length/2,n=!1;this.accumulatedFirstMoment=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedSecondMoment=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)}))}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon)}};du.className="Adam";vn(du);var hu=class extends Hr{constructor(t,e,n,o=null,s=0){super(),this.learningRate=t,this.beta1=e,this.beta2=n,this.epsilon=o,this.decay=s,this.accumulatedFirstMoment=[],this.accumulatedWeightedInfNorm=[],B(()=>{this.iteration=mt(0).variable(),this.accBeta1=mt(e).variable()}),o==null&&(this.epsilon=k.backend.epsilon())}applyGradients(t){let e=Array.isArray(t)?t.map(n=>n.name):Object.keys(t);B(()=>{let n=ct(1,this.accBeta1),o=pt(-this.learningRate,X(D(this.iteration,this.decay),1));e.forEach((s,i)=>{let a=k.registeredVariables[s],u=!1;this.accumulatedFirstMoment[i]==null&&(this.accumulatedFirstMoment[i]={originalName:`${s}/m`,variable:It(a).variable(u)}),this.accumulatedWeightedInfNorm[i]==null&&(this.accumulatedWeightedInfNorm[i]={originalName:`${s}/v`,variable:It(a).variable(u)});let l=Array.isArray(t)?t[i].tensor:t[s];if(l==null)return;let c=this.accumulatedFirstMoment[i].variable,p=this.accumulatedWeightedInfNorm[i].variable,m=X(D(c,this.beta1),D(l,1-this.beta1)),f=D(p,this.beta2),d=Ee(l),h=Nn(f,d);c.assign(m),p.assign(h);let g=X(D(pt(o,n),pt(m,X(h,this.epsilon))),a);a.assign(g)}),this.iteration.assign(X(this.iteration,1)),this.accBeta1.assign(D(this.accBeta1,this.beta1))}),this.incrementIterations()}dispose(){this.accBeta1.dispose(),this.iteration.dispose(),this.accumulatedFirstMoment!=null&&Nt(this.accumulatedFirstMoment.map(t=>t.variable)),this.accumulatedWeightedInfNorm!=null&&Nt(this.accumulatedWeightedInfNorm.map(t=>t.variable))}async getWeights(){throw new Error("getWeights() is not implemented for Adamax yet.")}async setWeights(t){throw new Error("setWeights() is not implemented for Adamax yet.")}getConfig(){return{learningRate:this.learningRate,beta1:this.beta1,beta2:this.beta2,epsilon:this.epsilon,decay:this.decay}}static fromConfig(t,e){return new t(e.learningRate,e.beta1,e.beta2,e.epsilon,e.decay)}};hu.className="Adamax";vn(hu);var Ui=class extends Hr{constructor(t){super(),this.learningRate=t,this.setLearningRate(t)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=Array.isArray(t)?t[o].tensor:t[n];if(s==null)return;let i=k.registeredVariables[n];B(()=>{let a=X(D(this.c,s),i);i.assign(a)})}),this.incrementIterations()}setLearningRate(t){this.learningRate=t,this.c!=null&&this.c.dispose(),this.c=Ae(mt(-t))}dispose(){this.c.dispose()}async getWeights(){return[await this.saveIterations()]}async setWeights(t){if(t=await this.extractIterations(t),t.length!==0)throw new Error("SGD optimizer does not have settable weights.")}getConfig(){return{learningRate:this.learningRate}}static fromConfig(t,e){return new t(e.learningRate)}};Ui.className="SGD";vn(Ui);var gu=class extends Ui{constructor(t,e,n=!1){super(t),this.learningRate=t,this.momentum=e,this.useNesterov=n,this.accumulations=[],this.m=mt(this.momentum)}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n];this.accumulations[o]==null&&(this.accumulations[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(!1))});let i=this.accumulations[o].variable,a=Array.isArray(t)?t[o].tensor:t[n];a!=null&&B(()=>{let u,l=X(D(this.m,i),a);this.useNesterov?u=X(D(this.c,X(a,D(l,this.m))),s):u=X(D(this.c,l),s),i.assign(l),s.assign(u)})}),this.incrementIterations()}dispose(){this.m.dispose(),this.accumulations!=null&&Nt(this.accumulations.map(t=>t.variable))}setMomentum(t){this.momentum=t}async getWeights(){return[await this.saveIterations()].concat(this.accumulations.map(t=>({name:t.originalName,tensor:t.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=!1;this.accumulations=t.map(n=>({originalName:n.name,variable:n.tensor.variable(e)}))}getConfig(){return{learningRate:this.learningRate,momentum:this.momentum,useNesterov:this.useNesterov}}static fromConfig(t,e){return new t(e.learningRate,e.momentum,e.useNesterov)}};gu.className="Momentum";vn(gu);var xu=class extends Hr{constructor(t,e=.9,n=0,o=null,s=!1){if(super(),this.learningRate=t,this.decay=e,this.momentum=n,this.epsilon=o,this.accumulatedMeanSquares=[],this.accumulatedMoments=[],this.accumulatedMeanGrads=[],this.centered=s,o==null&&(this.epsilon=k.backend.epsilon()),t==null)throw new Error("learningRate for RMSPropOptimizer must be defined.")}applyGradients(t){(Array.isArray(t)?t.map(n=>n.name):Object.keys(t)).forEach((n,o)=>{let s=k.registeredVariables[n],i=!1;this.accumulatedMeanSquares[o]==null&&(this.accumulatedMeanSquares[o]={originalName:`${n}/rms`,variable:B(()=>It(s).variable(i))}),this.accumulatedMoments[o]==null&&(this.accumulatedMoments[o]={originalName:`${n}/momentum`,variable:B(()=>It(s).variable(i))}),this.accumulatedMeanGrads[o]==null&&this.centered&&(this.accumulatedMeanGrads[o]={originalName:`${n}/mg`,variable:B(()=>It(s).variable(i))});let a=Array.isArray(t)?t[o].tensor:t[n];if(a==null)return;let u=this.accumulatedMeanSquares[o].variable,l=this.accumulatedMoments[o].variable;B(()=>{let c=X(D(u,this.decay),D(Mt(a),1-this.decay));if(this.centered){let p=this.accumulatedMeanGrads[o].variable,m=X(D(p,this.decay),D(a,1-this.decay)),f=pt(D(a,this.learningRate),ve(ct(c,X(Mt(m),this.epsilon)))),d=X(D(l,this.momentum),f);u.assign(c),p.assign(m),l.assign(d);let h=ct(s,d);s.assign(h)}else{let p=X(D(u,this.decay),D(Mt(a),1-this.decay)),m=X(D(l,this.momentum),pt(D(a,this.learningRate),ve(X(p,this.epsilon))));u.assign(p),l.assign(m);let f=ct(s,m);s.assign(f)}})}),this.incrementIterations()}dispose(){this.accumulatedMeanSquares!=null&&Nt(this.accumulatedMeanSquares.map(t=>t.variable)),this.accumulatedMeanGrads!=null&&this.centered&&Nt(this.accumulatedMeanGrads.map(t=>t.variable)),this.accumulatedMoments!=null&&Nt(this.accumulatedMoments.map(t=>t.variable))}async getWeights(){let t=[...this.accumulatedMeanSquares,...this.accumulatedMoments];return this.centered&&t.push(...this.accumulatedMeanGrads),[await this.saveIterations()].concat(t.map(e=>({name:e.originalName,tensor:e.variable})))}async setWeights(t){t=await this.extractIterations(t);let e=this.centered?t.length/3:t.length/2,n=!1;this.accumulatedMeanSquares=t.slice(0,e).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.accumulatedMoments=t.slice(e,e*2).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})),this.centered&&(this.accumulatedMeanGrads=t.slice(e*2,e*3).map(o=>({originalName:o.name,variable:o.tensor.variable(n)})))}getConfig(){return{learningRate:this.learningRate,decay:this.decay,momentum:this.momentum,epsilon:this.epsilon,centered:this.centered}}static fromConfig(t,e){return new t(e.learningRate,e.decay,e.momentum,e.epsilon,e.centered)}};xu.className="RMSProp";vn(xu);var Hs=class{static sgd(t){return new Ui(t)}static momentum(t,e,n=!1){return new gu(t,e,n)}static rmsprop(t,e=.9,n=0,o=null,s=!1){return new xu(t,e,n,o,s)}static adam(t=.001,e=.9,n=.999,o=null){return new du(t,e,n,o)}static adadelta(t=.001,e=.95,n=null){return new mu(t,e,n)}static adamax(t=.002,e=.9,n=.999,o=null,s=0){return new hu(t,e,n,o,s)}static adagrad(t,e=.1){return new fu(t,e)}};var lc={sgd:Hs.sgd,momentum:Hs.momentum,adadelta:Hs.adadelta,adagrad:Hs.adagrad,rmsprop:Hs.rmsprop,adamax:Hs.adamax,adam:Hs.adam};var vX=(()=>typeof requestAnimationFrame!="undefined"?requestAnimationFrame:typeof setImmediate!="undefined"?setImmediate:r=>r())();function xh(){return new Promise(r=>vX(()=>r()))}var S={};Wt(S,{ERF_A1:()=>MX,ERF_A2:()=>zX,ERF_A3:()=>BX,ERF_A4:()=>VX,ERF_A5:()=>GX,ERF_P:()=>LX,PARALLELIZE_THRESHOLD:()=>by,RowPartitionType:()=>Hi,SELU_SCALE:()=>g0,SELU_SCALEALPHA:()=>h0,applyActivation:()=>ic,assertAndGetBroadcastShape:()=>Pt,assertAxesAreInnerMostDims:()=>Yq,assertParamsConsistent:()=>SX,assignToTypedArray:()=>jX,axesAreInnerMostDims:()=>e0,calculateShapes:()=>NE,checkEinsumDimSizes:()=>t5,checkPadOnDimRoundingMode:()=>Ie,combineLocations:()=>jE,combineRaggedTensorToTensorShapes:()=>TX,complexWithEvenIndex:()=>HX,complexWithOddIndex:()=>qX,computeConv2DInfo:()=>Yu,computeConv3DInfo:()=>VE,computeDefaultPad:()=>t0,computeDilation2DInfo:()=>JH,computeOptimalWindowSize:()=>AX,computeOutAndReduceShapes:()=>r0,computeOutShape:()=>NX,computePool2DInfo:()=>QS,computePool3DInfo:()=>QH,convertConv2DDataFormat:()=>GE,decodeEinsumEquation:()=>JX,eitherStridesOrDilationsAreOne:()=>Dr,expandShapeToKeepDim:()=>wo,exponent:()=>YX,exponents:()=>XX,fromStringArrayToUint8:()=>C5,fromUint8ToStringArray:()=>w5,getAxesPermutation:()=>n0,getBroadcastDims:()=>IE,getComplexWithIndex:()=>KX,getEinsumComputePath:()=>e5,getEinsumPermutation:()=>QX,getFusedBiasGradient:()=>sc,getFusedDyActivation:()=>oc,getImageCenter:()=>$X,getInnerMostAxes:()=>Zq,getPermuted:()=>RX,getRaggedRank:()=>EX,getReductionAxes:()=>ge,getReshaped:()=>DX,getReshapedPermuted:()=>FX,getRowPartitionTypesHelper:()=>kX,getSliceBeginCoords:()=>OX,getSliceSize:()=>PX,getSparseFillEmptyRowsIndicesDenseShapeMismatch:()=>s5,getSparseFillEmptyRowsNegativeIndexErrorMessage:()=>i5,getSparseFillEmptyRowsOutOfRangeIndexErrorMessage:()=>a5,getSparseReshapeEmptyTensorZeroOutputDimErrorMessage:()=>c5,getSparseReshapeInputOutputMismatchErrorMessage:()=>m5,getSparseReshapeInputOutputMultipleErrorMessage:()=>p5,getSparseReshapeMultipleNegativeOneOutputDimErrorMessage:()=>l5,getSparseReshapeNegativeOutputDimErrorMessage:()=>u5,getSparseSegmentReductionIndicesOutOfRangeErrorMessage:()=>g5,getSparseSegmentReductionNegativeSegmentIdsErrorMessage:()=>f5,getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage:()=>d5,getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage:()=>h5,getUndoAxesPermutation:()=>mh,isIdentityPermutation:()=>r5,log:()=>u4,mergeRealAndImagArrays:()=>WX,prepareAndValidate:()=>SE,prepareSplitSize:()=>o5,segment_util:()=>y0,shouldFuse:()=>ac,slice_util:()=>Me,splitRealAndImagArrays:()=>UX,tupleValuesAreOne:()=>no,upcastType:()=>ar,validateDefaultValueShape:()=>_X,validateInput:()=>ix,validateUpdateShape:()=>KS,warn:()=>ki});function SX(r,t){let e=r[0].length;r.forEach((o,s)=>{_(o.length===e,()=>`Error in concat${e}D: rank of tensors[${s}] must be the same as the rank of the rest (${e})`)}),_(t>=0&&t`Error in concat${e}D: axis must be between 0 and ${e-1}.`);let n=r[0];r.forEach((o,s)=>{for(let i=0;i`Error in concat${e}D: Shape of tensors[${s}] (${o}) does not match the shape of the rest (${n}) along the non-concatenated axis ${s}.`)})}function NX(r,t){let e=r[0].slice();for(let n=1;n=0)if(a>=0){if(a!==s)throw new Error(`rt input.shape and shape=${t} are incompatible: rt input.shape[${o+r}] = ${s} but shape[${o+r}] = ${a}`)}else n[i]=s}return n}function kX(r){let t={FIRST_DIM_SIZE:Hi.FIRST_DIM_SIZE,VALUE_ROWIDS:Hi.VALUE_ROWIDS,ROW_LENGTHS:Hi.ROW_LENGTHS,ROW_SPLITS:Hi.ROW_SPLITS,ROW_LIMITS:Hi.ROW_LIMITS,ROW_STARTS:Hi.ROW_STARTS},e=[];for(let n of r)if(n in t)e.push(t[n]);else break;return e}function EX(r){return r.length===0?0:r[0]===Hi.FIRST_DIM_SIZE?r.length-1:r.length}function _X(r,t){if(r==null||t==null)return;let e=r.length,n=t.length;if(e>=n)throw new Error(`defaultValue.shape=${r} and ragged tensor flatValues.shape=${t}, are incompatible: defaultValue.rank = ${e} must be less than ragged tensor input flatValues.rank = ${n})`);for(let o=0;o=0&&i>=0&&s!==1&&s!==i)throw new Error(`defaultValue.shape=${r}, and ragged tensor input flatValues.shape=${t} are incompatible: defaultValue.shape[${o-r.length}] = ${s} but ragged tensor input.flatValues.shape[${o-r.length}] = ${i}`)}}var by=30;function AX(r){return r<=by?r:ip(r,Math.floor(Math.sqrt(r)))}function $X(r,t,e){let n=e*(typeof r=="number"?r:r[0]),o=t*(typeof r=="number"?r:r[1]);return[n,o]}function DX(r,t,e,n=!0){let o=[];if(n)o=o.concat(t.slice(0)),o.push(r[0]/e),o=o.concat(r.slice(1));else{o=o.concat(r[0]);let s=t.length;for(let i=0;i=t*2+1||i%2===1?s.push(i):o.push(i);n.push(...o),n.push(0),n.push(...s)}return n}function FX(r,t,e,n=!0){let o=[];n?o.push(r[0]/e):o.push(r[0]*e);for(let s=1;s/g,SA=",",NA="...";function JX(r,t){r=r.replace(/\s/g,"");let e=(r.length-r.replace(ZX,"").length)/x0.length;if(e<1)throw new Error("Equations without an arrow are not supported.");if(e>1)throw new Error(`Equation must contain exactly one arrow ("${x0}").`);let[n,o]=r.split(x0);_(n.indexOf(NA)===-1,()=>`The ellipsis notation ("${NA}") is not supported yet.`);let s=n.split(SA),i=s.length;if(t!==i)throw new Error(`Expected ${i} input tensors, received ${t}`);if(i>2)throw new Error("Support for more than 2 input tensors is not implemented yet.");let a=[];for(let m=0;md.indexOf(f)!==-1))throw new Error(`Output subscripts contain the label ${f} not present in the input subscripts.`);a.indexOf(f)===-1&&a.push(f)}for(let m=0;mo!==-1),{permutationIndices:e,expandDims:n}}function t5(r,t,e){let n=new Array(r);for(let o=0;o`Expected dimension ${n[t[o][i]]} at axis ${i} of input shaped ${JSON.stringify(s)}, but got dimension ${s[i]}`)}}function e5(r,t){let e=r,n=[],o=0;r.length===0&&e.push(-1),o=r.length+1;for(let i=0;it===e)}function n5(r,t){let e=[];for(let n=0;n"Number of splits must evenly divide the axis."),n=new Array(t).fill(r.shape[e]/t);else{let o=t.reduce((i,a)=>(a===-1&&(i+=1),i),0);_(o<=1,()=>"There should be only one negative value in split array.");let s=t.indexOf(-1);if(s!==-1){let i=t.reduce((a,u)=>u>0?a+u:a);t[s]=r.shape[e]-i}_(r.shape[e]===t.reduce((i,a)=>i+a),()=>"The sum of sizes must match the size of the axis dimension."),n=t}return n}function s5(r){return`Received SparseTensor with denseShape[0] = 0 but + indices.shape[0] = ${r}`}function i5(r,t){return`indices(${r}, 0) is invalid: ${t} < 0`}function a5(r,t,e){return`indices(${r}, 0) is invalid: ${t} >= ${e}`}function l5(r,t){return`only one output dimension may be -1, not both ${r} and ${t}`}function u5(r,t){return`size ${r} must be non-negative, not ${t}`}function c5(){return"reshape cannot infer the missing input size for an empty tensor unless all specified input sizes are non-zero"}function p5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a SparseTensor with ${e} + dense values, but the requested shape requires a multiple of ${n}. inputShape=${r} outputShape= ${t}`}function m5(r,t){let e=Jt(r),n=Jt(t);return`Input to reshape is a tensor with ${e} dense values, but the requested shape has ${n}. inputShape=${r} outputShape=${t}`}function f5(){return"segment ids must be >= 0"}function d5(){return"segment ids are not increasing"}function h5(r,t){return`Segment id ${r} out of range [0, ${t}), possibly because segmentIds input is not sorted.`}function g5(r,t,e){return`Bad: indices[${r}] == ${t} out of range [0, ${e})`}var y0={};Wt(y0,{collectGatherOpShapeInfo:()=>b5,computeOutShape:()=>y5,segOpComputeOptimalWindowSize:()=>x5});function x5(r,t){let e=!1,n;for(r<=by?(n=r,e=!0):n=ip(r,Math.floor(Math.sqrt(r)));!e;)n>t||n===r?e=!0:n=ip(r,n+1);return n}function y5(r,t,e){let n=[],o=r.length;for(let s=0;so))throw new Error(`Expect batchDims in the range of [-${o}, ${o}], but got ${n}`);if(n<0&&(n+=o),n>s)throw new Error(`batchDims (${n}) must be less than rank(x) ( + ${s}).`);if(eUp(t))}catch(t){throw new Error(`Failed to decode encoded string bytes into utf-8, error: ${t}`)}}function C5(r){return r.map(t=>jl(t))}var qr={};Wt(qr,{nonMaxSuppressionV3Impl:()=>dy,nonMaxSuppressionV4Impl:()=>hy,nonMaxSuppressionV5Impl:()=>gy,whereImpl:()=>ly});var wy={kernelName:ui,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Co(J(e,"float32"),-1))}}};var TA={kernelName:ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Mt(J(e,"float32")),o=ve(ct(mt(1),n));return Ht(pt(r,o))}}}};var kA={kernelName:ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(ct(Mt(J(e,"float32")),1));return pt(r,n)}}}};var EA={kernelName:Qn,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(a,n.shape)}}}};var _A={kernelName:Wo,saveAllInputs:!0,gradFunc:(r,t)=>{let e={};return t.forEach((n,o)=>{e[o]=()=>r.clone()}),e}};var AA={kernelName:Uo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var $A={kernelName:Al,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>It(e)}}};var DA={kernelName:fa,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ve(ct(mt(1),Mt(J(e,"float32")))))}}};var RA={kernelName:da,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=ve(X(mt(1),Mt(J(e,"float32"))));return pt(r,n)}}}};var FA={kernelName:xa,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=X(Mt(e),Mt(n)),u=D(r,pt(n,a)),l=ge(e.shape,o);return l.length>0&&(u=ft(u,l)),R(u,e.shape)},b:()=>{let a=X(Mt(e),Mt(n)),u=Ht(D(r,pt(e,a))),l=ge(n.shape,o);return l.length>0&&(u=ft(u,l)),R(u,n.shape)}}}};var OA={kernelName:ha,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(Mt(J(e,"float32")),1))}}};var PA={kernelName:ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,ct(mt(1),Mt(J(e,"float32"))))}}};function I5(r,t,e,n,o,s){let i=v(r,"dy","avgPool3dGrad"),a=v(t,"input","avgPool3dGrad"),u=i,l=a,c=!1;a.rank===4&&(c=!0,u=R(i,[1,i.shape[0],i.shape[1],i.shape[2],i.shape[3]]),l=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]])),_(u.rank===5,()=>`Error in avgPool3dGrad: dy must be rank 5 but got rank ${u.rank}.`),_(l.rank===5,()=>`Error in avgPool3dGrad: input must be rank 5 but got rank ${l.rank}.`),Ie("avgPool3dGrad",o,s);let p={dy:u,input:l},m={filterSize:e,strides:n,pad:o,dimRoundingMode:s},f=k.runKernel(up,p,m);return c?R(f,[f.shape[1],f.shape[2],f.shape[3],f.shape[4]]):f}var LA=T({avgPool3dGrad_:I5});var MA={kernelName:$l,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i,dimRoundingMode:a}=e;return{x:()=>LA(r,n,o,s,i,a)}}};function v5(r,t,e,n,o){let s=v(r,"dy","avgPoolGrad"),i=v(t,"input","avgPoolGrad");_(i.rank===s.rank,()=>`Rank of input (${i.rank}) does not match rank of dy (${s.rank})`);let a=i,u=s,l=!1;i.rank===3&&(l=!0,a=R(i,[1,i.shape[0],i.shape[1],i.shape[2]]),u=R(s,[1,s.shape[0],s.shape[1],s.shape[2]])),_(u.rank===4,()=>`Error in avgPoolGrad: dy must be rank 4 but got rank ${u.rank}.`),_(a.rank===4,()=>`Error in avgPoolGrad: input must be rank 4 but got rank ${a.rank}.`);let c={dy:u,input:a},p={filterSize:e,strides:n,pad:o},m=k.runKernel(lp,c,p);return l?R(m,[m.shape[1],m.shape[2],m.shape[3]]):m}var zA=T({avgPoolGrad_:v5});var BA={kernelName:Ho,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{filterSize:o,strides:s,pad:i}=e;return{x:()=>zA(r,n,o,s,i)}}};var VA={kernelName:qo,inputsToSave:["a","b"],gradFunc:(r,t,e)=>{let[n,o]=t,{transposeA:s,transposeB:i}=e;return!s&&!i?{a:()=>Lt(r,o,!1,!0),b:()=>Lt(n,r,!0,!1)}:!s&&i?{a:()=>Lt(r,o,!1,!1),b:()=>Lt(r,n,!0,!1)}:s&&!i?{a:()=>Lt(o,r,!1,!0),b:()=>Lt(n,r,!1,!1)}:{a:()=>Lt(o,r,!0,!0),b:()=>Lt(r,n,!0,!0)}}};var GA={kernelName:ci,gradFunc:(r,t,e)=>{let{blockShape:n,crops:o}=e;return{x:()=>iu(r,n,o)}}};var WA={kernelName:d1,gradFunc:(r,t,e)=>{let n=e,o=n.inputShape,s=n.shape,i=Array.from(s);for(let u=o.length-1;u>=0;u--)if(o[u]===s[u])i[u]=1;else if(o[u]!==1)throw new Error(`broadcastTo(): [${o}] cannot be broadcast to [${s}].`);let a=[];for(let u=0;u1&&a.push(u);return{x:()=>ft(r,a,!0)}}};var UA={kernelName:co,gradFunc:r=>({x:()=>r.clone()})};var HA={kernelName:Ko,gradFunc:r=>({x:()=>It(r)})};var qA={kernelName:po,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{clipValueMin:o,clipValueMax:s}=e;return{x:()=>_e(Or(un(n,o),zn(n,s)),r,It(r))}}};var KA={kernelName:Dl,inputsToSave:["x"],gradFunc:wy.gradFunc};var jA={kernelName:pi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let n=t.map(u=>u.shape),{axis:o}=e,s=cr(o,t[0].shape)[0],i=n.map(u=>u[s]);return fr(r,i,s).map(u=>()=>u)}};var XA={kernelName:jo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{dilations:s,strides:i,pad:a,dataFormat:u}=e;return _(no(s),()=>`Error in gradient of conv2D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${s}'`),{x:()=>em(n.shape,r,o,i,a,u),filter:()=>Im(n,r,o.shape,i,a,u)}}};var YA={kernelName:Xo,inputsToSave:["dy","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,{strides:s,pad:i,dataFormat:a,dimRoundingMode:u}=e;return{dy:()=>Sn(r,o,s,i,a,1,u),filter:()=>Im(r,n,o.shape,s,i,a,u)}}};function S5(r,t,e,n,o){let s=r;r.rank===4&&(s=R(r,[1,r.shape[0],r.shape[1],r.shape[2],r.shape[3]]));let i=t;i.rank===4&&(i=R(t,[1,t.shape[0],t.shape[1],t.shape[2],t.shape[3]])),_(s.rank===5,()=>`Error in conv3dDerFilter: input must be rank 5, but got shape ${s.shape}.`),_(i.rank===5,()=>`Error in conv3dDerFilter: dy must be rank 5, but got shape ${i.shape}.`),_(e.length===5,()=>`Error in conv3dDerFilter: filterShape must be length 5, but got ${e}.`),_(s.shape[4]===e[3],()=>`Error in conv3dDerFilter: depth of input ${s.shape[4]}) must match input depth in filter (${e[3]}.`),_(i.shape[4]===e[4],()=>`Error in conv3dDerFilter: depth of dy (${i.shape[4]}) must match output depth for filter (${e[4]}).`);let a={x:s,dy:i},u={strides:n,pad:o,filterShape:e};return k.runKernel(dp,a,u)}var ZA=T({conv3DBackpropFilter_:S5});var JA={kernelName:Rl,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s}=e;_(no(n),()=>`Error in gradient of conv3D: dilation rates greater than 1 are not yet supported in gradients. Got dilations '${n}'`);let[i,a]=t;return{x:()=>Ex(i.shape,r,a,o,s),filter:()=>ZA(i,r,a.shape,o,s)}}};var QA={kernelName:Yo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(Ht(dm(J(e,"float32"))),r)}}};var t2={kernelName:Zo,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(hm(J(e,"float32")),r)}}};var e2={kernelName:Jo,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o,exclusive:s,reverse:i}=e;return{x:()=>{let a=n0([o],n.rank),u=om(r,o,s,!i);return a!=null&&(u=Ot(u,a)),u}}}};var r2={kernelName:Qo,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let{dilations:n,strides:o,pad:s,dimRoundingMode:i}=e,a=n==null?[1,1]:n;_(no(a),()=>`Error in gradient of depthwiseConv2dNative: dilation rates greater than 1 are not yet supported. Got dilations '${a}'`);let[u,l]=t;return _(u.rank===4,()=>`Error in gradient of depthwiseConv2dNative: input must be rank 4, but got rank ${u.rank}.`),_(l.rank===4,()=>`Error in gradient of depthwiseConv2dNative: filter must be rank 4, but got rank ${l.rank}.`),_(u.shape[3]===l.shape[2],()=>`Error in gradient of depthwiseConv2d: number of input channels (${u.shape[3]}) must match the inChannels dimension in filter ${l.shape[2]}.`),_(Dr(o,a),()=>`Error in gradient of depthwiseConv2d: Either strides or dilations must be 1. Got strides ${o} and dilations '${a}'.`),Ie("depthwiseConv2d",s,i),{x:()=>py(u.shape,r,l,o,s,a,i),filter:()=>cy(u,r,l.shape,o,s,a,i)}}};var n2={kernelName:Fl,inputsToSave:["x","filter"],gradFunc:(r,t,e)=>{let[n,o]=t,s={x:n,filter:o,dy:r},i={x:n,filter:o,dy:r};return{x:()=>k.runKernel(Xd,s,e),filter:()=>k.runKernel(Yd,i,e)}}};var o2={kernelName:es,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t,n={dy:r,y:e};return{x:()=>k.runKernel(Cp,n)}}};var s2={kernelName:Ca,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(or(Ht(Mt(e))),2/Math.sqrt(Math.PI));return{x:()=>D(r,n)}}};var i2={kernelName:rs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,e)}}};var a2={kernelName:mi,inputsToSave:["input"],gradFunc:(r,t)=>{let[e]=t;return{input:()=>R(r,e.shape)}}};var l2={kernelName:va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,or(e))}}};var u2={kernelName:ns,gradFunc:r=>({x:()=>It(r)})};var c2={kernelName:os,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var p2={kernelName:ss,inputsToSave:["x","mean","variance","scale"],gradFunc:(r,t,e)=>{let{varianceEpsilon:n}=e,[o,s,i,a]=t,u=a==null?mt(1):a,l=ge(s.shape,o.shape),c=[];if(s.rank===1){for(let C=0;Cs.rank===1?R(D(D(r,Fr(R(f,[1,1,1,s.shape[0]]),c)),u),o.shape):R(D(D(r,f),u),o.shape),mean:()=>{let C=D(D(f,mt(-1)),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},variance:()=>{let C=D(D(d,p),m);return s.rank===1&&(C=ft(C,l)),R(C,s.shape)},scale:()=>{let C=D(p,f),N=D(r,C);return s.rank===1&&(N=ft(N,l)),R(N,s.shape)},offset:()=>{let C=r;return s.rank===1&&(C=ft(C,l)),R(C,s.shape)}}}};var d2={kernelName:fi,inputsToSave:["x","indices"],gradFunc:(r,t,e)=>{let[n,o]=t,{axis:s}=e,i=cr(s,n.shape)[0];return{x:()=>{let u=n.shape,l=o.size,c=u.slice(0,i),p=c.length,m=u.slice(s,u.length).slice(1),f=m.length,d=m2(0,p),h=m2(p+1,p+1+f),g=f2([c,[l],m]),x=R(r,g),b=R(o,[l]),w=f2([[p],d,h]),C=Ot(x,w),N=Cm(C,b,n.shape[i]),E=mh(w);return N=Ot(N,E),N},indices:()=>o}}};function m2(r,t){let e=[];for(let n=r;n{let[e,n]=t;return{a:()=>It(e),b:()=>It(n)}}};var g2={kernelName:mo,gradFunc:r=>({x:()=>J(r,"float32")})};var x2={kernelName:ka,gradFunc:r=>({x:()=>It(r)})};var y2={kernelName:Ea,gradFunc:r=>({x:()=>It(r)})};var b2={kernelName:as,gradFunc:r=>({x:()=>It(r)})};var w2={kernelName:ls,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{alpha:o}=e,s=Re(n,0);return{x:()=>_e(s,r,D(r,o))}}};var C2={kernelName:$a,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,X(e,1))}}};var I2={kernelName:us,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,J(e,"float32"))}}};var v2={kernelName:g1,inputsToSave:[],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e;return{logits:()=>{let i=or(n);return ct(r,D(ft(r,o,!0),i))}}}};function N5(r,t,e,n=5,o=1,s=1,i=.5){let a={x:r,y:t,dy:e},u={depthRadius:n,bias:o,alpha:s,beta:i};return k.runKernel(Tp,a,u)}var S2=T({localResponseNormalizationBackprop_:N5});var N2={kernelName:Pl,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{depthRadius:s,bias:i,alpha:a,beta:u}=e;return{x:()=>S2(n,o,r,s,i,a,u)}}};function Cy(r,t,e,n){return t.rankD(r,J(Rr(e,t),r.dtype))}}var b0={kernelName:cs,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{reductionIndices:o}=n,s=t[0],i=t[1],a=cr(o,s.shape),u=Cy(r,i,s,a);return{x:()=>u.x()}}};var T2={kernelName:ps,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(un(e,n),"float32")),b:()=>D(r,J(sm(e,n),"float32"))}}};function T5(r,t,e,n,o,s,i){let a=v(r,"dy","maxPool3dGrad"),u=v(t,"input","maxPool3dGrad"),l=v(e,"output","maxPool3dGrad"),c=a,p=u,m=l,f=!1;u.rank===4&&(f=!0,c=R(a,[1,a.shape[0],a.shape[1],a.shape[2],a.shape[3]]),p=R(u,[1,u.shape[0],u.shape[1],u.shape[2],u.shape[3]]),m=R(l,[1,l.shape[0],l.shape[1],l.shape[2],l.shape[3]])),_(c.rank===5,()=>`Error in maxPool3dGrad: dy must be rank 5 but got rank ${c.rank}.`),_(p.rank===5,()=>`Error in maxPool3dGrad: input must be rank 5 but got rank ${p.rank}.`),_(m.rank===5,()=>`Error in maxPool3dGrad: output must be rank 5 but got rank ${m.rank}.`),Ie("maxPool3dGrad",s,i);let d={dy:c,input:p,output:m},h={filterSize:n,strides:o,pad:s,dimRoundingMode:i},g=k.runKernel(Ep,d,h);return f?R(g,[g.shape[1],g.shape[2],g.shape[3],g.shape[4]]):g}var k2=T({maxPool3dGrad_:T5});var E2={kernelName:Ll,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=e;return{x:()=>k2(r,n,o,s,i,a,u)}}};function k5(r,t,e,n,o,s,i){let a=v(r,"dy","maxPoolGrad"),u=v(t,"input","maxPoolGrad"),l=v(e,"output","maxPoolGrad");_(u.rank===a.rank,()=>`Rank of input (${u.rank}) does not match rank of dy (${a.rank})`),_(a.rank===4,()=>`Error in maxPoolGrad: dy must be rank 4 but got rank ${a.rank}.`),_(u.rank===4,()=>`Error in maxPoolGrad: input must be rank 4 but got rank ${u.rank}.`),Ie("maxPoolGrad",s,i);let c={dy:a,input:u,output:l},p={filterSize:n,strides:o,pad:s,dimRoundingMode:i};return k.runKernel(kp,c,p)}var _2=T({maxPoolGrad_:k5});var A2={kernelName:ms,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n,o]=t,{filterSize:s,strides:i,pad:a}=e;return{x:()=>_2(r,n,o,s,i,a)}}};var $2={kernelName:fs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=cr(o,n.shape),a=r0(n.shape,s)[1],u=Jt(a);return{x:()=>{let c=n.shape.slice();s.forEach(f=>{c[f]=1});let p=R(r,c);return pt(D(p,pr(n.shape,"float32")),u)}}}};var D2={kernelName:ds,inputsToSave:["x"],outputsToSave:[!0],gradFunc:(r,t,e)=>{let n=e,{axis:o}=n,[s,i]=t,a=cr(o,s.shape),u=Cy(r,i,s,a);return{x:()=>u.x()}}};var R2={kernelName:hs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t;return{a:()=>D(r,J(zn(e,n),"float32")),b:()=>D(r,J(Re(e,n),"float32"))}}};var F2={kernelName:gs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var O2={kernelName:Oa,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=ge(e.shape,o);return a.length>0?R(ft(r,a),e.shape):r},b:()=>{let a=D(r,Ht(zi(pt(e,n)))),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var P2={kernelName:xs,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=D(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);return u.length>0?R(ft(a,u),n.shape):a}}}};var L2={kernelName:di,gradFunc:r=>({x:()=>Ht(r)})};var M2={kernelName:ys,inputsToSave:["indices"],gradFunc:(r,t)=>{let e=t[0];return{indices:()=>Ne(e.shape,"float32")}}};var z2={kernelName:hi,gradFunc:r=>({x:()=>It(r)})};var B2={kernelName:gi,saveAllInputs:!0,gradFunc:(r,t,e)=>{let{axis:n}=e;return dr(r,n).map(s=>()=>s)}};var w0={kernelName:bs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let n=t[0],{paddings:o}=e,s=o.map(i=>i[0]);return{x:()=>Rt(r,s,n.shape)}}};var V2={kernelName:ws,inputsToSave:["a","b"],outputsToSave:[!0],gradFunc:(r,t)=>{let[e,n,o]=t,s=e,i=n,a=Pt(s.shape,i.shape);return{a:()=>{let c=J(i,"float32"),p=D(r,D(c,ln(s,ct(c,mt(1))))),m=ge(s.shape,a);return m.length>0&&(p=ft(p,m)),R(p,s.shape)},b:()=>{let c=Re(s,0),p=_e(c,Nr(s),It(s)),m=D(r,D(o,p)),f=ge(i.shape,a);return f.length>0&&(m=ft(m,f)),R(m,i.shape)}}}};var G2={kernelName:Cs,inputsToSave:["x","alpha"],gradFunc:(r,t)=>{let[e,n]=t,o=Re(e,0);return{x:()=>_e(o,r,D(r,n)),alpha:()=>{let s=_e(o,It(r),D(r,e)),i=ge(n.shape,r.shape);return i.length>0&&(s=ft(s,i)),R(s,n.shape)}}}};function E5(r,t,e){let n=r.shape.slice();n[e]=1;let o=R(t,n),s=Zu(r,e,!0,!1),i=Zu(r,e,!0,!0),a=D(s,i);return D(o,a)}function _5(r,t,e){let n=r.shape.length,o=n-e.length,s=S.getAxesPermutation(e,n),i=r;s!=null&&(i=Ot(r,s));let a=i.shape.slice(),l=a.splice(n-e.length,e.length).reduce((m,f)=>m*f,1);a.push(l);let c=i.reshape(a),p=E5(c,t,o);if(p=p.reshape(i.shape),s!=null){let m=S.getUndoAxesPermutation(s);p=Ot(p,m)}return p}var W2={kernelName:Is,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{axis:o}=e,s=[];return o==null?s=n.shape.map((i,a)=>a):typeof o=="number"?s=[o]:s=o,{x:()=>_5(n,r,s)}}};var U2={kernelName:ts,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=pt(r,J(n,"float32")),u=ge(e.shape,o);return u.length>0?R(ft(a,u),e.shape):a},b:()=>{let a=D(r,J(e,"float32")),u=ge(n.shape,o);u.length>0&&(a=R(ft(a,u),n.shape));let l=Mt(n);return Ht(pt(a,J(l,"float32")))}}}};var H2={kernelName:vs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Ht(Mt(e)))}}};var q2={kernelName:ks,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t,n=D(zn(e,6),Co(e));return{x:()=>D(r,J(n,"float32"))}}};var K2={kernelName:Ss,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,J(Co(e),"float32"))}}};var j2={kernelName:xi,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>R(r,e.shape)}}};var X2={kernelName:Ts,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Pp,o,e)}}};var Y2={kernelName:Ns,inputsToSave:["images"],gradFunc:(r,t,e)=>{let[n]=t,o={dy:r,images:n};return{images:()=>k.runKernel(Op,o,e)}}};var Z2={kernelName:Es,gradFunc:(r,t,e)=>{let{dims:n}=e,o=cr(n,r.shape);return{x:()=>mr(r,o)}}};var J2={kernelName:_s,gradFunc:r=>({x:()=>It(r)})};var Q2={kernelName:As,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>Ht(pt(r,D(ln(e,1.5),2)))}}};var t$={kernelName:yi,inputsToSave:["condition"],gradFunc:(r,t)=>{let[e]=t;return{condition:()=>J(It(e),"float32"),t:()=>D(r,J(e,r.dtype)),e:()=>D(r,J(ou(e),r.dtype))}}};var e$={kernelName:Va,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>{let n=Re(e,mt(0)),o=mt(h0),s=mt(g0),i=D(r,s),a=D(D(r,o),or(J(e,"float32")));return _e(n,i,a)}}}};var r$={kernelName:Ds,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(e,ct(mt(1),e)))}}};var n$={kernelName:Wa,gradFunc:r=>({x:()=>It(r)})};var o$={kernelName:$s,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(eu(J(e,"float32")),r)}}};var s$={kernelName:Ga,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(nm(J(e,"float32")),r)}}};var i$={kernelName:bi,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{begin:o,size:s}=e,i=n.shape,[a,u]=XS(n,o,s),l=[];for(let c=0;cpn(r,l)}}};var a$={kernelName:Os,outputsToSave:[!0],gradFunc:(r,t,e)=>{let[n]=t,{dim:o}=e,s=!0,i=D(r,n);return{logits:()=>ct(i,D(ft(i,[o],s),n))}}};var l$={kernelName:Ua,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,Jr(e))}}};var C0={kernelName:wi,gradFunc:(r,t,e)=>{let{blockShape:n,paddings:o}=e;return{x:()=>tu(r,n,o)}}};var I0={kernelName:Ci,gradFunc:(r,t,e)=>{let{axis:n}=e;return{x:()=>oe(r,n)}}};var u$={kernelName:Rs,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,D(ve(J(e,"float32")),2))}}};var c$={kernelName:Gl,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(r,D(J(e,"float32"),2))}}};var p$={kernelName:Ps,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=mt(2);return{a:()=>D(r,D(o,ct(e,n))),b:()=>D(r,D(o,ct(n,e)))}}};var m$={kernelName:fo,gradFunc:r=>({x:()=>It(r)})};var f$={kernelName:Ls,inputsToSave:["a","b"],gradFunc:(r,t)=>{let[e,n]=t,o=Pt(e.shape,n.shape);return{a:()=>{let a=r,u=ge(e.shape,o);return u.length>0&&(a=ft(a,u)),R(a,e.shape)},b:()=>{let a=r,u=ge(n.shape,o);return u.length>0&&(a=ft(a,u)),R(Ht(a),n.shape)}}}};var d$={kernelName:Fs,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,o=n.shape.slice(),{axis:s}=e;cr(s,n.shape).forEach(l=>{o[l]=1});let a=R(r,o),u=D(a,pr(n.shape,"float32"));return{x:()=>u}}};var h$={kernelName:Ms,inputsToSave:["x"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>pt(r,Mt(eu(e)))}}};var g$={kernelName:zs,outputsToSave:[!0],gradFunc:(r,t)=>{let[e]=t;return{x:()=>D(ct(mt(1),Mt(e)),r)}}};var x$={kernelName:to,inputsToSave:["x"],gradFunc:(r,t,e)=>{let[n]=t,{reps:o}=e;return{x:()=>{let i=It(n);if(n.rank===1)for(let a=0;a{let n=e,{perm:o}=n,s=mh(o);return{x:()=>Ot(r,s)}}};var b$={kernelName:Ii,gradFunc:(r,t,e)=>{let n=e,{axis:o}=n;return{value:()=>qe(r,o)}}};var w$={kernelName:ql,inputsToSave:["segmentIds"],gradFunc:(r,t)=>{let[e]=t;return{x:()=>A5(r,e)}}};function A5(r,t){let e=Nn(t,It(t)),n=Bi(r,e),o=un(t,mt(0,"int32")),s=n.rank-o.rank;for(let a=0;a({x:()=>It(r)})};var $5=[wy,TA,kA,EA,_A,AA,$A,DA,RA,FA,OA,PA,MA,BA,VA,GA,WA,UA,HA,qA,KA,jA,YA,XA,JA,QA,t2,e2,r2,n2,U2,o2,s2,i2,a2,l2,c2,u2,p2,d2,h2,g2,x2,y2,b2,w2,C2,I2,v2,N2,b0,b0,T2,E2,A2,$2,D2,R2,F2,O2,P2,L2,M2,z2,B2,w0,w0,V2,G2,W2,H2,q2,K2,j2,X2,Y2,Z2,J2,Q2,t$,e$,r$,n$,o$,s$,i$,a$,l$,C0,C0,I0,I0,u$,p$,c$,m$,f$,d$,h$,g$,x$,y$,b$,w$,C$];for(let r of $5)y1(r);O().prototype.abs=function(){return this.throwIfDisposed(),Ee(this)};O().prototype.acos=function(){return this.throwIfDisposed(),lx(this)};O().prototype.acosh=function(){return this.throwIfDisposed(),ux(this)};O().prototype.add=function(r){return this.throwIfDisposed(),X(this,r)};O().prototype.all=function(r,t){return this.throwIfDisposed(),Jp(this,r,t)};O().prototype.any=function(r,t){return this.throwIfDisposed(),ju(this,r,t)};O().prototype.argMax=function(r){return this.throwIfDisposed(),Ri(this,r)};O().prototype.argMin=function(r){return this.throwIfDisposed(),cx(this,r)};O().prototype.asScalar=function(){return this.throwIfDisposed(),_(this.size===1,()=>"The array must have only 1 element."),R(this,[])};O().prototype.asType=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.as1D=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.as2D=function(r,t){return this.throwIfDisposed(),R(this,[r,t])};O().prototype.as3D=function(r,t,e){return this.throwIfDisposed(),R(this,[r,t,e])};O().prototype.as4D=function(r,t,e,n){return this.throwIfDisposed(),R(this,[r,t,e,n])};O().prototype.as5D=function(r,t,e,n,o){return this.throwIfDisposed(),R(this,[r,t,e,n,o])};O().prototype.asin=function(){return this.throwIfDisposed(),px(this)};O().prototype.asinh=function(){return this.throwIfDisposed(),mx(this)};O().prototype.atan=function(){return this.throwIfDisposed(),fx(this)};O().prototype.atan2=function(r){return this.throwIfDisposed(),dx(this,r)};O().prototype.atanh=function(){return this.throwIfDisposed(),hx(this)};O().prototype.avgPool=function(r,t,e,n){return this.throwIfDisposed(),Ql(this,r,t,e,n)};O().prototype.batchToSpaceND=function(r,t){return this.throwIfDisposed(),tu(this,r,t)};O().prototype.batchNorm=function(r,t,e,n,o){return this.throwIfDisposed(),Oi(this,r,t,e,n,o)};O().prototype.broadcastTo=function(r){return this.throwIfDisposed(),Pi(this,r)};O().prototype.cast=function(r){return this.throwIfDisposed(),J(this,r)};O().prototype.ceil=function(){return this.throwIfDisposed(),Ix(this)};O().prototype.clipByValue=function(r,t){return this.throwIfDisposed(),vr(this,r,t)};O().prototype.concat=function(r,t){return this.throwIfDisposed(),r instanceof Ft&&(r=[r]),oe([this,...r],t)};O().prototype.conv1d=function(r,t,e,n,o,s){return this.throwIfDisposed(),tm(this,r,t,e,n,o,s)};O().prototype.conv2dTranspose=function(r,t,e,n,o){return this.throwIfDisposed(),rm(this,r,t,e,n,o)};O().prototype.conv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Sn(this,r,t,e,n,o,s)};O().prototype.cos=function(){return this.throwIfDisposed(),eu(this)};O().prototype.cosh=function(){return this.throwIfDisposed(),nm(this)};O().prototype.cumprod=function(r,t,e){return this.throwIfDisposed(),Zu(this,r,t,e)};O().prototype.cumsum=function(r,t,e){return this.throwIfDisposed(),om(this,r,t,e)};O().prototype.depthToSpace=function(r,t){return this.throwIfDisposed(),Ax(this,r,t)};O().prototype.depthwiseConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),Li(this,r,t,e,n,o,s)};O().prototype.dilation2d=function(r,t,e,n,o){return this.throwIfDisposed(),$x(this,r,t,e,n,o)};O().prototype.divNoNan=function(r){return this.throwIfDisposed(),Dx(this,r)};O().prototype.div=function(r){return this.throwIfDisposed(),pt(this,r)};O().prototype.dot=function(r){return this.throwIfDisposed(),Rx(this,r)};O().prototype.elu=function(){return this.throwIfDisposed(),Mi(this)};O().prototype.equal=function(r){return this.throwIfDisposed(),Rr(this,r)};O().prototype.erf=function(){return this.throwIfDisposed(),Fx(this)};O().prototype.euclideanNorm=function(r,t){return this.throwIfDisposed(),Ox(this,r,t)};O().prototype.exp=function(){return this.throwIfDisposed(),or(this)};O().prototype.expandDims=function(r){return this.throwIfDisposed(),sr(this,r)};O().prototype.expm1=function(){return this.throwIfDisposed(),Px(this)};O().prototype.fft=function(){return this.throwIfDisposed(),uu(this)};O().prototype.flatten=function(){return this.throwIfDisposed(),R(this,[this.size])};O().prototype.floor=function(){return this.throwIfDisposed(),zi(this)};O().prototype.floorDiv=function(r){return this.throwIfDisposed(),Zp(this,r)};O().prototype.gather=function(r,t){return this.throwIfDisposed(),Bi(this,r,t)};O().prototype.greaterEqual=function(r){return this.throwIfDisposed(),un(this,r)};O().prototype.greater=function(r){return this.throwIfDisposed(),Re(this,r)};O().prototype.ifft=function(){return this.throwIfDisposed(),nl(this)};O().prototype.irfft=function(){return this.throwIfDisposed(),ym(this)};O().prototype.isFinite=function(){return this.throwIfDisposed(),Lx(this)};O().prototype.isInf=function(){return this.throwIfDisposed(),Mx(this)};O().prototype.isNaN=function(){return this.throwIfDisposed(),zx(this)};O().prototype.leakyRelu=function(r){return this.throwIfDisposed(),ru(this,r)};O().prototype.lessEqual=function(r){return this.throwIfDisposed(),zn(this,r)};O().prototype.less=function(r){return this.throwIfDisposed(),sm(this,r)};O().prototype.localResponseNormalization=function(r,t,e,n){return this.throwIfDisposed(),Bx(this,r,t,e,n)};O().prototype.logSigmoid=function(){return this.throwIfDisposed(),Wx(this)};O().prototype.logSoftmax=function(r){return this.throwIfDisposed(),im(this,r)};O().prototype.logSumExp=function(r,t){return this.throwIfDisposed(),am(this,r,t)};O().prototype.log=function(){return this.throwIfDisposed(),Nr(this)};O().prototype.log1p=function(){return this.throwIfDisposed(),nu(this)};O().prototype.logicalAnd=function(r){return this.throwIfDisposed(),Or(this,r)};O().prototype.logicalNot=function(){return this.throwIfDisposed(),ou(this)};O().prototype.logicalOr=function(r){return this.throwIfDisposed(),lm(this,r)};O().prototype.logicalXor=function(r){return this.throwIfDisposed(),Ux(this,r)};O().prototype.matMul=function(r,t,e){return this.throwIfDisposed(),Lt(this,r,t,e)};O().prototype.maxPool=function(r,t,e,n){return this.throwIfDisposed(),su(this,r,t,e,n)};O().prototype.max=function(r,t){return this.throwIfDisposed(),Sr(this,r,t)};O().prototype.maximum=function(r){return this.throwIfDisposed(),Nn(this,r)};O().prototype.mean=function(r,t){return this.throwIfDisposed(),Se(this,r,t)};O().prototype.min=function(r,t){return this.throwIfDisposed(),el(this,r,t)};O().prototype.minimum=function(r){return this.throwIfDisposed(),Vi(this,r)};O().prototype.mirrorPad=function(r,t){return this.throwIfDisposed(),Kx(this,r,t)};O().prototype.mod=function(r){return this.throwIfDisposed(),jx(this,r)};O().prototype.mul=function(r){return this.throwIfDisposed(),D(this,r)};O().prototype.neg=function(){return this.throwIfDisposed(),Ht(this)};O().prototype.norm=function(r,t,e){return this.throwIfDisposed(),rl(this,r,t,e)};O().prototype.notEqual=function(r){return this.throwIfDisposed(),Ws(this,r)};O().prototype.oneHot=function(r,t=1,e=0){return this.throwIfDisposed(),$i(this,r,t,e)};O().prototype.onesLike=function(){return this.throwIfDisposed(),wr(this)};O().prototype.pad=function(r,t){return this.throwIfDisposed(),pn(this,r,t)};O().prototype.pool=function(r,t,e,n,o,s){return this.throwIfDisposed(),Xx(this,r,t,e,n,o,s)};O().prototype.pow=function(r){return this.throwIfDisposed(),ln(this,r)};O().prototype.prelu=function(r){return this.throwIfDisposed(),au(this,r)};O().prototype.prod=function(r,t){return this.throwIfDisposed(),Yx(this,r,t)};O().prototype.reciprocal=function(){return this.throwIfDisposed(),ey(this)};O().prototype.relu=function(){return this.throwIfDisposed(),Pr(this)};O().prototype.relu6=function(){return this.throwIfDisposed(),um(this)};O().prototype.reshapeAs=function(r){return this.throwIfDisposed(),R(this,r.shape)};O().prototype.reshape=function(r){return this.throwIfDisposed(),R(this,r)};O().prototype.resizeBilinear=function(r,t,e){return this.throwIfDisposed(),xy(this,r,t,e)};O().prototype.resizeNearestNeighbor=function(r,t,e){return this.throwIfDisposed(),yy(this,r,t,e)};O().prototype.reverse=function(r){return this.throwIfDisposed(),mr(this,r)};O().prototype.rfft=function(){return this.throwIfDisposed(),cu(this)};O().prototype.round=function(){return this.throwIfDisposed(),cm(this)};O().prototype.rsqrt=function(){return this.throwIfDisposed(),pm(this)};O().prototype.selu=function(){return this.throwIfDisposed(),mm(this)};O().prototype.separableConv2d=function(r,t,e,n,o,s){return this.throwIfDisposed(),fm(this,r,t,e,n,o,s)};O().prototype.sigmoid=function(){return this.throwIfDisposed(),Jr(this)};O().prototype.sign=function(){return this.throwIfDisposed(),ry(this)};O().prototype.sin=function(){return this.throwIfDisposed(),dm(this)};O().prototype.sinh=function(){return this.throwIfDisposed(),hm(this)};O().prototype.slice=function(r,t){return this.throwIfDisposed(),Rt(this,r,t)};O().prototype.softmax=function(r){return this.throwIfDisposed(),lu(this,r)};O().prototype.softplus=function(){return this.throwIfDisposed(),Gs(this)};O().prototype.spaceToBatchND=function(r,t){return this.throwIfDisposed(),iu(this,r,t)};O().prototype.split=function(r,t){return this.throwIfDisposed(),fr(this,r,t)};O().prototype.sqrt=function(){return this.throwIfDisposed(),ve(this)};O().prototype.square=function(){return this.throwIfDisposed(),Mt(this)};O().prototype.squaredDifference=function(r){return this.throwIfDisposed(),bm(this,r)};O().prototype.squeeze=function(r){return this.throwIfDisposed(),Bn(this,r)};O().prototype.stack=function(r,t){this.throwIfDisposed();let e=r instanceof Ft?[this,r]:[this,...r];return qe(e,t)};O().prototype.step=function(r){return this.throwIfDisposed(),Co(this,r)};O().prototype.stridedSlice=function(r,t,e,n,o,s,i,a){return this.throwIfDisposed(),ny(this,r,t,e,n,o,s,i,a)};O().prototype.sub=function(r){return this.throwIfDisposed(),ct(this,r)};O().prototype.sum=function(r,t){return this.throwIfDisposed(),ft(this,r,t)};O().prototype.tan=function(){return this.throwIfDisposed(),oy(this)};O().prototype.tanh=function(){return this.throwIfDisposed(),Fi(this)};O().prototype.tile=function(r){return this.throwIfDisposed(),Fr(this,r)};O().prototype.toBool=function(){return this.throwIfDisposed(),J(this,"bool")};O().prototype.toFloat=function(){return this.throwIfDisposed(),J(this,"float32")};O().prototype.toInt=function(){return this.throwIfDisposed(),J(this,"int32")};O().prototype.topk=function(r,t){return this.throwIfDisposed(),sy(this,r,t)};O().prototype.transpose=function(r){return this.throwIfDisposed(),Ot(this,r)};O().prototype.unique=function(r){return this.throwIfDisposed(),iy(this,r)};O().prototype.unsortedSegmentSum=function(r,t){return this.throwIfDisposed(),Cm(this,r,t)};O().prototype.unstack=function(r){return this.throwIfDisposed(),dr(this,r)};O().prototype.where=function(r,t){return this.throwIfDisposed(),_e(r,this,t)};O().prototype.zerosLike=function(){return this.throwIfDisposed(),It(this)};var Tn=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Tn.prototype)}},Kr=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,Kr.prototype)}},z=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,z.prototype)}},vt=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vt.prototype)}},vm=class extends Error{constructor(t){super(t),Object.setPrototypeOf(this,vm.prototype)}};var yh=class{constructor(t){this.maxEntries=t||100,this.cache=new Map}get(t){let e;return this.cache.has(t)&&(e=this.cache.get(t),this.cache.delete(t),this.cache.set(t,e)),e}put(t,e){if(this.cache.has(t))this.cache.delete(t);else if(this.cache.size>=this.maxEntries){let n=this.cache.keys().next().value;this.cache.delete(n)}this.cache.set(t,e)}getMaxEntries(){return this.maxEntries}setMaxEntries(t){if(t<0)throw new Error(`The maxEntries of LRU caches must be at least 0, but got ${t}.`);if(this.maxEntries>t)for(let e=0;ee.toUpperCase())}var vo={};function Sm(r){if(r==null)return null;let t={};return t.className=r.getClassName(),t.config=r.getConfig(),t}function v0(r){if(!(r==null||typeof r!="object"))if(Array.isArray(r))r.forEach(t=>v0(t));else{let t=Object.keys(r);for(let e of t){let n=r[e];n!=null&&typeof n=="object"&&(!Array.isArray(n)&&n.type==="ndarray"&&typeof n.value=="number"?r[e]=n.value:v0(n))}}}function qi(r,t={},e={},n="object",o=!1){if(typeof r=="string"){let s=r,i;if(s in e)i=e[s];else if(s in vo)i=vo[s];else if(i=t[s],i==null)throw new z(`Unknown ${n}: ${r}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new M(`${n}: Improper config format: ${JSON.stringify(s)}. -'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in Co?[a,u]=Co.className:i in t&&([a,u]=t[i]),a==null)throw new M(`Unknown ${n}: ${i}. This may be due to one of the following reasons: +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);return i}else{let s=r;if(s.className==null||s.config==null)throw new z(`${n}: Improper config format: ${JSON.stringify(s)}. +'className' and 'config' must set.`);let i=s.className,a,u;if(i in e?[a,u]=e[i]:i in vo?[a,u]=vo.className:i in t&&([a,u]=t[i]),a==null)throw new z(`Unknown ${n}: ${i}. This may be due to one of the following reasons: 1. The ${n} is defined in Python, in which case it needs to be ported to TensorFlow.js or your JavaScript code. -2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(Co))l[f]=Co[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},Co);for(let f of Object.keys(e))Co[f]=e[f];w0(s.config);let m=u(a,s.config,e,o);return Co=Object.assign({},p),m}else{let l=Object.assign({},Co);for(let p of Object.keys(e))Co[p]=e[p];let c=new a(s.config);return Co=Object.assign({},l),c}}}function k5(r,t){return rt?1:0}function yh(r,t){return-1*k5(r,t)}function vo(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function b$(r){if(r==null)throw new M(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Wi(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new M(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Cy(r,t,e=0,n=1/0){return ro(e>=0),ro(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Ze(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Ze(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${w$(r)}.`)}function w$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>w$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function C$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return vm.set(e,1),e}else return r}var A5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function _$(r){return!!r.match(A5)}function A$(r){return r===parseInt(r.toString(),10)}function No(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function Zr(r,t){if(t{if(r.shape.length!==2)throw new M(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=nl(r,1);return Ey(e,[1,t,1])})}function D$(r){let t=[No(r.shape)];return R(r,t)}function R$(r){if(r.rank<=1)throw new M(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],No(r.shape,1)];return R(r,t)}function rl(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[t,0],[e,r.shape[1]]);case 3:return gm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return ec(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new M(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function v0(r,t,e){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:return dh(r,[0,t],[r.shape[0],e]);case 3:return gm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return ec(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function wh(r,t,e,n){return B(()=>{switch(r.rank){case 1:return hm(r,t,e);case 2:switch(n){case 1:return rl(r,t,e);case 2:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return rl(r,t,e);case 2:return gm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return rl(r,t,e);case 2:return ec(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return ec(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return v0(r,t,e);default:throw new M(`The axis is not within the rank of the tensor ${n}`)}default:throw new M(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Nm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),ne(r,t)}function T0(r,t){switch(r.rank){case 1:return Ix([r,t]);case 2:return Sx([r,t],0);case 3:return vx([r,t],0);case 4:return Nx([r,t],0);default:throw new M(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function Ey(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new M(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Dr(r,t)}function Tm(r,t=0,e=1,n,o){return tc(r,t,e,n,o)}function To(r,t,e,n){if(r.rank<2||t.rank<2)throw new St(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new St(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return uu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?N0(r.rank,n,mn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(uu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?N0(r.rank,n,mn()):null,activation:e}),p)}}function _y(r,t,e){return B(()=>(Array.isArray(t)?t=Me(t,"int32"):t=J(t,"int32"),Li(r,t,e)))}function lc(r){return D(r,r)}function N0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new M(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new M(`Unsupported input rank by biasAdd: ${t.rank}`)}function fn(r,t,e){return B(()=>(e==null&&(e=mn()),Fe(e),X(r,N0(r.rank,t,e))))}function F$(r,t=1){if(t!==1)throw new St(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Oi(r)}function O$(r){return B(()=>pt(r,X(Ee(r),1)))}function Ay(r,t,e,n){return B(()=>l0(r,t,e,n))}function P$(r){return B(()=>{let t=X(.5,D(.2,r));return Cr(t,0,1)})}function xu(r,t,e=!1){return e?r():t()}var L$=["fanIn","fanOut","fanAvg"],M$=["normal","uniform","truncatedNormal"];function $5(r){Wi(L$,"FanMode",r)}function D5(r){Wi(M$,"Distribution",r)}var dn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},km=class extends dn{apply(t,e){return Ne(t,e)}};km.className="Zeros";Q.registerClass(km);var yu=class extends dn{apply(t,e){return cr(t,e)}};yu.className="Ones";Q.registerClass(yu);var Em=class extends dn{constructor(t){if(super(),typeof t!="object")throw new M(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new M(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),cr(t,e)))}getConfig(){return{value:this.value}}};Em.className="Constant";Q.registerClass(Em);var _m=class extends dn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return zi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};_m.className="RandomUniform";Q.registerClass(_m);var Am=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`randomNormal does not support dType ${e}.`);return Tm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Am.className="RandomNormal";Q.registerClass(Am);var $m=class extends dn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`truncatedNormal does not support dType ${e}.`);return bm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className="TruncatedNormal";Q.registerClass($m);var Dm=class extends dn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new M("Identity matrix initializer can only be used for 2D square matrices.");return D(this.gain,Yu(t[0]))})}getConfig(){return{gain:this.gain}}};Dm.className="Identity";Q.registerClass(Dm);function R5(r,t="channelsLast"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=No(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=No(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=No(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var qr=class extends dn{constructor(t){if(super(),t.scale<0)throw new M(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,$5(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,D5(this.distribution),this.seed=t.seed}apply(t,e){let n=R5(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new St(`${this.getClassName()} does not support dType ${e}.`);return bm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return zi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};qr.className="VarianceScaling";Q.registerClass(qr);var uc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};uc.className="GlorotUniform";Q.registerClass(uc);var cc=class extends qr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};cc.className="GlorotNormal";Q.registerClass(cc);var pc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};pc.className="HeNormal";Q.registerClass(pc);var mc=class extends qr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};mc.className="HeUniform";Q.registerClass(mc);var fc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return qr.className}};fc.className="LeCunNormal";Q.registerClass(fc);var dc=class extends qr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return qr.className}};dc.className="LeCunNormal";Q.registerClass(dc);var Rm=class extends dn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new St("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return B(()=>{if(t.length<2)throw new St("Shape must be at least 2D.");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=Tm(n,0,1,"float32"),s=p0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Rm.className="Orthogonal";Q.registerClass(Rm);var z$={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function B$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"initializer")}function Te(r){return Sm(r)}function de(r){if(typeof r=="string"){let t=r in z$?z$[r]:r;if(t==="GlorotNormal")return new cc;if(t==="GlorotUniform")return new uc;if(t==="HeNormal")return new pc;if(t==="HeUniform")return new mc;if(t==="LeCunNormal")return new fc;if(t==="LeCunUniform")return new dc;{let e={};return e.className=t,e.config={},B$(e)}}else return r instanceof dn?r:B$(r)}function $y(r){return Array.isArray(r)&&Array.isArray(r[0])}function Fm(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function Nt(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new M(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function Bt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new M(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Om(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var G$="Variable",Ch=class{constructor(t,e="float32",n=G$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=vy(),n=n==null?G$:n,this.originalName=Ny(n),this.name=Ty(this.originalName),this.trainable_=o,this.constraint=s,this.val=iy(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),O5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(t){this.trainable_=t,this.val.trainable=t}};function O5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function Ih(r){return r.map(t=>t.read())}function Pm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},Jr=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=vy(),i!=null&&(this.originalName=Ny(i),this.name=Ty(this.originalName)),this.rank=e.length}},P5=0,ol=class{constructor(t,e){this.callArgs=e,this.id=P5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},L5=0,$t=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=L5++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let e=t.name;if(!e){let n=this.getClassName();e=So(n)+"_"+gu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Hr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new M(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Nr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return Nr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} is not connected, no input to return.`);return Nr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new vn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new vn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Nr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new M(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new M(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Nr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Nr(u),this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=M5(t),a=this.computeOutputShape(i),u,l=z5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new Jr(l,c,this,xe(t),e,this.name,p)):u=new Jr(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new St("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new vn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new vn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Hr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Om(this.weights)}build(t){this.built=!0}getWeights(t=!1){return Ih(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new M(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=Ih(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Fm(s),i=Fm(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new ol({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function M5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Nr(t)}function z5(r){return"float32"}function k0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=Ry.get(c),m;if(p==null){let d=V5(i,t);p=d.sorted,m=d.recipientCounts,Ry.put(c,p),Fy.put(c,m)}m={},o||Object.assign(m,Fy.get(c));let f=new ko(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=W$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=W$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:G5(n)}}function G5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function W$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function W5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,U$);var K$={};Wt(K$,{maxNorm:()=>H5,minMaxNorm:()=>j5,nonNeg:()=>K5,unitNorm:()=>q5});function E0(r,t){return B(()=>Se(ft(D(r,r),t,!0)))}var gc=class extends Q.Serializable{getConfig(){return{}}},Lm=class extends gc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=Cr(e,0,this.maxValue);return D(t,pt(n,X(ir(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Lm.className="MaxNorm";Q.registerClass(Lm);var Mm=class extends gc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(ir(),E0(t,this.axis))))}getConfig(){return{axis:this.axis}}};Mm.className="UnitNorm";Q.registerClass(Mm);var zm=class extends gc{apply(t){return Fr(t)}};zm.className="NonNeg";Q.registerClass(zm);var Bm=class extends gc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=E0(t,this.axis),n=X(D(this.rate,Cr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(ir(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Bm.className="MinMaxNorm";Q.registerClass(Bm);var H$={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ze(r){return Sm(r)}function q$(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in H$?H$[r]:r,config:{}};return q$(e)}else return r instanceof gc?r:q$(r)}function H5(r){return new Lm(r)}function q5(r){return new Mm(r)}function K5(){return new zm}function j5(r){return new Bm(r)}var j$={};Wt(j$,{constant:()=>Z5,glorotNormal:()=>o8,glorotUniform:()=>n8,heNormal:()=>s8,heUniform:()=>i8,identity:()=>e8,leCunNormal:()=>a8,leCunUniform:()=>l8,ones:()=>Y5,orthogonal:()=>u8,randomNormal:()=>Q5,randomUniform:()=>J5,truncatedNormal:()=>t8,varianceScaling:()=>r8,zeros:()=>X5});function X5(){return new km}function Y5(){return new yu}function Z5(r){return new Em(r)}function J5(r){return new _m(r)}function Q5(r){return new Am(r)}function t8(r){return new $m(r)}function e8(r){return new Dm(r)}function r8(r){return new qr(r)}function n8(r){return new uc(r)}function o8(r){return new cc(r)}function s8(r){return new pc(r)}function i8(r){return new mc(r)}function a8(r){return new fc(r)}function l8(r){return new dc(r)}function u8(r){return new Rm(r)}var ED={};Wt(ED,{Layer:()=>$t,RNN:()=>Tn,RNNCell:()=>ll,activation:()=>NY,add:()=>FY,alphaDropout:()=>xZ,average:()=>OY,averagePooling1d:()=>G0,averagePooling2d:()=>W0,averagePooling3d:()=>U0,avgPool1d:()=>UY,avgPool2d:()=>qY,avgPool3d:()=>jY,avgPooling1d:()=>HY,avgPooling2d:()=>KY,avgPooling3d:()=>XY,batchNormalization:()=>VY,bidirectional:()=>uZ,categoryEncoding:()=>CZ,concatenate:()=>PY,conv1d:()=>gY,conv2d:()=>xY,conv2dTranspose:()=>yY,conv3d:()=>bY,conv3dTranspose:()=>wY,convLstm2d:()=>sZ,convLstm2dCell:()=>iZ,cropping2D:()=>IY,dense:()=>TY,depthwiseConv2d:()=>vY,dot:()=>BY,dropout:()=>kY,elu:()=>cY,embedding:()=>RY,flatten:()=>_Y,gaussianDropout:()=>gZ,gaussianNoise:()=>hZ,globalAveragePooling1d:()=>YY,globalAveragePooling2d:()=>ZY,globalMaxPool1d:()=>pZ,globalMaxPool2d:()=>mZ,globalMaxPooling1d:()=>vD,globalMaxPooling2d:()=>ND,gru:()=>QY,gruCell:()=>tZ,input:()=>P0,inputLayer:()=>uY,layerNormalization:()=>GY,leakyReLU:()=>mY,lstm:()=>eZ,lstmCell:()=>rZ,masking:()=>yZ,maxPool1d:()=>fZ,maxPool2d:()=>dZ,maxPooling1d:()=>TD,maxPooling2d:()=>kD,maxPooling3d:()=>JY,maximum:()=>LY,minimum:()=>MY,multiply:()=>zY,permute:()=>DY,prelu:()=>fY,reLU:()=>pY,repeatVector:()=>AY,rescaling:()=>bZ,reshape:()=>$Y,resizing:()=>wZ,rnn:()=>aZ,separableConv2d:()=>CY,simpleRNN:()=>nZ,simpleRNNCell:()=>oZ,softmax:()=>dY,spatialDropout1d:()=>EY,stackedRNNCells:()=>lZ,thresholdedReLU:()=>hY,timeDistributed:()=>cZ,upSampling2d:()=>SY,zeroPadding2d:()=>WY});async function Ui(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),De(e[n])}))}},Ly=class extends sl{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew My(n,t))}var hn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),hn.checkForDuplicate(e),hn.constructors[t]==null&&(hn.constructors[t]=[]),hn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in hn.constructors)hn.constructors[+e].forEach(o=>{if(o===t)throw new M("Duplicate callback constructor.")})}static clear(){hn.constructors={}}static createCallbacks(t){let e=[];for(let n in hn.constructors){let o=+n;t>=o&&e.push(...hn.constructors[o])}return e.map(n=>new n)}};hn.constructors={};function By(r,t,e,n,o,s,i,a,u){let l=new Ly,c=[new _0,...hn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Py(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function gn(r,t={},e=!1){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function Sh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=ft(lc(r),t,!0),n=xo(e.shape,ir()),o=Se(Sn(e,n));return pt(r,o)})}function Hi(r,t){return B(()=>ve(lc(ct(t,r)),-1))}function Vm(r,t){return B(()=>ve(Ee(ct(t,r)),-1))}function bu(r,t){return B(()=>{let e=ct(r,t),n=Cr(Ee(r),ir(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,ve(o,-1))})}function p8(r,t){return B(()=>{let e=Cr(t,ir(),Number.MAX_VALUE),n=Sr(X(1,e)),o=Cr(r,ir(),Number.MAX_VALUE),s=Sr(X(1,o));return ve(lc(ct(n,s)),-1)})}function m8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(lc(e),-1)})}function f8(r,t){return B(()=>{let e=Sn(0,ct(1,D(r,t)));return ve(e,-1)})}function d8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Ir(D(ct(1,r),t),-1);return Sn(0,X(1,ct(n,e)))})}function h8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,zs(D(-2,n))),e);return ve(o,-1)})}function xc(r,t,e=!1){return B(()=>{if(e)t=iu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=Cr(t,ir(),1-ir()),Ht(ft(D(J(r,"float32"),Sr(t)),t.shape.length-1))})}function Gm(r,t,e=!1){return B(()=>{let n=J(Pi(D$(r)),"int32");t=Cr(t,ir(),1-ir());let o=t.shape,s=R(Ei(n,o[o.length-1]),o);return xc(s,t,e)})}function g8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new M(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Fr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),tu(er(n)))})}function Wm(r,t){return B(()=>{let e;return e=Cr(t,ir(),1-ir()),e=Sr(pt(e,ct(1,e))),ve(g8(r,e),-1)})}function x8(r,t){return B(()=>{let e=Cr(r,ir(),1),n=Cr(t,ir(),1);return ft(D(r,Sr(pt(e,n))),-1)})}function y8(r,t){return B(()=>{let e=Sr(X(ir(),t));return ve(ct(t,D(r,e)),-1)})}function Nh(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var vh={meanSquaredError:Hi,meanAbsoluteError:Vm,meanAbsolutePercentageError:bu,meanSquaredLogarithmicError:p8,squaredHinge:m8,hinge:f8,categoricalHinge:d8,logcosh:h8,categoricalCrossentropy:xc,sparseCategoricalCrossentropy:Gm,binaryCrossentropy:Wm,kullbackLeiblerDivergence:x8,poisson:y8,cosineProximity:Nh};function Vy(r){if(typeof r=="string"){if(r in vh)return vh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new M(t)}else return r}function Th(r,t){return B(()=>{let e=D(.5,yr(t)),n=no(Re(t,e),r.dtype);return ve($r(r,n),-1)})}function kh(r,t){return B(()=>no($r(Ai(r,-1),Ai(t,-1)),"float32"))}function Z$(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,1))),"float32"))}function b8(r,t){return B(()=>J(ft(Rr($r(r,1),$r(t,0))),"float32"))}function w8(r,t){return B(()=>J(ft(Rr($r(r,0),$r(t,1))),"float32"))}function A0(r,t){return B(()=>{let e=Z$(r,t),n=w8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function J$(r,t){return B(()=>{let e=Z$(r,t),n=b8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function Wy(r,t){return Wm(r,t)}function Uy(r,t){return r.rank===t.rank&&(r=Mn(r,[r.rank-1])),t=Ai(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J($r(r,t),"float32")}var C8=Hi,I8=Hi,S8=Vm,v8=Vm,N8=bu,T8=bu,Eh=xc,k8=Nh,$0=Gm,Gy={binaryAccuracy:Th,categoricalAccuracy:kh,precision:A0,categoricalCrossentropy:Eh,sparseCategoricalCrossentropy:$0,mse:C8,MSE:I8,mae:S8,MAE:v8,mape:N8,MAPE:T8,cosine:k8};function Q$(r){if(typeof r=="string"&&r in Gy)return Gy[r];if(typeof r!="string"&&r!=null)return r;throw new M(`Unknown metric ${r}`)}function _h(r){if(ro(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(vh))if(vh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Gy))if(Gy[e]===r){t=e;break}return t!==void 0?t:r.name}}function eD(r){let t={Adagrad:()=>ic.adagrad(.01),Adadelta:()=>ic.adadelta(1,.95,ir()),Adam:()=>ic.adam(.001,.9,.999,ir()),Adamax:()=>ic.adamax(.002,.9,.999,ir(),0),RMSProp:()=>ic.rmsprop(.001,.9,0,ir()),SGD:()=>ic.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,r in t)return t[r]();throw new M(`Unknown Optimizer ${r}`)}function R0(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!D0(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function D0(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!D0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!D0(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function rD(r,t,e,n=console.log){let o=A8(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),Hy(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function Hy(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function $8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];Hy(a,t,e)}function D8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);vo(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;ro(C===0,"input layer has >1 nodes"),ro(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,_,A)=>{(N==null||_==null||A==null)&&(N=b.sourceLayer,_=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[_];if(C.indexOf($)!==-1)throw new Hr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(zn.nodeKey(N,_)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(yh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let _=i[C.id],A=i[N.id];return _A?1:0});for(let C of w)C instanceof zn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(yh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Hr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${C.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Hr(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new M("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new M(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split("/");a=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new M(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new M(`${i.length} of ${o} weights are not set: ${i}`)}Pm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Um}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=qy(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new ko;for(let o=0;o{t=xe(t);let n;return e==null?n=Io(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Fm(t);if(e.length!==this.inputLayers.length)throw new M(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(yh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(yh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new St("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Nr(b),w)}function l(g){let x=g.name,b=gn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new M(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!b$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];ro(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new M("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function R8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function Ky(r,t){return R8(r,t,"classWeight")}async function jy(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return sn(r);if(r.shape.length===2){if(r.shape[1]>1)return Ai(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());vt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Me(i,"float32")}else return null}function oD(r,t){return D(r,t)}var F8=32;function aD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=sD("input",r.inputNames,e),i=sD("output",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function sD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new M(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function O8(r){if(r.length===3)throw new St("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function lD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(iD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=O8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=zy(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=By(c,p,e.epochs,null,null,P8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;iD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?F8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new St("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=L8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=aD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(vt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&vt(x)}vt(f),a+=d,++u}return s}),l.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function Hm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>rl(n,t,e-t)):rl(r,t,e-t)}function Yy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Yy(e,t)):_y(r,t.dtype==="int32"?t:J(t,"int32")))}function Zy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}async function M8(r,t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new M("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=r.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=Zr(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=By(a,i,s,m,g,f,o,h,p);b.setModel(r),r.history=w,await b.onTrainBegin(),r.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=rl(_,P,V-P);F.batch=$,F.size=V-P;let W=Yy(e,G),q=t(W);for(let H=0;H0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new St("validationData including sample weights is not supported yet."):new M(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await r.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=Hm(o,F,P),i=o,o=Hm(o,0,F),p=Hm(s,F,P),a=s,s=Hm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);r.checkTrainableWeightsConsistency();let w=r.makeTrainFunction(),C=r.getDedupedMetricsNames(),N,_;g?(r.makeTestFunction(),N=r.testFunction,_=C.slice().concat(C.map(F=>"val_"+F))):(N=null,x=[],_=C.slice());let A=zy(n.callbacks,n.yieldEvery);return await M8(r,w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,_,n.initialEpoch,null,null)}finally{r.isTraining=!1,Eo(o,t),Eo(s,e),Eo(i,t),Eo(a,e),Eo(c,u),Eo(p,l),m!=null&&vt(m)}}function F0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function z8(r){return r instanceof Ft}function O0(r){return Array.isArray(r)}function pD(r){return!z8(r)&&!O0(r)}function mD(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(O0(r)&&r.length>0)i=!0;else if(pD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new M(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(pD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new M(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(O0(r)){if(r=r,r.length!==t.length)throw new M(`Error when checking model ${o}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,t.length>1)throw new M(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=F0(s),e!=null)for(let i=0;i=0&&l!==c)throw new M(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function B8(r,t,e){let n=vo(r.map(s=>s.shape[0]));n.sort();let o=vo(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new M(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new M(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new M(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function V8(r,t,e){let n=[Hi,Wm,xc];for(let o=0;o1)throw new M(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var W8="layers-model",Bn=class extends zn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new M("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");rD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=eD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Wr))throw new M("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new M(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Vy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new M(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${t.loss}.`);e=t.loss.map(a=>Vy(a))}else{let i=Vy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=G8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Hs("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Wm?["accuracy","acc"].indexOf(d)!==-1?m=Th:["crossentropy","ce"].indexOf(d)!==-1&&(m=Wy):this.lossFunctions[i]===Gm?["accuracy","acc"].indexOf(d)!==-1?m=Uy:["crossentropy","ce"].indexOf(d)!==-1&&(m=$0):["accuracy","acc"].indexOf(d)!==-1?m=kh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Eh);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=Q$(d),p=c+_h(d);let h;Hs(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Xy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Nr(l)}finally{Eo(i[0],t),Eo(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),uD(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new M(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new M(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new M("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new ko;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new M(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new M(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new St("Verbose predictLoop() is not implemented yet.");let s=Zy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=Hm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Nr(i.map(a=>ne(a,0)))})}predict(t,e={}){let n=F0(t);fD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Xy(o),this.predictLoop(n,o)}finally{Eo(n,t)}}predictOnBatch(t){fD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Hr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new M(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=Ky(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new St("Verbose mode is not implemented yet.");if(s!=null)throw new St("steps mode in testLoop() is not implemented yet");{let u=Zy(i,n),l=Me(Zr(0,i));for(let c=0;c1){let i=C0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;lSo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=So(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[So(_h(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>So(_h(t)));{let t={};for(let e in this.metrics)t[e]=So(_h(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=yc(t.optimizer_config),n=gn(e),o;if(typeof t.loss=="string")o=el(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>el(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=el(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>el(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=el(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=_r.getSaveHandlers(t);if(l.length===0)throw new M(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new M(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new M("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await _r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:W8,generatedBy:`TensorFlow.js tfjs-layers v${Um}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await _r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=_r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(R0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){R0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Bn.className="Model";Q.registerClass(Bn);var Jy=class extends Bn{};Jy.className="Functional";Q.registerClass(Jy);async function dD(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=yc(e),o=gn(n,t);if(r.weightsManifest!=null){let s=await _r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),vt(s)}return o}async function hD(r,t){if(t==null&&(t={}),typeof r=="string"){let e=_r.getLoadHandlers(r,t);if(e.length===0)e.push(_r.browserHTTPRequest(r,t));else if(e.length>1)throw new M(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return U8(r,void 0,t)}async function U8(r,t,e){if(e==null&&(e={}),r.load==null)throw new M("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=gn(yc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new M("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=H8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),vt(l),vt(c.map(p=>p.tensor))}return a}function H8(r,t){let e=_r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var qi=class extends Bn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:gu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new M(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof qi||t instanceof Bn,n;if(e){if(n=t,n.outputs.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new M("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new M("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Dy({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new M(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new M("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=k0(this.outputs[0])}this.inboundNodes=[],new ol({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:Io(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(Bt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Bn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Hr("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new M("Legacy serialization format not supported yet.");s=e}else y.assert(e.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof qi))throw new St(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=gn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new M("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new M("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};qi.className="Sequential";Q.registerClass(qi);function q8(r){return new Bn(r)}function K8(r){return new qi(r)}function P0(r){return Dy(r)}function j8(r,t){hn.registerCallbackConstructor(r,t)}var Qr=class extends Q.Serializable{getConfig(){return{}}},Qy=class extends Qr{apply(t,e=1){return F$(t,e)}};Qy.className="elu";Q.registerClass(Qy);var tb=class extends Qr{apply(t){return pm(t)}};tb.className="selu";Q.registerClass(tb);var eb=class extends Qr{apply(t){return Fr(t)}};eb.className="relu";Q.registerClass(eb);var rb=class extends Qr{apply(t){return B(()=>Mi(6,Fr(t)))}};rb.className="relu6";Q.registerClass(rb);var nb=class extends Qr{apply(t){return t}};nb.className="linear";Q.registerClass(nb);var ob=class extends Qr{apply(t){return Yr(t)}};ob.className="sigmoid";Q.registerClass(ob);var sb=class extends Qr{apply(t){return P$(t)}};sb.className="hardSigmoid";Q.registerClass(sb);var ib=class extends Qr{apply(t){return zs(t)}};ib.className="softplus";Q.registerClass(ib);var ab=class extends Qr{apply(t){return O$(t)}};ab.className="softsign";Q.registerClass(ab);var lb=class extends Qr{apply(t){return $i(t)}};lb.className="tanh";Q.registerClass(lb);var qm=class extends Qr{apply(t,e=-1){return iu(t,e)}};qm.className="softmax";Q.registerClass(qm);var ub=class extends Qr{apply(t,e=-1){return sm(t,e)}};ub.className="logSoftmax";Q.registerClass(ub);var cb=class extends Qr{apply(t,e=1){return B(()=>D(Yr(D(t,e)),t))}};cb.className="swish";Q.registerClass(cb);var pb=class extends Qr{apply(t){return B(()=>D(t,$i(zs(t))))}};pb.className="mish";Q.registerClass(pb);function js(r){return r.getClassName()}function L0(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function Xs(r){if(r==null){let t={};return t.className="linear",t.config={},L0(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},L0(t)}else return r instanceof Qr?r:L0(r)}function M0(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var mb=class extends Q.Serializable{},wu=class extends mb{constructor(t){super(),M0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,lc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};wu.className="L1L2";Q.registerClass(wu);function yD(r){return M0(r),new wu({l1:r!=null?r.l1:null,l2:0})}function bD(r){return M0(r),new wu({l2:r!=null?r.l2:null,l1:0})}var gD={l1l2:"L1L2"};function me(r){return Sm(r)}function xD(r,t={}){return Gi(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in gD?gD[r]:r,config:{}};return xD(e)}else return r instanceof mb?r:xD(r)}var Km=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=Nt(t);let n=Fr(t);return this.maxValue!=null&&(n=Cr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};Km.className="ReLU";Q.registerClass(Km);var jm=class extends $t{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=Nt(t);return Ql(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};jm.className="LeakyReLU";Q.registerClass(jm);var Xm=class extends $t{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new M(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=Bt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,1]):r))}function z0(r,t){return B(()=>(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,4,1]):r))}function Y8(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.shape.length!==3)throw new M(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new M(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new M(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Ot(r,[0,2,1])),o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=Qp(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=fn(a,e)),a})}function wD(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==3&&r.rank!==4)throw new M(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new M(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=Ah(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=uu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Ot(u,[0,3,1,2])),u})}function Z8(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=mn()),Fe(s),r.rank!==4&&r.rank!==5)throw new M(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new M(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=z0(r,s);if(o==="causal")throw new St("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=Tx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=fn(a,e)),s==="channelsFirst"&&(a=Ot(a,[0,4,1,2,3])),a})}var bc=class extends $t{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",bc.verifyArgs(e),this.rank=t,Ze(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new St(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=Cu(e.kernelSize,t,"kernelSize"),this.strides=Cu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,pn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Fe(this.dataFormat),this.activation=Xs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=Cu(e.dilationRate==null?1:e.dilationRate,t,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new M(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new M(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new M(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(ro("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,3))throw new M(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:js(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Iu=class extends bc{constructor(t,e){super(t,e),this.kernel=null,Iu.verifyArgs(e),this.filters=e.filters,Ze(this.filters,"filters"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n,o=this.bias==null?null:this.bias.read(),s=Iy(this.activation.getClassName());if(s!=null&&this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=Y8(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=wD(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=Z8(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new St("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=Bt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},il=class extends Iu{constructor(t){super(2,t),il.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,2))throw new M(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};il.className="Conv2D";Q.registerClass(il);var al=class extends Iu{constructor(t){super(3,t),al.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new M(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};al.className="Conv3D";Q.registerClass(al);var Qm=class extends il{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==4)throw new M("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==4)throw new M(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Ys(u,m,c,this.padding),h=Ys(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,1]));let x=em(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=fn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Ys(e[o],u,i,this.padding),e[s]=Ys(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};Qm.className="Conv2DTranspose";Q.registerClass(Qm);var tf=class extends al{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new M(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=Bt(t),t.length!==5)throw new M("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new M("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=Nt(t);if(n.shape.length!==5)throw new M(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Ys(l,h,m,this.padding),w=Ys(c,g,f,this.padding),C=Ys(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,4,1]));let _=Ex(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(_=Ot(_,[0,4,1,2,3])),this.bias!==null&&(_=fn(_,this.bias.read(),this.dataFormat)),this.activation!==null&&(_=this.activation.apply(_)),_})}computeOutputShape(t){t=Bt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Ys(e[o],c,a,this.padding),e[s]=Ys(e[s],p,u,this.padding),e[i]=Ys(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className="Conv3DTranspose";Q.registerClass(tf);var fb=class extends Iu{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new M("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new M("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new M(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=Bt(t),t.length{t=Nt(t);let n;if(this.rank===1)throw new St("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Ot(t,[0,2,3,1])),n=mm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};fb.className="SeparableConv";var ef=class extends fb{constructor(t){super(2,t)}};ef.className="SeparableConv2D";Q.registerClass(ef);var Su=class extends Iu{constructor(t){super(1,t),Su.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Cy(t.kernelSize,"number",1,1))throw new M(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Su.className="Conv1D";Q.registerClass(Su);var rf=class extends $t{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=Nt(t),this.dataFormat==="channelsLast"){let n=wh(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return wh(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=wh(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return wh(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};rf.className="Cropping2D";Q.registerClass(rf);var nf=class extends $t{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,E$(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=Nt(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?Gs.resizeNearestNeighbor(n,[s,i]):Gs.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};nf.className="UpSampling2D";Q.registerClass(nf);function J8(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=mn()),Fe(o);let i=Ah(r,o);if(r.rank!==4)throw new M(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new M(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Fi(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}var of=class extends bc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=Bt(t),t.length<4)throw new M(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new M(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{t=Nt(t);let n=J8(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=fn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=Nn(e,this.kernelSize[0],this.padding,this.strides[0]),i=Nn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};of.className="DepthwiseConv2D";Q.registerClass(of);function B0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new M("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function V0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new M(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(Zr(2,u));if(t=Ot(t,l),s!=null)throw new St("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=rr(o,-1)),o=Ot(o,l)),n&&(t=pr(t,0),o!=null&&(o=pr(o,0)));let c=[],p,m=e,f=t.shape[0],d=vr(t),h;o!=null&&(h=vr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],_=ct(yr(N),N),A=X(D(w[0],N),D(m[0],_)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,_)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=nr(c,1)),[p,g,m]})}var Tn=class extends $t{constructor(t){super(t);let e;if(t.cell==null)throw new M("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new Ic({cells:t.cell}):e=t.cell,e.stateSize==null)throw new M("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return Zr(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){$y(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new M(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new M("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let o=0;oDe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof Jr){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=Nt(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new M(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let a={training:o},l=V0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=nl(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?Ey(e,[1,n]):e):this.cell.stateSize>1?[Ey(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===Tn.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=gn(o,n);return new t(Object.assign(e,{cell:s}))}};Tn.className="RNN";Q.registerClass(Tn);var ll=class extends $t{},wc=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t),this.kernel=this.addWeight("kernel",[t[t.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0yr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0yr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=To(D(t,i),this.kernel.read()):s=To(t,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,To(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};wc.className="SimpleRNNCell";Q.registerClass(wc);var sf=class extends Tn{constructor(t){t.cell=new wc(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};sf.className="SimpleRNN";Q.registerClass(sf);var Cc=class extends ll{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new M("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=Bt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new M(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0yr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};af.className="GRU";Q.registerClass(af);var ul=class extends ll{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Xs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=ac([1,qs([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=ac([1,qs([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=Bt(t);let n=t[t.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends dn{apply(u,l){let c=s.apply([i]),p=new yu().apply([i]),m=s.apply([i*2]);return T0(T0(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new M(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0yr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0yr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className="LSTM";Q.registerClass(lf);var Ic=class extends ll{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Hs(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(gn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return Ih(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):Ay(t(),e),a=()=>xu(i,t,n);return!o||o<=1?De(a().clone()):Array(o).fill(void 0).map(a).map(l=>De(l.clone()))}var Q8=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(vt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(vt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new M("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new vn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new M("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)vt(this.states_),this.keptStates!=null&&(vt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new M(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):vt(this.states_);for(let a=0;aDe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=Nn(l,o[0],s,i[0],a[0]),m=Nn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};db.className="ConvRNN2D";var Sc=class extends ul{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Ze(this.filters,"filters"),this.kernelSize=Cu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Ze(u,"kernelSize")),this.strides=Cu(o||1,2,"strides"),this.strides.forEach(u=>Ze(u,"strides")),this.padding=s||"valid",pn(this.padding),this.dataFormat=i||"channelsLast",Fe(this.dataFormat),this.dilationRate=Cu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Ze(u,"dilationRate"))}build(t){var e;t=Bt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new M(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends dn{apply(m,f){let d=l.apply([c]),h=cr([c]),g=l.apply([c*2]);return Nm([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new M(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0yr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0yr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,_,A]=mr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?mr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,_,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=mr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=Q8(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=In(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?fn(s,n,this.dataFormat):s}recurrentConv(t,e){return In(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Sc.className="ConvLSTM2DCell";Q.registerClass(Sc);var uf=class extends db{constructor(t){let e=new Sc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};uf.className="ConvLSTM2D";Q.registerClass(uf);var vc=class extends $t{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);if(0Ay(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};vc.className="Dropout";Q.registerClass(vc);var cf=class extends vc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};cf.className="SpatialDropout1D";Q.registerClass(cf);var pf=class extends $t{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Ze(this.units,"units"),this.activation=Xs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=Bt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:e}}],this.built=!0}computeOutputShape(t){t=Bt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=Iy(this.activation.getClassName()),s;return o!=null?s=To(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=To(n,this.kernel.read()),this.bias!=null&&(s=fn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:js(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};pf.className="Dense";Q.registerClass(pf);var mf=class extends $t{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=Bt(t);for(let e of t.slice(1))if(e==null)throw new M(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],No(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=Nt(t);return this.activation.apply(n)})}getConfig(){let t={activation:js(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};ff.className="Activation";Q.registerClass(ff);var df=class extends $t{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=Nt(t),$$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};df.className="RepeatVector";Q.registerClass(df);var hf=class extends $t{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=Nt(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};hf.className="Reshape";Q.registerClass(hf);var gf=class extends $t{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=Zr(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=Bt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(Nt(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};gf.className="Permute";Q.registerClass(gf);var xf=class extends $t{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=Nt(t),o=-1;return qu(Bs(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t),o=-1,s=!0,i=qu(Bs(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};xf.className="Masking";Q.registerClass(xf);var yf=class extends $t{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Ze(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Ze(this.outputDim,"outputDim"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=Nt(t),Bs(t,It(t))):null)}computeOutputShape(t){if(t=Bt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new M(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=Nt(t);n.dtype!=="int32"&&(n=no(n,"int32"));let o=_y(this.embeddings.read(),R(n,[n.size]));return R(o,Bt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};yf.className="Embedding";Q.registerClass(yf);var pl=class extends $t{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new St}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new M(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&vo(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=qs(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=Zr(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(Zr(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an Array");if(!Array.isArray(t))throw new M("`inputs` should be an Array");if(e.length!==t.length)throw new M(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:rr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new M("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return B(()=>Nm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new M("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new M("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new M("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new M(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new St("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new St("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new M(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new M(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>$h(s,t[i].shape.length)):o=[$h(this.axes,e.shape.length),$h(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),tY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[$h(this.axes,t.length),$h(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new St("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Nf.className="Dot";Q.registerClass(Nf);var Tf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return xu(()=>X(Tm(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};Tf.className="GaussianNoise";Q.registerClass(Tf);var kf=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=Nt(t);return this.rate>0&&this.rate<1?xu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,Tm(n.shape,1,s))},()=>n,e.training||!1):n})}};kf.className="GaussianDropout";Q.registerClass(kf);var Ef=class extends $t{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||Nt(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return xu(()=>{let s=Nt(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=ln(zi(n),this.rate);l=no(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>Nt(t),e.training||!1)}return t})}};Ef.className="AlphaDropout";Q.registerClass(Ef);function Dh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=xx(r,t,e,n,o,s);else if(r.rank===3)i=yx(r,t,e,n,o,s);else if(r.rank===4)i=bx(r,t,e,n,o,s);else throw new St(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function eY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance;return[Dh(r,i,a,e,t,o),i,a]})}function rY(r,t,e,n,o=.001){return B(()=>{let s=Zu(r,n),i=s.mean,a=s.variance,u=[];for(let d of Zr(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Dh(r,l,c,m,p,o),i,a]})}function nY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),Zr(0,r.rank-1))?eY(r,t,e,n,o):rY(r,t,e,n,o)}var _f=class extends $t{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.movingMeanInitializer=de(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||"ones"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=Bt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new M(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=Nt(t),s=o.shape,i=s.length,a=Zr(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=Io(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,Zr(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Dh(o,b,w,C,N,this.epsilon)}else return Dh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=nY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,_=b.read(),A=D(ct(_,w),N);b.write(ct(_,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};_f.className="BatchNormalization";Q.registerClass(_f);var Af=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=Bt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==vo(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=Nt(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Zu(n,this.axis,!0),l=Io(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new M(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new M("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(e==null&&(e=mn()),e!=="channelsLast"&&e!=="channelsFirst")throw new M(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],cn(r,n)})}var $f=class extends $t{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?mn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new M(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new M(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new M(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>oY(Nt(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};$f.className="ZeroPadding2D";Q.registerClass($f);function wb(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=Ah(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=ru(r,t,e,a):i=Yl(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}function CD(r,t,e,n,o,s){return B(()=>{Fe(o),I0(s),pn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=mn()),s==null&&(s="max"),r=z0(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=Hx(r,t,e,a):i=gx(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,4,1,2,3])),i})}var hb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.poolSize;else throw new M(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Ze(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.strides;else throw new M(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,pn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=Bt(t);let e=Nn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=nl(Nt(t),2);let n=this.poolingFunction(Nt(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Mn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Df=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Df.className="MaxPooling1D";Q.registerClass(Df);var Rf=class extends hb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Rf.className="AveragePooling1D";Q.registerClass(Rf);var gb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new M(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"max")}};Ff.className="MaxPooling2D";Q.registerClass(Ff);var Of=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),wb(t,e,n,o,s,"avg")}};Of.className="AveragePooling2D";Q.registerClass(Of);var xb=class extends $t{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new M(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Ze(this.poolSize,"poolSize"),Ze(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),pn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=Bt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=Nn(e,this.poolSize[0],this.padding,this.strides[0]),n=Nn(n,this.poolSize[1],this.padding,this.strides[1]),o=Nn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(Nt(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"max")}};Pf.className="MaxPooling3D";Q.registerClass(Pf);var Lf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),pn(o),CD(t,e,n,o,s,"avg")}};Lf.className="AveragePooling3D";Q.registerClass(Lf);var yb=class extends $t{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new St}},Mf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return ve(n,1)})}};Mf.className="GlobalAveragePooling1D";Q.registerClass(Mf);var zf=class extends yb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=Nt(t);return Ir(n,1)})}};zf.className="GlobalMaxPooling1D";Q.registerClass(zf);var bb=class extends $t{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new St}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Bf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?ve(n,[1,2]):ve(n,[2,3])})}};Bf.className="GlobalAveragePooling2D";Q.registerClass(Bf);var Vf=class extends bb{call(t,e){return B(()=>{let n=Nt(t);return this.dataFormat==="channelsLast"?Ir(n,[1,2]):Ir(n,[2,3])})}};Vf.className="GlobalMaxPooling2D";Q.registerClass(Vf);var Cb=class extends $t{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=gn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Gf=class extends Cb{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=Bt(t),t.length<3)throw new M(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=Bt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=Nt(t),V0((i,a)=>[Nt(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Gf.className="TimeDistributed";Q.registerClass(Gf);function sY(r){Wi(T$,"BidirectionalMergeMode",r)}var iY="concat",Wf=class extends Cb{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=gn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=gn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?iY:t.mergeMode,sY(this.mergeMode),t.weights)throw new St("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Nr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=B0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new M("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new St("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof Jr;for(let l of i)if(l instanceof Jr!==u)throw new M("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=pr(s,1));let a;return this.mergeMode==="concat"?a=Nm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=D(.5,X(o,s)):this.mergeMode==="mul"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Hs(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Hs(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=gn(e.layer);if(delete e.layer,e.numConstants!=null)throw new St("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Wf.className="Bidirectional";Q.registerClass(Wf);var Uf=class extends $t{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=Nt(t),t.dtype!=="float32"&&(t=no(t,"float32")),X(D(t,this.scale),this.offset)))}};Uf.className="Rescaling";Q.registerClass(Uf);var aY=["bilinear","nearest"],ID=new Set(aY),Hf=class extends $t{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ID.has(t.interpolation))this.interpolation=t.interpolation;else throw new M(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=Bt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return Gs.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return Gs.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ID]} are supported`)})}};Hf.className="Resizing";Q.registerClass(Hf);function SD(r,t,e,n){let o=Nt(r);if(o.dtype!=="int32"&&(o=no(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=rr(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=rr(o,-1)),o.rank>2)throw new M(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=ch(a,n,e,i):u=ch(a,[],e,i),t!=="tfIdf")return u;if(n)return D(u,n);throw new M("When outputMode is 'tfIdf', weights must be provided.")}var qf=class extends $t{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=Bt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=Nt(t),t.dtype!=="int32"&&(t=no(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new M(`countWeights is not used when outputMode !== count. - Received countWeights=${e.countWeights}`);n=Nt(e.countWeights)}let o=Ir(t),s=Ja(t),i=Re(this.numTokens,o).bufferSync().get(0),a=ln(s,0).bufferSync().get(0);if(!(i&&a))throw new M(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};qf.className="CategoryEncoding";Q.registerClass(qf);function uY(r){return new Ks(r)}function cY(r){return new Ym(r)}function pY(r){return new Km(r)}function mY(r){return new jm(r)}function fY(r){return new Xm(r)}function dY(r){return new Jm(r)}function hY(r){return new Zm(r)}function gY(r){return new Su(r)}function xY(r){return new il(r)}function yY(r){return new Qm(r)}function bY(r){return new al(r)}function wY(r){return new tf(r)}function CY(r){return new ef(r)}function IY(r){return new rf(r)}function SY(r){return new nf(r)}function vY(r){return new of(r)}function NY(r){return new ff(r)}function TY(r){return new pf(r)}function kY(r){return new vc(r)}function EY(r){return new cf(r)}function _Y(r){return new mf(r)}function AY(r){return new df(r)}function $Y(r){return new hf(r)}function DY(r){return new gf(r)}function RY(r){return new yf(r)}function FY(r){return new bf(r)}function OY(r){return new Cf(r)}function PY(r){return new vf(r)}function LY(r){return new If(r)}function MY(r){return new Sf(r)}function zY(r){return new wf(r)}function BY(r){return new Nf(r)}function VY(r){return new _f(r)}function GY(r){return new Af(r)}function WY(r){return new $f(r)}function G0(r){return new Rf(r)}function UY(r){return G0(r)}function HY(r){return G0(r)}function W0(r){return new Of(r)}function qY(r){return W0(r)}function KY(r){return W0(r)}function U0(r){return new Lf(r)}function jY(r){return U0(r)}function XY(r){return U0(r)}function YY(r){return new Mf(r)}function ZY(r){return new Bf(r)}function vD(r){return new zf(r)}function ND(r){return new Vf(r)}function TD(r){return new Df(r)}function kD(r){return new Ff(r)}function JY(r){return new Pf(r)}function QY(r){return new af(r)}function tZ(r){return new Cc(r)}function eZ(r){return new lf(r)}function rZ(r){return new ul(r)}function nZ(r){return new sf(r)}function oZ(r){return new wc(r)}function sZ(r){return new uf(r)}function iZ(r){return new Sc(r)}function aZ(r){return new Tn(r)}function lZ(r){return new Ic(r)}function uZ(r){return new Wf(r)}function cZ(r){return new Gf(r)}var pZ=vD,mZ=ND,fZ=TD,dZ=kD;function hZ(r){return new Tf(r)}function gZ(r){return new kf(r)}function xZ(r){return new Ef(r)}function yZ(r){return new xf(r)}function bZ(r){return new Uf(r)}function wZ(r){return new Hf(r)}function CZ(r){return new qf(r)}var _D={};Wt(_D,{MAPE:()=>DZ,MSE:()=>OZ,binaryAccuracy:()=>IZ,binaryCrossentropy:()=>SZ,categoricalAccuracy:()=>NZ,categoricalCrossentropy:()=>TZ,cosineProximity:()=>_Z,mape:()=>RZ,meanAbsoluteError:()=>AZ,meanAbsolutePercentageError:()=>$Z,meanSquaredError:()=>FZ,mse:()=>PZ,precision:()=>kZ,recall:()=>EZ,sparseCategoricalAccuracy:()=>vZ});function IZ(r,t){return Th(r,t)}function SZ(r,t){return Wy(r,t)}function vZ(r,t){return Uy(r,t)}function NZ(r,t){return kh(r,t)}function TZ(r,t){return Eh(r,t)}function kZ(r,t){return A0(r,t)}function EZ(r,t){return J$(r,t)}function _Z(r,t){return Nh(r,t)}function AZ(r,t){return Vm(r,t)}function $Z(r,t){return bu(r,t)}function DZ(r,t){return bu(r,t)}function RZ(r,t){return bu(r,t)}function FZ(r,t){return Hi(r,t)}function OZ(r,t){return Hi(r,t)}function PZ(r,t){return Hi(r,t)}var AD={};Wt(AD,{modelFromJSON:()=>dD});var $D={};Wt($D,{l1:()=>MZ,l1l2:()=>LZ,l2:()=>zZ});function LZ(r){return new wu(r)}function MZ(r){return yD(r)}function zZ(r){return bD(r)}var Sb=class extends sl{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Bn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function Ib(r,t){return rt}var vb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new St("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=Ib:this.mode==="max"?this.monitorFunc=DD:this.monitor.indexOf("acc")!==-1?this.monitorFunc=DD:this.monitorFunc=Ib,this.monitorFunc===Ib&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===Ib?1/0:-1/0}async onEpochEnd(t,e){await Ui(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function BZ(r){return new vb(r)}var VZ={earlyStopping:BZ};var GZ=z();GZ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var oo;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(oo||(oo={}));var RD;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(RD||(RD={}));var H0={};function UZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};H0[r]=e}function Nb(r){return H0[r]}function HZ(r){delete H0[r]}function S(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type==="tensor")return br(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>br(m,e,n,o));let l=br(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type==="number"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function br(r,t,e,n){let[o,s]=xn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[Tb(o,a)]);return i!==void 0?t[Tb(o,i)][s]:void 0}function FD(r,t,e){return t[Tb(r,e.currentContextId)]}function _o(r,t){let[e,n,o]=xn(r);return[Tb(e,t&&t.currentContextId),n,o]}function Tb(r,t){return t?`${r}-${t}`:r}function xn(r){let t=r.split(":");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Rh(r,t,e){let n=S("pad",r,t,e);if(n==="explicit"){n=S("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function Zs(r){return r.kept?r:sn(r)}var q0={};Wt(q0,{json:()=>qZ});var qZ=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var K0={};Wt(K0,{json:()=>KZ});var KZ=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var j0={};Wt(j0,{json:()=>jZ});var jZ=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var X0={};Wt(X0,{json:()=>XZ});var XZ=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var Y0={};Wt(Y0,{json:()=>YZ});var YZ=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var Z0={};Wt(Z0,{json:()=>ZZ});var ZZ=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var J0={};Wt(J0,{json:()=>JZ});var JZ=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var Q0={};Wt(Q0,{json:()=>QZ});var QZ=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var tN={};Wt(tN,{json:()=>t7});var t7=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]}];var eN={};Wt(eN,{json:()=>e7});var e7=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var rN={};Wt(rN,{json:()=>r7});var r7=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var nN={};Wt(nN,{json:()=>n7});var n7=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}];var oN={};Wt(oN,{json:()=>o7});var o7=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var sN={};Wt(sN,{json:()=>s7});var s7=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var iN={};Wt(iN,{json:()=>i7});var i7=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var aN={};Wt(aN,{json:()=>a7});var a7=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var lN={};Wt(lN,{json:()=>l7});var l7=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var uN={};Wt(uN,{json:()=>u7});var u7=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var cN={};Wt(cN,{json:()=>c7});var c7=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Fh=class{constructor(){let t=[q0,K0,j0,X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=_o(x),N=a[w];if(N.outputs!=null){let _=N.outputs.indexOf(C);if(_!==-1){let A=`${w}:${_}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=_o(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=_o(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Nb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=kb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=kb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=_b(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=Ab(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=OD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=OD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=_o(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:pN(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=_o(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=_o(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function p7(r){let t=z().global;if(typeof t.atob!="undefined")return t.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function PD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):p7(r);return t?e:e.toLowerCase()}function kb(r,t,e,n=!1){let o=r[t];return o!=null?PD(o.s,n):e}function Eb(r,t,e){let n=r[t];return n?n.b:e}function _b(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function pN(r){switch(typeof r=="string"&&(r=oo[r]),r){case oo.DT_FLOAT:case oo.DT_HALF:return"float32";case oo.DT_INT32:case oo.DT_INT64:case oo.DT_INT8:case oo.DT_UINT8:return"int32";case oo.DT_BOOL:return"bool";case oo.DT_DOUBLE:return"float32";case oo.DT_STRING:return"string";default:return null}}function OD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function Ab(r,t,e){let n=r[t];return n&&n.type?pN(n.type):e}function $b(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>pN(o)):e}function LD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Db(r,t,e){let n=r[t];return n&&n.shape?LD(n.shape):e}function Rb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function Fb(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>PD(s,n)):e}function Ob(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>LD(o)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Lb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return br(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return br(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return _b(this.node.rawAttrs,t,e);if(n.s!=null)return kb(this.node.rawAttrs,t,e);if(n.b!=null)return Eb(this.node.rawAttrs,t,e);if(n.shape!=null)return Db(this.node.rawAttrs,t,e);if(n.type!=null)return Ab(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Rb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.b!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.type!=null)return $b(this.node.rawAttrs,t,e)}return e}};var ae={};Wt(ae,{OP_SCOPE_SUFFIX:()=>kv,abs:()=>Ee,acos:()=>ax,acosh:()=>lx,add:()=>X,addN:()=>LE,all:()=>Zp,any:()=>qu,argMax:()=>Ai,argMin:()=>ux,asin:()=>cx,asinh:()=>px,atan:()=>mx,atan2:()=>fx,atanh:()=>dx,avgPool:()=>Yl,avgPool3d:()=>gx,basicLSTMCell:()=>BE,batchNorm:()=>Di,batchNorm2d:()=>xx,batchNorm3d:()=>yx,batchNorm4d:()=>bx,batchToSpaceND:()=>Zl,bincount:()=>wx,booleanMaskAsync:()=>n6,broadcastArgs:()=>GE,broadcastTo:()=>Ri,buffer:()=>wt,cast:()=>J,ceil:()=>Cx,clipByValue:()=>Cr,clone:()=>sn,complex:()=>wn,concat:()=>ne,concat1d:()=>Ix,concat2d:()=>Sx,concat3d:()=>vx,concat4d:()=>Nx,conv1d:()=>Qp,conv2d:()=>In,conv2dTranspose:()=>em,conv3d:()=>Tx,conv3dTranspose:()=>Ex,cos:()=>Jl,cosh:()=>rm,cosineWindow:()=>hh,cumprod:()=>Xu,cumsum:()=>nm,denseBincount:()=>ch,depthToSpace:()=>_x,depthwiseConv2d:()=>Fi,diag:()=>WE,dilation2d:()=>Ax,div:()=>pt,divNoNan:()=>$x,dot:()=>Dx,dropout:()=>l0,einsum:()=>UE,elu:()=>Oi,enclosingPowerOfTwo:()=>u0,equal:()=>$r,erf:()=>Rx,euclideanNorm:()=>Fx,exp:()=>er,expandDims:()=>rr,expm1:()=>Ox,eye:()=>Yu,fft:()=>au,fill:()=>xo,floor:()=>Pi,floorDiv:()=>Yp,fused:()=>uu,gather:()=>Li,gatherND:()=>m6,greater:()=>Re,greaterEqual:()=>ln,ifft:()=>tl,imag:()=>Xl,image:()=>Gs,inTopKAsync:()=>h6,irfft:()=>xm,isFinite:()=>Px,isInf:()=>Lx,isNaN:()=>Mx,leakyRelu:()=>Ql,less:()=>om,lessEqual:()=>Ln,linalg:()=>p0,linspace:()=>KE,localResponseNormalization:()=>zx,log:()=>Sr,log1p:()=>tu,logSigmoid:()=>Gx,logSoftmax:()=>sm,logSumExp:()=>im,logicalAnd:()=>Rr,logicalNot:()=>eu,logicalOr:()=>am,logicalXor:()=>Wx,losses:()=>hX,lowerBound:()=>jE,matMul:()=>Lt,max:()=>Ir,maxPool:()=>ru,maxPool3d:()=>Hx,maxPoolWithArgmax:()=>XE,maximum:()=>Sn,mean:()=>ve,meshgrid:()=>YE,min:()=>Ja,minimum:()=>Mi,mirrorPad:()=>qx,mod:()=>Kx,moments:()=>Zu,movingAverage:()=>s6,mul:()=>D,multiRNNCell:()=>ZE,multinomial:()=>JE,neg:()=>Ht,norm:()=>Qa,notEqual:()=>Bs,oneHot:()=>Ei,ones:()=>cr,onesLike:()=>yr,op:()=>T,outerProduct:()=>QE,pad:()=>cn,pad1d:()=>t_,pad2d:()=>e_,pad3d:()=>r_,pad4d:()=>n_,pool:()=>jx,pow:()=>an,prelu:()=>ou,print:()=>Jg,prod:()=>Xx,raggedGather:()=>o_,raggedRange:()=>s_,raggedTensorToTensor:()=>i_,rand:()=>a_,randomGamma:()=>v_,randomNormal:()=>tc,randomStandardNormal:()=>N_,randomUniform:()=>zi,range:()=>su,real:()=>Za,reciprocal:()=>ty,relu:()=>Fr,relu6:()=>lm,reshape:()=>R,reverse:()=>pr,reverse1d:()=>T_,reverse2d:()=>k_,reverse3d:()=>E_,reverse4d:()=>__,rfft:()=>lu,round:()=>um,rsqrt:()=>cm,scalar:()=>mt,scatterND:()=>a6,searchSorted:()=>mh,selu:()=>pm,separableConv2d:()=>mm,setdiff1dAsync:()=>A_,sigmoid:()=>Yr,sign:()=>ey,signal:()=>dX,sin:()=>fm,sinh:()=>dm,slice:()=>Rt,slice1d:()=>hm,slice2d:()=>dh,slice3d:()=>gm,slice4d:()=>ec,softmax:()=>iu,softplus:()=>zs,spaceToBatchND:()=>nu,sparse:()=>gX,sparseToDense:()=>c6,spectral:()=>fX,split:()=>mr,sqrt:()=>Se,square:()=>Mt,squaredDifference:()=>ym,squeeze:()=>Mn,stack:()=>nr,step:()=>bo,stridedSlice:()=>ry,string:()=>xX,sub:()=>ct,sum:()=>ft,tan:()=>ny,tanh:()=>$i,tensor:()=>ur,tensor1d:()=>Me,tensor2d:()=>Vs,tensor3d:()=>rx,tensor4d:()=>$_,tensor5d:()=>D_,tensor6d:()=>R_,tile:()=>Dr,topk:()=>oy,transpose:()=>Ot,truncatedNormal:()=>bm,unique:()=>sy,unsortedSegmentSum:()=>wm,unstack:()=>vr,upperBound:()=>F_,variable:()=>iy,where:()=>_e,whereAsync:()=>ly,zeros:()=>Ne,zerosLike:()=>It});var MD=(r,t,e,n=ae)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(S("a",r,t,e),S("b",r,t,e))];case"AddN":return[n.addN(S("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(S("a",r,t,e),S("b",r,t,e))];case"Mul":return[n.mul(S("a",r,t,e),S("b",r,t,e))];case"RealDiv":case"Div":return[n.div(S("a",r,t,e),S("b",r,t,e))];case"DivNoNan":return[n.divNoNan(S("a",r,t,e),S("b",r,t,e))];case"FloorDiv":return[n.floorDiv(S("a",r,t,e),S("b",r,t,e))];case"Sub":return[n.sub(S("a",r,t,e),S("b",r,t,e))];case"Minimum":return[n.minimum(S("a",r,t,e),S("b",r,t,e))];case"Maximum":return[n.maximum(S("a",r,t,e),S("b",r,t,e))];case"Pow":return[n.pow(S("a",r,t,e),S("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var zD=(r,t,e,n=ae)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(S("x",r,t,e))];case"Acos":return[n.acos(S("x",r,t,e))];case"Acosh":return[n.acosh(S("x",r,t,e))];case"Asin":return[n.asin(S("x",r,t,e))];case"Asinh":return[n.asinh(S("x",r,t,e))];case"Atan":return[n.atan(S("x",r,t,e))];case"Atan2":return[n.atan2(S("x",r,t,e),S("y",r,t,e))];case"Atanh":return[n.atanh(S("x",r,t,e))];case"Ceil":return[n.ceil(S("x",r,t,e))];case"Complex":return[n.complex(S("real",r,t,e),S("imag",r,t,e))];case"Cos":return[n.cos(S("x",r,t,e))];case"Cosh":return[n.cosh(S("x",r,t,e))];case"Elu":return[n.elu(S("x",r,t,e))];case"Erf":return[n.erf(S("x",r,t,e))];case"Exp":return[n.exp(S("x",r,t,e))];case"Expm1":return[n.expm1(S("x",r,t,e))];case"Floor":return[n.floor(S("x",r,t,e))];case"Log":return[n.log(S("x",r,t,e))];case"Log1p":return[n.log1p(S("x",r,t,e))];case"Imag":return[n.imag(S("x",r,t,e))];case"Neg":return[n.neg(S("x",r,t,e))];case"Reciprocal":return[n.reciprocal(S("x",r,t,e))];case"Real":return[n.real(S("x",r,t,e))];case"Relu":return[n.relu(S("x",r,t,e))];case"Round":return[n.round(S("x",r,t,e))];case"Selu":return[n.selu(S("x",r,t,e))];case"Sigmoid":return[n.sigmoid(S("x",r,t,e))];case"Sin":return[n.sin(S("x",r,t,e))];case"Sign":return[n.sign(S("x",r,t,e))];case"Sinh":return[n.sinh(S("x",r,t,e))];case"Softplus":return[n.softplus(S("x",r,t,e))];case"Sqrt":return[n.sqrt(S("x",r,t,e))];case"Square":return[n.square(S("x",r,t,e))];case"Tanh":return[n.tanh(S("x",r,t,e))];case"Tan":return[n.tan(S("x",r,t,e))];case"ClipByValue":return[n.clipByValue(S("x",r,t,e),S("clipValueMin",r,t,e),S("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(S("x",r,t,e))];case"Rsqrt":return[n.rsqrt(br(r.inputNames[0],t,e))];case"Prod":return[n.prod(S("x",r,t,e),S("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(S("x",r,t,e),S("alpha",r,t,e))];case"Prelu":return[n.prelu(S("x",r,t,e),S("alpha",r,t,e))];case"IsNan":return[n.isNaN(br(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Vn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function BD(r){return!(typeof r=="number"||r.some(t=>t<0))}function Kf(r,t,e){let n=Mb(r,e),o=!BD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=Mb(s.shape,n)}),!BD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function Mb(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var zb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),De(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, - because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Vn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,De(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,vr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to +2. The custom ${n} is defined in JavaScript, but is not registered properly with tf.serialization.registerClass().`);if(u!=null){let l={};for(let f of Object.keys(vo))l[f]=vo[f];for(let f of Object.keys(e))l[f]=e[f];let c=s.config;c.customObjects=l;let p=Object.assign({},vo);for(let f of Object.keys(e))vo[f]=e[f];v0(s.config);let m=u(a,s.config,e,o);return vo=Object.assign({},p),m}else{let l=Object.assign({},vo);for(let p of Object.keys(e))vo[p]=e[p];let c=new a(s.config);return vo=Object.assign({},l),c}}}function D5(r,t){return rt?1:0}function bh(r,t){return-1*D5(r,t)}function To(r){if(r==null)return r;let t=[];for(let e of r)t.indexOf(e)===-1&&t.push(e);return t}function I$(r){if(r==null)throw new z(`Invalid value in obj: ${JSON.stringify(r)}`);for(let t in r)if(r.hasOwnProperty(t))return!1;return!0}function Ki(r,t,e){if(e!=null&&r.indexOf(e)<0)throw new z(`${e} is not a valid ${t}. Valid values are ${r} or null/undefined.`)}function Iy(r,t,e=0,n=1/0){return io(e>=0),io(n>=e),Array.isArray(r)&&r.length>=e&&r.length<=n&&r.every(o=>typeof o===t)}function Qe(r,t){Array.isArray(r)?(y.assert(r.length>0,()=>`${t} is unexpectedly an empty array.`),r.forEach((e,n)=>Qe(e,`element ${n+1} of ${t}`))):y.assert(Number.isInteger(r)&&r>0,()=>`Expected ${t} to be a positive integer, but got ${v$(r)}.`)}function v$(r){return r===null?"null":Array.isArray(r)?"["+r.map(t=>v$(t)).join(",")+"]":typeof r=="string"?`"${r}"`:`${r}`}function S$(r,t,e){let n=e!=null?e():y.now(),o;return(...i)=>{let a=e!=null?e():y.now();return a-n0){let e=`${r}_${t}`;return Nm.set(e,1),e}else return r}var O5=new RegExp(/^[A-Za-z0-9][-A-Za-z0-9\._\/]*$/);function D$(r){return!!r.match(O5)}function R$(r){return r===parseInt(r.toString(),10)}function ko(r,t,e){t==null&&(t=0),e==null&&(e=r.length);let n=1;for(let o=t;ot&&(t=n)}return t}function fn(r,t){if(t{if(r.shape.length!==2)throw new z(`repeat() expects a rank-2 tensor, but received a rank-${r.shape.length} tensor.`);let e=il(r,1);return _y(e,[1,t,1])})}function O$(r){let t=[ko(r.shape)];return R(r,t)}function P$(r){if(r.rank<=1)throw new z(`batchFlatten requires a minimum rank of 2. Got rank: ${r.rank}.`);let t=[r.shape[0],ko(r.shape,1)];return R(r,t)}function sl(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[t,0],[e,r.shape[1]]);case 3:return xm(r,[t,0,0],[e,r.shape[1],r.shape[2]]);case 4:return nc(r,[t,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3]]);case 5:return Rt(r,[t,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4]]);case 6:return Rt(r,[t,0,0,0,0,0],[e,r.shape[1],r.shape[2],r.shape[3],r.shape[4],r.shape[5]]);default:throw new z(`sliceAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}})}function k0(r,t,e){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:return hh(r,[0,t],[r.shape[0],e]);case 3:return xm(r,[0,0,t],[r.shape[0],r.shape[1],e]);case 4:return nc(r,[0,0,0,t],[r.shape[0],r.shape[1],r.shape[2],e]);default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Ch(r,t,e,n){return B(()=>{switch(r.rank){case 1:return gm(r,t,e);case 2:switch(n){case 1:return sl(r,t,e);case 2:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 3:switch(n){case 1:return sl(r,t,e);case 2:return xm(r,[0,t,0],[r.shape[0],e,r.shape[2]]);case 3:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}case 4:switch(n){case 1:return sl(r,t,e);case 2:return nc(r,[0,t,0,0],[r.shape[0],e,r.shape[2],r.shape[3]]);case 3:return nc(r,[0,0,t,0],[r.shape[0],r.shape[1],e,r.shape[3]]);case 4:return k0(r,t,e);default:throw new z(`The axis is not within the rank of the tensor ${n}`)}default:throw new z(`sliceAlongLastAxis() received an unsupported tensor rank: ${r.rank}`)}})}function Tm(r,t=-1){let e;return t<0&&(e=r[0].rank,e!==0?t=e:t=0),t===r[0].rank&&(t=-1),oe(r,t)}function _0(r,t){switch(r.rank){case 1:return vx([r,t]);case 2:return Sx([r,t],0);case 3:return Nx([r,t],0);case 4:return Tx([r,t],0);default:throw new z(`concatAlongFirstAxis() received an unsupported tensor rank: ${r.rank}`)}}function _y(r,t){if(Array.isArray(t)||(t=[t]),r.rank!==t.length)throw new z(`The length of input n (${t.length}) does not match the number of dimensions in input x (${r.rank})`);return Fr(r,t)}function km(r,t=0,e=1,n,o){return rc(r,t,e,n,o)}function Eo(r,t,e,n){if(r.rank<2||t.rank<2)throw new vt(`dot requires both inputs to be rank >= 2 but got x shape = ${r.shape} and y shape = ${t.shape}`);if(t.rank>=3){let o=r.shape.slice(-1)[0],s=t.shape.slice(-2)[0];if(o!==s)throw new vt(`If rank y >= 3, then the second last dim of y must equal the last dim of x but got x shape = ${r.shape} and y shape = ${t.shape}`)}if(r.rank===2&&t.rank===2)return pu.matMul({a:r,b:t,transposeA:!1,transposeB:!1,bias:n?E0(r.rank,n,dn()):null,activation:e});{let o=r.shape.slice(),s=o.pop();r=R(r,[-1,s]);let i=t.shape.slice(),a=i.pop(),u=i.pop(),l=[...i,a],c=Array.from({length:t.rank},(d,h)=>h===0?t.rank-2:h<=t.rank-2?h-1:h);t=R(Ot(t,c),[u,-1]);let p=[...o,...l],m=!1,f=!1;return R(pu.matMul({a:r,b:t,transposeA:m,transposeB:f,bias:n?E0(r.rank,n,dn()):null,activation:e}),p)}}function Ay(r,t,e){return B(()=>(Array.isArray(t)?t=Ke(t,"int32"):t=J(t,"int32"),Bi(r,t,e)))}function cc(r){return D(r,r)}function E0(r,t,e){let n=t.shape;if(t.rank!==1&&t.rank!==r)throw new z(`Unexpected bias dimensions: ${t.rank}; expected it to be 1 or ${r}`);if(r===5){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1,1]):R(t,[1,n[3],n[0],n[1],n[2]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===4){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1,1]):R(t,[1,n[2],n[0],n[1]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,1,n[0]]):R(t,[1].concat(n))}else if(r===3){if(e==="channelsFirst")return n.length===1?R(t,[1,n[0],1]):R(t,[1,n[1],n[0]]);if(e==="channelsLast")return n.length===1?R(t,[1,1,n[0]]):R(t,[1].concat(n))}else if(r<3)return t;throw new z(`Unsupported input rank by biasAdd: ${t.rank}`)}function hn(r,t,e){return B(()=>(e==null&&(e=dn()),Fe(e),X(r,E0(r.rank,t,e))))}function L$(r,t=1){if(t!==1)throw new vt(`Support for alpha values other than 1 (${t}) is not implemented yet.`);return Mi(r)}function M$(r){return B(()=>pt(r,X(Ee(r),1)))}function $y(r,t,e,n){return B(()=>p0(r,t,e,n))}function z$(r){return B(()=>{let t=X(.5,D(.2,r));return vr(t,0,1)})}function bu(r,t,e=!1){return e?r():t()}var B$=["fanIn","fanOut","fanAvg"],V$=["normal","uniform","truncatedNormal"];function P5(r){Ki(B$,"FanMode",r)}function L5(r){Ki(V$,"Distribution",r)}var gn=class extends Q.Serializable{fromConfigUsesCustomObjects(){return!1}getConfig(){return{}}},Em=class extends gn{apply(t,e){return Ne(t,e)}};Em.className="Zeros";Q.registerClass(Em);var wu=class extends gn{apply(t,e){return pr(t,e)}};wu.className="Ones";Q.registerClass(wu);var _m=class extends gn{constructor(t){if(super(),typeof t!="object")throw new z(`Expected argument of type ConstantConfig but got ${t}`);if(t.value===void 0)throw new z(`config must have value set but got ${t}`);this.value=t.value}apply(t,e){return B(()=>D(mt(this.value),pr(t,e)))}getConfig(){return{value:this.value}}};_m.className="Constant";Q.registerClass(_m);var Am=class extends gn{constructor(t){super(),this.DEFAULT_MINVAL=-.05,this.DEFAULT_MAXVAL=.05,this.minval=t.minval||this.DEFAULT_MINVAL,this.maxval=t.maxval||this.DEFAULT_MAXVAL,this.seed=t.seed}apply(t,e){return Gi(t,this.minval,this.maxval,e)}getConfig(){return{minval:this.minval,maxval:this.maxval,seed:this.seed}}};Am.className="RandomUniform";Q.registerClass(Am);var $m=class extends gn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new vt(`randomNormal does not support dType ${e}.`);return km(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};$m.className="RandomNormal";Q.registerClass($m);var Dm=class extends gn{constructor(t){super(),this.DEFAULT_MEAN=0,this.DEFAULT_STDDEV=.05,this.mean=t.mean||this.DEFAULT_MEAN,this.stddev=t.stddev||this.DEFAULT_STDDEV,this.seed=t.seed}apply(t,e){if(e=e||"float32",e!=="float32"&&e!=="int32")throw new vt(`truncatedNormal does not support dType ${e}.`);return wm(t,this.mean,this.stddev,e,this.seed)}getConfig(){return{mean:this.mean,stddev:this.stddev,seed:this.seed}}};Dm.className="TruncatedNormal";Q.registerClass(Dm);var Rm=class extends gn{constructor(t){super(),this.gain=t.gain!=null?t.gain:1}apply(t,e){return B(()=>{if(t.length!==2||t[0]!==t[1])throw new z("Identity matrix initializer can only be used for 2D square matrices.");return D(this.gain,Ju(t[0]))})}getConfig(){return{gain:this.gain}}};Rm.className="Identity";Q.registerClass(Rm);function M5(r,t="channelsLast"){let e,n;if(Fe(t),r.length===2)e=r[0],n=r[1];else if([3,4,5].indexOf(r.length)!==-1){if(t==="channelsFirst"){let o=ko(r,2);e=r[1]*o,n=r[0]*o}else if(t==="channelsLast"){let o=ko(r,0,r.length-2);e=r[r.length-2]*o,n=r[r.length-1]*o}}else{let o=ko(r);e=Math.sqrt(o),n=Math.sqrt(o)}return[e,n]}var jr=class extends gn{constructor(t){if(super(),t.scale<0)throw new z(`scale must be a positive float. Got: ${t.scale}`);this.scale=t.scale==null?1:t.scale,this.mode=t.mode==null?"fanIn":t.mode,P5(this.mode),this.distribution=t.distribution==null?"normal":t.distribution,L5(this.distribution),this.seed=t.seed}apply(t,e){let n=M5(t),o=n[0],s=n[1],i=this.scale;if(this.mode==="fanIn"?i/=Math.max(1,o):this.mode==="fanOut"?i/=Math.max(1,s):i/=Math.max(1,(o+s)/2),this.distribution==="normal"){let a=Math.sqrt(i);if(e=e||"float32",e!=="float32"&&e!=="int32")throw new vt(`${this.getClassName()} does not support dType ${e}.`);return wm(t,0,a,e,this.seed)}else{let a=Math.sqrt(3*i);return Gi(t,-a,a,e)}}getConfig(){return{scale:this.scale,mode:this.mode,distribution:this.distribution,seed:this.seed}}};jr.className="VarianceScaling";Q.registerClass(jr);var pc=class extends jr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};pc.className="GlorotUniform";Q.registerClass(pc);var mc=class extends jr{constructor(t){super({scale:1,mode:"fanAvg",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};mc.className="GlorotNormal";Q.registerClass(mc);var fc=class extends jr{constructor(t){super({scale:2,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};fc.className="HeNormal";Q.registerClass(fc);var dc=class extends jr{constructor(t){super({scale:2,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};dc.className="HeUniform";Q.registerClass(dc);var hc=class extends jr{constructor(t){super({scale:1,mode:"fanIn",distribution:"normal",seed:t==null?null:t.seed})}getClassName(){return jr.className}};hc.className="LeCunNormal";Q.registerClass(hc);var gc=class extends jr{constructor(t){super({scale:1,mode:"fanIn",distribution:"uniform",seed:t==null?null:t.seed})}getClassName(){return jr.className}};gc.className="LeCunNormal";Q.registerClass(gc);var Fm=class extends gn{constructor(t){if(super(),this.DEFAULT_GAIN=1,this.gain=t.gain==null?this.DEFAULT_GAIN:t.gain,this.seed=t.seed,this.seed!=null)throw new vt("Random seed is not implemented for Orthogonal Initializer yet.")}apply(t,e){return B(()=>{if(t.length<2)throw new vt("Shape must be at least 2D.");t[0]*t[1]>2e3&&console.warn(`Orthogonal initializer is being called on a matrix with more than 2000 (${t[0]*t[1]}) elements: Slowness may result.`);let n=t[0]>t[1]?[t[1],t[0]]:t,o=km(n,0,1,"float32"),s=d0.gramSchmidt(o);return t[0]>t[1]&&(s=Ot(s)),D(this.gain,s)})}getConfig(){return{gain:this.gain,seed:this.seed}}};Fm.className="Orthogonal";Q.registerClass(Fm);var G$={constant:"Constant",glorotNormal:"GlorotNormal",glorotUniform:"GlorotUniform",heNormal:"HeNormal",heUniform:"HeUniform",identity:"Identity",leCunNormal:"LeCunNormal",leCunUniform:"LeCunUniform",ones:"Ones",orthogonal:"Orthogonal",randomNormal:"RandomNormal",randomUniform:"RandomUniform",truncatedNormal:"TruncatedNormal",varianceScaling:"VarianceScaling",zeros:"Zeros"};function W$(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,"initializer")}function Te(r){return Sm(r)}function de(r){if(typeof r=="string"){let t=r in G$?G$[r]:r;if(t==="GlorotNormal")return new mc;if(t==="GlorotUniform")return new pc;if(t==="HeNormal")return new fc;if(t==="HeUniform")return new dc;if(t==="LeCunNormal")return new hc;if(t==="LeCunUniform")return new gc;{let e={};return e.className=t,e.config={},W$(e)}}else return r instanceof gn?r:W$(r)}function Dy(r){return Array.isArray(r)&&Array.isArray(r[0])}function Om(r){return r.length===0?[]:Array.isArray(r[0])?r:[r]}function St(r){let t;if(Array.isArray(r)){if(r.length!==1)throw new z(`Expected Tensor length to be 1; got ${r.length}`);t=r[0]}else t=r;return t}function zt(r){if(Array.isArray(r)&&Array.isArray(r[0])){if(r.length===1)return r=r,r[0];throw new z(`Expected exactly 1 Shape; got ${r.length}`)}else return r}function Pm(r){let t=0;for(let e of r)e.shape.length===0?t+=1:t+=e.shape.reduce((n,o)=>n*o);return t}var H$="Variable",Ih=class{constructor(t,e="float32",n=H$,o=!0,s=null){this.dtype=e==null?"float32":e,this.shape=t.shape,this.id=Ny(),n=n==null?H$:n,this.originalName=Ty(n),this.name=ky(this.originalName),this.trainable_=o,this.constraint=s,this.val=ay(t,this.trainable_,this.name,this.dtype)}read(){return this.assertNotDisposed(),this.val}write(t){return this.assertNotDisposed(),B5(this.val,t),this.val.id!==t.id&&(this.val.assign(t),this.constraint!=null&&this.val.assign(this.constraint.apply(this.val))),this}dispose(){this.assertNotDisposed(),this.val.dispose()}assertNotDisposed(){if(this.val.isDisposed)throw new Error(`LayersVariable ${this.name} is already disposed.`)}get trainable(){return this.trainable_}set trainable(t){this.trainable_=t,this.val.trainable=t}};function B5(r,t){if(r.shape.toString()!==t.shape.toString())throw new Error("Shape mismatch: "+JSON.stringify(r.shape)+" vs. "+JSON.stringify(t.shape))}function vh(r){return r.map(t=>t.read())}function Lm(r){r.forEach(t=>{t[0].write(t[1])})}var ye=class{constructor(t){this.dtype=t.dtype,this.shape=t.shape,t.shape!=null?this.ndim=t.shape.length:this.ndim=t.ndim,this.maxNDim=t.maxNDim,this.minNDim=t.minNDim,this.axes=t.axes||{}}},tn=class{constructor(t,e,n,o,s,i,a){this.dtype=t,this.shape=e,this.sourceLayer=n,this.inputs=o,this.callArgs=s,this.outputTensorIndex=a,this.id=Ny(),i!=null&&(this.originalName=Ty(i),this.name=ky(this.originalName)),this.rank=e.length}},V5=0,al=class{constructor(t,e){this.callArgs=e,this.id=V5++,this.outboundLayer=t.outboundLayer,this.inboundLayers=t.inboundLayers,this.nodeIndices=t.nodeIndices,this.tensorIndices=t.tensorIndices,this.inputTensors=t.inputTensors,this.outputTensors=t.outputTensors,this.inputMasks=t.inputMasks,this.outputMasks=t.outputMasks,this.inputShapes=t.inputShapes,this.outputShapes=t.outputShapes;for(let n of t.inboundLayers)n!=null&&n.outboundNodes.push(this);t.outboundLayer.inboundNodes.push(this)}getConfig(){let t=[];for(let e of this.inboundLayers)e!=null?t.push(e.name):t.push(null);return{outboundLayer:this.outboundLayer?this.outboundLayer.name:null,inboundLayers:t,nodeIndices:this.nodeIndices,tensorIndices:this.tensorIndices}}},G5=0,Et=class extends Q.Serializable{constructor(t={}){super(),this._callHook=null,this._addedWeightNames=[],this._stateful=!1,this.id=G5++,this.activityRegularizer=null,this.inputSpec=null,this.supportsMasking=!1,this._trainableWeights=[],this._nonTrainableWeights=[],this._losses=[],this._updates=[],this._built=!1,this.inboundNodes=[],this.outboundNodes=[];let e=t.name;if(!e){let n=this.getClassName();e=No(n)+"_"+yu(n)}if(this.name=e,this.trainable_=t.trainable==null?!0:t.trainable,t.inputShape!=null||t.batchInputShape!=null){let n;if(t.batchInputShape!=null)n=t.batchInputShape;else if(t.inputShape!=null){let s=null;t.batchSize!=null&&(s=t.batchSize),n=[s].concat(t.inputShape)}this.batchInputShape=n;let o=t.dtype;o==null&&(o=t.inputDType),o==null&&(o="float32"),this.dtype=o}t.weights!=null?this.initialWeights=t.weights:this.initialWeights=null,this._refCount=null,this.fastWeightInitDuringBuild=!1}static nodeKey(t,e){return t.name+"_ib-"+e.toString()}getNodeAtIndex(t,e){if(this.inboundNodes.length===0)throw new Kr(`The layer has never been called and thus has no defined ${e}.`);if(this.inboundNodes.length<=t)throw new z(`Asked to get ${e} at node ${t}, but the layer has only ${this.inboundNodes.length} inbound nodes.`);return this.inboundNodes[t]}getInputAt(t){return Tr(this.getNodeAtIndex(t,"input").inputTensors)}getOutputAt(t){return Tr(this.getNodeAtIndex(t,"output").outputTensors)}get input(){if(this.inboundNodes.length>1)throw new Tn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer input" is ill-defined. Use \`getInputAt(nodeIndex)\` instead.`);if(this.inboundNodes.length===0)throw new Tn(`Layer ${this.name} is not connected, no input to return.`);return Tr(this.getNodeAtIndex(0,"input").inputTensors)}get output(){if(this.inboundNodes.length===0)throw new Tn(`Layer ${this.name} has no inbound nodes.`);if(this.inboundNodes.length>1)throw new Tn(`Layer ${this.name} has multiple inbound nodes, hence the notion of "layer output" is ill-defined. Use \`getOutputAt(nodeIndex)\` instead.`);return Tr(this.getNodeAtIndex(0,"output").outputTensors)}get losses(){return this._losses}calculateLosses(){return this.losses.map(t=>t())}get updates(){return this._updates}get built(){return this._built}set built(t){this._built=t}get trainable(){return this.trainable_}set trainable(t){this._trainableWeights.forEach(e=>e.trainable=t),this.trainable_=t}get trainableWeights(){return this.trainable_?this._trainableWeights.filter(t=>t.trainable):[]}set trainableWeights(t){this._trainableWeights=t}get nonTrainableWeights(){return this.trainable?this._trainableWeights.filter(t=>!t.trainable).concat(this._nonTrainableWeights):this._trainableWeights.concat(this._nonTrainableWeights)}set nonTrainableWeights(t){this._nonTrainableWeights=t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}get stateful(){return this._stateful}resetStates(){if(!this.stateful)throw new Error("Cannot call the resetStates() method of a non-stateful Layer object.")}assertInputCompatibility(t){if(t=xe(t),this.inputSpec==null||this.inputSpec.length===0)return;let e=xe(this.inputSpec);if(t.length!==e.length)throw new z(`Layer ${this.name} expects ${e.length} inputs, but it received ${t.length} input tensors. Input received: ${t}`);for(let n=0;ns.maxNDim)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected max_ndim=${s.maxNDim}, found ndim=${i}`);if(s.minNDim!=null&&i=0?a[l]:a[a.length+l];if(c!=null&&[c,null].indexOf(p)===-1)throw new z(`Input ${n} is incompatible with layer ${this.name}: expected axis ${l} of input shape to have value ${c} but got shape ${a}.`)}}if(s.shape!=null)for(let a=0;a{if(!this.built){this.assertInputCompatibility(t);let i=[];for(let a of xe(t))i.push(a.shape);this.build(Tr(i)),this.built=!0,this.initialWeights&&this.setWeights(this.initialWeights),this._refCount===null&&s&&(this._refCount=1)}if(this.assertInputCompatibility(t),s){let i=this.call(t,e),a=xe(i),u=[];for(let l of a)n.indexOf(l)!==-1&&(l=l.clone()),u.push(l);if(i=Tr(u),this.activityRegularizer!=null)throw new vt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return i}else{let i=W5(t),a=this.computeOutputShape(i),u,l=U5(t);if(this.warnOnIncompatibleInputShape(Array.isArray(t)?i[0]:i),a!=null&&a.length>0&&Array.isArray(a[0])?u=a.map((c,p)=>new tn(l,c,this,xe(t),e,this.name,p)):u=new tn(l,a,this,xe(t),e,this.name),this.addInboundNode(t,u,null,null,i,a,e),this._refCount++,this.activityRegularizer!=null)throw new vt("Layer invocation in the presence of activity regularizer(s) is not supported yet.");return u}})}warnOnIncompatibleInputShape(t){if(this.batchInputShape!=null)if(t.length!==this.batchInputShape.length)console.warn(`The rank of the input tensor provided (shape: ${JSON.stringify(t)}) does not match that of the batchInputShape (${JSON.stringify(this.batchInputShape)}) of the layer ${this.name}`);else{let e=!1;this.batchInputShape.forEach((n,o)=>{n!=null&&t[o]!=null&&t[o]!==n&&(e=!0)}),e&&console.warn(`The shape of the input tensor (${JSON.stringify(t)}) does not match the expectation of layer ${this.name}: ${JSON.stringify(this.batchInputShape)}`)}}get outputShape(){if(this.inboundNodes==null||this.inboundNodes.length===0)throw new Tn(`The layer ${this.name} has never been called and thus has no defined output shape.`);let t=[];for(let e of this.inboundNodes){let n=JSON.stringify(e.outputShapes);t.indexOf(n)===-1&&t.push(n)}if(t.length===1){let e=this.inboundNodes[0].outputShapes;return Array.isArray(e)&&Array.isArray(e[0])&&e.length===1?e[0]:e}else throw new Tn(`The layer ${this.name} has multiple inbound nodes with different output shapes. Hence the notion of "output shape" is ill-defined for the layer.`)}countParams(){if(!this.built)throw new Kr(`You tried to call countParams() on ${this.name}, but the layer is not built yet. Build it first by calling build(batchInputShape).`);return Pm(this.weights)}build(t){this.built=!0}getWeights(t=!1){return vh(t?this.trainableWeights:this.weights)}setWeights(t){B(()=>{let e=this.weights;if(e.length!==t.length)throw new z(`You called setWeights(weights) on layer "${this.name}" with a weight list of length ${t.length}, but the layer was expecting ${e.length} weights. Provided weights: ${t}...`);if(e.length===0)return;let n=[],o=vh(e);for(let s=0;ss.apply(c.read())),i==null&&(i=!0),i?this._trainableWeights.push(c):this._nonTrainableWeights.push(c),c}setFastWeightInitDuringBuild(t){this.fastWeightInitDuringBuild=t}addLoss(t){t==null||Array.isArray(t)&&t.length===0||(t=xe(t),this._losses!==void 0&&this._losses!==null&&this.losses.push(...t))}computeOutputShape(t){return t}computeMask(t,e){if(!this.supportsMasking){if(e!=null)if(Array.isArray(e))e.forEach(n=>{if(n!=null)throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`)});else throw new TypeError(`Layer ${this.name} does not support masking, but was passed an inputMask.`);return null}return e}addInboundNode(t,e,n,o,s,i,a=null){let u=xe(t);e=xe(e),n=xe(n),o=xe(o),s=Om(s),i=Om(i);let l=[],c=[],p=[];for(let m of u)l.push(m.sourceLayer),c.push(m.nodeIndex),p.push(m.tensorIndex);new al({outboundLayer:this,inboundLayers:l,nodeIndices:c,tensorIndices:p,inputTensors:u,outputTensors:e,inputMasks:n,outputMasks:o,inputShapes:s,outputShapes:i},a);for(let m=0;mt.dispose()),this.weights.length}assertNotDisposed(){if(this._refCount===0)throw new Error(`Layer '${this.name}' is already disposed.`)}dispose(){if(!this.built)throw new Error(`Cannot dispose Layer ${this.name} because it has not been built yet.`);if(this._refCount===null)throw new Error(`Cannot dispose Layer ${this.name} because it has not been used yet.`);this.assertNotDisposed();let t=0;return--this._refCount===0&&(t=this.disposeWeights()),{refCountAfterDispose:this._refCount,numDisposedVariables:t}}};function W5(r){r=xe(r);let t=[];for(let e of r)t.push(e.shape);return Tr(t)}function U5(r){return"float32"}function A0(r,t,e){if((t==null||e!=null&&e>0)&&(t=r.sourceLayer,e=r.nodeIndex),t.inboundNodes.length===0)return[r];{let n=t.inboundNodes[e];if(n.inboundLayers.length===0)return n.inputTensors;{let o=[];for(let s=0;sd.name),u=[],l=t.names();for(let d of a)l.indexOf(d)!==-1?u.push(t.getValue(d)):u.push(null);n!=null&&(n.maxNumTensors=-1/0,n.minNumTensors=1/0);let c=a.join(",")+"|"+t.names().sort().join(","),p=Fy.get(c),m;if(p==null){let d=q5(i,t);p=d.sorted,m=d.recipientCounts,Fy.put(c,p),Oy.put(c,m)}m={},o||Object.assign(m,Oy.get(c));let f=new _o(t);for(let d=0;dn.maxNumTensors&&(n.maxNumTensors=F),F0,()=>"Expected at least one fetch, got none");let e=[],n={};if(r.length===1){let o=q$(r[0],t);e=o.sorted,n=o.recipientMap}else{let o=new Set;for(let s of r){let{sorted:i,recipientMap:a}=q$(s,t);for(let u of i)o.has(u.name)||(e.push(u),o.add(u.name));for(let u in a)n[u]==null&&(n[u]=new Set),a[u].forEach(l=>n[u].add(l))}}return{sorted:e,recipientCounts:K5(n)}}function K5(r){let t={};for(let e in r)t[e]=r[e].size;return t}function q$(r,t){let e=new Set,n=[],o={};for(let a of t.names())e.add(a);let s=[],i=[];for(s.push(r);s.length>0;){let a=s[s.length-1];if(e.has(a.name)){s.pop();continue}let u=i[i.length-1]===s.length-1;if(a.inputs.length===0||u)s.pop(),n.push(a),e.add(a.name),u&&i.pop();else{i.push(s.length-1);for(let l of a.inputs)o[l.name]==null&&(o[l.name]=new Set),o[l.name].add(a.name),!e.has(l.name)&&s.push(l)}}return{sorted:n,recipientMap:o}}function j5(r){let t;if(r.sourceLayer.inboundNodes.length===1)t=r.sourceLayer.output;else{let e=null;for(let n=0;n100,K$);var Y$={};Wt(Y$,{maxNorm:()=>Y5,minMaxNorm:()=>Q5,nonNeg:()=>J5,unitNorm:()=>Z5});function $0(r,t){return B(()=>ve(ft(D(r,r),t,!0)))}var yc=class extends Q.Serializable{getConfig(){return{}}},Mm=class extends yc{constructor(t){super(),this.defaultMaxValue=2,this.defaultAxis=0,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=$0(t,this.axis),n=vr(e,0,this.maxValue);return D(t,pt(n,X(lr(),e)))})}getConfig(){return{maxValue:this.maxValue,axis:this.axis}}};Mm.className="MaxNorm";Q.registerClass(Mm);var zm=class extends yc{constructor(t){super(),this.defaultAxis=0,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>pt(t,X(lr(),$0(t,this.axis))))}getConfig(){return{axis:this.axis}}};zm.className="UnitNorm";Q.registerClass(zm);var Bm=class extends yc{apply(t){return Pr(t)}};Bm.className="NonNeg";Q.registerClass(Bm);var Vm=class extends yc{constructor(t){super(),this.defaultMinValue=0,this.defaultMaxValue=1,this.defaultRate=1,this.defaultAxis=0,this.minValue=t.minValue!=null?t.minValue:this.defaultMinValue,this.maxValue=t.maxValue!=null?t.maxValue:this.defaultMaxValue,this.rate=t.rate!=null?t.rate:this.defaultRate,this.axis=t.axis!=null?t.axis:this.defaultAxis}apply(t){return B(()=>{let e=$0(t,this.axis),n=X(D(this.rate,vr(e,this.minValue,this.maxValue)),D(1-this.rate,e));return D(t,pt(n,X(lr(),e)))})}getConfig(){return{minValue:this.minValue,maxValue:this.maxValue,rate:this.rate,axis:this.axis}}};Vm.className="MinMaxNorm";Q.registerClass(Vm);var j$={maxNorm:"MaxNorm",minMaxNorm:"MinMaxNorm",nonNeg:"NonNeg",unitNorm:"UnitNorm"};function ze(r){return Sm(r)}function X$(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,"constraint")}function Be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in j$?j$[r]:r,config:{}};return X$(e)}else return r instanceof yc?r:X$(r)}function Y5(r){return new Mm(r)}function Z5(r){return new zm(r)}function J5(){return new Bm}function Q5(r){return new Vm(r)}var Z$={};Wt(Z$,{constant:()=>r8,glorotNormal:()=>u8,glorotUniform:()=>l8,heNormal:()=>c8,heUniform:()=>p8,identity:()=>i8,leCunNormal:()=>m8,leCunUniform:()=>f8,ones:()=>e8,orthogonal:()=>d8,randomNormal:()=>o8,randomUniform:()=>n8,truncatedNormal:()=>s8,varianceScaling:()=>a8,zeros:()=>t8});function t8(){return new Em}function e8(){return new wu}function r8(r){return new _m(r)}function n8(r){return new Am(r)}function o8(r){return new $m(r)}function s8(r){return new Dm(r)}function i8(r){return new Rm(r)}function a8(r){return new jr(r)}function l8(r){return new pc(r)}function u8(r){return new mc(r)}function c8(r){return new fc(r)}function p8(r){return new dc(r)}function m8(r){return new hc(r)}function f8(r){return new gc(r)}function d8(r){return new Fm(r)}var AD={};Wt(AD,{Layer:()=>Et,RNN:()=>En,RNNCell:()=>pl,activation:()=>$Y,add:()=>BY,alphaDropout:()=>vZ,average:()=>VY,averagePooling1d:()=>H0,averagePooling2d:()=>q0,averagePooling3d:()=>K0,avgPool1d:()=>YY,avgPool2d:()=>JY,avgPool3d:()=>tZ,avgPooling1d:()=>ZY,avgPooling2d:()=>QY,avgPooling3d:()=>eZ,batchNormalization:()=>KY,bidirectional:()=>hZ,categoryEncoding:()=>EZ,centerCrop:()=>TZ,concatenate:()=>GY,conv1d:()=>IY,conv2d:()=>vY,conv2dTranspose:()=>SY,conv3d:()=>NY,conv3dTranspose:()=>TY,convLstm2d:()=>pZ,convLstm2dCell:()=>mZ,cropping2D:()=>EY,dense:()=>DY,depthwiseConv2d:()=>AY,dot:()=>qY,dropout:()=>RY,elu:()=>gY,embedding:()=>zY,flatten:()=>OY,gaussianDropout:()=>IZ,gaussianNoise:()=>CZ,globalAveragePooling1d:()=>rZ,globalAveragePooling2d:()=>nZ,globalMaxPool1d:()=>xZ,globalMaxPool2d:()=>yZ,globalMaxPooling1d:()=>TD,globalMaxPooling2d:()=>kD,gru:()=>sZ,gruCell:()=>iZ,input:()=>z0,inputLayer:()=>hY,layerNormalization:()=>jY,leakyReLU:()=>yY,lstm:()=>aZ,lstmCell:()=>lZ,masking:()=>SZ,maxPool1d:()=>bZ,maxPool2d:()=>wZ,maxPooling1d:()=>ED,maxPooling2d:()=>_D,maxPooling3d:()=>oZ,maximum:()=>WY,minimum:()=>UY,multiply:()=>HY,permute:()=>MY,prelu:()=>bY,reLU:()=>xY,repeatVector:()=>PY,rescaling:()=>NZ,reshape:()=>LY,resizing:()=>kZ,rnn:()=>fZ,separableConv2d:()=>kY,simpleRNN:()=>uZ,simpleRNNCell:()=>cZ,softmax:()=>wY,spatialDropout1d:()=>FY,stackedRNNCells:()=>dZ,thresholdedReLU:()=>CY,timeDistributed:()=>gZ,upSampling2d:()=>_Y,zeroPadding2d:()=>XY});async function ji(r){if(r==null)return;let t=[],e=[],n=[];for(let o in r){let s=r[o];if(typeof s!="number"){let i=s;t.push(i.data()),e.push(o),n.push(i)}}if(t.length>0){let o=await Promise.all(t);for(let s=0;sX(this.totals[o],D(s,n)));this.totals[o]=a,i!=null&&i.dispose()}}}async onEpochEnd(t,e){if(e!=null)for(let n of this.params.metrics)this.totals[n]!=null&&(typeof this.totals[n]=="number"?e[n]=this.totals[n]/this.seen:B(()=>{let o=D(pt(1,this.seen),this.totals[n]);e[n]=o,this.totals[n].dispose(),Ae(e[n])}))}},My=class extends ll{async onTrainBegin(t){this.epoch=[],this.history={}}async onEpochEnd(t,e){e==null&&(e={}),this.epoch.push(t);for(let n in e)this.history[n]==null&&(this.history[n]=[]),this.history[n].push(e[n])}async syncData(){let t=[],e=[],n=[];for(let s in this.history){let i=this.history[s];for(let a=0;anew zy(n,t))}var xn=class{constructor(){}static registerCallbackConstructor(t,e){y.assert(t>=0&&Number.isInteger(t),()=>`Verbosity level is expected to be an integer >= 0, but got ${t}`),xn.checkForDuplicate(e),xn.constructors[t]==null&&(xn.constructors[t]=[]),xn.constructors[t].push(e)}static checkForDuplicate(t){for(let e in xn.constructors)xn.constructors[+e].forEach(o=>{if(o===t)throw new z("Duplicate callback constructor.")})}static clear(){xn.constructors={}}static createCallbacks(t){let e=[];for(let n in xn.constructors){let o=+n;t>=o&&e.push(...xn.constructors[o])}return e.map(n=>new n)}};xn.constructors={};function Vy(r,t,e,n,o,s,i,a,u){let l=new My,c=[new D0,...xn.createCallbacks(t)];r!=null&&c.push(...r),c.push(l);let p=new Ly(c);return p.setParams({epochs:e,initialEpoch:n,samples:o,steps:s,batchSize:i,verbose:t,doValidation:a,metrics:u}),{callbackList:p,history:l}}function yn(r,t={},e=!1){return qi(r,Q.SerializationMap.getMap().classNameMap,t,"layer",e)}function Sh(r,t){return B(()=>{r.dtype!=="float32"&&(r=J(r,"float32"));let e=ft(cc(r),t,!0),n=bo(e.shape,lr()),o=ve(Nn(e,n));return pt(r,o)})}function Xi(r,t){return B(()=>Se(cc(ct(t,r)),-1))}function Gm(r,t){return B(()=>Se(Ee(ct(t,r)),-1))}function Cu(r,t){return B(()=>{let e=ct(r,t),n=vr(Ee(r),lr(),Number.MAX_VALUE),o=Ee(pt(e,n));return D(100,Se(o,-1))})}function g8(r,t){return B(()=>{let e=vr(t,lr(),Number.MAX_VALUE),n=Nr(X(1,e)),o=vr(r,lr(),Number.MAX_VALUE),s=Nr(X(1,o));return Se(cc(ct(n,s)),-1)})}function x8(r,t){return B(()=>{let e=Nn(0,ct(1,D(r,t)));return Se(cc(e),-1)})}function y8(r,t){return B(()=>{let e=Nn(0,ct(1,D(r,t)));return Se(e,-1)})}function b8(r,t){return B(()=>{let e=ft(D(r,t),-1),n=Sr(D(ct(1,r),t),-1);return Nn(0,X(1,ct(n,e)))})}function w8(r,t){return B(()=>{let e=Math.log(2),n=ct(t,r),o=ct(X(n,Gs(D(-2,n))),e);return Se(o,-1)})}function bc(r,t,e=!1){return B(()=>{if(e)t=lu(t);else{let n=ft(t,t.shape.length-1,!0);t=pt(t,n)}return t=vr(t,lr(),1-lr()),Ht(ft(D(J(r,"float32"),Nr(t)),t.shape.length-1))})}function Wm(r,t,e=!1){return B(()=>{let n=J(zi(O$(r)),"int32");t=vr(t,lr(),1-lr());let o=t.shape,s=R($i(n,o[o.length-1]),o);return bc(s,t,e)})}function C8(r,t){if(!y.arraysEqual(r.shape,t.shape))throw new z(`logits and labels must have the same shape, but got shapes ${JSON.stringify(r.shape)} and ${JSON.stringify(t.shape)}`);return B(()=>{let e=Pr(t),n=Ht(Ee(t));return X(ct(e,D(t,r)),nu(or(n)))})}function Um(r,t){return B(()=>{let e;return e=vr(t,lr(),1-lr()),e=Nr(pt(e,ct(1,e))),Se(C8(r,e),-1)})}function I8(r,t){return B(()=>{let e=vr(r,lr(),1),n=vr(t,lr(),1);return ft(D(r,Nr(pt(e,n))),-1)})}function v8(r,t){return B(()=>{let e=Nr(X(lr(),t));return Se(ct(t,D(r,e)),-1)})}function Th(r,t){return B(()=>{let e=Sh(r,-1),n=Sh(t,-1),o=D(e,n);return Ht(ft(o,-1))})}var Nh={meanSquaredError:Xi,meanAbsoluteError:Gm,meanAbsolutePercentageError:Cu,meanSquaredLogarithmicError:g8,squaredHinge:x8,hinge:y8,categoricalHinge:b8,logcosh:w8,categoricalCrossentropy:bc,sparseCategoricalCrossentropy:Wm,binaryCrossentropy:Um,kullbackLeiblerDivergence:I8,poisson:v8,cosineProximity:Th};function Gy(r){if(typeof r=="string"){if(r in Nh)return Nh[r];let t=`Unknown loss ${r}`;throw r.toLowerCase().includes("softmaxcrossentropy")&&(t=`Unknown loss ${r}. Use "categoricalCrossentropy" as the string name for tf.losses.softmaxCrossEntropy`),new z(t)}else return r}function kh(r,t){return B(()=>{let e=D(.5,wr(t)),n=Qr(Re(t,e),r.dtype);return Se(Rr(r,n),-1)})}function Eh(r,t){return B(()=>Qr(Rr(Ri(r,-1),Ri(t,-1)),"float32"))}function tD(r,t){return B(()=>J(ft(Or(Rr(r,1),Rr(t,1))),"float32"))}function S8(r,t){return B(()=>J(ft(Or(Rr(r,1),Rr(t,0))),"float32"))}function N8(r,t){return B(()=>J(ft(Or(Rr(r,0),Rr(t,1))),"float32"))}function R0(r,t){return B(()=>{let e=tD(r,t),n=N8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function eD(r,t){return B(()=>{let e=tD(r,t),n=S8(r,t),o=X(e,n);return J(_e(Re(o,0),pt(e,o),0),"float32")})}function Uy(r,t){return Um(r,t)}function Hy(r,t){return r.rank===t.rank&&(r=Bn(r,[r.rank-1])),t=Ri(t,-1),t.dtype!==r.dtype&&(t=J(t,r.dtype)),J(Rr(r,t),"float32")}var T8=Xi,k8=Xi,E8=Gm,_8=Gm,A8=Cu,$8=Cu,_h=bc,D8=Th,F0=Wm,Wy={binaryAccuracy:kh,categoricalAccuracy:Eh,precision:R0,categoricalCrossentropy:_h,sparseCategoricalCrossentropy:F0,mse:T8,MSE:k8,mae:E8,MAE:_8,mape:A8,MAPE:$8,cosine:D8};function rD(r){if(typeof r=="string"&&r in Wy)return Wy[r];if(typeof r!="string"&&r!=null)return r;throw new z(`Unknown metric ${r}`)}function Ah(r){if(io(r!==null,`Unknown LossOrMetricFn ${r}`),typeof r=="string")return r;{let t;for(let e of Object.keys(Nh))if(Nh[e]===r){t=e;break}if(t!==void 0)return t;for(let e of Object.keys(Wy))if(Wy[e]===r){t=e;break}return t!==void 0?t:r.name}}function oD(r){let t={Adagrad:()=>lc.adagrad(.01),Adadelta:()=>lc.adadelta(1,.95,lr()),Adam:()=>lc.adam(.001,.9,.999,lr()),Adamax:()=>lc.adamax(.002,.9,.999,lr(),0),RMSProp:()=>lc.rmsprop(.001,.9,0,lr()),SGD:()=>lc.sgd(.01)};if(t.adagrad=t.Adagrad,t.adadelta=t.Adadelta,t.adam=t.Adam,t.adamax=t.Adamax,t.rmsprop=t.RMSProp,t.sgd=t.SGD,r in t)return t[r]();throw new z(`Unknown Optimizer ${r}`)}function P0(r,t,e=!1){if(r==null||typeof r!="object"||Object.getPrototypeOf(r)!==Object.prototype||!O0(r))throw new Error("User-defined metadata is expected to be a JSON object, but is not.");if(e){let n=JSON.stringify(r);n.length>1048576&&console.warn(`User-defined metadata of model "${t}" is too large in size (length=${n.length} when serialized). It is not recommended to store such large objects in user-defined metadata. Please make sure its serialized length is <= ${1048576}.`)}}function O0(r){if(r===null)return!0;if(typeof r=="object")if(Object.getPrototypeOf(r)===Object.prototype){let t=Object.keys(r);for(let e of t)if(typeof e!="string"||!O0(r[e]))return!1;return!0}else if(Array.isArray(r)){for(let t of r)if(!O0(t))return!1;return!0}else return!1;else{let t=typeof r;return t==="string"||t==="number"||t==="boolean"}}function sD(r,t,e,n=console.log){let o=O8(r),s=["Layer (type)","Input Shape","Output shape","Param #"];o?(t=t||90,e=e||[.32,.61,.89,1]):(t=t||115,e=e||[.24,.48,.7,.8,1]),e[e.length-1]<=1&&(e=e.map(c=>Math.floor(t*c)));let i;if(!o){s.push("Receives inputs"),i=[];for(let c in r.nodesByDepth)i.push(...r.nodesByDepth[c])}n("_".repeat(t)),qy(s,e,n),n("=".repeat(t));let a=r.layers;for(let c=0;c1||o.length===1&&o[0].inboundLayers.length>1){t=!1;break}n.push(...o)}if(t)for(let o of r.layers){let s=!1;for(let i of o.inboundNodes)if(n.indexOf(i)!==-1)if(s){t=!1;break}else s=!0;if(!t)break}return t}function qy(r,t,e=console.log){let n="";for(let o=0;o0&&(n=n.slice(0,n.length-1)+" "),n+=r[o],n=n.slice(0,t[o]),n+=" ".repeat(t[o]-n.length);e(n)}function P8(r,t,e){let n,o;try{o=r.inboundNodes.map(u=>JSON.stringify(u.inputShapes)).join(",")}catch(u){o="multiple"}try{n=JSON.stringify(r.outputShape)}catch(u){n="multiple"}let s=r.name,i=r.getClassName(),a=[`${s} (${i})`,o,n,r.countParams().toString()];qy(a,t,e)}function L8(r,t,e,n){let o,s;try{s=r.inboundNodes.map(p=>JSON.stringify(p.inputShapes)).join(",")}catch(p){s="multiple"}try{o=JSON.stringify(r.outputShape)}catch(p){o="multiple"}let i=[];for(let p of r.inboundNodes)if(!(e!=null&&e.length>0&&e.indexOf(p)===-1))for(let m=0;mb.name)}`);To(this.outputs).length!==this.outputs.length&&console.warn(`The list of outputs passed to the model is redundant. All outputs should only appear once. Found: ${this.outputs.map(b=>b.name)}`),this.inputLayers=[],this.inputLayersNodeIndices=[],this.inputLayersTensorIndices=[],this.outputLayers=[],this.outputLayersNodeIndices=[],this.outputLayersTensorIndices=[],this.layers=[],this.internalContainerRefs=[];for(let b of this.outputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;this.outputLayers.push(w),this.outputLayersNodeIndices.push(C),this.outputLayersTensorIndices.push(N)}for(let b of this.inputs){let w=b.sourceLayer,C=b.nodeIndex,N=b.tensorIndex;io(C===0,"input layer has >1 nodes"),io(N===0,"input layer has >1 tensors"),this.inputLayers.push(w),this.inputLayersNodeIndices.push(C),this.inputLayersTensorIndices.push(N)}this.inputNames=[],this.outputNames=[],this.feedInputShapes=[],this.feedInputNames=[],this.feedOutputNames=[];for(let b=0;bb.shape),this.internalOutputShapes=this.outputs.map(b=>b.shape);let e={},n={},o={},s={},i={},a=[],u=(b,w,C,N,E,A)=>{(N==null||E==null||A==null)&&(N=b.sourceLayer,E=b.nodeIndex,A=b.tensorIndex);let $=N.inboundNodes[E];if(C.indexOf($)!==-1)throw new Kr(`The tensor ${b.name} at layer "${N.name}" is part of a cycle.`);if(w.indexOf($)!==-1)return;this.containerNodes.add(Vn.nodeKey(N,E)),N.id in i||(i[N.id]=Object.keys(i).length),C.indexOf($)===-1&&C.push($);let F=$.inboundLayers.length;for(let P=0;P=0;)C.splice(C.indexOf($),1);a.push($)},l=[],c=[];for(let b of this.outputs)u(b,l,c);let p=a.slice().reverse();for(let b of p){n[b.id]=b,b.id in e||(e[b.id]=0);let w=e[b.id],C=o[b.outboundLayer.id]==null?0:o[b.outboundLayer.id];w=Math.max(w,C),o[b.outboundLayer.id]=w,s[b.outboundLayer.id]=b.outboundLayer,e[b.id]=w;for(let N=0;NparseInt(b,10)).sort(bh);this.layers=[];for(let b of d){let w=f[b];w.sort((C,N)=>{let E=i[C.id],A=i[N.id];return EA?1:0});for(let C of w)C instanceof Vn&&this.internalContainerRefs.push(C),this.layers.push(C)}this.layersByDepth=f,d=Object.keys(m).map(b=>parseInt(b,10)).sort(bh);let h=this.inputs.slice(),g=[];for(let b of d)for(let w of m[b]){let C=w.outboundLayer;if(C!=null){for(let N of w.inputTensors)if(h.indexOf(N)===-1)throw new Kr(`Graph disconnected: cannot obtain value for tensor ${N} at layer "${C.name}". The following previous layers were accessed without issue: ${g}`);for(let N of w.outputTensors)h.push(N);g.push(C.name)}}this.nodesByDepth=m;let x=this.layers.map(b=>b.name);for(let b of x){let w=x.filter(C=>C===b).length;if(w!==1)throw new Kr(`The name "${b}" is used ${w} times in the model. All layer names should be unique. Layer names: `+JSON.stringify(x))}this.outboundNodes=[],this.inboundNodes=[],new al({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:this.inputs.map(b=>null),outputMasks:this.outputs.map(b=>null),inputShapes:this.inputs.map(b=>b.shape),outputShapes:this.outputs.map(b=>b.shape)}),this.built=!0,this._refCount=1}assertNotDisposed(){if(this._refCount===0)throw new Error(`Container '${this.name}' is already disposed.`)}dispose(){this.assertNotDisposed();let t={refCountAfterDispose:null,numDisposedVariables:0};if(--this._refCount===0){for(let e of this.layers)t.numDisposedVariables+=e.dispose().numDisposedVariables;for(let e of this.internalContainerRefs)t.numDisposedVariables+=e.dispose().numDisposedVariables}return t.refCountAfterDispose=this._refCount,t}get trainable(){return this.trainable_}set trainable(t){this.layers.forEach(e=>{e._trainableWeights.forEach(n=>n.trainable=t)}),this.trainable_=t}get trainableWeights(){if(this._trainableWeights.length>0)throw new z("Container instance unexpectedly contains _trainableWeights.The trainable weights of a Container are a union of the trainable weights of its consituent Layers. Its own _trainableWeights must remain an empty Array.");if(!this.trainable)return[];let t=[];for(let e of this.layers)t=t.concat(e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.layers)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.layers)e.push(...n.trainableWeights);return e.concat(t)}return t}get weights(){return this.trainableWeights.concat(this.nonTrainableWeights)}loadWeights(t,e=!0){let n={},o=0;for(let i of this.layers)for(let a of i.weights){if(n[a.originalName]!=null)throw new z(`Duplicate weight name: ${a.originalName}`);n[a.originalName]=a,o++}let s=[];for(let i in t){let a=i;if(n[i]==null){let u=i.split("/");a=u.slice(0,-2).concat([u[u.length-1]]).join("/")}if(n[a]!=null)s.push([n[a],t[i]]);else if(e)throw new z(`Provided weight data has no target variable: ${i}`);delete n[a]}if(e){let i=[];for(let a in n)i.push(a);if(i.length>0)throw new z(`${i.length} of ${o} weights are not set: ${i}`)}Lm(s)}updatedConfig(){let t=this.getConfig(),e={};return e.className=this.getClassName(),e.config=t,e.kerasVersion=`tfjs-layers ${Hm}`,e.backend="TensorFlow.js",e}toJSON(t,e=!0){let n=Ky(this.updatedConfig());return e?JSON.stringify(n):n}call(t,e){return B(()=>{t=xe(t);let n=new _o;for(let o=0;o{t=xe(t);let n;return e==null?n=So(null,t.length):n=xe(e),this.runInternalGraph(t,n)[1]})}computeOutputShape(t){let e=Om(t);if(e.length!==this.inputLayers.length)throw new z(`Invalid inputShape argument ${t}: model has ${this.inputLayers.length} tensor inputs.`);let n={};for(let a=0;aparseInt(a,10)).sort(bh);if(o.length>1)for(let a of o){let u=this.nodesByDepth[a];for(let l of u){let c=l.outboundLayer;if(this.inputLayers.map(h=>h.id).indexOf(c.id)!==-1)continue;let p=[];for(let h=0;hparseInt(u,10)).sort(bh);for(let u of o){let l=this.nodesByDepth[u];for(let c of l){let p=c.outboundLayer,m=c.inputTensors,f=c.outputTensors,d=new Array;for(let h of m)h.id in n&&d.push(n[h.id]);if(d.length===m.length){let h={},g,x,b,w;if(c.callArgs!=null&&(h=c.callArgs),d.length===1){let[C,N]=d[0];h.mask==null&&(h.mask=N),b=xe(p.call(C,h)),w=xe(p.computeMask(C,N)),g=[C],x=[N]}else g=d.map(C=>C[0]),x=d.map(C=>C[1]),h.mask==null&&(h.mask=x),b=xe(p.call(g,h)),w=xe(p.computeMask(g,x));if(p.activityRegularizer)throw new vt("LayersModel invocation with concrete Tensor value(s) in the presence of activity regularizer(s) is not supported yet.");for(let C=0;C{let t=[];for(let e of this.layers)for(let n=0;n0){let h=[];for(let g=0;g0&&g.apply(Tr(b),w)}function l(g){let x=g.name,b=yn(g,e.customObjects!=null?e.customObjects:{});b.setFastWeightInitDuringBuild(o),s[x]=b,g.inboundNodes.forEach(C=>{if(!(C instanceof Array))throw new z(`Corrupted configuration, expected array for nodeData: ${C}`);a(b,C)})}let c=e.name,p=e.layers;for(let g of p)l(g);for(;!I$(i);)for(let g of p){let x=s[g.name];if(x.name in i){let b=i[x.name];delete i[x.name];for(let w of b)u(x,w)}}let m=[],f=[],d=e.inputLayers;for(let g of d){let x=g[0],b=g[1],w=g[2];io(x in s);let N=s[x].inboundNodes[b].outputTensors;m.push(N[w])}let h=e.outputLayers;for(let g of h){let x=g[0],b=g[1],w=g[2];io(x in s);let N=s[x].inboundNodes[b].outputTensors;f.push(N[w])}return new t({inputs:m,outputs:f,name:c})}get stateful(){if(this._stateful)throw new z("Container instance unexpectedly has _stateful = true. The statefulness of a Container is determined by the Layers it contains. Its _stateful property must remain the default false.");for(let t of this.layers)if(t.stateful)return!0;return!1}resetStates(){B(()=>{this.layers.forEach(t=>{t.stateful&&t.resetStates()})})}};function M8(r,t,e){let n=t.length;if(r==null||Array.isArray(r)&&r.length===0)return t.map(o=>null);if(n===1)return Array.isArray(r)&&r.length===1?r:typeof r=="object"&&t[0]in r?[r[t[0]]]:[r];if(Array.isArray(r)){if(r.length!==n)throw new Error(`Provided ${e} is an array of ${r.length} element(s), but the model has ${n} outputs. Make sure a set of weights is provided for each model output.`);return r}else if(typeof r=="object"&&Object.keys(r).length>0&&typeof r[Object.keys(r)[0]]=="object"){let o=[];return t.forEach(s=>{s in r?o.push(r[s]):o.push(null)}),o}else throw new Error(`The model has multiple (${n}) outputs, so ${e} must be either an array with ${n} elements or an object with ${t} keys. Provided ${e} not understood: ${JSON.stringify(r)}`)}function jy(r,t){return M8(r,t,"classWeight")}async function Xy(r,t,e,n){if(t!=null||n!=null)throw new Error("Support sampleWeight is not implemented yet");if(e!=null){let o=B(()=>{if(r.shape.length===1)return an(r);if(r.shape.length===2){if(r.shape[1]>1)return Ri(r,1);if(r.shape[1]===1)return R(r,[r.shape[0]]);throw new Error(`Encountered unexpected last-dimension size (${r.shape[1]}) during handling of class weights. The size is expected to be >= 1.`)}else throw new Error(`Unexpected rank of target (y) tensor (${r.rank}) during handling of class weights. The rank is expected to be 1 or 2.`)}),s=Array.from(await o.data());Nt(o);let i=[];return s.forEach(a=>{if(e[a]==null)throw new Error(`classWeight must contain all classes in the training data. The class ${a} exists in the data but not in classWeight`);i.push(e[a])}),Ke(i,"float32")}else return null}function aD(r,t){return D(r,t)}var z8=32;function cD(r,t){let e,n,o=t;e=o.xs,n=o.ys,y.assert(e!=null&&n!=null,()=>`A Dataset iterator for fitDataset() is expected to generate objects of the form \`{xs: xVal, ys: yVal}\`, where the two values may be \`tf.Tensor\`, an array of Tensors, or a map of string to Tensor. The provided Dataset instead generates ${t}`);let s=lD("input",r.inputNames,e),i=lD("output",r.outputNames,n),a=s[0].shape[0];y.assert(s.length===r.inputs.length,()=>`LayersModel has ${r.inputs.length} inputs, but the dataset provides ${s.length} inputs. (Expected input keys: ${JSON.stringify(r.inputNames)})`),y.assert(i.length===r.outputs.length,()=>`LayersModel has ${r.outputs.length} outputs, but the dataset provides ${i.length} outputs. (Expected output keys: ${JSON.stringify(r.outputNames)})`);for(let u=0;u`Batch size mismatch: input ${r.inputNames[u]} has ${s[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);for(let u=0;u`Batch size mismatch: output ${r.outputNames[u]} has ${i[u].shape[0]}; expected ${a} based on input ${r.inputNames[0]}.`);return{xs:s,ys:i}}function lD(r,t,e){if(e instanceof Ft)return[e];if(Array.isArray(e))return y.assert(e.length===t.length,()=>`Received an array of ${e.length} Tensors, but expected ${t.length} to match the ${r} keys ${t}.`),e;{let n=[];for(let o of t){if(e[o]==null)throw new z(`The feature data generated by the dataset lacks the required ${r} key '${o}'.`);n.push(e[o])}return n}}function B8(r){if(r.length===3)throw new vt("Validation with sample weights is not implemented yet.");return{xs:r[0],ys:r[1]}}async function pD(r,t,e){let n=e.batchesPerEpoch!=null;if(y.assert(r.optimizer!=null,()=>"You must compile a model before training/testing. Use LayersModel.compile(modelCompileConfig)."),y.assert(e!=null,()=>"For fitDataset(), the 2nd argument (config) is required, but it is not provided in this call."),y.assert(e.epochs!=null&&e.epochs>0&&Number.isInteger(e.epochs),()=>`For fitDataset(), config.epochs is expected to be a positive integer, but got ${e.epochs}`),y.assert(!n||e.batchesPerEpoch>0&&Number.isInteger(e.batchesPerEpoch),()=>`For fitDataset(), config.batchesPerEpoch is expected to be a positive integer if specified, but got ${e.batchesPerEpoch}`),y.assert(e.validationSplit==null,()=>"`validationSplit` is not supported by `fitDataset()`. Use validationData instead."),r.isTraining)throw new Error("Cannot start training because another fit() call is ongoing.");r.isTraining=!0;try{let o=e.validationData!=null,s,i;if(o)if(uD(e.validationData))y.assert(e.validationBatches==null||e.validationBatches>0&&Number.isInteger(e.validationBatches),()=>`For fitDataset() with dataset-based validation, config.validationBatches is expected not to be provided, or to be a positive integer, but got ${e.validationBatches}`);else{let g=B8(e.validationData);s=g.xs,i=g.ys}let a=r.makeTrainFunction(),u=r.getDedupedMetricsNames(),l;o?l=u.slice().concat(u.map(g=>"val_"+g)):l=u.slice();let c=By(e.callbacks,e.yieldEvery),p=e.verbose==null?1:e.verbose,{callbackList:m,history:f}=Vy(c,p,e.epochs,null,null,V8(t,e),null,o,l);m.setModel(r),r.history=f,await m.onTrainBegin(),r.stopTraining_=!1;let d=e.initialEpoch==null?0:e.initialEpoch,h=await t.iterator();for(;d=e.batchesPerEpoch:w.done){if(o){let C;uD(e.validationData)?C=xe(await r.evaluateDataset(e.validationData,{batches:e.validationBatches})):C=xe(r.evaluate(s,i,{batchSize:e.validationBatchSize==null?z8:e.validationBatchSize,verbose:0}));for(let N=0;N0)throw new vt("Verbose mode is not implemented yet.");y.assert(!n||e.batches>0&&Number.isInteger(e.batches),()=>`Test loop expects \`batches\` to be a positive integer, but received ${JSON.stringify(e.batches)}`);let i=G8(t)?t:await t.iterator(),a=0,u=0;for(;!n||u{if(l.value){let{xs:c,ys:p}=cD(r,l.value),m=c.concat(p),f=B(()=>o(m));if(Nt(m),u===0)for(let h=0;hX(s[h],D(d,g))),u>0&&Nt(x)}Nt(f),a+=d,++u}return s}),l.done){n&&console.warn(`Your dataset iterator ran out of data during evaluateDataset(). Interrupting evalution. Make sure that your dataset can generate at least \`batches\` batches (in this case, ${e.batches} batches). You may need to use the repeat() function when building your dataset.`);break}}for(let l=0;l0&&Number.isInteger(r),()=>`batchSize is required to be a positive integer, but got ${r}`)}function qm(r,t,e){return r==null?[null]:Array.isArray(r)?r.map(n=>sl(n,t,e-t)):sl(r,t,e-t)}function Zy(r,t){return B(()=>r==null?null:Array.isArray(r)?r.map(e=>Zy(e,t)):Ay(r,t.dtype==="int32"?t:J(t,"int32")))}function Jy(r,t){let e=[],n=0,o=null;for(;n=r&&(o=r),e.push([n,o]),n=o;return e}function L0(r){let t=[];r instanceof Ft&&(r=[r]);for(let e=0;ee.push(o.id));else if(t!=null)for(let o in t){let s=t[o];e.push(s.id)}let n=[];if(r instanceof Ft)e.indexOf(r.id)===-1&&n.push(r);else if(Array.isArray(r))r.forEach(o=>{e.indexOf(o.id)===-1&&n.push(o)});else if(r!=null)for(let o in r){let s=r[o];e.indexOf(s.id)===-1&&n.push(s)}n.forEach(o=>{o.isDisposed||o.dispose()})}function W8(r){return r instanceof Ft}function M0(r){return Array.isArray(r)}function fD(r){return!W8(r)&&!M0(r)}function dD(r,t,e,n=!0,o=""){if(t==null||t.length===0){if(r!=null){let i=!1;if(M0(r)&&r.length>0)i=!0;else if(fD(r)){for(let a in r)if(r.hasOwnProperty(a)){i=!0;break}}else i=!0;if(i)throw new z(`Error when checking model ${o} expected no data, but got ${r}`)}return[]}if(r==null)return t.map(i=>null);let s;if(fD(r)){r=r,s=[];for(let i of t){if(r[i]==null)throw new z(`No data provided for "${i}". Need data for each key in: ${t}`);s.push(r[i])}}else if(M0(r)){if(r=r,r.length!==t.length)throw new z(`Error when checking model ${o}: the Array of Tensors that you are passing to your model is not the size the model expected. Expected to see ${t.length} Tensor(s), but instead got the following list of Tensor(s): ${r}`);s=r}else{if(r=r,t.length>1)throw new z(`The model ${o} expects ${t.length} Tensor(s), but only received one Tensor. Found: Tensor with shape ${r.shape}`);s=[r]}if(s=L0(s),e!=null)for(let i=0;i=0&&l!==c)throw new z(`${o} expected a batch of elements where each example has shape [${e[i].slice(1,e[i].length)}] (i.e.,tensor shape [*,${e[i].slice(1,e[i].length)}]) but the ${o} received an input with ${a.shape[0]} examples, each with shape [${a.shape.slice(1,a.shape.length)}] (tensor shape [${a.shape}])`)}}return s}function U8(r,t,e){let n=To(r.map(s=>s.shape[0]));n.sort();let o=To(t.map(s=>s.shape[0]));if(o.sort(),n.length>1)throw new z(`All input Tensors (x) should have the same number of samples. Got array shapes: ${JSON.stringify(r.map(s=>s.shape))}`);if(o.length>1)throw new z(`All target Tensors (y) should have the same number of samples. Got array shapes: ${JSON.stringify(t.map(s=>s.shape))}`);if(n.length>0&&o.length>0&&!y.arraysEqual(n,o))throw new z(`Input Tensors should have the same number of samples as target Tensors. Found ${n[0]} input sample(s) and ${o[0]} target sample(s).`)}function H8(r,t,e){let n=[Xi,Um,bc];for(let o=0;o1)throw new z(`The model expects ${t.length} ${o} Tensors, but only received one Tensor. Found: array with shape ${JSON.stringify(r.shape)}.`);s=[r]}if(e!=null)for(let i=0;i[]);let e;if(typeof r=="string"||typeof r=="function")e=[r];else if(Array.isArray(r)||typeof r=="object")e=r;else throw new TypeError(`Type of metrics argument not understood. Expected an string,function, Array, or Object, found: ${r}`);if(Array.isArray(e))return t.map(n=>e);{let n=[];for(let o of t){let s=e.hasOwnProperty(o)?e[o]:[];Array.isArray(s)||(s=[s]),n.push(s)}return n}}var K8="layers-model",Gn=class extends Vn{constructor(t){super(t),this.isTraining=!1}summary(t,e,n=console.log){if(!this.built)throw new z("This model has never been called, thus its weights have not been created yet. So no summary can be displayed. Build the model first (e.g., by calling it on some test data).");sD(this,t,e,n)}compile(t){if(t.loss==null&&(t.loss=[]),this.loss=t.loss,typeof t.optimizer=="string")this.optimizer_=oD(t.optimizer),this.isOptimizerOwned=!0;else{if(!(t.optimizer instanceof Hr))throw new z("User-defined optimizer must be an instance of tf.Optimizer.");this.optimizer_=t.optimizer,this.isOptimizerOwned=!1}let e=[];if(!Array.isArray(t.loss)&&typeof t.loss!="string"&&typeof t.loss!="function"){t.loss=t.loss;for(let i in t.loss)if(this.outputNames.indexOf(i)===-1)throw new z(`Unknown entry in loss dictionary: "${i}". Only expected the following keys: ${this.outputNames}`);for(let i of this.outputNames)t.loss[i]==null&&console.warn(`Output "${i}" is missing from loss dictionary. We assume this was done on purpose, and we will not be expecting data to be passed to ${i} during training`),e.push(Gy(t.loss[i]))}else if(Array.isArray(t.loss)){if(t.loss.length!==this.outputs.length)throw new z(`When passing an Array as loss, it should have one entry per model output. The model has ${this.outputs.length} output(s), but you passed loss=${t.loss}.`);e=t.loss.map(a=>Gy(a))}else{let i=Gy(t.loss);this.outputs.forEach(a=>{e.push(i)})}this.lossFunctions=e,this.feedOutputNames=[],this.feedOutputShapes=[],this.feedLossFns=[];for(let i=0;i{for(let i=0;i1&&(this.metricsTensors.push([a,i]),this.metricsNames.push(this.outputNames[i]+"_loss"))}});let o=q8(t.metrics,this.outputNames),s=(i,a,u)=>{this.outputNames.length>1&&(a=this.outputNames[i]+"_"+a),this.metricsNames.push(a),this.metricsTensors.push([u,i])};Ks("metric",()=>{for(let i=0;i{let c="",p,m,f;for(let d of l){if(typeof d=="string"&&["accuracy","acc","crossentropy","ce"].indexOf(d)!==-1){let g=this.internalOutputShapes[i];g[g.length-1]===1||this.lossFunctions[i]===Um?["accuracy","acc"].indexOf(d)!==-1?m=kh:["crossentropy","ce"].indexOf(d)!==-1&&(m=Uy):this.lossFunctions[i]===Wm?["accuracy","acc"].indexOf(d)!==-1?m=Hy:["crossentropy","ce"].indexOf(d)!==-1&&(m=F0):["accuracy","acc"].indexOf(d)!==-1?m=Eh:["crossentropy","ce"].indexOf(d)!==-1&&(m=_h);let x;["accuracy","acc"].indexOf(d)!==-1?x="acc":["crossentropy","ce"].indexOf(d)!==-1&&(x="ce"),f=m,p=c+x}else f=rD(d),p=c+Ah(d);let h;Ks(p,()=>{h=f}),s(i,p,h)}})(a)}}),this.collectedTrainableWeights=this.trainableWeights}checkTrainableWeightsConsistency(){this.collectedTrainableWeights!=null&&this.trainableWeights.length!==this.collectedTrainableWeights.length&&console.warn("Discrepancy between trainableweights and collected trainable weights. Did you set `model.trainable` without calling `model.compile()` afterwards?")}evaluate(t,e,n={}){let o=n.batchSize==null?32:n.batchSize;Yy(o);let s=!0,i=this.standardizeUserDataXY(t,e,s,o);try{let a=i[0].concat(i[1]);this.makeTestFunction();let u=this.testFunction,l=this.testLoop(u,a,o,n.verbose,n.steps);return Tr(l)}finally{Ao(i[0],t),Ao(i[1],e)}}async evaluateDataset(t,e){return this.makeTestFunction(),mD(this,t,e)}checkNumSamples(t,e,n,o="steps"){let s;if(n!=null){if(s=null,e!=null)throw new z(`If ${o} is set, batchSize must be null or undefined.Got batchSize = ${e}`)}else if(t!=null)Array.isArray(t)?s=t[0].shape[0]:s=t.shape[0];else throw new z(`Either the input data should have a defined shape, or ${o} shoud be specified.`);return s}execute(t,e){if(Array.isArray(e)&&e.length===0)throw new z("`outputs` is an empty Array, which is not allowed.");let n=Array.isArray(e),o=n?e:[e],s=this.retrieveSymbolicTensors(o),i=new _o;if(t instanceof Ft&&(t=[t]),Array.isArray(t)){if(t.length!==this.inputs.length)throw new z(`The number of inputs provided (${t.length}) does not match the number of inputs of this model (${this.inputs.length}).`);for(let u=0;ua.name);for(let a=0;a0){let o=[];throw e.forEach((s,i)=>{s==null&&o.push(t[i])}),new z(`Cannot find SymbolicTensors for output name(s): ${JSON.stringify(o)}`)}return e}predictLoop(t,e=32,n=!1){return B(()=>{let o=this.checkNumSamples(t);if(n)throw new vt("Verbose predictLoop() is not implemented yet.");let s=Jy(o,e),i=this.outputs.map(a=>[]);for(let a=0;a{let l=s[a][0],c=s[a][1],p=qm(t,l,c),m=[];if(Array.isArray(p))for(let d=0;di[c].push(l));return Tr(i.map(a=>oe(a,0)))})}predict(t,e={}){let n=L0(t);hD(n,this.inputNames,this.feedInputShapes,!1);try{let o=e.batchSize==null?32:e.batchSize;return Yy(o),this.predictLoop(n,o)}finally{Ao(n,t)}}predictOnBatch(t){hD(t,this.inputNames,this.feedInputShapes,!0);let e=(Array.isArray(t)?t[0]:t).shape[0];return this.predictLoop(t,e)}standardizeUserDataXY(t,e,n=!0,o){if(this.optimizer_==null)throw new Kr("You must compile a model before training/testing. Use LayersModel.compile(modelCompileArgs).");let s=[];for(let i=0;i0&&t[0].shape[0]%o!==0)throw new z(`In a stateful network, you should only pass inputs with a number of samples that is divisible by the batch size ${o}. Found: ${t[0].shape[0]} sample(s).`);return[t,e]}async standardizeUserData(t,e,n,o,s=!0,i){let[a,u]=this.standardizeUserDataXY(t,e,s,i);if(n!=null)throw new Error("sample weight is not supported yet.");let l=null;if(o!=null){let c=jy(o,this.outputNames);l=[];for(let p=0;p{let i=this.checkNumSamples(e,n,s,"steps"),a=[];if(o>0)throw new vt("Verbose mode is not implemented yet.");if(s!=null)throw new vt("steps mode in testLoop() is not implemented yet");{let u=Jy(i,n),l=Ke(fn(0,i));for(let c=0;c1){let i=S0(t.slice(0,n),o);s+=`_${i}`}e.push(s)}return e}makeTrainFunction(){return t=>{let e=[],n=t.slice(0,this.inputs.length),o=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),s=t.slice(this.inputs.length+this.outputs.length,this.inputs.length+this.outputs.length*2),i=[],a=()=>{let p=[];for(let h=0;h1&&h{d=X(d,h)}),d},u=this.collectedTrainableWeights.map(p=>p.read()),l=!0;return[this.optimizer_.minimize(a,l,u)].concat(i)}}makeTestFunction(){this.testFunction=t=>B(()=>{let e=[],n,o=t.slice(0,this.inputs.length),s=t.slice(this.inputs.length,this.inputs.length+this.outputs.length),i=[];for(let l=0;l0){if(g=!0,n.validationData.length===2)u=n.validationData[0],l=n.validationData[1];else throw n.validationData.length===3?new vt("validationData including sample weights is not supported yet."):new z(`When passing validation data, it must contain 2 (valX, valY) or 3 (valX, valY, valSampleWeight) items; ${n.validationData} is invalid.`);let F=!0,P=await this.standardizeUserData(u,l,null,null,F,f);c=P[0],p=P[1],x=c.concat(p)}else if(n.validationSplit!=null&&n.validationSplit>0&&n.validationSplit<1){g=!0;let F=Math.floor(o[0].shape[0]*(1-n.validationSplit)),P=o[0].shape[0];c=qm(o,F,P),i=o,o=qm(o,0,F),p=qm(s,F,P),a=s,s=qm(s,0,F),x=c.concat(p)}else n.validationSteps!=null&&(g=!0);let b=o.concat(s).concat(m);this.checkTrainableWeightsConsistency();let w=this.makeTrainFunction(),C=this.getDedupedMetricsNames(),N,E;g?(this.makeTestFunction(),N=this.testFunction,E=C.slice().concat(C.map(F=>"val_"+F))):(N=null,x=[],E=C.slice());let A=By(n.callbacks,n.yieldEvery);return await this.fitLoop(w,b,C,f,n.epochs,n.verbose,A,N,x,n.shuffle,E,n.initialEpoch,null,null)}finally{this.isTraining=!1,Ao(o,t),Ao(s,e),Ao(i,t),Ao(a,e),Ao(c,u),Ao(p,l),m!=null&&Nt(m)}}async fitLoop(t,e,n,o,s,i,a,u,l,c,p,m,f,d){o==null&&(o=32),s==null&&(s=1),c==null&&(c=!0),m==null&&(m=0);let h=!1;if(u!=null&&l!=null&&(h=!0),d!=null&&(h=!0,f==null))throw new z("Can only use `validationSteps` when doing step-wise training, i.e., `stepsPerEpoch` must be set.");let g=this.checkNumSamples(e,o,f,"steps_per_epoch"),x;g!=null&&(x=fn(0,g)),i==null&&(i=1);let{callbackList:b,history:w}=Vy(a,i,s,m,g,f,o,h,p);b.setModel(this),this.history=w,await b.onTrainBegin(),this.stopTraining_=!1;for(let C=m;C{let P=A[$][0],V=A[$][1],G=sl(E,P,V-P);F.batch=$,F.size=V-P;let W=Zy(e,G),q=t(W);for(let H=0;HNo(e))}else{let e=Object.keys(this.loss);t={};let n=this.loss;for(let o of e)if(typeof n[o]=="string")t[o]=No(n[o]);else throw new Error("Serialization of non-string loss is not supported.")}return t}getMetricIdentifiers(){if(typeof this.metrics=="string"||typeof this.metrics=="function")return[No(Ah(this.metrics))];if(Array.isArray(this.metrics))return this.metrics.map(t=>No(Ah(t)));{let t={};for(let e in this.metrics)t[e]=No(Ah(this.metrics[e]));return t}}getTrainingConfig(){return{loss:this.getLossIdentifiers(),metrics:this.getMetricIdentifiers(),optimizer_config:{class_name:this.optimizer.getClassName(),config:this.optimizer.getConfig()}}}loadTrainingConfig(t){if(t.weighted_metrics!=null)throw new Error("Loading weight_metrics is not supported yet.");if(t.loss_weights!=null)throw new Error("Loading loss_weights is not supported yet.");if(t.sample_weight_mode!=null)throw new Error("Loading sample_weight_mode is not supported yet.");let e=wc(t.optimizer_config),n=yn(e),o;if(typeof t.loss=="string")o=ol(t.loss);else if(Array.isArray(t.loss))o=t.loss.map(i=>ol(i));else if(t.loss!=null){o={};for(let i in t.loss)o[i]=ol(t.loss[i])}let s;if(Array.isArray(t.metrics))s=t.metrics.map(i=>ol(i));else if(t.metrics!=null){s={};for(let i in t.metrics)s[i]=ol(t.metrics[i])}this.compile({loss:o,metrics:s,optimizer:n})}async save(t,e){if(typeof t=="string"){let l=$r.getSaveHandlers(t);if(l.length===0)throw new z(`Cannot find any save handlers for URL '${t}'`);if(l.length>1)throw new z(`Found more than one (${l.length}) save handlers for URL '${t}'`);t=l[0]}if(t.save==null)throw new z("LayersModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");let n=await $r.encodeWeights(this.getNamedWeights(e)),o=!1,s=null,a={modelTopology:this.toJSON(s,o),format:K8,generatedBy:`TensorFlow.js tfjs-layers v${Hm}`,convertedBy:null};if((e==null?!1:e.includeOptimizer)&&this.optimizer!=null){a.trainingConfig=this.getTrainingConfig();let l="optimizer",{data:c,specs:p}=await $r.encodeWeights(await this.optimizer.getWeights(),l);n.specs.push(...p),n.data=$r.concatenateArrayBuffers([n.data,c])}return this.userDefinedMetadata!=null&&(P0(this.userDefinedMetadata,this.name,!0),a.userDefinedMetadata=this.userDefinedMetadata),a.weightData=n.data,a.weightSpecs=n.specs,t.save(a)}setUserDefinedMetadata(t){P0(t,this.name),this.userDefinedMetadata=t}getUserDefinedMetadata(){return this.userDefinedMetadata}};Gn.className="Model";Q.registerClass(Gn);var Qy=class extends Gn{};Qy.className="Functional";Q.registerClass(Qy);async function gD(r,t){"modelTopology"in r||(r={modelTopology:r}),r=r;let e=r.modelTopology;e.model_config!=null&&(e=e.model_config);let n=wc(e),o=yn(n,t);if(r.weightsManifest!=null){let s=await $r.loadWeights(r.weightsManifest,r.pathPrefix,o.weights.map(a=>a.originalName)),i={};for(let a of o.weights)i[a.originalName]=s[a.originalName];o.loadWeights(i),Nt(s)}return o}async function xD(r,t){if(t==null&&(t={}),typeof r=="string"){let e=$r.getLoadHandlers(r,t);if(e.length===0)e.push($r.browserHTTPRequest(r,t));else if(e.length>1)throw new z(`Found more than one (${e.length}) load handlers for URL '${r}'`);r=e[0]}return j8(r,void 0,t)}async function j8(r,t,e){if(e==null&&(e={}),r.load==null)throw new z("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let n=await r.load(),o=n.modelTopology;o.model_config!=null&&(o=o.model_config);let s=e.strict==null?!0:e.strict,i=n.weightData!=null&&n.weightSpecs!=null&&s,a=yn(wc(o),t,i),u=n.trainingConfig;if(u!=null&&a.loadTrainingConfig(u),n.userDefinedMetadata!=null&&a.setUserDefinedMetadata(n.userDefinedMetadata),n.weightData!=null){if(n.weightSpecs==null)throw new z("LayersModel artifacts contains weight data, but not weight specs. Therefore loading of weights cannot proceed.");let{modelWeights:l,optimizerWeights:c}=X8(n.weightData,n.weightSpecs);a.loadWeights(l,s),a.optimizer!=null&&c.length>0&&await a.optimizer.setWeights(c),Nt(l),Nt(c.map(p=>p.tensor))}return a}function X8(r,t){let e=$r.decodeWeights(r,t),n={},o=[];return t.forEach(s=>{s.group==="optimizer"?o.push({name:s.name,tensor:e[s.name]}):n[s.name]=e[s.name]}),{modelWeights:n,optimizerWeights:o}}var Yi=class extends Gn{constructor(t){if(super({inputs:[],outputs:[]}),t=t||{},this.trainable=!0,this.built=!1,this.name=t.name!=null?t.name:yu("sequential_"),t.layers!=null)for(let e of t.layers)this.add(e)}checkShape(t){if(t.inboundNodes[0].outputTensors[0].shape.some(n=>n<0))throw new z(`Negative dimension size caused by adding layer ${t.name} with input shape [${t.inboundNodes[0].inputTensors[0].shape}]`)}add(t){let e=t instanceof Yi||t instanceof Gn,n;if(e){if(n=t,n.outputs.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");if(n.inputs.length!==1)throw new z("All layers in a Sequential model should have a single input tensor. For multi-input layers, use the functional API.")}if(this.outputs.length===0){if(t.inboundNodes.length===0){if(t.batchInputShape==null)throw new z("The first layer in a Sequential model must get an `inputShape` or `batchInputShape` argument.");let o=Ry({batchShape:t.batchInputShape,dtype:t.dtype,name:t.name+"_input"});t.apply(o)}if(e)this.outputs=n.outputs,this.inputs=n.inputs;else{if(t.inboundNodes.length!==1)throw new z(`A layer added to a Sequential model must not already be connected somewhere else. LayersModel received layer ${t.name} which has ${t.inboundNodes.length} pre-existing inbound connections.`);if(t.inboundNodes[0].outputTensors.length!==1)throw new z("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[t.inboundNodes[0].outputTensors[0]],this.inputs=A0(this.outputs[0])}this.inboundNodes=[],new al({outboundLayer:this,inboundLayers:[],nodeIndices:[],tensorIndices:[],inputTensors:this.inputs,outputTensors:this.outputs,inputMasks:So(null,this.inputs.length),outputMasks:[null],inputShapes:this.inputs.map(o=>o.shape),outputShapes:this.outputs[0].shape})}else{let o=t.apply(this.outputs[0]);if(Array.isArray(o))throw new TypeError("All layers in a Sequential model should have a single output tensor. For multi-output layers, use the functional API.");this.checkShape(t),this.outputs=[o],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}this.layers.push(t),this.built=!1}pop(){if(this.layers.length===0)throw new TypeError("There are no layers in the model.");if(this.layers.pop(),this.layers.length===0)this.outputs=[],this.inboundNodes=[],this.outboundNodes=[];else{let t=this.layers.length-1;this.layers[t].outboundNodes=[],this.outputs=[this.layers[t].output],this.inboundNodes[0].outputTensors=this.outputs,this.inboundNodes[0].outputShapes=[this.outputs[0].shape]}}call(t,e){return this.model==null&&this.build(),this.model.call(t,e)}build(t){if(zt(t),this.inputs.length===0||this.outputs.length===0)throw new TypeError("Sequential model cannot be built: model is empty. Add some layers first.");this.model=new Gn({inputs:this.inputs,outputs:this.outputs[0],name:this.name+"_model"}),this.model.trainable=this.trainable,this.supportsMasking=this.model.supportsMasking,this.inputLayers=this.model.inputLayers,this.inputLayersNodeIndices=this.model.inputLayersNodeIndices,this.inputLayersTensorIndices=this.model.inputLayersTensorIndices,this.outputLayers=this.model.outputLayers,this.outputLayersNodeIndices=this.model.outputLayersNodeIndices,this.outputLayersTensorIndices=this.model.outputLayersTensorIndices,this.nodesByDepth=this.model.nodesByDepth,this.containerNodes=this.model.containerNodes,this.outputNames=this.model.outputNames,this.inputNames=this.model.inputNames,this.built=!0}countParams(){return this.built||this.build(),super.countParams()}summary(t,e,n=console.log){this.built||this.build(),super.summary(t,e,n)}setWeights(t){this.model==null&&this.build(),this.model.setWeights(t)}evaluate(t,e,n={}){if(!this.built)throw new Kr("The model needs to be compiled before being used.");return this.model.evaluate(t,e,n)}async evaluateDataset(t,e){if(!this.built)throw new Kr("The model needs to be compiled before being used.");return this.model.evaluateDataset(t,e)}predict(t,e={}){return this.model==null&&this.build(),this.model.predict(t,e)}predictOnBatch(t){return this.model==null&&this.build(),this.model.predictOnBatch(t)}compile(t){this.build(),this.model.compile(t),this.optimizer_=this.model.optimizer,this.isOptimizerOwned=this.model.isOptimizerOwned,this.loss=this.model.loss,this.metrics=this.model.metrics,this.metricsTensors=this.model.metricsTensors,this.metricsNames=this.model.metricsNames}get optimizer(){return this.model==null?void 0:this.model.optimizer}set optimizer(t){this.model.optimizer=t}async fit(t,e,n={}){if(!this.built)throw new Kr("The model needs to be compiled before being used.");return this.model.fit(t,e,n)}async fitDataset(t,e){if(!this.built)throw new Kr("The model needs to be compiled before being used.");return this.model.fitDataset(t,e)}async trainOnBatch(t,e){return this.model.trainOnBatch(t,e)}static fromConfig(t,e,n={},o=!1){let s,i={};if(e instanceof Array){if(e[0].className==null||e[0].className==="Merge")throw new z("Legacy serialization format not supported yet.");s=e}else y.assert(e.layers!=null,()=>"When the config data for a Sequential model is not an Array, it must be an Object that contains the 'layers' field."),s=e.layers,delete e.layers,i=e;let a=new t(i);if(!(a instanceof Yi))throw new vt(`Sequential.fromConfig called on non-Sequential input: ${a}`);for(let u of s){let c=yn(u,void 0,o);o&&c.setFastWeightInitDuringBuild(!0),a.add(c)}return a}set stopTraining(t){if(this.model==null)throw new z("Cannot set the stopTraining property of a sequential model before it is compiled.");this.model.stopTraining=t}get stopTraining(){if(this.model==null)throw new z("Cannot get the stopTraining property of a sequential model before it is compiled.");return this.model.stopTraining}getConfig(){let t=[];for(let e of this.layers){let n={};n.className=e.getClassName(),n.config=e.getConfig(),t.push(n)}return{name:this.name,layers:t}}};Yi.className="Sequential";Q.registerClass(Yi);function Y8(r){return new Gn(r)}function Z8(r){return new Yi(r)}function z0(r){return Ry(r)}function J8(r,t){xn.registerCallbackConstructor(r,t)}var en=class extends Q.Serializable{getConfig(){return{}}},tb=class extends en{apply(t,e=1){return L$(t,e)}};tb.className="elu";Q.registerClass(tb);var eb=class extends en{apply(t){return mm(t)}};eb.className="selu";Q.registerClass(eb);var rb=class extends en{apply(t){return Pr(t)}};rb.className="relu";Q.registerClass(rb);var nb=class extends en{apply(t){return B(()=>Vi(6,Pr(t)))}};nb.className="relu6";Q.registerClass(nb);var ob=class extends en{apply(t){return t}};ob.className="linear";Q.registerClass(ob);var sb=class extends en{apply(t){return Jr(t)}};sb.className="sigmoid";Q.registerClass(sb);var ib=class extends en{apply(t){return z$(t)}};ib.className="hardSigmoid";Q.registerClass(ib);var ab=class extends en{apply(t){return Gs(t)}};ab.className="softplus";Q.registerClass(ab);var lb=class extends en{apply(t){return M$(t)}};lb.className="softsign";Q.registerClass(lb);var ub=class extends en{apply(t){return Fi(t)}};ub.className="tanh";Q.registerClass(ub);var Km=class extends en{apply(t,e=-1){return lu(t,e)}};Km.className="softmax";Q.registerClass(Km);var cb=class extends en{apply(t,e=-1){return im(t,e)}};cb.className="logSoftmax";Q.registerClass(cb);var pb=class extends en{apply(t,e=1){return B(()=>D(Jr(D(t,e)),t))}};pb.className="swish";Q.registerClass(pb);var mb=class extends en{apply(t){return B(()=>D(t,Fi(Gs(t))))}};mb.className="mish";Q.registerClass(mb);function Ys(r){return r.getClassName()}function B0(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,"activation")}function Zs(r){if(r==null){let t={};return t.className="linear",t.config={},B0(t)}if(typeof r=="string"){let t={};return t.className=r,t.config={},B0(t)}else return r instanceof en?r:B0(r)}function V0(r){if(r!=null&&typeof r!="object")throw new Error(`Argument to L1L2 regularizer's constructor is expected to be an object, but received: ${r}`)}var fb=class extends Q.Serializable{},Iu=class extends fb{constructor(t){super(),V0(t),this.l1=t==null||t.l1==null?.01:t.l1,this.l2=t==null||t.l2==null?.01:t.l2,this.hasL1=this.l1!==0,this.hasL2=this.l2!==0}apply(t){return B(()=>{let e=Ne([1]);return this.hasL1&&(e=X(e,ft(D(this.l1,Ee(t))))),this.hasL2&&(e=X(e,ft(D(this.l2,cc(t))))),R(e,[])})}getConfig(){return{l1:this.l1,l2:this.l2}}static fromConfig(t,e){return new t({l1:e.l1,l2:e.l2})}};Iu.className="L1L2";Q.registerClass(Iu);function wD(r){return V0(r),new Iu({l1:r!=null?r.l1:null,l2:0})}function CD(r){return V0(r),new Iu({l2:r!=null?r.l2:null,l1:0})}var yD={l1l2:"L1L2"};function me(r){return Sm(r)}function bD(r,t={}){return qi(r,Q.SerializationMap.getMap().classNameMap,t,"regularizer")}function be(r){if(r==null)return null;if(typeof r=="string"){let e={className:r in yD?yD[r]:r,config:{}};return bD(e)}else return r instanceof fb?r:bD(r)}var jm=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null&&(this.maxValue=t.maxValue)}call(t,e){t=St(t);let n=Pr(t);return this.maxValue!=null&&(n=vr(n,0,this.maxValue)),n}computeOutputShape(t){return t}getConfig(){let t={maxValue:this.maxValue},e=super.getConfig();return Object.assign(t,e),t}};jm.className="ReLU";Q.registerClass(jm);var Xm=class extends Et{constructor(t){super(t==null?{}:t),this.DEFAULT_ALPHA=.3,t==null&&(t={}),this.alpha=t.alpha==null?this.DEFAULT_ALPHA:t.alpha}call(t,e){let n=St(t);return ru(n,this.alpha)}computeOutputShape(t){return t}getConfig(){let t={alpha:this.alpha},e=super.getConfig();return Object.assign(t,e),t}};Xm.className="LeakyReLU";Q.registerClass(Xm);var Ym=class extends Et{constructor(t){if(super(t==null?{}:t),this.DEFAULT_ALPHA_INITIALIZER="zeros",t==null&&(t={}),this.supportsMasking=!0,this.alphaInitializer=de(t.alphaInitializer||this.DEFAULT_ALPHA_INITIALIZER),this.alphaRegularizer=be(t.alphaRegularizer),this.alphaConstraint=Be(t.alphaConstraint),t.sharedAxes==null)this.sharedAxes=null;else if(Array.isArray(t.sharedAxes))this.sharedAxes=t.sharedAxes;else if(typeof t.sharedAxes=="number")this.sharedAxes=[t.sharedAxes];else throw new z(`Expected sharedAxes to be a number or an array of numbers, but got ${t.sharedAxes}`)}build(t){t=zt(t);let e=t.slice(1);if(this.sharedAxes!=null)for(let o of this.sharedAxes)e[o-1]=1;this.alpha=this.addWeight("alpha",e,"float32",this.alphaInitializer,this.alphaRegularizer,!0,this.alphaConstraint);let n={};if(this.sharedAxes!=null)for(let o=1;o(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,1]):r))}function G0(r,t){return B(()=>(Fe(t),t==="channelsFirst"?Ot(r,[0,2,3,4,1]):r))}function tY(r,t,e,n=1,o="valid",s,i=1){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.shape.length!==3)throw new z(`The input of a conv1dWithBias operation should be 3, but is ${r.shape.length} instead.`);if(t.shape.length!==3)throw new z(`The kernel for a conv1dWithBias operation should be 3, but is ${t.shape.length} instead`);if(e!=null&&e.shape.length!==1)throw new z(`The bias for a conv1dWithBias operation should be 1, but is ${t.shape.length} instead`);if(s==="channelsFirst"&&(r=Ot(r,[0,2,1])),o==="causal")throw new vt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");let a=tm(r,t,n,o==="same"?"same":"valid","NWC",i);return e!=null&&(a=hn(a,e)),a})}function ID(r,t,e,n=[1,1],o="valid",s,i,a=null){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.rank!==3&&r.rank!==4)throw new z(`conv2dWithBiasActivation expects input to be of rank 3 or 4, but received ${r.rank}.`);if(t.rank!==3&&t.rank!==4)throw new z(`conv2dWithBiasActivation expects kernel to be of rank 3 or 4, but received ${r.rank}.`);let u=$h(r,s);if(o==="causal")throw new vt("The support for CAUSAL padding mode in conv1dWithBias is not implemented yet.");return u=pu.conv2d({x:u,filter:t,strides:n,pad:o==="same"?"same":"valid",dilations:i,dataFormat:"NHWC",bias:e,activation:a}),s==="channelsFirst"&&(u=Ot(u,[0,3,1,2])),u})}function eY(r,t,e,n=[1,1,1],o="valid",s,i){return B(()=>{if(s==null&&(s=dn()),Fe(s),r.rank!==4&&r.rank!==5)throw new z(`conv3dWithBias expects input to be of rank 4 or 5, but received ${r.rank}.`);if(t.rank!==4&&t.rank!==5)throw new z(`conv3dWithBias expects kernel to be of rank 4 or 5, but received ${r.rank}.`);let a=G0(r,s);if(o==="causal")throw new vt("The support for CAUSAL padding mode in conv3dWithBias is not implemented yet.");return a=kx(a,t,n,o==="same"?"same":"valid","NDHWC",i),e!=null&&(a=hn(a,e)),s==="channelsFirst"&&(a=Ot(a,[0,4,1,2,3])),a})}var Cc=class extends Et{constructor(t,e){if(super(e),this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",Cc.verifyArgs(e),this.rank=t,Qe(this.rank,"rank"),this.rank!==1&&this.rank!==2&&this.rank!==3)throw new vt(`Convolution layer for rank other than 1, 2, or 3 (${this.rank}) is not implemented yet.`);if(this.kernelSize=vu(e.kernelSize,t,"kernelSize"),this.strides=vu(e.strides==null?1:e.strides,t,"strides"),this.padding=e.padding==null?"valid":e.padding,mn(this.padding),this.dataFormat=e.dataFormat==null?"channelsLast":e.dataFormat,Fe(this.dataFormat),this.activation=Zs(e.activation),this.useBias=e.useBias==null?!0:e.useBias,this.biasInitializer=de(e.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.biasConstraint=Be(e.biasConstraint),this.biasRegularizer=be(e.biasRegularizer),this.activityRegularizer=be(e.activityRegularizer),this.dilationRate=vu(e.dilationRate==null?1:e.dilationRate,t,"dilationRate"),this.rank===1&&Array.isArray(this.dilationRate)&&this.dilationRate.length!==1)throw new z(`dilationRate must be a number or an array of a single number for 1D convolution, but received ${JSON.stringify(this.dilationRate)}`);if(this.rank===2){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==2)throw new z(`dilationRate must be a number or array of two numbers for 2D convolution, but received ${JSON.stringify(this.dilationRate)}`)}else if(this.rank===3){if(typeof this.dilationRate=="number")this.dilationRate=[this.dilationRate,this.dilationRate,this.dilationRate];else if(this.dilationRate.length!==3)throw new z(`dilationRate must be a number or array of three numbers for 3D convolution, but received ${JSON.stringify(this.dilationRate)}`)}}static verifyArgs(t){if(io("kernelSize"in t,"required key 'kernelSize' not in config"),typeof t.kernelSize!="number"&&!Iy(t.kernelSize,"number",1,3))throw new z(`BaseConv expects config.kernelSize to be number or number[] with length 1, 2, or 3, but received ${JSON.stringify(t.kernelSize)}.`)}getConfig(){let t={kernelSize:this.kernelSize,strides:this.strides,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,activation:Ys(this.activation),useBias:this.useBias,biasInitializer:Te(this.biasInitializer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}},Su=class extends Cc{constructor(t,e){super(t,e),this.kernel=null,Su.verifyArgs(e),this.filters=e.filters,Qe(this.filters,"filters"),this.kernelInitializer=de(e.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.kernelConstraint=Be(e.kernelConstraint),this.kernelRegularizer=be(e.kernelRegularizer)}build(t){t=zt(t);let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[e]}`);let n=t[e],o=this.kernelSize.concat([n,this.filters]);this.kernel=this.addWeight("kernel",o,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[{ndim:this.rank+2,axes:{[e]:n}}],this.built=!0}call(t,e){return B(()=>{t=St(t);let n,o=this.bias==null?null:this.bias.read(),s=vy(this.activation.getClassName());if(s!=null&&this.rank===2)n=ID(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate,s);else{if(this.rank===1)n=tY(t,this.kernel.read(),o,this.strides[0],this.padding,this.dataFormat,this.dilationRate[0]);else if(this.rank===2)n=ID(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else if(this.rank===3)n=eY(t,this.kernel.read(),o,this.strides,this.padding,this.dataFormat,this.dilationRate);else throw new vt("convolutions greater than 3D are not implemented yet.");this.activation!=null&&(n=this.activation.apply(n))}return n})}computeOutputShape(t){t=zt(t);let e=[],n=this.dataFormat==="channelsLast"?t.slice(1,t.length-1):t.slice(2);for(let s=0;s 0 but got ${JSON.stringify(t.filters)}`)}},ul=class extends Su{constructor(t){super(2,t),ul.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Iy(t.kernelSize,"number",1,2))throw new z(`Conv2D expects config.kernelSize to be number or number[] with length 1 or 2, but received ${JSON.stringify(t.kernelSize)}.`)}};ul.className="Conv2D";Q.registerClass(ul);var cl=class extends Su{constructor(t){super(3,t),cl.verifyArgs(t)}getConfig(){let t=super.getConfig();return delete t.rank,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!(Array.isArray(t.kernelSize)&&(t.kernelSize.length===1||t.kernelSize.length===3)))throw new z(`Conv3D expects config.kernelSize to be number or [number, number, number], but received ${JSON.stringify(t.kernelSize)}.`)}};cl.className="Conv3D";Q.registerClass(cl);var tf=class extends ul{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:4})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv2DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=zt(t),t.length!==4)throw new z("Input should have rank 4; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:4,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==4)throw new z(`Conv2DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a;this.dataFormat==="channelsFirst"?(i=2,a=3):(i=1,a=2);let u=o[i],l=o[a],c=this.kernelSize[0],p=this.kernelSize[1],m=this.strides[0],f=this.strides[1],d=Js(u,m,c,this.padding),h=Js(l,f,p,this.padding),g=[s,d,h,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,1]));let x=rm(n,this.kernel.read(),g,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(x=Ot(x,[0,3,1,2])),this.bias!=null&&(x=hn(x,this.bias.read(),this.dataFormat)),this.activation!=null&&(x=this.activation.apply(x)),x})}computeOutputShape(t){t=zt(t);let e=t.slice(),n,o,s;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3):(n=3,o=1,s=2);let i=this.kernelSize[0],a=this.kernelSize[1],u=this.strides[0],l=this.strides[1];return e[n]=this.filters,e[o]=Js(e[o],u,i,this.padding),e[s]=Js(e[s],l,a,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};tf.className="Conv2DTranspose";Q.registerClass(tf);var ef=class extends cl{constructor(t){if(super(t),this.inputSpec=[new ye({ndim:5})],this.padding!=="same"&&this.padding!=="valid")throw new z(`Conv3DTranspose currently supports only padding modes 'same' and 'valid', but received padding mode ${this.padding}`)}build(t){if(t=zt(t),t.length!==5)throw new z("Input should have rank 5; Received input shape: "+JSON.stringify(t));let e=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[e]==null)throw new z("The channel dimension of the inputs should be defined. Found `None`.");let n=t[e],o=this.kernelSize.concat([this.filters,n]);this.kernel=this.addWeight("kernel",o,"float32",this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.filters],"float32",this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint)),this.inputSpec=[new ye({ndim:5,axes:{[e]:n}})],this.built=!0}call(t,e){return B(()=>{let n=St(t);if(n.shape.length!==5)throw new z(`Conv3DTranspose.call() expects input tensor to be rank-4, but received a tensor of rank-${n.shape.length}`);let o=n.shape,s=o[0],i,a,u;this.dataFormat==="channelsFirst"?(u=2,i=3,a=4):(u=1,i=2,a=3);let l=o[u],c=o[i],p=o[a],m=this.kernelSize[0],f=this.kernelSize[1],d=this.kernelSize[2],h=this.strides[0],g=this.strides[1],x=this.strides[2],b=Js(l,h,m,this.padding),w=Js(c,g,f,this.padding),C=Js(p,x,d,this.padding),N=[s,b,w,C,this.filters];this.dataFormat!=="channelsLast"&&(n=Ot(n,[0,2,3,4,1]));let E=_x(n,this.kernel.read(),N,this.strides,this.padding);return this.dataFormat!=="channelsLast"&&(E=Ot(E,[0,4,1,2,3])),this.bias!==null&&(E=hn(E,this.bias.read(),this.dataFormat)),this.activation!==null&&(E=this.activation.apply(E)),E})}computeOutputShape(t){t=zt(t);let e=t.slice(),n,o,s,i;this.dataFormat==="channelsFirst"?(n=1,o=2,s=3,i=4):(n=4,o=1,s=2,i=3);let a=this.kernelSize[0],u=this.kernelSize[1],l=this.kernelSize[2],c=this.strides[0],p=this.strides[1],m=this.strides[2];return e[n]=this.filters,e[o]=Js(e[o],c,a,this.padding),e[s]=Js(e[s],p,u,this.padding),e[i]=Js(e[i],m,l,this.padding),e}getConfig(){let t=super.getConfig();return delete t.dilationRate,t}};ef.className="Conv3DTranspose";Q.registerClass(ef);var db=class extends Su{constructor(t,e){if(super(t,e),this.DEFAULT_DEPTHWISE_INITIALIZER="glorotUniform",this.DEFAULT_POINTWISE_INITIALIZER="glorotUniform",this.depthwiseKernel=null,this.pointwiseKernel=null,e.filters==null)throw new z("The `filters` configuration field is required by SeparableConv, but is unspecified.");if(e.kernelInitializer!=null||e.kernelRegularizer!=null||e.kernelConstraint!=null)throw new z("Fields kernelInitializer, kernelRegularizer and kernelConstraint are invalid for SeparableConv2D. Use depthwiseInitializer, depthwiseRegularizer, depthwiseConstraint, pointwiseInitializer, pointwiseRegularizer and pointwiseConstraint instead.");if(e.padding!=null&&e.padding!=="same"&&e.padding!=="valid")throw new z(`SeparableConv${this.rank}D supports only padding modes: 'same' and 'valid', but received ${JSON.stringify(e.padding)}`);this.depthMultiplier=e.depthMultiplier==null?1:e.depthMultiplier,this.depthwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_DEPTHWISE_INITIALIZER),this.depthwiseRegularizer=be(e.depthwiseRegularizer),this.depthwiseConstraint=Be(e.depthwiseConstraint),this.pointwiseInitializer=de(e.depthwiseInitializer||this.DEFAULT_POINTWISE_INITIALIZER),this.pointwiseRegularizer=be(e.pointwiseRegularizer),this.pointwiseConstraint=Be(e.pointwiseConstraint)}build(t){if(t=zt(t),t.length{t=St(t);let n;if(this.rank===1)throw new vt("1D separable convolution is not implemented yet.");return this.rank===2&&(this.dataFormat==="channelsFirst"&&(t=Ot(t,[0,2,3,1])),n=fm(t,this.depthwiseKernel.read(),this.pointwiseKernel.read(),this.strides,this.padding,this.dilationRate,"NHWC")),this.useBias&&(n=hn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),this.dataFormat==="channelsFirst"&&(n=Ot(n,[0,3,1,2])),n})}getConfig(){let t=super.getConfig();return delete t.rank,delete t.kernelInitializer,delete t.kernelRegularizer,delete t.kernelConstraint,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.pointwiseInitializer=Te(this.pointwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.pointwiseRegularizer=me(this.pointwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseConstraint),t.pointwiseConstraint=ze(this.pointwiseConstraint),t}};db.className="SeparableConv";var rf=class extends db{constructor(t){super(2,t)}};rf.className="SeparableConv2D";Q.registerClass(rf);var Nu=class extends Su{constructor(t){super(1,t),Nu.verifyArgs(t),this.inputSpec=[{ndim:3}]}getConfig(){let t=super.getConfig();return delete t.rank,delete t.dataFormat,t}static verifyArgs(t){if(typeof t.kernelSize!="number"&&!Iy(t.kernelSize,"number",1,1))throw new z(`Conv1D expects config.kernelSize to be number or number[] with length 1, but received ${JSON.stringify(t.kernelSize)}.`)}};Nu.className="Conv1D";Q.registerClass(Nu);var nf=class extends Et{constructor(t){super(t),typeof t.cropping=="number"?this.cropping=[[t.cropping,t.cropping],[t.cropping,t.cropping]]:typeof t.cropping[0]=="number"?this.cropping=[[t.cropping[0],t.cropping[0]],[t.cropping[1],t.cropping[1]]]:this.cropping=t.cropping,this.dataFormat=t.dataFormat===void 0?"channelsLast":t.dataFormat,this.inputSpec=[{ndim:4}]}computeOutputShape(t){return this.dataFormat==="channelsFirst"?[t[0],t[1],t[2]-this.cropping[0][0]-this.cropping[0][1],t[3]-this.cropping[1][0]-this.cropping[1][1]]:[t[0],t[1]-this.cropping[0][0]-this.cropping[0][1],t[2]-this.cropping[1][0]-this.cropping[1][1],t[3]]}call(t,e){return B(()=>{if(t=St(t),this.dataFormat==="channelsLast"){let n=Ch(t,this.cropping[0][0],t.shape[1]-this.cropping[0][0]-this.cropping[0][1],2);return Ch(n,this.cropping[1][0],t.shape[2]-this.cropping[1][1]-this.cropping[1][0],3)}else{let n=Ch(t,this.cropping[0][0],t.shape[2]-this.cropping[0][0]-this.cropping[0][1],3);return Ch(n,this.cropping[1][0],t.shape[3]-this.cropping[1][1]-this.cropping[1][0],4)}})}getConfig(){let t={cropping:this.cropping,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};nf.className="Cropping2D";Q.registerClass(nf);var of=class extends Et{constructor(t){super(t),this.DEFAULT_SIZE=[2,2],this.inputSpec=[{ndim:4}],this.size=t.size==null?this.DEFAULT_SIZE:t.size,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.interpolation=t.interpolation==null?"nearest":t.interpolation,$$(this.interpolation)}computeOutputShape(t){if(this.dataFormat==="channelsFirst"){let e=t[2]==null?null:this.size[0]*t[2],n=t[3]==null?null:this.size[1]*t[3];return[t[0],t[1],e,n]}else{let e=t[1]==null?null:this.size[0]*t[1],n=t[2]==null?null:this.size[1]*t[2];return[t[0],e,n,t[3]]}}call(t,e){return B(()=>{let n=St(t),o=n.shape;if(this.dataFormat==="channelsFirst"){n=Ot(n,[0,2,3,1]);let s=this.size[0]*o[2],i=this.size[1]*o[3],a=this.interpolation==="nearest"?so.resizeNearestNeighbor(n,[s,i]):so.resizeBilinear(n,[s,i]);return Ot(a,[0,3,1,2])}else{let s=this.size[0]*o[1],i=this.size[1]*o[2];return this.interpolation==="nearest"?so.resizeNearestNeighbor(n,[s,i]):so.resizeBilinear(n,[s,i])}})}getConfig(){let t={size:this.size,dataFormat:this.dataFormat,interpolation:this.interpolation},e=super.getConfig();return Object.assign(t,e),t}};of.className="UpSampling2D";Q.registerClass(of);function rY(r,t,e=[1,1],n="valid",o,s){return B(()=>{o==null&&(o=dn()),Fe(o);let i=$h(r,o);if(r.rank!==4)throw new z(`Input for depthwiseConv2d is required to be 4-D, but is instead ${r.rank}-D`);if(t.rank!==4)throw new z(`depthwiseKernel is required to be 4-D, but is instead ${t.rank}-D`);return i=Li(i,t,e,n==="same"?"same":"valid","NHWC",s),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}var sf=class extends Cc{constructor(t){super(2,t),this.depthwiseKernel=null,this.depthMultiplier=t.depthMultiplier==null?1:t.depthMultiplier,this.depthwiseInitializer=de(t.depthwiseInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.depthwiseConstraint=Be(t.depthwiseConstraint),this.depthwiseRegularizer=be(t.depthwiseRegularizer)}build(t){if(t=zt(t),t.length<4)throw new z(`Inputs to DepthwiseConv2D should have rank 4. Received input shape: ${JSON.stringify(t)}.`);let e=this.dataFormat==="channelsFirst"?1:3;if(t[e]==null||t[e]<0)throw new z(`The channel dimension of the inputs to DepthwiseConv2D should be defined, but is not (${t[e]}).`);let n=t[e],o=[this.kernelSize[0],this.kernelSize[1],n,this.depthMultiplier];this.depthwiseKernel=this.addWeight("depthwise_kernel",o,null,this.depthwiseInitializer,this.depthwiseRegularizer,!0,this.depthwiseConstraint),this.useBias?this.bias=this.addWeight("bias",[n*this.depthMultiplier],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{t=St(t);let n=rY(t,this.depthwiseKernel.read(),this.strides,this.padding,this.dataFormat,null);return this.useBias&&(n=hn(n,this.bias.read(),this.dataFormat)),this.activation!=null&&(n=this.activation.apply(n)),n})}computeOutputShape(t){t=zt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[1]*this.depthMultiplier:t[3]*this.depthMultiplier,s=kn(e,this.kernelSize[0],this.padding,this.strides[0]),i=kn(n,this.kernelSize[1],this.padding,this.strides[1]);return this.dataFormat==="channelsFirst"?[t[0],o,s,i]:[t[0],s,i,o]}getConfig(){let t=super.getConfig();return t.depthMultiplier=this.depthMultiplier,t.depthwiseInitializer=Te(this.depthwiseInitializer),t.depthwiseRegularizer=me(this.depthwiseRegularizer),t.depthwiseConstraint=ze(this.depthwiseRegularizer),t}};sf.className="DepthwiseConv2D";Q.registerClass(sf);function W0(r,t,e,n){if(Array.isArray(r)){if(t!=null||e!=null)throw new z("When inputs is an array, neither initialState or constants should be provided");n!=null&&(e=r.slice(r.length-n,r.length),r=r.slice(0,r.length-n)),r.length>1&&(t=r.slice(1,r.length)),r=r[0]}function o(s){return s==null||Array.isArray(s)?s:[s]}return t=o(t),e=o(e),{inputs:r,initialState:t,constants:e}}function U0(r,t,e,n=!1,o,s,i=!1,a=!1){return B(()=>{let u=t.shape.length;if(u<3)throw new z(`Input should be at least 3D, but is ${u}D.`);let l=[1,0].concat(fn(2,u));if(t=Ot(t,l),s!=null)throw new vt("The rnn() functoin of the deeplearn.js backend does not support constants yet.");i&&console.warn("Backend rnn(): the unroll = true option is not applicable to the imperative deeplearn.js backend."),o!=null&&(o=J(J(o,"bool"),"float32"),o.rank===u-1&&(o=sr(o,-1)),o=Ot(o,l)),n&&(t=mr(t,0),o!=null&&(o=mr(o,0)));let c=[],p,m=e,f=t.shape[0],d=dr(t),h;o!=null&&(h=dr(o));for(let x=0;xr(b,m));if(o==null)p=w[0],m=w[1];else{let C=B(()=>{let N=h[x],E=ct(wr(N),N),A=X(D(w[0],N),D(m[0],E)),$=m.map((F,P)=>X(D(w[1][P],N),D(F,E)));return{output:A,newStates:$}});p=C.output,m=C.newStates}a&&c.push(p)}let g;return a&&(g=qe(c,1)),[p,g,m]})}var En=class extends Et{constructor(t){super(t);let e;if(t.cell==null)throw new z("cell property is missing for the constructor of RNN.");if(Array.isArray(t.cell)?e=new Sc({cells:t.cell}):e=t.cell,e.stateSize==null)throw new z("The RNN cell should have an attribute `stateSize` (tuple of integers, one integer per RNN state).");this.cell=e,this.returnSequences=t.returnSequences==null?!1:t.returnSequences,this.returnState=t.returnState==null?!1:t.returnState,this.goBackwards=t.goBackwards==null?!1:t.goBackwards,this._stateful=t.stateful==null?!1:t.stateful,this.unroll=t.unroll==null?!1:t.unroll,this.supportsMasking=!0,this.inputSpec=[new ye({ndim:3})],this.stateSpec=null,this.states_=null,this.numConstants=null,this.keptStates=[]}getStates(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;return fn(0,t).map(e=>null)}else return this.states_}setStates(t){this.states_=t}computeOutputShape(t){Dy(t)&&(t=t[0]),t=t;let e=this.cell.stateSize;Array.isArray(e)||(e=[e]);let n=e[0],o;if(this.returnSequences?o=[t[0],t[1],n]:o=[t[0],n],this.returnState){let s=[];for(let i of e)s.push([t[0],i]);return[o].concat(s)}else return o}computeMask(t,e){return B(()=>{Array.isArray(e)&&(e=e[0]);let n=this.returnSequences?e:null;if(this.returnState){let o=this.states.map(s=>null);return[n].concat(o)}else return n})}get states(){if(this.states_==null){let t=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1,e=[];for(let n=0;na.shape[a.shape.length-1]),i))throw new z(`An initialState was passed that is not compatible with cell.stateSize. Received stateSpec=${this.stateSpec}; However cell.stateSize is ${this.cell.stateSize}`)}else this.stateSpec=i.map(a=>new ye({shape:[null,a]}));this.stateful&&this.resetStates()}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new Tn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape[0];if(n==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.states_==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_=[Ne([n,this.cell.stateSize])];else if(t==null)Nt(this.states_),this.keptStates!=null&&(Nt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(o=>Ne([n,o])):this.states_[0]=Ne([n,this.cell.stateSize]);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e===!0?this.keptStates.push(this.states_.slice()):Nt(this.states_);for(let o=0;oAe(o.clone()))})}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=W0(t,n,o,this.numConstants);t=s.inputs,n=s.initialState,o=s.constants;let i=[],a=[];if(n!=null){e.initialState=n,i=i.concat(n),this.stateSpec=[];for(let l of n)this.stateSpec.push(new ye({shape:l.shape}));a=a.concat(this.stateSpec)}if(o!=null&&(e.constants=o,i=i.concat(o),this.numConstants=o.length),i[0]instanceof tn){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;t=St(t),s==null&&(this.stateful?s=this.states_:s=this.getInitialState(t));let i=Array.isArray(this.cell.stateSize)?this.cell.stateSize.length:1;if(s.length!==i)throw new z(`RNN Layer has ${i} state(s) but was passed ${s.length} initial state(s).`);this.unroll&&console.warn("Ignoring unroll = true for RNN layer, due to imperative backend.");let a={training:o},l=U0((d,h)=>{let g=this.cell.call([d].concat(h),a);return[g[0],g.slice(1)]},t,s,this.goBackwards,n,null,this.unroll,this.returnSequences),c=l[0],p=l[1],m=l[2];this.stateful&&this.resetStates(m,o);let f=this.returnSequences?p:c;return this.returnState?[f].concat(m):f})}getInitialState(t){return B(()=>{let e=Ne(t.shape);return e=ft(e,[1,2]),e=il(e),Array.isArray(this.cell.stateSize)?this.cell.stateSize.map(n=>n>1?_y(e,[1,n]):e):this.cell.stateSize>1?[_y(e,[1,this.cell.stateSize])]:[e]})}get trainableWeights(){return this.trainable?this.cell.trainableWeights:[]}get nonTrainableWeights(){return this.trainable?this.cell.nonTrainableWeights:this.cell.weights}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.cell!=null&&this.cell.setFastWeightInitDuringBuild(t)}getConfig(){let t=super.getConfig(),e={returnSequences:this.returnSequences,returnState:this.returnState,goBackwards:this.goBackwards,stateful:this.stateful,unroll:this.unroll};this.numConstants!=null&&(e.numConstants=this.numConstants);let n=this.cell.getConfig();return this.getClassName()===En.className&&(e.cell={className:this.cell.getClassName(),config:n}),Object.assign(Object.assign(Object.assign({},n),t),e)}static fromConfig(t,e,n={}){let o=e.cell,s=yn(o,n);return new t(Object.assign(e,{cell:s}))}};En.className="RNN";Q.registerClass(En);var pl=class extends Et{},Ic=class extends pl{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Qe(this.units,"units"),this.activation=Zs(t.activation==null?this.DEFAULT_ACTIVATION:t.activation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=zt(t),this.kernel=this.addWeight("kernel",[t[t.length-1],this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`SimpleRNNCell expects 2 input Tensors, got ${t.length}.`);let n=t[1];t=t[0];let o=e.training==null?!1:e.training;0wr(t),rate:this.dropout,training:o,dropoutFunc:this.dropoutFunc})),0wr(n),rate:this.recurrentDropout,training:o,dropoutFunc:this.dropoutFunc}));let s,i=this.dropoutMask,a=this.recurrentDropoutMask;i!=null?s=Eo(D(t,i),this.kernel.read()):s=Eo(t,this.kernel.read()),this.bias!=null&&(s=hn(s,this.bias.read())),a!=null&&(n=D(n,a));let u=X(s,Eo(n,this.recurrentKernel.read()));return this.activation!=null&&(u=this.activation.apply(u)),[u,u]})}getConfig(){let t=super.getConfig(),e={units:this.units,activation:Ys(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),recurrentInitializer:Te(this.recurrentInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),recurrentRegularizer:me(this.recurrentRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),recurrentConstraint:ze(this.recurrentConstraint),biasConstraint:ze(this.biasConstraint),dropout:this.dropout,recurrentDropout:this.recurrentDropout};return Object.assign(Object.assign({},t),e)}};Ic.className="SimpleRNNCell";Q.registerClass(Ic);var af=class extends En{constructor(t){t.cell=new Ic(t),super(t)}call(t,e){return B(()=>{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return new t(e)}};af.className="SimpleRNN";Q.registerClass(af);var vc=class extends pl{constructor(t){if(super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.resetAfter)throw new z("GRUCell does not support reset_after parameter set to true.");this.units=t.units,Qe(this.units,"units"),this.activation=Zs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Zs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=this.units,this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){t=zt(t);let e=t[t.length-1];this.kernel=this.addWeight("kernel",[e,this.units*3],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*3],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias?this.bias=this.addWeight("bias",[this.units*3],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint):this.bias=null,this.built=!0}call(t,e){return B(()=>{if(t=t,t.length!==2)throw new z(`GRUCell expects 2 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training==null?!1:e.training,o=t[1];t=t[0],0wr(t),rate:this.dropout,training:n,count:3,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:3,dropoutFunc:this.dropoutFunc}));let s=this.dropoutMask,i=this.recurrentDropoutMask,a,u,l;0{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};lf.className="GRU";Q.registerClass(lf);var ml=class extends pl{constructor(t){super(t),this.DEFAULT_ACTIVATION="tanh",this.DEFAULT_RECURRENT_ACTIVATION="hardSigmoid",this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_RECURRENT_INITIALIZER="orthogonal",this.DEFAULT_BIAS_INITIALIZER="zeros",this.units=t.units,Qe(this.units,"units"),this.activation=Zs(t.activation===void 0?this.DEFAULT_ACTIVATION:t.activation),this.recurrentActivation=Zs(t.recurrentActivation===void 0?this.DEFAULT_RECURRENT_ACTIVATION:t.recurrentActivation),this.useBias=t.useBias==null?!0:t.useBias,this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.recurrentInitializer=de(t.recurrentInitializer||this.DEFAULT_RECURRENT_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.unitForgetBias=t.unitForgetBias,this.kernelRegularizer=be(t.kernelRegularizer),this.recurrentRegularizer=be(t.recurrentRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.kernelConstraint=Be(t.kernelConstraint),this.recurrentConstraint=Be(t.recurrentConstraint),this.biasConstraint=Be(t.biasConstraint),this.dropout=uc([1,js([0,t.dropout==null?0:t.dropout])]),this.recurrentDropout=uc([1,js([0,t.recurrentDropout==null?0:t.recurrentDropout])]),this.dropoutFunc=t.dropoutFunc,this.implementation=t.implementation,this.stateSize=[this.units,this.units],this.dropoutMask=null,this.recurrentDropoutMask=null}build(t){var e;t=zt(t);let n=t[t.length-1];this.kernel=this.addWeight("kernel",[n,this.units*4],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.recurrentKernel=this.addWeight("recurrent_kernel",[this.units,this.units*4],null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint);let o;if(this.useBias){if(this.unitForgetBias){let s=this.biasInitializer,i=this.units;o=new(e=class extends gn{apply(u,l){let c=s.apply([i]),p=new wu().apply([i]),m=s.apply([i*2]);return _0(_0(c,p),m)}},e.className="CustomInit",e)}else o=this.biasInitializer;this.bias=this.addWeight("bias",[this.units*4],null,o,this.biasRegularizer,!0,this.biasConstraint)}else this.bias=null;this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training;if(t=t,t.length!==3)throw new z(`LSTMCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let o=t[1],s=t[2];t=t[0],0wr(t),rate:this.dropout,training:n,count:4,dropoutFunc:this.dropoutFunc})),0wr(o),rate:this.recurrentDropout,training:n,count:4,dropoutFunc:this.dropoutFunc}));let i=this.dropoutMask,a=this.recurrentDropoutMask,u,l,c,p;0{this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null);let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}static fromConfig(t,e){return e.implmentation===0&&(e.implementation=1),new t(e)}};uf.className="LSTM";Q.registerClass(uf);var Sc=class extends pl{constructor(t){super(t),this.cells=t.cells}get stateSize(){let t=[];for(let e of this.cells.slice().reverse())Array.isArray(e.stateSize)?t.push(...e.stateSize):t.push(e.stateSize);return t}call(t,e){return B(()=>{t=t;let n=t.slice(1),o=[];for(let a of this.cells.slice().reverse())Array.isArray(a.stateSize)?o.push(n.splice(0,a.stateSize.length)):o.push(n.splice(0,1));o.reverse();let s=[],i;for(let a=0;a{Ks(`RNNCell_${o}`,()=>{n.build(t),Array.isArray(n.stateSize)?e=n.stateSize[0]:e=n.stateSize,t=[t[0],e]})}),this.built=!0}getConfig(){let t=super.getConfig(),e=s=>({className:s.getClassName(),config:s.getConfig()}),o={cells:this.cells.map(e)};return Object.assign(Object.assign({},t),o)}static fromConfig(t,e,n={}){let o=[];for(let s of e.cells)o.push(yn(s,n));return new t({cells:o})}get trainableWeights(){if(!this.trainable)return[];let t=[];for(let e of this.cells)t.push(...e.trainableWeights);return t}get nonTrainableWeights(){let t=[];for(let e of this.cells)t.push(...e.nonTrainableWeights);if(!this.trainable){let e=[];for(let n of this.cells)e.push(...n.trainableWeights);return e.concat(t)}return t}getWeights(){let t=[];for(let e of this.cells)t.push(...e.weights);return vh(t)}setWeights(t){let e=[];for(let n of this.cells){let o=n.weights.length,s=t.splice(o);for(let i=0;is!=null?s(t(),e):$y(t(),e),a=()=>bu(i,t,n);return!o||o<=1?Ae(a().clone()):Array(o).fill(void 0).map(a).map(l=>Ae(l.clone()))}var nY=function(r,t){var e={};for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&t.indexOf(n)<0&&(e[n]=r[n]);if(r!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,n=Object.getOwnPropertySymbols(r);o{if(this.cell.dropoutMask!=null&&(Nt(this.cell.dropoutMask),this.cell.dropoutMask=null),this.cell.recurrentDropoutMask!=null&&(Nt(this.cell.recurrentDropoutMask),this.cell.recurrentDropoutMask=null),e&&e.constants)throw new z("ConvRNN2D cell does not support constants");let n=e==null?null:e.mask,o=e==null?null:e.training,s=e==null?null:e.initialState;return super.call(t,{mask:n,training:o,initialState:s})})}computeOutputShape(t){let e=this.computeSingleOutputShape(t);return this.returnSequences||(e=[e[0],...e.slice(2)]),this.returnState&&(e=[e,...Array(2).fill([t[0],...e.slice(-3)])]),e}getInitialState(t){return B(()=>{let{stateSize:e}=this.cell,n=t.shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)],i=Ne(s);return Array.isArray(e)?Array(e.length).fill(i):[i]})}resetStates(t,e=!1){B(()=>{if(!this.stateful)throw new Tn("Cannot call resetStates() on an RNN Layer that is not stateful.");let n=this.inputSpec[0].shape,o=this.computeSingleOutputShape(n),s=[o[0],...o.slice(2)];if(n[0]==null)throw new z("If an RNN is stateful, it needs to know its batch size. Specify the batch size of your input tensors: \n- If using a Sequential model, specify the batch size by passing a `batchInputShape` option to your first layer.\n- If using the functional API, specify the batch size by passing a `batchShape` option to your Input layer.");if(this.getStates()==null)Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_=[Ne(s)];else if(t==null)Nt(this.states_),this.keptStates!=null&&(Nt(this.keptStates),this.keptStates=[]),Array.isArray(this.cell.stateSize)?this.states_=this.cell.stateSize.map(()=>Ne(s)):this.states_[0]=Ne(s);else{if(Array.isArray(t)||(t=[t]),t.length!==this.states_.length)throw new z(`Layer ${this.name} expects ${this.states_.length} state(s), but it received ${t.length} state value(s). Input received: ${t}`);e?this.keptStates.push(this.states_.slice()):Nt(this.states_);for(let a=0;aAe(a.clone()))})}computeSingleOutputShape(t){let{dataFormat:e,filters:n,kernelSize:o,padding:s,strides:i,dilationRate:a}=this.cell,u=e==="channelsFirst",l=t[u?3:2],c=t[u?4:3],p=kn(l,o[0],s,i[0],a[0]),m=kn(c,o[1],s,i[1],a[1]);return[...t.slice(0,2),...u?[n,p,m]:[p,m,n]]}};hb.className="ConvRNN2D";var Nc=class extends ml{constructor(t){let{filters:e,kernelSize:n,strides:o,padding:s,dataFormat:i,dilationRate:a}=t;super(Object.assign(Object.assign({},t),{units:e})),this.filters=e,Qe(this.filters,"filters"),this.kernelSize=vu(n,2,"kernelSize"),this.kernelSize.forEach(u=>Qe(u,"kernelSize")),this.strides=vu(o||1,2,"strides"),this.strides.forEach(u=>Qe(u,"strides")),this.padding=s||"valid",mn(this.padding),this.dataFormat=i||"channelsLast",Fe(this.dataFormat),this.dilationRate=vu(a||1,2,"dilationRate"),this.dilationRate.forEach(u=>Qe(u,"dilationRate"))}build(t){var e;t=zt(t);let n=this.dataFormat==="channelsFirst"?1:t.length-1;if(t[n]==null)throw new z(`The channel dimension of the input should be defined. Found ${t[n]}`);let o=t[n],s=4,i=this.kernelSize.concat([o,this.filters*s]);this.kernel=this.addWeight("kernel",i,null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint);let a=this.kernelSize.concat([this.filters,this.filters*s]);if(this.recurrentKernel=this.addWeight("recurrent_kernel",a,null,this.recurrentInitializer,this.recurrentRegularizer,!0,this.recurrentConstraint),this.useBias){let u;if(this.unitForgetBias){let l=this.biasInitializer,c=this.filters;u=new(e=class extends gn{apply(m,f){let d=l.apply([c]),h=pr([c]),g=l.apply([c*2]);return Tm([d,h,g])}},e.className="CustomInit",e)}else u=this.biasInitializer;this.bias=this.addWeight("bias",[this.filters*s],null,u,this.biasRegularizer,!0,this.biasConstraint)}this.built=!0}call(t,e){return B(()=>{if(t.length!==3)throw new z(`ConvLSTM2DCell expects 3 input Tensors (inputs, h, c), got ${t.length}.`);let n=e.training||!1,o=t[0],s=t[1],i=t[2],a=4;0wr(o),rate:this.dropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let u=this.dropoutMask,l=(rt,ot,at)=>!ot||!ot[at]?rt:D(ot[at],rt),c=l(o,u,0),p=l(o,u,1),m=l(o,u,2),f=l(o,u,3);0wr(s),rate:this.recurrentDropout,training:n,count:a,dropoutFunc:this.dropoutFunc}));let d=this.recurrentDropoutMask,h=l(s,d,0),g=l(s,d,1),x=l(s,d,2),b=l(s,d,3),w=3,[C,N,E,A]=fr(this.kernel.read(),a,w),[$,F,P,V]=this.useBias?fr(this.bias.read(),a):[null,null,null,null];c=this.inputConv(c,C,$,this.padding),p=this.inputConv(p,N,F,this.padding),m=this.inputConv(m,E,P,this.padding),f=this.inputConv(f,A,V,this.padding);let[G,W,q,H]=fr(this.recurrentKernel.read(),a,w);h=this.recurrentConv(h,G),g=this.recurrentConv(g,W),x=this.recurrentConv(x,q),b=this.recurrentConv(b,H);let j=this.recurrentActivation.apply(X(c,h)),Y=this.recurrentActivation.apply(X(p,g)),Z=X(D(Y,i),D(j,this.activation.apply(X(m,x)))),et=D(this.recurrentActivation.apply(X(f,b)),this.activation.apply(Z));return[et,et,Z]})}getConfig(){let t=super.getConfig(),{units:e}=t,n=nY(t,["units"]),o={filters:this.filters,kernelSize:this.kernelSize,padding:this.padding,dataFormat:this.dataFormat,dilationRate:this.dilationRate,strides:this.strides};return Object.assign(Object.assign({},n),o)}inputConv(t,e,n,o){let s=Sn(t,e,this.strides,o||"valid",this.dataFormat==="channelsFirst"?"NCHW":"NHWC",this.dilationRate);return n?hn(s,n,this.dataFormat):s}recurrentConv(t,e){return Sn(t,e,1,"same",this.dataFormat==="channelsFirst"?"NCHW":"NHWC")}};Nc.className="ConvLSTM2DCell";Q.registerClass(Nc);var cf=class extends hb{constructor(t){let e=new Nc(t);super(Object.assign(Object.assign({},t),{cell:e}))}static fromConfig(t,e){return new t(e)}};cf.className="ConvLSTM2D";Q.registerClass(cf);var Tc=class extends Et{constructor(t){super(t),this.rate=Math.max(Math.min(t.rate,1),0),this.noiseShape=t.noiseShape,this.seed=t.seed,this.supportsMasking=!0}getNoiseShape(t){if(this.noiseShape==null)return this.noiseShape;let e=t.shape,n=[];for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);if(0$y(n,this.rate,s,this.seed),()=>n,o)}return t})}getConfig(){let t={rate:this.rate,noiseShape:this.noiseShape,seed:this.seed},e=super.getConfig();return Object.assign(t,e),t}dispose(){return super.dispose()}};Tc.className="Dropout";Q.registerClass(Tc);var pf=class extends Tc{constructor(t){super(t),this.inputSpec=[{ndim:3}]}getNoiseShape(t){let e=t.shape;return[e[0],1,e[2]]}};pf.className="SpatialDropout1D";Q.registerClass(pf);var mf=class extends Et{constructor(t){if(super(t),this.activation=null,this.useBias=!0,this.kernel=null,this.bias=null,this.DEFAULT_KERNEL_INITIALIZER="glorotNormal",this.DEFAULT_BIAS_INITIALIZER="zeros",t.batchInputShape==null&&t.inputShape==null&&t.inputDim!=null){let e=null;t.batchSize!=null&&(e=t.batchSize),this.batchInputShape=[e,t.inputDim]}this.units=t.units,Qe(this.units,"units"),this.activation=Zs(t.activation),t.useBias!=null&&(this.useBias=t.useBias),this.kernelInitializer=de(t.kernelInitializer||this.DEFAULT_KERNEL_INITIALIZER),this.biasInitializer=de(t.biasInitializer||this.DEFAULT_BIAS_INITIALIZER),this.kernelConstraint=Be(t.kernelConstraint),this.biasConstraint=Be(t.biasConstraint),this.kernelRegularizer=be(t.kernelRegularizer),this.biasRegularizer=be(t.biasRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.supportsMasking=!0,this.inputSpec=[{minNDim:2}]}build(t){t=zt(t);let e=t[t.length-1];this.kernel==null&&(this.kernel=this.addWeight("kernel",[e,this.units],null,this.kernelInitializer,this.kernelRegularizer,!0,this.kernelConstraint),this.useBias&&(this.bias=this.addWeight("bias",[this.units],null,this.biasInitializer,this.biasRegularizer,!0,this.biasConstraint))),this.inputSpec=[{minNDim:2,axes:{[-1]:e}}],this.built=!0}computeOutputShape(t){t=zt(t);let e=t.slice();return e[e.length-1]=this.units,e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=vy(this.activation.getClassName()),s;return o!=null?s=Eo(n,this.kernel.read(),o,this.bias?this.bias.read():null):(s=Eo(n,this.kernel.read()),this.bias!=null&&(s=hn(s,this.bias.read())),this.activation!=null&&(s=this.activation.apply(s))),s})}getConfig(){let t={units:this.units,activation:Ys(this.activation),useBias:this.useBias,kernelInitializer:Te(this.kernelInitializer),biasInitializer:Te(this.biasInitializer),kernelRegularizer:me(this.kernelRegularizer),biasRegularizer:me(this.biasRegularizer),activityRegularizer:me(this.activityRegularizer),kernelConstraint:ze(this.kernelConstraint),biasConstraint:ze(this.biasConstraint)},e=super.getConfig();return Object.assign(t,e),t}};mf.className="Dense";Q.registerClass(mf);var ff=class extends Et{constructor(t){t=t||{},super(t),this.inputSpec=[{minNDim:3}],this.dataFormat=t.dataFormat}computeOutputShape(t){t=zt(t);for(let e of t.slice(1))if(e==null)throw new z(`The shape of the input to "Flatten" is not fully defined (got ${t.slice(1)}). Make sure to pass a complete "input_shape" or "batch_input_shape" argument to the first layer in your model.`);return[t[0],ko(t,1)]}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);if(this.dataFormat==="channelsFirst"&&n.rank>1){let o=[0];for(let s=2;s{this.invokeCallHook(t,e);let n=St(t);return this.activation.apply(n)})}getConfig(){let t={activation:Ys(this.activation)},e=super.getConfig();return Object.assign(t,e),t}};df.className="Activation";Q.registerClass(df);var hf=class extends Et{constructor(t){super(t),this.n=t.n,this.inputSpec=[{ndim:2}]}computeOutputShape(t){return[t[0],this.n,t[1]]}call(t,e){return B(()=>(t=St(t),F$(t,this.n)))}getConfig(){let t={n:this.n},e=super.getConfig();return Object.assign(t,e),t}};hf.className="RepeatVector";Q.registerClass(hf);var gf=class extends Et{constructor(t){super(t),this.targetShape=t.targetShape;for(let e=0;e{this.invokeCallHook(t,e);let n=St(t),o=n.shape,s=o.slice(0,1).concat(this.fixUnknownDimension(o.slice(1),this.targetShape));return R(n,s)})}getConfig(){let t={targetShape:this.targetShape},e=super.getConfig();return Object.assign(t,e),t}};gf.className="Reshape";Q.registerClass(gf);var xf=class extends Et{constructor(t){if(super(t),t.dims==null)throw new Error("Required configuration field `dims` is missing during Permute constructor call.");if(!Array.isArray(t.dims))throw new Error(`Permute constructor requires \`dims\` to be an Array, but received ${t.dims} instead.`);let e=fn(1,t.dims.length+1);if(!y.arraysEqual(t.dims.slice().sort(),e))throw new Error("Invalid permutation `dims`: "+JSON.stringify(t.dims)+" `dims` must contain consecutive integers starting from 1.");this.dims=t.dims,this.dimsIncludingBatch=[0].concat(this.dims),this.inputSpec=[new ye({ndim:this.dims.length+1})]}computeOutputShape(t){t=zt(t);let e=t.slice();return this.dims.forEach((n,o)=>{e[o+1]=t[n]}),e}call(t,e){return Ot(St(t),this.dimsIncludingBatch)}getConfig(){let t={dims:this.dims},e=super.getConfig();return Object.assign(t,e),t}};xf.className="Permute";Q.registerClass(xf);var yf=class extends Et{constructor(t){super(t==null?{}:t),this.supportsMasking=!0,t!=null?this.maskValue=t.maskValue==null?0:t.maskValue:this.maskValue=0}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={maskValue:this.maskValue};return Object.assign(e,t),e}computeMask(t,e){let n=St(t),o=-1;return ju(Ws(n,this.maskValue),o)}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t),o=-1,s=!0,i=ju(Ws(n,this.maskValue),o,s);return D(n,J(i,n.dtype))})}};yf.className="Masking";Q.registerClass(yf);var bf=class extends Et{constructor(t){if(super(t),this.embeddings=null,this.DEFAULT_EMBEDDINGS_INITIALIZER="randomUniform",t.batchInputShape==null&&t.inputShape==null){let e=null;t.batchSize!=null&&(e=t.batchSize),t.inputLength==null?this.batchInputShape=[e,null]:this.batchInputShape=[e].concat(xe(t.inputLength))}this.inputDim=t.inputDim,Qe(this.inputDim,"inputDim"),this.outputDim=t.outputDim,Qe(this.outputDim,"outputDim"),this.embeddingsInitializer=de(t.embeddingsInitializer||this.DEFAULT_EMBEDDINGS_INITIALIZER),this.embeddingsRegularizer=be(t.embeddingsRegularizer),this.activityRegularizer=be(t.activityRegularizer),this.embeddingsConstraint=Be(t.embeddingsConstraint),this.maskZero=t.maskZero,this.supportsMasking=t.maskZero,this.inputLength=t.inputLength}build(t){this.embeddings=this.addWeight("embeddings",[this.inputDim,this.outputDim],this.dtype,this.embeddingsInitializer,this.embeddingsRegularizer,!0,this.embeddingsConstraint),this.built=!0}warnOnIncompatibleInputShape(t){}computeMask(t,e){return B(()=>this.maskZero?(t=St(t),Ws(t,It(t))):null)}computeOutputShape(t){if(t=zt(t),this.inputLength==null)return[...t,this.outputDim];let e=xe(this.inputLength);if(e.length!==t.length-1)throw new z(`"inputLength" is ${this.inputLength}, but received input shape has shape ${t}`);{let n=0;for(let o=0;o{this.invokeCallHook(t,e);let n=St(t);n.dtype!=="int32"&&(n=Qr(n,"int32"));let o=Ay(this.embeddings.read(),R(n,[n.size]));return R(o,zt(this.computeOutputShape(n.shape)))})}getConfig(){let t={inputDim:this.inputDim,outputDim:this.outputDim,embeddingsInitializer:Te(this.embeddingsInitializer),embeddingsRegularizer:me(this.embeddingsRegularizer),activityRegularizer:me(this.activityRegularizer),embeddingsConstraint:ze(this.embeddingsConstraint),maskZero:this.maskZero,inputLength:this.inputLength},e=super.getConfig();return Object.assign(t,e),t}};bf.className="Embedding";Q.registerClass(bf);var dl=class extends Et{constructor(t){super(t||{}),this.supportsMasking=!0}mergeFunction(t){throw new vt}computeElementwiseOpOutputShape(t,e){if(t==null||e==null)return null;if(t.length1)throw new z(`Can not merge tensors with different batch sizes. Got tensors with shapes: ${JSON.stringify(t)}.`);let n=t[0]==null?null:t[0].slice(1);for(let s=1;ss.length);t.indexOf(null)===-1&&To(o).length===1?this.reshapeRequired=!1:this.reshapeRequired=!0}call(t,e){return B(()=>{if(t=t,this.reshapeRequired){let n=[],o=t.map(s=>s.rank);if(o.indexOf(null)===-1){let s=js(o);for(let i of t){let a=i.rank;for(let u=0;u1){let c=fn(1,l).concat([0]);n.push(Ot(u,c)),s=!0}else n.push(u)}let i=this.mergeFunction(n),a=i.rank;if(s){if(a==null){let u=i.shape,l=u.length,c=u[l-1],p=[c].concat(u.slice(0,u.length-1));i=R(Ot(R(i,[-1,c]),[1,0]),p)}else if(a>1){let u=[a-1].concat(fn(0,a-1));i=Ot(i,u)}}return i}}else return this.mergeFunction(t)})}computeOutputShape(t){t=t;let e;t[0]==null?e=null:e=t[0].slice(1);for(let o=1;o{if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an Array");if(!Array.isArray(t))throw new z("`inputs` should be an Array");if(e.length!==t.length)throw new z(`The Array 'inputs' and 'mask' are expected to have the same length, but have different lengths (${t.length} vs ${e.length})`);if(e.every(o=>o==null))return null;e=e.map(o=>o==null?o:sr(o,0));let n=e[0];for(let o=1;o{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0].clone();for(let n=1;n{let e=t[0];for(let n=1;n{let e=t[0];for(let n=1;n1)throw new z("A `Concatenate` layer requires inputs with matching shapes except for the concat axis. Got input shapes: "+JSON.stringify(t))}mergeFunction(t){return B(()=>Tm(t,this.axis))}computeOutputShape(t){if(!(Array.isArray(t)&&Array.isArray(t[0])))throw new z("A `Concatenate` layer should be called on a list of inputs.");let e=t,n=e[0].slice(),o=this.axis<0?n.length+this.axis:this.axis;for(let s of e.slice(1)){if(n[o]==null||s[o]==null){n[o]=null;break}n[o]+=s[o]}return n}computeMask(t,e){if(e==null)return null;if(!Array.isArray(e))throw new z("`mask` should be an array for Concatenate");if(!Array.isArray(t))throw new z("`inputs` should be an array for Concatenate");if(e.length!==t.length)throw new z(`Mismatch in the length of mask (${e.length}) and the legnth of inputs (${t.length})`);return B(()=>{let n=!0;if(e.forEach(i=>{if(i!=null){n=!1;return}}),n)return null;let o=[];for(let i=0;i3||t.shape.length>3)throw new vt("batchDot is not implemented for tensors of 4D or higher rank yet");if(y.assert(r.shape.length>=2,()=>`batchDot requires the rank of x to be >= 2, but got ${r.shape.length}`),y.assert(r.shape.length>=2,()=>`batchDot requires the rank of y to be >= 2, but got ${t.shape.length}`),typeof e=="number"&&(e=[e,e]),r.dtype==="complex64"||t.dtype==="complex64")throw new vt("batchDot is not implemented for complex64-type Tensors yet.");let n=r.shape.length,o=t.shape.length;e==null&&(e=[n-1,o-2]);let s=e;return B(()=>{let i;if(n>o){i=n-o;let u=[];for(let l=0;ln){i=o-n;let u=[];for(let l=0;l0){let u;n>o?u=n+o-3:u=n-1;let l=[];for(let c=u;c"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0],n=t[1];if(e.length>3||n.length>3)throw new vt("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);if(e[o[0]]!==n[o[1]])throw new z(`Dimension incompatibility: ${e[o[0]]} !== ${n[o[1]]}`)}mergeFunction(t){if(t.length!==2)throw new z(`A \`Dot\` layer must be called on exactly 2 inputs, but received ${t.length} input(s).`);let e=t[0],n=t[1],o;return Array.isArray(this.axes)?o=this.axes.map((s,i)=>Dh(s,t[i].shape.length)):o=[Dh(this.axes,e.shape.length),Dh(this.axes,n.shape.length)],this.normalize&&(e=Sh(e,o[0]),n=Sh(n,o[1])),oY(e,n,o)}interpretAxes(t,e){let n;return Array.isArray(this.axes)?n=this.axes:n=[Dh(this.axes,t.length),Dh(this.axes,e.length)],n}computeOutputShape(t){y.assert(Array.isArray(t)&&t.length===2&&Array.isArray(t[0])&&Array.isArray(t[1]),()=>"A `Dot` layer should be called on a list of exactly 2 inputs.");let e=t[0].slice(),n=t[1].slice();if(e.length>3||n.length>3)throw new vt("Dot layer does not support tensors of 4D or higher rank yet.");let o=this.interpretAxes(e,n);e.splice(o[0],1),n.splice(o[1],1),n.splice(0,1);let s=e.concat(n);return s.length===1&&s.push(1),s}computeMask(t,e){return null}getConfig(){let t={axes:this.axes,normalize:this.normalize},e=super.getConfig();return Object.assign(t,e),t}};Tf.className="Dot";Q.registerClass(Tf);var kf=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.stddev=t.stddev}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={stddev:this.stddev};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return bu(()=>X(km(n.shape,0,this.stddev),n),()=>n,e.training||!1)})}};kf.className="GaussianNoise";Q.registerClass(kf);var Ef=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{this.invokeCallHook(t,e);let n=St(t);return this.rate>0&&this.rate<1?bu(()=>{let s=Math.sqrt(this.rate/(1-this.rate));return D(n,km(n.shape,1,s))},()=>n,e.training||!1):n})}};Ef.className="GaussianDropout";Q.registerClass(Ef);var _f=class extends Et{constructor(t){super(t),this.supportsMasking=!0,this.rate=t.rate,this.noiseShape=t.noiseShape}_getNoiseShape(t){return this.noiseShape||St(t).shape}computeOutputShape(t){return t}getConfig(){let t=super.getConfig(),e={rate:this.rate};return Object.assign(e,t),e}call(t,e){return B(()=>{if(this.rate<1&&this.rate>0){let n=this._getNoiseShape(t);return bu(()=>{let s=St(t),i=1.6732632423543772,a=1.0507009873554805,u=-i*a,l=un(Gi(n),this.rate);l=Qr(l,"float32");let c=((1-this.rate)*(1+this.rate*u**2))**-.5,p=-c*u*this.rate,m=X(D(s,l),D(X(l,-1),u));return X(D(m,c),p)},()=>St(t),e.training||!1)}return t})}};_f.className="AlphaDropout";Q.registerClass(_f);function Rh(r,t,e,n,o,s=.001){let i;if(r.rank===2)i=yx(r,t,e,n,o,s);else if(r.rank===3)i=bx(r,t,e,n,o,s);else if(r.rank===4)i=wx(r,t,e,n,o,s);else throw new vt(`batchNormalization is not implemented for array of rank ${r.rank} yet`);return i}function sY(r,t,e,n,o=.001){return B(()=>{let s=Qu(r,n),i=s.mean,a=s.variance;return[Rh(r,i,a,e,t,o),i,a]})}function iY(r,t,e,n,o=.001){return B(()=>{let s=Qu(r,n),i=s.mean,a=s.variance,u=[];for(let d of fn(0,r.rank))n.indexOf(d)!==-1?u.push(1):u.push(r.shape[d]);let l=R(i,u),c=R(a,u),p=t==null?null:R(t,u),m=e==null?null:R(e,u);return[Rh(r,l,c,m,p,o),i,a]})}function aY(r,t,e,n,o=.001){return y.arraysEqual(n.slice().sort(),fn(0,r.rank-1))?sY(r,t,e,n,o):iY(r,t,e,n,o)}var Af=class extends Et{constructor(t){t==null&&(t={}),super(t),this.supportsMasking=!0,this.axis=t.axis==null?-1:t.axis,this.momentum=t.momentum==null?.99:t.momentum,this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.movingMeanInitializer=de(t.movingMeanInitializer||"zeros"),this.movingVarianceInitializer=de(t.movingVarianceInitializer||"ones"),this.betaConstraint=Be(t.betaConstraint),this.gammaConstraint=Be(t.gammaConstraint),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer)}build(t){t=zt(t);let e=this.axis>=0?this.axis:this.axis+t.length,n=t[e];if(n==null)throw new z(`Axis ${e} of input tensor should have a defined dimension but the layer received an input with shape ${JSON.stringify(t)}.`);this.inputSpec=[new ye({ndim:t.length,axes:{[e]:n}})];let o=[n];this.scale&&(this.gamma=this.addWeight("gamma",o,null,this.gammaInitializer,this.gammaRegularizer,!0,this.gammaConstraint)),this.center&&(this.beta=this.addWeight("beta",o,null,this.betaInitializer,this.betaRegularizer,!0,this.betaConstraint)),this.movingMean=this.addWeight("moving_mean",o,null,this.movingMeanInitializer,null,!1),this.movingVariance=this.addWeight("moving_variance",o,null,this.movingVarianceInitializer,null,!1),this.built=!0}call(t,e){return B(()=>{let n=e.training==null?!1:e.training,o=St(t),s=o.shape,i=s.length,a=fn(0,i),u=this.axis>=0?this.axis:this.axis+i;a.splice(u,1);let l=So(1,i);l[u]=s[u];let c=a.slice();c.sort();let p=!y.arraysEqual(c,fn(0,i).slice(0,i-1)),m=()=>{if(p){let b=R(this.movingMean.read(),l),w=R(this.movingVariance.read(),l),C=this.center?R(this.beta.read(),l):null,N=this.scale?R(this.gamma.read(),l):null;return Rh(o,b,w,C,N,this.epsilon)}else return Rh(o,this.movingMean.read(),this.movingVariance.read(),this.beta==null?null:this.beta.read(),this.gamma==null?null:this.gamma.read(),this.epsilon)};if(!n)return m();let[f,d,h]=aY(o,this.gamma.read(),this.beta.read(),a,this.epsilon),g=(b,w,C)=>{B(()=>{let N=1-C,E=b.read(),A=D(ct(E,w),N);b.write(ct(E,A))})};return(()=>{g(this.movingMean,d,this.momentum),g(this.movingVariance,h,this.momentum)})(),f})}getConfig(){let t={axis:this.axis,momentum:this.momentum,epsilon:this.epsilon,center:this.center,scale:this.scale,betaInitializer:Te(this.betaInitializer),gammaInitializer:Te(this.gammaInitializer),movingMeanInitializer:Te(this.movingMeanInitializer),movingVarianceInitializer:Te(this.movingVarianceInitializer),betaRegularizer:me(this.betaRegularizer),gammaRegularizer:me(this.gammaRegularizer),betaConstraint:ze(this.betaConstraint),gammaConstraint:ze(this.gammaConstraint)},e=super.getConfig();return Object.assign(t,e),t}};Af.className="BatchNormalization";Q.registerClass(Af);var $f=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.axis=t.axis==null?-1:t.axis,typeof this.axis=="number"){if(!Number.isInteger(this.axis))throw new Error(`Expected axis to be an integer, but received ${this.axis}`)}else if(Array.isArray(this.axis)){for(let e of this.axis)if(!Number.isInteger(e))throw new Error(`Expected axis to be an array of integers, but received ${JSON.stringify(this.axis)}`)}else throw new Error(`Expected axis to be an integer or an array of integers, but received ${JSON.stringify(this.axis)}`);this.epsilon=t.epsilon==null?.001:t.epsilon,this.center=t.center==null?!0:t.center,this.scale=t.scale==null?!0:t.scale,this.betaInitializer=de(t.betaInitializer||"zeros"),this.gammaInitializer=de(t.gammaInitializer||"ones"),this.betaRegularizer=be(t.betaRegularizer),this.gammaRegularizer=be(t.gammaRegularizer),this.supportsMasking=!0}build(t){t=zt(t);let e=t.length;typeof this.axis=="number"&&(this.axis=[this.axis]);for(let s=0;s=e)throw new Error(`Invalid axis: ${s}`);if(this.axis.length!==To(this.axis).length)throw new Error(`Found duplicate axes in: ${this.axis}`);let n=this.axis.map(s=>t[s]),o=!0;this.scale?this.gamma=this.addWeight("gamma",n,"float32",this.gammaInitializer,this.gammaRegularizer,o):this.gamma=null,this.center?this.beta=this.addWeight("beta",n,"float32",this.betaInitializer,this.betaRegularizer,o):this.beta=null,this.built=!0}call(t,e){let n=St(t),o=n.shape,s=o.length;return B(()=>{let{mean:a,variance:u}=Qu(n,this.axis,!0),l=So(1,s);for(let h of this.axis)l[h]=o[h];let c=h=>h!=null&&h.shape.length!==s?R(h,l):h,p=this.scale?c(this.gamma.read()):null,m=this.center?c(this.beta.read()):null,f=[],d=[];for(let h=0;h{if(r.rank!==4)throw new z(`temporalPadding expects input tensor to be 4-D, but received a ${r.rank}-D tensor.`);if(t==null&&(t=[[1,1],[1,1]]),t.length!==2||t[0].length!==2||t[1].length!==2)throw new z("spatial2dPadding expects `padding` to be an Array of two Arrays, each of which is an Array of two integers.");if(e==null&&(e=dn()),e!=="channelsLast"&&e!=="channelsFirst")throw new z(`Unknown data format: ${e}. Supported data formats are 'channelsLast' and 'channelsFirst.`);let n;return e==="channelsFirst"?n=[[0,0],[0,0],t[0],t[1]]:n=[[0,0],t[0],t[1],[0,0]],pn(r,n)})}var Df=class extends Et{constructor(t){if(t==null&&(t={}),super(t),this.dataFormat=t.dataFormat==null?dn():t.dataFormat,t.padding==null)this.padding=[[1,1],[1,1]];else if(typeof t.padding=="number")this.padding=[[t.padding,t.padding],[t.padding,t.padding]];else{if(t.padding=t.padding,t.padding.length!==2)throw new z(`ZeroPadding2D expects padding to be a length-2 array, but received a length-${t.padding.length} array.`);let e,n;if(typeof t.padding[0]=="number")e=[t.padding[0],t.padding[0]],n=[t.padding[1],t.padding[1]];else{if(t.padding=t.padding,t.padding[0].length!==2)throw new z(`ZeroPadding2D expects height padding to be a length-2 array, but received a length-${t.padding[0].length} array.`);if(e=t.padding[0],t.padding[1].length!==2)throw new z(`ZeroPadding2D expects width padding to be a length-2 array, but received a length-${t.padding[1].length} array.`);n=t.padding[1]}this.padding=[e,n]}this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=zt(t);let e,n;return this.dataFormat==="channelsFirst"?(t[2]!=null&&t[2]>=0?e=t[2]+this.padding[0][0]+this.padding[0][1]:e=null,t[3]!=null&&t[3]>=0?n=t[3]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],t[1],e,n]):(t[1]!=null&&t[1]>=0?e=t[1]+this.padding[0][0]+this.padding[0][1]:e=null,t[2]!=null&&t[2]>=0?n=t[2]+this.padding[1][0]+this.padding[1][1]:n=null,[t[0],e,n,t[3]])}call(t,e){return B(()=>lY(St(t),this.padding,this.dataFormat))}getConfig(){let t={padding:this.padding,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}};Df.className="ZeroPadding2D";Q.registerClass(Df);function Cb(r,t,e,n,o,s){return B(()=>{Fe(o),N0(s),mn(n),e==null&&(e=[1,1]),n==null&&(n="valid"),o==null&&(o=dn()),s==null&&(s="max"),r=$h(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=su(r,t,e,a):i=Ql(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,3,1,2])),i})}function vD(r,t,e,n,o,s){return B(()=>{Fe(o),N0(s),mn(n),e==null&&(e=[1,1,1]),n==null&&(n="valid"),o==null&&(o=dn()),s==null&&(s="max"),r=G0(r,o);let i,a=n==="same"?"same":"valid";return s==="max"?i=qx(r,t,e,a):i=xx(r,t,e,a),o==="channelsFirst"&&(i=Ot(i,[0,4,1,2,3])),i})}var gb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=2),super(t),typeof t.poolSize=="number")this.poolSize=[t.poolSize];else if(Array.isArray(t.poolSize)&&t.poolSize.length===1&&typeof t.poolSize[0]=="number")this.poolSize=t.poolSize;else throw new z(`poolSize for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.poolSize)}`);if(Qe(this.poolSize,"poolSize"),t.strides==null)this.strides=this.poolSize;else if(typeof t.strides=="number")this.strides=[t.strides];else if(Array.isArray(t.strides)&&t.strides.length===1&&typeof t.strides[0]=="number")this.strides=t.strides;else throw new z(`strides for 1D convolutional layer must be a number or an Array of a single number, but received ${JSON.stringify(t.strides)}`);Qe(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,mn(this.padding),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){t=zt(t);let e=kn(t[1],this.poolSize[0],this.padding,this.strides[0]);return[t[0],e,t[2]]}call(t,e){return B(()=>{this.invokeCallHook(t,e),t=il(St(t),2);let n=this.poolingFunction(St(t),[this.poolSize[0],1],[this.strides[0],1],this.padding,"channelsLast");return Bn(n,[2])})}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides},e=super.getConfig();return Object.assign(t,e),t}},Rf=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,"max")}};Rf.className="MaxPooling1D";Q.registerClass(Rf);var Ff=class extends gb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,"avg")}};Ff.className="AveragePooling1D";Q.registerClass(Ff);var xb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==2)throw new z(`If the strides property of a 2D pooling layer is an Array, it is expected to have a length of 2, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides];Qe(this.poolSize,"poolSize"),Qe(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),mn(this.padding),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){t=zt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n]:[t[0],e,n,t[3]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Of=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,"max")}};Of.className="MaxPooling2D";Q.registerClass(Of);var Pf=class extends xb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),Cb(t,e,n,o,s,"avg")}};Pf.className="AveragePooling2D";Q.registerClass(Pf);var yb=class extends Et{constructor(t){if(t.poolSize==null&&(t.poolSize=[2,2,2]),super(t),this.poolSize=Array.isArray(t.poolSize)?t.poolSize:[t.poolSize,t.poolSize,t.poolSize],t.strides==null)this.strides=this.poolSize;else if(Array.isArray(t.strides)){if(t.strides.length!==3)throw new z(`If the strides property of a 3D pooling layer is an Array, it is expected to have a length of 3, but received length ${t.strides.length}.`);this.strides=t.strides}else this.strides=[t.strides,t.strides,t.strides];Qe(this.poolSize,"poolSize"),Qe(this.strides,"strides"),this.padding=t.padding==null?"valid":t.padding,this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),mn(this.padding),this.inputSpec=[new ye({ndim:5})]}computeOutputShape(t){t=zt(t);let e=this.dataFormat==="channelsFirst"?t[2]:t[1],n=this.dataFormat==="channelsFirst"?t[3]:t[2],o=this.dataFormat==="channelsFirst"?t[4]:t[3];return e=kn(e,this.poolSize[0],this.padding,this.strides[0]),n=kn(n,this.poolSize[1],this.padding,this.strides[1]),o=kn(o,this.poolSize[2],this.padding,this.strides[2]),this.dataFormat==="channelsFirst"?[t[0],t[1],e,n,o]:[t[0],e,n,o,t[4]]}call(t,e){return B(()=>(this.invokeCallHook(t,e),this.poolingFunction(St(t),this.poolSize,this.strides,this.padding,this.dataFormat)))}getConfig(){let t={poolSize:this.poolSize,padding:this.padding,strides:this.strides,dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Lf=class extends yb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),vD(t,e,n,o,s,"max")}};Lf.className="MaxPooling3D";Q.registerClass(Lf);var Mf=class extends yb{constructor(t){super(t)}poolingFunction(t,e,n,o,s){return Fe(s),mn(o),vD(t,e,n,o,s,"avg")}};Mf.className="AveragePooling3D";Q.registerClass(Mf);var bb=class extends Et{constructor(t){super(t),this.inputSpec=[new ye({ndim:3})]}computeOutputShape(t){return[t[0],t[2]]}call(t,e){throw new vt}},zf=class extends bb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Se(n,1)})}};zf.className="GlobalAveragePooling1D";Q.registerClass(zf);var Bf=class extends bb{constructor(t){super(t||{})}call(t,e){return B(()=>{let n=St(t);return Sr(n,1)})}};Bf.className="GlobalMaxPooling1D";Q.registerClass(Bf);var wb=class extends Et{constructor(t){super(t),this.dataFormat=t.dataFormat==null?"channelsLast":t.dataFormat,Fe(this.dataFormat),this.inputSpec=[new ye({ndim:4})]}computeOutputShape(t){return t=t,this.dataFormat==="channelsLast"?[t[0],t[3]]:[t[0],t[1]]}call(t,e){throw new vt}getConfig(){let t={dataFormat:this.dataFormat},e=super.getConfig();return Object.assign(t,e),t}},Vf=class extends wb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Se(n,[1,2]):Se(n,[2,3])})}};Vf.className="GlobalAveragePooling2D";Q.registerClass(Vf);var Gf=class extends wb{call(t,e){return B(()=>{let n=St(t);return this.dataFormat==="channelsLast"?Sr(n,[1,2]):Sr(n,[2,3])})}};Gf.className="GlobalMaxPooling2D";Q.registerClass(Gf);var Ib=class extends Et{constructor(t){super(t),this.layer=t.layer}build(t){this.built=!0}get trainable(){return this.layer!=null?this.layer.trainable:!1}set trainable(t){this.layer!=null&&(this.layer.trainable=t)}get trainableWeights(){return this.layer.trainableWeights}get nonTrainableWeights(){return this.layer.nonTrainableWeights}get updates(){return this.layer._updates}get losses(){return this.layer.losses}getWeights(){return this.layer.getWeights()}setWeights(t){this.layer.setWeights(t)}getConfig(){let t={layer:{className:this.layer.getClassName(),config:this.layer.getConfig()}},e=super.getConfig();return Object.assign(t,e),t}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.layer!=null&&this.layer.setFastWeightInitDuringBuild(t)}static fromConfig(t,e,n={}){let o=e.layer,s=yn(o,n);delete e.layer;let i={layer:s};return Object.assign(i,e),new t(i)}},Wf=class extends Ib{constructor(t){super(t),this.supportsMasking=!0}build(t){if(t=zt(t),t.length<3)throw new z(`TimeDistributed layer expects an input shape >= 3D, but received input shape ${JSON.stringify(t)}`);this.inputSpec=[{shape:t}];let e=[t[0]].concat(t.slice(2));this.layer.built||(this.layer.build(e),this.layer.built=!0),super.build(t)}computeOutputShape(t){t=zt(t);let e=[t[0]].concat(t.slice(2)),n=this.layer.computeOutputShape(e),o=t[1];return[n[0],o].concat(n.slice(1))}call(t,e){return B(()=>(t=St(t),U0((i,a)=>[St(this.layer.call(i,e)),[]],t,[],!1,null,null,!1,!0)[1]))}};Wf.className="TimeDistributed";Q.registerClass(Wf);function uY(r){Ki(_$,"BidirectionalMergeMode",r)}var cY="concat",Uf=class extends Ib{constructor(t){super(t);let e=t.layer.getConfig(),n={};n.className=t.layer.getClassName(),n.config=e,this.forwardLayer=yn(n),e.goBackwards=e.goBackwards!==!0;let o={};if(o.className=t.layer.getClassName(),o.config=e,this.backwardLayer=yn(o),this.forwardLayer.name="forward_"+this.forwardLayer.name,this.backwardLayer.name="backward_"+this.backwardLayer.name,this.mergeMode=t.mergeMode===void 0?cY:t.mergeMode,uY(this.mergeMode),t.weights)throw new vt("weights support is not implemented for Bidirectional layer yet.");this._stateful=t.layer.stateful,this.returnSequences=t.layer.returnSequences,this.returnState=t.layer.returnState,this.supportsMasking=!0,this._trainable=!0,this.inputSpec=t.layer.inputSpec,this.numConstants=null}get trainable(){return this._trainable}set trainable(t){this._trainable=t,this.forwardLayer!=null&&(this.forwardLayer.trainable=t),this.backwardLayer!=null&&(this.backwardLayer.trainable=t)}getWeights(){return this.forwardLayer.getWeights().concat(this.backwardLayer.getWeights())}setWeights(t){let e=t.length,n=Math.floor(e/2);this.forwardLayer.setWeights(t.slice(0,n)),this.backwardLayer.setWeights(t.slice(n))}computeOutputShape(t){let e=this.forwardLayer.computeOutputShape(t);Array.isArray(e)&&Array.isArray(e[0])||(e=[e]),e=e;let n,o,s;return this.returnState&&(s=e.slice(1)),n=e[0],n=n,this.mergeMode==="concat"?(n[n.length-1]*=2,o=[n]):this.mergeMode==null?o=[n,n.slice()]:o=[n],this.returnState?this.mergeMode==null?o.concat(s).concat(s.slice()):[n].concat(s).concat(s.slice()):Tr(o)}apply(t,e){let n=e==null?null:e.initialState,o=e==null?null:e.constants;e==null&&(e={});let s=W0(t,n,o,this.numConstants);if(t=s.inputs,n=s.initialState,o=s.constants,Array.isArray(t)&&(n=t.slice(1),t=t[0]),(n==null||n.length===0)&&o==null)return super.apply(t,e);let i=[],a=[];if(n!=null){let l=n.length;if(l%2>0)throw new z("When passing `initialState` to a Bidrectional RNN, the state should be an Array containing the states of the underlying RNNs.");e.initialState=n,i.push(...n);let c=n.map(p=>new ye({shape:p.shape}));this.forwardLayer.stateSpec=c.slice(0,l/2),this.backwardLayer.stateSpec=c.slice(l/2),a.push(...c)}if(o!=null)throw new vt("Support for constants in Bidirectional layers is not implemented yet.");let u=i[0]instanceof tn;for(let l of i)if(l instanceof tn!==u)throw new z("The initial state of a Bidirectional layer cannot be specified as a mix of symbolic and non-symbolic tensors");if(u){let l=[t].concat(i),c=this.inputSpec.concat(a),p=this.inputSpec;this.inputSpec=c;let m=super.apply(l,e);return this.inputSpec=p,m}else return super.apply(t,e)}call(t,e){return B(()=>{let n=e.initialState,o,s;if(n==null)o=this.forwardLayer.call(t,e),s=this.backwardLayer.call(t,e);else{let u=n.slice(0,n.length/2),l=n.slice(n.length/2);o=this.forwardLayer.call(t,Object.assign(e,{initialState:u})),s=this.backwardLayer.call(t,Object.assign(e,{initialState:l}))}let i;this.returnState&&(Array.isArray(o)&&(i=o.slice(1).concat(s.slice(1))),o=o[0],s=s[0]),this.returnSequences&&(s=mr(s,1));let a;return this.mergeMode==="concat"?a=Tm([o,s]):this.mergeMode==="sum"?a=X(o,s):this.mergeMode==="ave"?a=D(.5,X(o,s)):this.mergeMode==="mul"?a=D(o,s):this.mergeMode==null&&(a=[o,s]),this.returnState?this.mergeMode==null?a.concat(i):[a].concat(i):a})}resetStates(t){this.forwardLayer.resetStates(),this.backwardLayer.resetStates()}build(t){Ks(this.forwardLayer.name,()=>{this.forwardLayer.build(t)}),Ks(this.backwardLayer.name,()=>{this.backwardLayer.build(t)}),this.built=!0}computeMask(t,e){Array.isArray(e)&&(e=e[0]);let n;if(this.returnSequences?this.mergeMode==null?n=[e,e]:n=e:this.mergeMode==null?n=[null,null]:n=null,this.returnState){let s=this.forwardLayer.states.map(i=>null);return Array.isArray(n)?n.concat(s).concat(s):[n].concat(s).concat(s)}else return n}get trainableWeights(){return this.forwardLayer.trainableWeights.concat(this.backwardLayer.trainableWeights)}get nonTrainableWeights(){return this.forwardLayer.nonTrainableWeights.concat(this.backwardLayer.nonTrainableWeights)}setFastWeightInitDuringBuild(t){super.setFastWeightInitDuringBuild(t),this.forwardLayer!=null&&this.forwardLayer.setFastWeightInitDuringBuild(t),this.backwardLayer!=null&&this.backwardLayer.setFastWeightInitDuringBuild(t)}getConfig(){let t={mergeMode:this.mergeMode},e=super.getConfig();return Object.assign(t,e),t}static fromConfig(t,e){let n=yn(e.layer);if(delete e.layer,e.numConstants!=null)throw new vt("Deserialization of a Bidirectional layer with numConstants present is not supported yet.");let o=e;return o.layer=n,new t(o)}};Uf.className="Bidirectional";Q.registerClass(Uf);var Hf=class extends Et{constructor(t){super(t),this.scale=t.scale,t.offset?this.offset=t.offset:this.offset=0}getConfig(){let t={scale:this.scale,offset:this.offset},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>(t=St(t),t.dtype!=="float32"&&(t=Qr(t,"float32")),X(D(t,this.scale),this.offset)))}};Hf.className="Rescaling";Q.registerClass(Hf);var{resizeBilinear:pY,cropAndResize:mY}=so,qf=class extends Et{constructor(t){super(t),this.height=t.height,this.width=t.width}centerCrop(t,e,n,o,s,i,a,u){return B(()=>{let l,c=!1,p=e/i,m=n/a,f=(o+e)/i,d=(s+n)/a,h=[p,m,f,d],g=[];t.rank===3?(c=!0,l=qe([t])):l=t;for(let N=0;N{let s=pY(t,[e,n]);return Qr(s,o)})}call(t,e){return B(()=>{let n=St(t),o=n.dtype,s=n.shape,i=s[s.length-3],a=s[s.length-2],u=0;i!==this.height&&(u=Math.floor((i-this.height)/2));let l=0;return a!==this.width&&(l=Math.floor((a-this.width)/2),l===0&&(l=1)),u>=0&&l>=0?this.centerCrop(n,u,l,this.height,this.width,i,a,o):this.upsize(t,this.height,this.width,o)})}getConfig(){let t={height:this.height,width:this.width},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){t=zt(t);let e=t.length-3,n=t.length-2;return t[e]=this.height,t[n]=this.width,t}};qf.className="CenterCrop";Q.registerClass(qf);function SD(r,t,e,n){let o=St(r);if(o.dtype!=="int32"&&(o=Qr(o,"int32")),t==="int")return o;let s=o.shape;if(o.rank===0&&(o=sr(o,-1)),t==="oneHot"&&o.shape[o.shape.length-1]!==1&&(o=sr(o,-1)),o.rank>2)throw new z(`When outputMode is not int, maximum output rank is 2 Received outputMode ${t} and input shape ${s} which would result in output rank ${o.rank}.`);let i=["multiHot","oneHot"].includes(t),a=o,u;if(typeof n!="undefined"&&t==="count"?u=ph(a,n,e,i):u=ph(a,[],e,i),t!=="tfIdf")return u;if(n)return D(u,n);throw new z("When outputMode is 'tfIdf', weights must be provided.")}var Kf=class extends Et{constructor(t){super(t),this.numTokens=t.numTokens,t.outputMode?this.outputMode=t.outputMode:this.outputMode="multiHot"}getConfig(){let t={numTokens:this.numTokens,outputMode:this.outputMode},e=super.getConfig();return Object.assign(t,e),t}computeOutputShape(t){return t=zt(t),t==null?[this.numTokens]:this.outputMode==="oneHot"&&t[t.length-1]!==1?(t.push(this.numTokens),t):(t[t.length-1]=this.numTokens,t)}call(t,e){return B(()=>{t=St(t),t.dtype!=="int32"&&(t=Qr(t,"int32"));let n;if(typeof e.countWeights!="undefined"){if(this.outputMode!=="count")throw new z(`countWeights is not used when outputMode !== count. + Received countWeights=${e.countWeights}`);n=St(e.countWeights)}let o=Sr(t),s=el(t),i=Re(this.numTokens,o).bufferSync().get(0),a=un(s,0).bufferSync().get(0);if(!(i&&a))throw new z(`Input values must be between 0 < values <= numTokens with numTokens=${this.numTokens}`);return SD(t,this.outputMode,this.numTokens,n)})}};Kf.className="CategoryEncoding";Q.registerClass(Kf);var dY=["bilinear","nearest"],ND=new Set(dY),jf=class extends Et{constructor(t){if(super(t),this.height=t.height,this.width=t.width,t.interpolation)if(ND.has(t.interpolation))this.interpolation=t.interpolation;else throw new z(`Invalid interpolation parameter: ${t.interpolation} is not implemented`);else this.interpolation="bilinear";this.cropToAspectRatio=Boolean(t.cropToAspectRatio)}computeOutputShape(t){t=zt(t);let e=t[2];return[this.height,this.width,e]}getConfig(){let t={height:this.height,width:this.width,interpolation:this.interpolation,cropToAspectRatio:this.cropToAspectRatio},e=super.getConfig();return Object.assign(t,e),t}call(t,e){return B(()=>{let n=[this.height,this.width];if(this.interpolation==="bilinear")return so.resizeBilinear(t,n,!this.cropToAspectRatio);if(this.interpolation==="nearest")return so.resizeNearestNeighbor(t,n,!this.cropToAspectRatio);throw new Error(`Interpolation is ${this.interpolation} but only ${[...ND]} are supported`)})}};jf.className="Resizing";Q.registerClass(jf);function hY(r){return new Xs(r)}function gY(r){return new Zm(r)}function xY(r){return new jm(r)}function yY(r){return new Xm(r)}function bY(r){return new Ym(r)}function wY(r){return new Qm(r)}function CY(r){return new Jm(r)}function IY(r){return new Nu(r)}function vY(r){return new ul(r)}function SY(r){return new tf(r)}function NY(r){return new cl(r)}function TY(r){return new ef(r)}function kY(r){return new rf(r)}function EY(r){return new nf(r)}function _Y(r){return new of(r)}function AY(r){return new sf(r)}function $Y(r){return new df(r)}function DY(r){return new mf(r)}function RY(r){return new Tc(r)}function FY(r){return new pf(r)}function OY(r){return new ff(r)}function PY(r){return new hf(r)}function LY(r){return new gf(r)}function MY(r){return new xf(r)}function zY(r){return new bf(r)}function BY(r){return new wf(r)}function VY(r){return new If(r)}function GY(r){return new Nf(r)}function WY(r){return new vf(r)}function UY(r){return new Sf(r)}function HY(r){return new Cf(r)}function qY(r){return new Tf(r)}function KY(r){return new Af(r)}function jY(r){return new $f(r)}function XY(r){return new Df(r)}function H0(r){return new Ff(r)}function YY(r){return H0(r)}function ZY(r){return H0(r)}function q0(r){return new Pf(r)}function JY(r){return q0(r)}function QY(r){return q0(r)}function K0(r){return new Mf(r)}function tZ(r){return K0(r)}function eZ(r){return K0(r)}function rZ(r){return new zf(r)}function nZ(r){return new Vf(r)}function TD(r){return new Bf(r)}function kD(r){return new Gf(r)}function ED(r){return new Rf(r)}function _D(r){return new Of(r)}function oZ(r){return new Lf(r)}function sZ(r){return new lf(r)}function iZ(r){return new vc(r)}function aZ(r){return new uf(r)}function lZ(r){return new ml(r)}function uZ(r){return new af(r)}function cZ(r){return new Ic(r)}function pZ(r){return new cf(r)}function mZ(r){return new Nc(r)}function fZ(r){return new En(r)}function dZ(r){return new Sc(r)}function hZ(r){return new Uf(r)}function gZ(r){return new Wf(r)}var xZ=TD,yZ=kD,bZ=ED,wZ=_D;function CZ(r){return new kf(r)}function IZ(r){return new Ef(r)}function vZ(r){return new _f(r)}function SZ(r){return new yf(r)}function NZ(r){return new Hf(r)}function TZ(r){return new qf(r)}function kZ(r){return new jf(r)}function EZ(r){return new Kf(r)}var $D={};Wt($D,{MAPE:()=>zZ,MSE:()=>GZ,binaryAccuracy:()=>_Z,binaryCrossentropy:()=>AZ,categoricalAccuracy:()=>DZ,categoricalCrossentropy:()=>RZ,cosineProximity:()=>PZ,mape:()=>BZ,meanAbsoluteError:()=>LZ,meanAbsolutePercentageError:()=>MZ,meanSquaredError:()=>VZ,mse:()=>WZ,precision:()=>FZ,recall:()=>OZ,sparseCategoricalAccuracy:()=>$Z});function _Z(r,t){return kh(r,t)}function AZ(r,t){return Uy(r,t)}function $Z(r,t){return Hy(r,t)}function DZ(r,t){return Eh(r,t)}function RZ(r,t){return _h(r,t)}function FZ(r,t){return R0(r,t)}function OZ(r,t){return eD(r,t)}function PZ(r,t){return Th(r,t)}function LZ(r,t){return Gm(r,t)}function MZ(r,t){return Cu(r,t)}function zZ(r,t){return Cu(r,t)}function BZ(r,t){return Cu(r,t)}function VZ(r,t){return Xi(r,t)}function GZ(r,t){return Xi(r,t)}function WZ(r,t){return Xi(r,t)}var DD={};Wt(DD,{modelFromJSON:()=>gD});var RD={};Wt(RD,{l1:()=>HZ,l1l2:()=>UZ,l2:()=>qZ});function UZ(r){return new Iu(r)}function HZ(r){return wD(r)}function qZ(r){return CD(r)}var Sb=class extends ll{constructor(){super(...arguments),this.model=null}setModel(t){if(!(t instanceof Gn))throw new Error("model must be a LayersModel, not some other Container");this.model=t}};function vb(r,t){return rt}var Nb=class extends Sb{constructor(t){if(super(),t==null&&(t={}),t.restoreBestWeights)throw new vt("restoreBestWeights = True is not implemented in EarlyStopping yet.");this.monitor=t.monitor||"val_loss",this.minDelta=Math.abs(t.minDelta||0),this.patience=t.patience||0,this.verbose=t.verbose||0,this.mode=t.mode||"auto",this.baseline=t.baseline,["auto","min","max"].indexOf(this.mode)===-1&&(console.warn(`EarlyStopping mode '${this.mode}' is invalid. Falling back to mode 'auto'.`),this.mode="auto"),this.mode==="min"?this.monitorFunc=vb:this.mode==="max"?this.monitorFunc=FD:this.monitor.indexOf("acc")!==-1?this.monitorFunc=FD:this.monitorFunc=vb,this.monitorFunc===vb&&(this.minDelta*=-1)}async onTrainBegin(t){this.wait=0,this.stoppedEpoch=0,this.baseline!=null?this.best=this.baseline:this.best=this.monitorFunc===vb?1/0:-1/0}async onEpochEnd(t,e){await ji(e);let n=this.getMonitorValue(e);n!=null&&(this.monitorFunc(n-this.minDelta,this.best)?(this.best=n,this.wait=0):(this.wait++,this.wait>=this.patience&&(this.stoppedEpoch=t,this.model.stopTraining=!0)))}async onTrainEnd(t){this.stoppedEpoch>0&&this.verbose&&console.log(`Epoch ${this.stoppedEpoch}: early stopping.`)}getMonitorValue(t){t==null&&(t={});let e=t[this.monitor];return e==null&&console.warn(`Metric for EarlyStopping ${this.monitor} is not available. Available metrics are: ${Object.keys(t)}`),e}};function KZ(r){return new Nb(r)}var jZ={earlyStopping:KZ};var XZ=M();XZ.registerFlag("KEEP_INTERMEDIATE_TENSORS",()=>!1,r=>{r&&console.warn("Keep intermediate tensors is ON. This will print the values of all intermediate tensors during model inference. Not all models support this mode. For details, check e2e/benchmarks/ model_config.js. This significantly impacts performance.")});var ao;(function(r){r[r.DT_INVALID=0]="DT_INVALID",r[r.DT_FLOAT=1]="DT_FLOAT",r[r.DT_DOUBLE=2]="DT_DOUBLE",r[r.DT_INT32=3]="DT_INT32",r[r.DT_UINT8=4]="DT_UINT8",r[r.DT_INT16=5]="DT_INT16",r[r.DT_INT8=6]="DT_INT8",r[r.DT_STRING=7]="DT_STRING",r[r.DT_COMPLEX64=8]="DT_COMPLEX64",r[r.DT_INT64=9]="DT_INT64",r[r.DT_BOOL=10]="DT_BOOL",r[r.DT_QINT8=11]="DT_QINT8",r[r.DT_QUINT8=12]="DT_QUINT8",r[r.DT_QINT32=13]="DT_QINT32",r[r.DT_BFLOAT16=14]="DT_BFLOAT16",r[r.DT_QINT16=15]="DT_QINT16",r[r.DT_QUINT16=16]="DT_QUINT16",r[r.DT_UINT16=17]="DT_UINT16",r[r.DT_COMPLEX128=18]="DT_COMPLEX128",r[r.DT_HALF=19]="DT_HALF",r[r.DT_RESOURCE=20]="DT_RESOURCE",r[r.DT_VARIANT=21]="DT_VARIANT",r[r.DT_UINT32=22]="DT_UINT32",r[r.DT_UINT64=23]="DT_UINT64",r[r.DT_FLOAT_REF=101]="DT_FLOAT_REF",r[r.DT_DOUBLE_REF=102]="DT_DOUBLE_REF",r[r.DT_INT32_REF=103]="DT_INT32_REF",r[r.DT_UINT8_REF=104]="DT_UINT8_REF",r[r.DT_INT16_REF=105]="DT_INT16_REF",r[r.DT_INT8_REF=106]="DT_INT8_REF",r[r.DT_STRING_REF=107]="DT_STRING_REF",r[r.DT_COMPLEX64_REF=108]="DT_COMPLEX64_REF",r[r.DT_INT64_REF=109]="DT_INT64_REF",r[r.DT_BOOL_REF=110]="DT_BOOL_REF",r[r.DT_QINT8_REF=111]="DT_QINT8_REF",r[r.DT_QUINT8_REF=112]="DT_QUINT8_REF",r[r.DT_QINT32_REF=113]="DT_QINT32_REF",r[r.DT_BFLOAT16_REF=114]="DT_BFLOAT16_REF",r[r.DT_QINT16_REF=115]="DT_QINT16_REF",r[r.DT_QUINT16_REF=116]="DT_QUINT16_REF",r[r.DT_UINT16_REF=117]="DT_UINT16_REF",r[r.DT_COMPLEX128_REF=118]="DT_COMPLEX128_REF",r[r.DT_HALF_REF=119]="DT_HALF_REF",r[r.DT_RESOURCE_REF=120]="DT_RESOURCE_REF",r[r.DT_VARIANT_REF=121]="DT_VARIANT_REF",r[r.DT_UINT32_REF=122]="DT_UINT32_REF",r[r.DT_UINT64_REF=123]="DT_UINT64_REF"})(ao||(ao={}));var OD;(function(r){let t;(function(e){e[e.LEGACY=0]="LEGACY",e[e.V1=1]="V1",e[e.V2=2]="V2"})(t=r.CheckpointFormatVersion||(r.CheckpointFormatVersion={}))})(OD||(OD={}));var j0={};function ZZ(r,t){let e={tfOpName:r,category:"custom",inputs:[],attrs:[],customExecutor:t};j0[r]=e}function Tb(r){return j0[r]}function JZ(r){delete j0[r]}function I(r,t,e,n,o){let s=t.inputParams[r];if(s&&s.inputIndexStart!==void 0){let a=s.inputIndexStart,u=s.inputIndexEnd===0?void 0:s.inputIndexEnd===void 0?a+1:s.inputIndexEnd;if(s.type==="tensor")return Cr(t.inputNames[s.inputIndexStart],e,n,o);if(s.type==="tensors")return t.inputNames.slice(a,u).map(m=>Cr(m,e,n,o));let l=Cr(t.inputNames.slice(a)[0],e,n,o),c=l.dataSync();return s.type==="number"?c[0]:y.toNestedArray(l.shape,c)}let i=t.attrParams[r];return i&&i.value}function Cr(r,t,e,n){let[o,s]=bn(r);if(n!=null){let a=n.getHashTableHandleByName(o);if(a!=null)return a}let i=e.currentContextIds.find(a=>!!t[kb(o,a)]);return i!==void 0?t[kb(o,i)][s]:void 0}function PD(r,t,e){return t[kb(r,e.currentContextId)]}function Qs(r,t){let[e,n,o]=bn(r);return[kb(e,t&&t.currentContextId),n,o]}function kb(r,t){return t?`${r}-${t}`:r}function bn(r){let t=r.split(":");if(t.length===1)return[r,0,void 0];let e=t[0],n=t.length===3?t[1]:void 0,o=Number(t[t.length-1]);return[e,o,n]}function Fh(r,t,e){let n=I("pad",r,t,e);if(n==="explicit"){n=I("explicitPaddings",r,t,e);let o=[[0,0],[0,0],[0,0],[0,0]];for(let s=0;s<4;s++)o[s][0]=n[s*2],o[s][1]=n[s*2+1];return o}return n}function ti(r){return r.kept?r:an(r)}var X0={};Wt(X0,{json:()=>QZ});var QZ=[{tfOpName:"Add",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddV2",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AddN",category:"arithmetic",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"BiasAdd",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"Sub",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"RealDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Div",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"DivNoNan",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorDiv",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mul",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Maximum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Minimum",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Pow",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SquaredDifference",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Mod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"FloorMod",category:"arithmetic",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var Y0={};Wt(Y0,{json:()=>t7});var t7=[{tfOpName:"Abs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atan2",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Ceil",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ClipByValue",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"clipValueMin",type:"number"},{start:2,name:"clipValueMax",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Complex",category:"basic_math",inputs:[{start:0,name:"real",type:"tensor"},{start:1,name:"imag",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ComplexAbs",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cos",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Cosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Elu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Exp",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Floor",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Imag",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Neg",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Real",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"Tout",name:"outputType",type:"dtype",notSupported:!0}]},{tfOpName:"Prelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"alpha",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Relu6",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Selu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sigmoid",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sin",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Rsqrt",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Square",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Tanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Sign",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Round",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Expm1",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Log1p",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Reciprocal",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Softplus",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Asinh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Acosh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Atanh",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Erf",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Prod",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axes",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LeakyRelu",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"alpha",name:"alpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"IsNan",category:"basic_math",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var Z0={};Wt(Z0,{json:()=>e7});var e7=[{tfOpName:"EmptyTensorList",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"maxNumElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"LoopCond",category:"control",inputs:[{start:0,name:"pred",type:"tensor"}]},{tfOpName:"Switch",category:"control",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"pred",type:"tensor"}]},{tfOpName:"Merge",category:"control",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}]},{tfOpName:"Enter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"frame_name",name:"frameName",type:"string"},{tfName:"is_constant",name:"isConstant",type:"bool"}]},{tfOpName:"Exit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NextIteration",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayV3",category:"control",inputs:[{start:0,name:"size",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"dynamic_size",name:"dynamicSize",type:"bool"},{tfName:"clear_after_read",name:"clearAfterRead",type:"bool"},{tfName:"identical_element_shapes",name:"identicalElementShapes",type:"bool"},{tfName:"tensor_array_name",name:"name",type:"string"}]},{tfOpName:"TensorArrayWriteV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayReadV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"TensorArrayGatherV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape",name:"elementShape",type:"shape"}]},{tfOpName:"TensorArrayScatterV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"tensor",type:"tensor"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArrayConcatV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"element_shape_except0",name:"elementShapeExcept0",type:"shape",notSupported:!0}]},{tfOpName:"TensorArraySplitV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"tensor",type:"tensor"},{start:2,name:"lengths",type:"number[]"},{start:3,name:"flowIn",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"TensorArraySizeV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"},{start:1,name:"flowIn",type:"number"}]},{tfOpName:"TensorArrayCloseV3",category:"control",inputs:[{start:0,name:"tensorArrayId",type:"tensor"}]},{tfOpName:"StatelessIf",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"If",category:"control",inputs:[{start:0,name:"cond",type:"tensor"},{start:1,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"then_branch",name:"thenBranch",type:"func"},{tfName:"else_branch",name:"elseBranch",type:"func"}]},{tfOpName:"StatelessWhile",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"While",category:"control",inputs:[{start:0,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"cond",name:"cond",type:"func"},{tfName:"body",name:"body",type:"func"}]},{tfOpName:"TensorListScatter",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListScatterV2",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"},{start:3,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGather",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"indices",type:"number[]"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListGetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListSetItem",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"index",type:"number"},{start:2,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListReserve",category:"control",inputs:[{start:0,name:"elementShape",type:"shape"},{start:1,name:"numElements",type:"number"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListFromTensor",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListStack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"},{tfName:"num_elements",name:"numElements",type:"dtype"}]},{tfOpName:"TensorListSplit",category:"control",inputs:[{start:0,name:"tensor",type:"tensor"},{start:1,name:"elementShape",type:"shape"},{start:2,name:"lengths",type:"number[]"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcat",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListConcatV2",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}],attrs:[{tfName:"element_shape",name:"elementShape",type:"shape"},{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPopBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"elementShape",type:"shape"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListPushBack",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"tensor",type:"tensor"}],attrs:[{tfName:"element_dtype",name:"elementDType",type:"dtype"}]},{tfOpName:"TensorListLength",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"}]},{tfOpName:"TensorListResize",category:"control",inputs:[{start:0,name:"tensorListId",type:"tensor"},{start:1,name:"size",type:"number"}]}];var J0={};Wt(J0,{json:()=>r7});var r7=[{tfOpName:"AvgPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[],notSupported:!0},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPoolWithArgmax",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"include_batch_in_index",name:"includeBatchInIndex",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"AvgPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MaxPool3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"ksize",name:"kernelSize",type:"number[]"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Conv1D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"stride",name:"stride",type:"number"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NWC"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"dilation",name:"dilation",type:"number",defaultValue:1}]},{tfOpName:"Conv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"useCudnnOnGpu",name:"useCudnnOnGpu",type:"bool"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"_FusedConv2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"use_cudnn_on_gpu",name:"useCudnnOnGpu",type:"bool",defaultValue:!0},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2}]},{tfOpName:"Conv2DBackpropInput",category:"convolution",inputs:[{start:2,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:0,name:"outputShape",type:"number[]"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]",notSupported:!0}]},{tfOpName:"DepthwiseConv2d",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"DepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"FusedDepthwiseConv2dNative",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]",defaultValue:[1,1,1,1]},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"explicit_paddings",name:"explicitPaddings",type:"number[]",defaultValue:[]}]},{tfOpName:"Conv3D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"padding",name:"pad",type:"string"},{tfName:"data_format",name:"dataFormat",type:"string",defaultValue:"NHWC"},{tfName:"dilations",name:"dilations",type:"number[]"}]},{tfOpName:"Dilation2D",category:"convolution",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"filter",type:"tensor"}],attrs:[{tfName:"strides",name:"strides",type:"number[]"},{tfName:"rates",name:"dilations",type:"number[]"},{tfName:"padding",name:"pad",type:"string"}]}];var Q0={};Wt(Q0,{json:()=>n7});var n7=[{tfOpName:"Fill",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"},{start:1,name:"value",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"LinSpace",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"num",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"OneHot",category:"creation",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"depth",type:"number"},{start:2,name:"onValue",type:"number",defaultValue:1},{start:3,name:"offValue",type:"number",defaultValue:0}],attrs:[{tfName:"axis",name:"axis",type:"number",notSupported:!0},{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Ones",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"OnesLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"RandomStandardNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"RandomUniform",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"minval",name:"minval",type:"number",defaultValue:0},{tfName:"maxval",name:"maxval",type:"number",defaultValue:1},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"seed",name:"seed",type:"number",defaultValue:0},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Range",category:"creation",inputs:[{start:0,name:"start",type:"number"},{start:1,name:"stop",type:"number"},{start:2,name:"step",type:"number",defaultValue:0}],attrs:[{tfName:"Tidx",name:"dtype",type:"dtype"}]},{tfOpName:"TruncatedNormal",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"means",name:"mean",type:"number",defaultValue:0},{tfName:"stddev",name:"stdDev",type:"number",defaultValue:1},{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number",defaultValue:0,notSupported:!0},{tfName:"dtype",name:"dtype",type:"dtype"},{tfName:"T",name:"T",type:"number",notSupported:!0}]},{tfOpName:"Zeros",category:"creation",inputs:[{start:0,name:"shape",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"ZerosLike",category:"creation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype"}]},{tfOpName:"Multinomial",category:"creation",inputs:[{start:0,name:"logits",type:"tensor"},{start:1,name:"numSamples",type:"number"}],attrs:[{tfName:"seed",name:"seed",type:"number"},{tfName:"seed2",name:"seed2",type:"number"},{tfName:"T",name:"dtype",type:"dtype"},{tfName:"output_dtype",name:"output_dtype",type:"dtype"}]}];var tN={};Wt(tN,{json:()=>o7});var o7=[{tfOpName:"NonMaxSuppressionV2",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV3",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}]},{tfOpName:"NonMaxSuppressionV4",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0},{tfName:"T_threshold",name:"threshold",type:"dtype",notSupported:!0},{tfName:"pad_to_max_output_size",name:"padToMaxOutputSize",type:"bool"}]},{tfOpName:"NonMaxSuppressionV5",category:"dynamic",inputs:[{start:0,name:"boxes",type:"tensor"},{start:1,name:"scores",type:"tensor"},{start:2,name:"maxOutputSize",type:"number"},{start:3,name:"iouThreshold",type:"number"},{start:4,name:"scoreThreshold",type:"number"},{start:5,name:"softNmsSigma",type:"number"}]},{tfOpName:"Where",category:"dynamic",inputs:[{start:0,name:"condition",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ListDiff",category:"dynamic",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"y",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var eN={};Wt(eN,{json:()=>s7});var s7=[{tfOpName:"LowerBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"TopKV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"k",type:"number"}],attrs:[{tfName:"sorted",name:"sorted",type:"bool"}]},{tfOpName:"UpperBound",category:"evaluation",inputs:[{start:0,name:"sortedSequence",type:"tensor"},{start:1,name:"values",type:"tensor"}]},{tfOpName:"Unique",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"UniqueV2",category:"evaluation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]}];var rN={};Wt(rN,{json:()=>i7});var i7=[{tfOpName:"PlaceholderWithDefault",category:"graph",inputs:[{start:0,name:"default",type:"tensor"}],attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Placeholder",category:"graph",attrs:[{tfName:"shape",name:"shape",type:"shape"},{tfName:"dtype",name:"dtype",type:"dtype"}]},{tfOpName:"Const",category:"graph"},{tfOpName:"Identity",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IdentityN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Snapshot",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Rank",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Size",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"Shape",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"ShapeN",category:"graph",inputs:[{start:0,end:0,name:"x",type:"tensors"}]},{tfOpName:"Print",category:"graph",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"data",type:"tensors"}],attrs:[{tfName:"message",name:"message",type:"string"},{tfName:"first_n",name:"firstN",type:"number",notSupported:!0},{tfName:"summarize",name:"summarize",type:"number",defaultValue:3}]},{tfOpName:"NoOp",category:"graph",inputs:[]},{tfOpName:"StopGradient",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"FakeQuantWithMinMaxVars",category:"graph",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"min",name:"min",type:"number"},{tfName:"max",name:"max",type:"number"}]}];var nN={};Wt(nN,{json:()=>a7});var a7=[{tfOpName:"HashTable",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"HashTableV2",category:"hash_table",inputs:[],attrs:[{tfName:"shared_name",name:"sharedName",type:"string"},{tfName:"use_node_name_sharing",name:"useNodeNameSharing",type:"bool"},{tfName:"key_dtype",name:"keyDType",type:"dtype"},{tfName:"value_dtype",name:"valueDType",type:"dtype"}]},{tfOpName:"LookupTableImport",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableImportV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFind",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableFindV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"Tin",name:"tIn",type:"dtype",notSupported:!0},{tfName:"Tout",name:"tOut",type:"dtype",notSupported:!0}]},{tfOpName:"LookupTableSize",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"LookupTableSizeV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"}]},{tfOpName:"InitializeTable",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]},{tfOpName:"InitializeTableV2",category:"hash_table",inputs:[{start:0,name:"tableHandle",type:"tensor"},{start:1,name:"keys",type:"tensor"},{start:2,name:"values",type:"tensor"}]}];var oN={};Wt(oN,{json:()=>l7});var l7=[{tfOpName:"ResizeBilinear",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"ResizeNearestNeighbor",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"size",type:"number[]"}],attrs:[{tfName:"align_corners",name:"alignCorners",type:"bool"},{tfName:"half_pixel_centers",name:"halfPixelCenters",type:"bool"},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"CropAndResize",category:"image",inputs:[{start:0,name:"image",type:"tensor"},{start:1,name:"boxes",type:"tensor"},{start:2,name:"boxInd",type:"tensor"},{start:3,name:"cropSize",type:"number[]"}],attrs:[{tfName:"method",name:"method",type:"string"},{tfName:"extrapolation_value",name:"extrapolationValue",type:"number"}]},{tfOpName:"ImageProjectiveTransformV3",category:"image",inputs:[{start:0,name:"images",type:"tensor"},{start:1,name:"transforms",type:"tensor"},{start:2,name:"outputShape",type:"number[]"},{start:3,name:"fillValue",type:"number"}],attrs:[{tfName:"interpolation",name:"interpolation",type:"string"},{tfName:"fill_mode",name:"fillMode",type:"string"}]}];var sN={};Wt(sN,{json:()=>u7});var u7=[{tfOpName:"Equal",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"NotEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Greater",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"GreaterEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Less",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LessEqual",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalAnd",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalNot",category:"logical",inputs:[{start:0,name:"a",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"LogicalOr",category:"logical",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Select",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SelectV2",category:"logical",inputs:[{start:0,name:"condition",type:"tensor"},{start:1,name:"a",type:"tensor"},{start:2,name:"b",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]}];var iN={};Wt(iN,{json:()=>c7});var c7=[{tfOpName:"_FusedMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"},{start:2,end:0,name:"args",type:"tensors"}],attrs:[{tfName:"num_args",name:"numArgs",type:"number"},{tfName:"fused_ops",name:"fusedOps",type:"string[]",defaultValue:[]},{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:1e-4},{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"leakyrelu_alpha",name:"leakyreluAlpha",type:"number",defaultValue:.2},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"MatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"transpose_a",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"transpose_b",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMul",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"BatchMatMulV2",category:"matrices",inputs:[{start:0,name:"a",type:"tensor"},{start:1,name:"b",type:"tensor"}],attrs:[{tfName:"adj_x",name:"transposeA",type:"bool",defaultValue:!1},{tfName:"adj_y",name:"transposeB",type:"bool",defaultValue:!1},{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Transpose",category:"matrices",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"perm",type:"number[]"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"Einsum",category:"matrices",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"equation",name:"equation",type:"string"},{tfName:"N",name:"n",type:"number",defaultValue:2},{tfName:"T",name:"dtype",type:"dtype"}]}];var aN={};Wt(aN,{json:()=>p7});var p7=[{tfOpName:"EuclideanNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool",defaultValue:!1}]},{tfOpName:"FusedBatchNorm",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV2",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"FusedBatchNormV3",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"scale",type:"tensor"},{start:2,name:"offset",type:"tensor"},{start:3,name:"mean",type:"tensor"},{start:4,name:"variance",type:"tensor"}],attrs:[{tfName:"epsilon",name:"epsilon",type:"number",defaultValue:.001},{tfName:"data_format",name:"dataFormat",type:"string",notSupported:!0}]},{tfOpName:"LRN",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"depth_radius",name:"radius",type:"number",defaultValue:5},{tfName:"bias",name:"bias",type:"number",defaultValue:1},{tfName:"alpha",name:"alpha",type:"number",defaultValue:1},{tfName:"beta",name:"beta",type:"number",defaultValue:.5}]},{tfOpName:"Softmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"LogSoftmax",category:"normalization",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"SparseToDense",category:"normalization",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!0,notSupported:!0}]}];var lN={};Wt(lN,{json:()=>m7});var m7=[{tfOpName:"Bincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}]},{tfOpName:"DenseBincount",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"size",type:"number"},{start:2,name:"weights",type:"tensor"}],attrs:[{tfName:"binary_output",name:"binaryOutput",type:"bool"}]},{tfOpName:"Max",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Mean",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Min",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Sum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"All",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Any",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"ArgMax",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"ArgMin",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"Prod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}],attrs:[{tfName:"keep_dims",name:"keepDims",type:"bool"}]},{tfOpName:"Cumprod",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]},{tfOpName:"Cumsum",category:"reduction",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}],attrs:[{tfName:"exclusive",name:"exclusive",type:"bool"},{tfName:"reverse",name:"reverse",type:"bool"}]}];var uN={};Wt(uN,{json:()=>f7});var f7=[{tfOpName:"ConcatV2",category:"slice_join",inputs:[{start:0,end:-1,name:"tensors",type:"tensors"},{start:-1,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"Concat",category:"slice_join",inputs:[{start:1,end:0,name:"tensors",type:"tensors"},{start:0,name:"axis",type:"number"}],attrs:[{tfName:"N",name:"n",type:"number",defaultValue:2}]},{tfOpName:"GatherV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"axis",type:"number",defaultValue:0}],attrs:[{tfName:"batch_dims",name:"batchDims",type:"number",defaultValue:0}]},{tfOpName:"Gather",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",notSupported:!0}]},{tfOpName:"Reverse",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"dims",type:"bool[]"}]},{tfOpName:"ReverseV2",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number[]"}]},{tfOpName:"Slice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"size",type:"number[]"}]},{tfOpName:"StridedSlice",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"begin",type:"number[]"},{start:2,name:"end",type:"number[]"},{start:3,name:"strides",type:"number[]"}],attrs:[{tfName:"begin_mask",name:"beginMask",type:"number",defaultValue:0},{tfName:"end_mask",name:"endMask",type:"number",defaultValue:0},{tfName:"new_axis_mask",name:"newAxisMask",type:"number",defaultValue:0},{tfName:"ellipsis_mask",name:"ellipsisMask",type:"number",defaultValue:0},{tfName:"shrink_axis_mask",name:"shrinkAxisMask",type:"number",defaultValue:0}]},{tfOpName:"Pack",category:"slice_join",inputs:[{start:0,end:0,name:"tensors",type:"tensors"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0}]},{tfOpName:"Unpack",category:"slice_join",inputs:[{start:0,name:"tensor",type:"tensor"}],attrs:[{tfName:"axis",name:"axis",type:"number",defaultValue:0},{tfName:"num",name:"num",type:"number",defaultValue:0,notSupported:!0}]},{tfOpName:"Tile",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"reps",type:"number[]"}]},{tfOpName:"Split",category:"slice_join",inputs:[{start:0,name:"axis",type:"number",defaultValue:0},{start:1,name:"x",type:"tensor"}],attrs:[{tfName:"num_split",name:"numOrSizeSplits",type:"number",defaultValue:1}]},{tfOpName:"SplitV",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"numOrSizeSplits",type:"number[]"},{start:2,name:"axis",type:"number",defaultValue:0}]},{tfOpName:"ScatterNd",category:"slice_join",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"shape",type:"number[]"}]},{tfOpName:"GatherNd",category:"slice_join",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"indices",type:"tensor"}]},{tfOpName:"SparseToDense",category:"slice_join",inputs:[{start:0,name:"sparseIndices",type:"tensor"},{start:1,name:"outputShape",type:"number[]"},{start:2,name:"sparseValues",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}],attrs:[{tfName:"validate_indices",name:"validateIndices",type:"bool",defaultValue:!1,notSupported:!0}]}];var cN={};Wt(cN,{json:()=>d7});var d7=[{tfOpName:"SparseFillEmptyRows",category:"sparse",inputs:[{start:0,name:"indices",type:"tensor"},{start:1,name:"values",type:"tensor"},{start:2,name:"denseShape",type:"tensor"},{start:3,name:"defaultValue",type:"tensor"}]},{tfOpName:"SparseReshape",category:"sparse",inputs:[{start:0,name:"inputIndices",type:"tensor"},{start:1,name:"inputShape",type:"tensor"},{start:2,name:"newShape",type:"tensor"}],attrs:[{tfName:"T",name:"dtype",type:"dtype",notSupported:!0}]},{tfOpName:"SparseSegmentMean",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]},{tfOpName:"SparseSegmentSum",category:"sparse",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"indices",type:"tensor"},{start:2,name:"segmentIds",type:"tensor"}]}];var pN={};Wt(pN,{json:()=>h7});var h7=[{tfOpName:"FFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"IFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"}]},{tfOpName:"RFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]},{tfOpName:"IRFFT",category:"spectral",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"fft_length",type:"number",notSupported:!0}]}];var mN={};Wt(mN,{json:()=>g7});var g7=[{tfOpName:"StringNGrams",category:"string",inputs:[{start:0,name:"data",type:"tensor"},{start:1,name:"dataSplits",type:"tensor"}],attrs:[{tfName:"separator",name:"separator",type:"string"},{tfName:"ngram_widths",name:"nGramWidths",type:"number[]"},{tfName:"left_pad",name:"leftPad",type:"string"},{tfName:"right_pad",name:"rightPad",type:"string"},{tfName:"pad_width",name:"padWidth",type:"number"},{tfName:"preserve_short_sequences",name:"preserveShortSequences",type:"bool"}],outputs:["ngrams","ngrams_splits"]},{tfOpName:"StringSplit",category:"string",inputs:[{start:0,name:"input",type:"tensor"},{start:1,name:"delimiter",type:"tensor"}],attrs:[{tfName:"skip_empty",name:"skipEmpty",type:"bool"}],outputs:["indices","values","shape"]},{tfOpName:"StringToHashBucketFast",category:"string",inputs:[{start:0,name:"input",type:"tensor"}],attrs:[{tfName:"num_buckets",name:"numBuckets",type:"number"}]}];var fN={};Wt(fN,{json:()=>x7});var x7=[{tfOpName:"Cast",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"SrcT",name:"sdtype",type:"dtype",notSupported:!0},{tfName:"DstT",name:"dtype",type:"dtype"}]},{tfOpName:"ExpandDims",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"axis",type:"number"}]},{tfOpName:"MirrorPad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"mode",name:"mode",type:"string"}]},{tfOpName:"Pad",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"}],attrs:[{tfName:"constant_value",name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"PadV2",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"padding",type:"number[]"},{start:2,name:"constantValue",type:"number",defaultValue:0}]},{tfOpName:"Reshape",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}]},{tfOpName:"Squeeze",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"axis",tfDeprecatedName:"squeeze_dims",name:"axis",type:"number[]"}]},{tfOpName:"SpaceToBatchND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"paddings",type:"number[]"}]},{tfOpName:"BatchToSpaceND",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"blockShape",type:"number[]"},{start:2,name:"crops",type:"number[]"}]},{tfOpName:"DepthToSpace",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"}],attrs:[{tfName:"block_size",name:"blockSize",type:"number"},{tfName:"data_format",name:"dataFormat",type:"string"}]},{tfOpName:"BroadcastTo",category:"transformation",inputs:[{start:0,name:"x",type:"tensor"},{start:1,name:"shape",type:"number[]"}],attrs:[]},{tfOpName:"BroadcastArgs",category:"transformation",inputs:[{start:0,name:"s0",type:"tensor"},{start:1,name:"s1",type:"tensor"}],attrs:[]}];var Oh=class{constructor(){let t=[X0,Y0,Z0,J0,Q0,tN,eN,rN,nN,oN,sN,iN,aN,lN,uN,cN,pN,mN,fN],e=[].concat(...t.map(n=>n.json));this.opMappers=e.reduce((n,o)=>(n[o.tfOpName]=o,n),{})}static get Instance(){return this._instance||(this._instance=new this)}transformGraph(t,e={}){let n=t.node,o=[],s=[],i=[],a=n.reduce((h,g)=>(h[g.name]=this.mapNode(g),g.op.startsWith("Placeholder")?o.push(h[g.name]):g.op==="Const"?s.push(h[g.name]):(g.input==null||g.input.length===0)&&i.push(h[g.name]),h),{}),u=[],l=[],c={},p={};e!=null&&(c=this.mapSignatureEntries(e.inputs),p=this.mapSignatureEntries(e.outputs));let m=Object.keys(a);m.forEach(h=>{let g=a[h];g.inputNames.forEach((x,b)=>{let[w,,C]=Qs(x),N=a[w];if(N.outputs!=null){let E=N.outputs.indexOf(C);if(E!==-1){let A=`${w}:${E}`;g.inputNames[b]=A}}g.inputs.push(N),N.children.push(g)})}),Object.keys(p).length===0?m.forEach(h=>{let g=a[h];g.children.length===0&&l.push(g)}):Object.keys(p).forEach(h=>{let[g]=Qs(h),x=a[g];x!=null&&(x.signatureKey=p[h],l.push(x))}),Object.keys(c).length>0?Object.keys(c).forEach(h=>{let[g]=Qs(h),x=a[g];x&&(x.signatureKey=c[h],u.push(x))}):u=o;let f={};t.library!=null&&t.library.function!=null&&(f=t.library.function.reduce((h,g)=>(h[g.signature.name]=this.mapFunction(g),h),{}));let d={nodes:a,inputs:u,outputs:l,weights:s,placeholders:o,signature:e,functions:f};return i.length>0&&(d.initNodes=i),d}mapSignatureEntries(t){return Object.keys(t||{}).reduce((e,n)=>(e[t[n].name]=n,e),{})}mapNode(t){let e=Tb(t.op)||this.opMappers[t.op]||{};t.attr==null&&(t.attr={});let n={name:t.name,op:t.op,category:e.category,inputNames:(t.input||[]).map(o=>o.startsWith("^")?o.slice(1):o),inputs:[],children:[],inputParams:{},attrParams:{},rawAttrs:t.attr,outputs:e.outputs};return e.inputs!=null&&(n.inputParams=e.inputs.reduce((o,s)=>(o[s.name]={type:s.type,inputIndexStart:s.start,inputIndexEnd:s.end},o),{})),e.attrs!=null&&(n.attrParams=e.attrs.reduce((o,s)=>{let i=s.type,a;switch(s.type){case"string":a=Eb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Eb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"string[]":a=Ob(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Ob(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number":a=Ab(t.attr,s.tfName,s.defaultValue||0),a===void 0&&!!s.tfDeprecatedName&&(a=Ab(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"number[]":a=Fb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Fb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool":a=_b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=_b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"bool[]":a=Lb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Lb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape":a=Rb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Rb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"shape[]":a=Pb(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Pb(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype":a=$b(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=$b(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"dtype[]":a=Db(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=Db(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"func":a=LD(t.attr,s.tfName,s.defaultValue),a===void 0&&!!s.tfDeprecatedName&&(a=LD(t.attr,s.tfDeprecatedName,s.defaultValue));break;case"tensor":case"tensors":break;default:throw new Error(`Unsupported param type: ${s.type} for op: ${t.op}`)}return o[s.name]={value:a,type:i},o},{})),n}mapFunction(t){let e=t.nodeDef,n=[],o=[],s={};e!=null&&(s=e.reduce((p,m)=>(p[m.name]=this.mapNode(m),m.op==="Const"&&o.push(p[m.name]),p),{}));let i=[],a=[];t.signature.inputArg.forEach(p=>{let[m]=Qs(p.name),f={name:m,op:"Placeholder",inputs:[],inputNames:[],category:"graph",inputParams:{},attrParams:{dtype:{value:dN(p.type),type:"dtype"}},children:[]};f.signatureKey=p.name,i.push(f),s[m]=f}),Object.keys(s).forEach(p=>{let m=s[p];m.inputNames.forEach((f,d)=>{let[h,,g]=Qs(f),x=s[h];if(x.outputs!=null){let b=x.outputs.indexOf(g);if(b!==-1){let w=`${h}:${b}`;m.inputNames[d]=w}}m.inputs.push(x),x.children.push(m)})});let l=t.ret;t.signature.outputArg.forEach(p=>{let[m,f]=Qs(l[p.name]),d=s[m];d!=null&&(d.defaultOutput=f,a.push(d))});let c=this.mapArgsToSignature(t);return{nodes:s,inputs:i,outputs:a,weights:o,placeholders:n,signature:c}}mapArgsToSignature(t){return{methodName:t.signature.name,inputs:t.signature.inputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n),e),{}),outputs:t.signature.outputArg.reduce((e,n)=>(e[n.name]=this.mapArgToTensorInfo(n,t.ret),e),{})}}mapArgToTensorInfo(t,e){let n=t.name;return e!=null&&(n=e[n]),{name:n,dtype:t.type}}};function y7(r){let t=M().global;if(typeof t.atob!="undefined")return t.atob(r);if(typeof Buffer!="undefined")return new Buffer(r,"base64").toString();throw new Error("Unable to decode base64 in this environment. Missing built-in atob() or Buffer()")}function MD(r,t){let e=Array.isArray(r)?String.fromCharCode.apply(null,r):y7(r);return t?e:e.toLowerCase()}function Eb(r,t,e,n=!1){let o=r[t];return o!=null?MD(o.s,n):e}function _b(r,t,e){let n=r[t];return n?n.b:e}function Ab(r,t,e){let n=r[t]||{},o=n.i!=null?n.i:n.f!=null?n.f:e;return typeof o=="number"?o:parseInt(o,10)}function dN(r){switch(typeof r=="string"&&(r=ao[r]),r){case ao.DT_FLOAT:case ao.DT_HALF:return"float32";case ao.DT_INT32:case ao.DT_INT64:case ao.DT_INT8:case ao.DT_UINT8:return"int32";case ao.DT_BOOL:return"bool";case ao.DT_DOUBLE:return"float32";case ao.DT_STRING:return"string";default:return null}}function LD(r,t,e){let n=r[t];return n&&n.func?n.func.name:e}function $b(r,t,e){let n=r[t];return n&&n.type?dN(n.type):e}function Db(r,t,e){let n=r[t];return n&&n.list&&n.list.type?n.list.type.map(o=>dN(o)):e}function zD(r){if(!r.unknownRank)return r.dim!=null?r.dim.map(t=>typeof t.size=="number"?t.size:parseInt(t.size,10)):[]}function Rb(r,t,e){let n=r[t];return n&&n.shape?zD(n.shape):e}function Fb(r,t,e){let n=r[t];return n?((n.list.f&&n.list.f.length?n.list.f:n.list.i)||[]).map(o=>typeof o=="number"?o:parseInt(o,10)):e}function Ob(r,t,e,n=!1){let o=r[t];return o&&o.list&&o.list.s?o.list.s.map(s=>MD(s,n)):e}function Pb(r,t,e){let n=r[t];return n&&n.list&&n.list.shape?n.list.shape.map(o=>zD(o)):e}function Lb(r,t,e){let n=r[t];return n&&n.list&&n.list.b?n.list.b:e}var Mb=class{constructor(t,e,n){this.node=t,this.tensorMap=e,this.context=n,this.inputs=[],this.attrs={},this.inputs=t.inputNames.map(o=>this.getInput(o)),t.rawAttrs!=null&&(this.attrs=Object.keys(t.rawAttrs).reduce((o,s)=>(o[s]=this.getAttr(s),o),{}))}getInput(t){return Cr(t,this.tensorMap,this.context)}getAttr(t,e){let n=this.node.rawAttrs[t];if(n.tensor!=null)return Cr(t,this.tensorMap,this.context);if(n.i!=null||n.f!=null)return Ab(this.node.rawAttrs,t,e);if(n.s!=null)return Eb(this.node.rawAttrs,t,e);if(n.b!=null)return _b(this.node.rawAttrs,t,e);if(n.shape!=null)return Rb(this.node.rawAttrs,t,e);if(n.type!=null)return $b(this.node.rawAttrs,t,e);if(n.list!=null){if(n.list.i!=null||n.list.f!=null)return Fb(this.node.rawAttrs,t,e);if(n.list.s!=null)return Ob(this.node.rawAttrs,t,e);if(n.list.shape!=null)return Pb(this.node.rawAttrs,t,e);if(n.list.b!=null)return Lb(this.node.rawAttrs,t,e);if(n.list.type!=null)return Db(this.node.rawAttrs,t,e)}return e}};var se={};Wt(se,{OP_SCOPE_SUFFIX:()=>AS,abs:()=>Ee,acos:()=>lx,acosh:()=>ux,add:()=>X,addN:()=>BE,all:()=>Jp,any:()=>ju,argMax:()=>Ri,argMin:()=>cx,asin:()=>px,asinh:()=>mx,atan:()=>fx,atan2:()=>dx,atanh:()=>hx,avgPool:()=>Ql,avgPool3d:()=>xx,basicLSTMCell:()=>WE,batchNorm:()=>Oi,batchNorm2d:()=>yx,batchNorm3d:()=>bx,batchNorm4d:()=>wx,batchToSpaceND:()=>tu,bincount:()=>Cx,booleanMaskAsync:()=>l6,broadcastArgs:()=>HE,broadcastTo:()=>Pi,buffer:()=>wt,cast:()=>J,ceil:()=>Ix,clipByValue:()=>vr,clone:()=>an,complex:()=>In,concat:()=>oe,concat1d:()=>vx,concat2d:()=>Sx,concat3d:()=>Nx,concat4d:()=>Tx,conv1d:()=>tm,conv2d:()=>Sn,conv2dTranspose:()=>rm,conv3d:()=>kx,conv3dTranspose:()=>_x,cos:()=>eu,cosh:()=>nm,cosineWindow:()=>gh,cumprod:()=>Zu,cumsum:()=>om,denseBincount:()=>ph,depthToSpace:()=>Ax,depthwiseConv2d:()=>Li,diag:()=>qE,dilation2d:()=>$x,div:()=>pt,divNoNan:()=>Dx,dot:()=>Rx,dropout:()=>p0,einsum:()=>KE,elu:()=>Mi,enclosingPowerOfTwo:()=>m0,equal:()=>Rr,erf:()=>Fx,euclideanNorm:()=>Ox,exp:()=>or,expandDims:()=>sr,expm1:()=>Px,eye:()=>Ju,fft:()=>uu,fill:()=>bo,floor:()=>zi,floorDiv:()=>Zp,fused:()=>pu,gather:()=>Bi,gatherND:()=>x6,greater:()=>Re,greaterEqual:()=>un,ifft:()=>nl,imag:()=>Jl,image:()=>so,inTopKAsync:()=>w6,irfft:()=>ym,isFinite:()=>Lx,isInf:()=>Mx,isNaN:()=>zx,leakyRelu:()=>ru,less:()=>sm,lessEqual:()=>zn,linalg:()=>d0,linspace:()=>YE,localResponseNormalization:()=>Bx,log:()=>Nr,log1p:()=>nu,logSigmoid:()=>Wx,logSoftmax:()=>im,logSumExp:()=>am,logicalAnd:()=>Or,logicalNot:()=>ou,logicalOr:()=>lm,logicalXor:()=>Ux,losses:()=>wX,lowerBound:()=>ZE,matMul:()=>Lt,max:()=>Sr,maxPool:()=>su,maxPool3d:()=>qx,maxPoolWithArgmax:()=>JE,maximum:()=>Nn,mean:()=>Se,meshgrid:()=>QE,min:()=>el,minimum:()=>Vi,mirrorPad:()=>Kx,mod:()=>jx,moments:()=>Qu,movingAverage:()=>c6,mul:()=>D,multiRNNCell:()=>t_,multinomial:()=>e_,neg:()=>Ht,norm:()=>rl,notEqual:()=>Ws,oneHot:()=>$i,ones:()=>pr,onesLike:()=>wr,op:()=>T,outerProduct:()=>r_,pad:()=>pn,pad1d:()=>n_,pad2d:()=>o_,pad3d:()=>s_,pad4d:()=>i_,pool:()=>Xx,pow:()=>ln,prelu:()=>au,print:()=>Qg,prod:()=>Yx,raggedGather:()=>a_,raggedRange:()=>l_,raggedTensorToTensor:()=>u_,rand:()=>c_,randomGamma:()=>k_,randomNormal:()=>rc,randomStandardNormal:()=>E_,randomUniform:()=>Gi,range:()=>Wi,real:()=>tl,reciprocal:()=>ey,relu:()=>Pr,relu6:()=>um,reshape:()=>R,reverse:()=>mr,reverse1d:()=>__,reverse2d:()=>A_,reverse3d:()=>$_,reverse4d:()=>D_,rfft:()=>cu,round:()=>cm,rsqrt:()=>pm,scalar:()=>mt,scatterND:()=>m6,searchSorted:()=>fh,selu:()=>mm,separableConv2d:()=>fm,setdiff1dAsync:()=>R_,sigmoid:()=>Jr,sign:()=>ry,signal:()=>bX,sin:()=>dm,sinh:()=>hm,slice:()=>Rt,slice1d:()=>gm,slice2d:()=>hh,slice3d:()=>xm,slice4d:()=>nc,softmax:()=>lu,softplus:()=>Gs,spaceToBatchND:()=>iu,sparse:()=>CX,sparseToDense:()=>h6,spectral:()=>yX,split:()=>fr,sqrt:()=>ve,square:()=>Mt,squaredDifference:()=>bm,squeeze:()=>Bn,stack:()=>qe,step:()=>Co,stridedSlice:()=>ny,string:()=>IX,sub:()=>ct,sum:()=>ft,tan:()=>oy,tanh:()=>Fi,tensor:()=>nr,tensor1d:()=>Ke,tensor2d:()=>Us,tensor3d:()=>nx,tensor4d:()=>F_,tensor5d:()=>O_,tensor6d:()=>P_,tile:()=>Fr,topk:()=>sy,transpose:()=>Ot,truncatedNormal:()=>wm,unique:()=>iy,unsortedSegmentSum:()=>Cm,unstack:()=>dr,upperBound:()=>L_,variable:()=>ay,where:()=>_e,whereAsync:()=>uy,zeros:()=>Ne,zerosLike:()=>It});var BD=(r,t,e,n=se)=>{switch(r.op){case"BiasAdd":case"AddV2":case"Add":return[n.add(I("a",r,t,e),I("b",r,t,e))];case"AddN":return[n.addN(I("tensors",r,t,e))];case"FloorMod":case"Mod":return[n.mod(I("a",r,t,e),I("b",r,t,e))];case"Mul":return[n.mul(I("a",r,t,e),I("b",r,t,e))];case"RealDiv":case"Div":return[n.div(I("a",r,t,e),I("b",r,t,e))];case"DivNoNan":return[n.divNoNan(I("a",r,t,e),I("b",r,t,e))];case"FloorDiv":return[n.floorDiv(I("a",r,t,e),I("b",r,t,e))];case"Sub":return[n.sub(I("a",r,t,e),I("b",r,t,e))];case"Minimum":return[n.minimum(I("a",r,t,e),I("b",r,t,e))];case"Maximum":return[n.maximum(I("a",r,t,e),I("b",r,t,e))];case"Pow":return[n.pow(I("a",r,t,e),I("b",r,t,e))];case"SquaredDifference":return[n.squaredDifference(I("a",r,t,e),I("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var VD=(r,t,e,n=se)=>{switch(r.op){case"Abs":case"ComplexAbs":return[n.abs(I("x",r,t,e))];case"Acos":return[n.acos(I("x",r,t,e))];case"Acosh":return[n.acosh(I("x",r,t,e))];case"Asin":return[n.asin(I("x",r,t,e))];case"Asinh":return[n.asinh(I("x",r,t,e))];case"Atan":return[n.atan(I("x",r,t,e))];case"Atan2":return[n.atan2(I("x",r,t,e),I("y",r,t,e))];case"Atanh":return[n.atanh(I("x",r,t,e))];case"Ceil":return[n.ceil(I("x",r,t,e))];case"Complex":return[n.complex(I("real",r,t,e),I("imag",r,t,e))];case"Cos":return[n.cos(I("x",r,t,e))];case"Cosh":return[n.cosh(I("x",r,t,e))];case"Elu":return[n.elu(I("x",r,t,e))];case"Erf":return[n.erf(I("x",r,t,e))];case"Exp":return[n.exp(I("x",r,t,e))];case"Expm1":return[n.expm1(I("x",r,t,e))];case"Floor":return[n.floor(I("x",r,t,e))];case"Log":return[n.log(I("x",r,t,e))];case"Log1p":return[n.log1p(I("x",r,t,e))];case"Imag":return[n.imag(I("x",r,t,e))];case"Neg":return[n.neg(I("x",r,t,e))];case"Reciprocal":return[n.reciprocal(I("x",r,t,e))];case"Real":return[n.real(I("x",r,t,e))];case"Relu":return[n.relu(I("x",r,t,e))];case"Round":return[n.round(I("x",r,t,e))];case"Selu":return[n.selu(I("x",r,t,e))];case"Sigmoid":return[n.sigmoid(I("x",r,t,e))];case"Sin":return[n.sin(I("x",r,t,e))];case"Sign":return[n.sign(I("x",r,t,e))];case"Sinh":return[n.sinh(I("x",r,t,e))];case"Softplus":return[n.softplus(I("x",r,t,e))];case"Sqrt":return[n.sqrt(I("x",r,t,e))];case"Square":return[n.square(I("x",r,t,e))];case"Tanh":return[n.tanh(I("x",r,t,e))];case"Tan":return[n.tan(I("x",r,t,e))];case"ClipByValue":return[n.clipByValue(I("x",r,t,e),I("clipValueMin",r,t,e),I("clipValueMax",r,t,e))];case"Relu6":return[n.relu6(I("x",r,t,e))];case"Rsqrt":return[n.rsqrt(Cr(r.inputNames[0],t,e))];case"Prod":return[n.prod(I("x",r,t,e),I("axes",r,t,e))];case"LeakyRelu":return[n.leakyRelu(I("x",r,t,e),I("alpha",r,t,e))];case"Prelu":return[n.prelu(I("x",r,t,e),I("alpha",r,t,e))];case"IsNan":return[n.isNaN(Cr(r.inputNames[0],t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function Wn(r,t,e=""){if(!(typeof r=="number"||typeof t=="number")){y.assert(r.length===t.length,()=>e+` Shapes ${r} and ${t} must match`);for(let n=0;ne+` Shapes ${r} and ${t} must match`)}}}function GD(r){return!(typeof r=="number"||r.some(t=>t<0))}function Xf(r,t,e){let n=zb(r,e),o=!GD(n);if(o&&t.length===0)throw new Error(`Tried to calculate elements of an empty list with non-fully-defined elementShape: ${n}`);if(o&&t.forEach(s=>{n=zb(s.shape,n)}),!GD(n))throw new Error(`Non-fully-defined elementShape: ${n}`);return n}function zb(r,t){if(typeof r=="number")return t;if(typeof t=="number")return r;if(r.length!==t.length)throw new Error(`Incompatible ranks during merge: ${r} vs. ${t}`);let e=[];for(let n=0;n=0&&s>=0&&o!==s)throw new Error(`Incompatible shape during merge: ${r} vs. ${t}`);e[n]=o>=0?o:s}return e}var Bb=class{constructor(t,e,n,o,s,i,a){this.name=t,this.dtype=e,this.maxSize=n,this.elementShape=o,this.identicalElementShapes=s,this.dynamicSize=i,this.clearAfterRead=a,this.tensors=[],this.closed_=!1,this.idTensor=mt(0),Ae(this.idTensor)}get id(){return this.idTensor.id}get closed(){return this.closed_}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.tensor.id))&&e.tensor.dispose()}),this.tensors=[],this.closed_=!0,this.idTensor.dispose()}size(){return this.tensors.length}read(t){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||t>=this.size())throw new Error(`Tried to read from index ${t}, but array size is: ${this.size()}`);let e=this.tensors[t];if(e.cleared)throw new Error(`TensorArray ${this.name}: Could not read index ${t} twice because it was cleared after a previous read (perhaps try setting clear_after_read = false?).`);return this.clearAfterRead&&(e.cleared=!0),e.read=!0,e.tensor}readMany(t){return t.map(e=>this.read(e))}write(t,e){if(this.closed_)throw new Error(`TensorArray ${this.name} has already been closed.`);if(t<0||!this.dynamicSize&&t>=this.maxSize)throw new Error(`Tried to write to index ${t}, but array is not resizeable and size is: ${this.maxSize}`);let n=this.tensors[t]||{};if(e.dtype!==this.dtype)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, + because the value dtype is ${e.dtype}, but TensorArray dtype is ${this.dtype}.`);if(this.size()===0&&(this.elementShape==null||this.elementShape.length===0)&&(this.elementShape=e.shape),Wn(this.elementShape,e.shape,`TensorArray ${this.name}: Could not write to TensorArray index ${t}.`),n.read)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been read.`);if(n.written)throw new Error(`TensorArray ${this.name}: Could not write to TensorArray index ${t}, because it has already been written.`);n.tensor=e,Ae(e),n.written=!0,this.tensors[t]=n}writeMany(t,e){if(t.length!==e.length)throw new Error(`TensorArray ${this.name}: could not write multiple tensors,because the index size: ${t.length} is not the same as tensors size: ${e.length}.`);t.forEach((n,o)=>this.write(n,e[o]))}gather(t,e){if(!!e&&e!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but gather requested dtype ${e}`);if(t)t=t.slice(0,this.size());else{t=[];for(let o=0;o=this.maxSize)throw new Error(`Max index must be < array size (${n} vs. ${this.maxSize})`);this.writeMany(t,dr(e,0))}split(t,e){if(e.dtype!==this.dtype)throw new Error(`TensorArray dtype is ${this.dtype} but tensor has dtype ${e.dtype}`);let n=0,o=t.map(u=>(n+=u,n));if(n!==e.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Vn(e,s.shape,"TensorList shape mismatch: "),De(s)}),this.idTensor=mt(0),this.maxNumElements=o,De(this.idTensor)}get id(){return this.idTensor.id}copy(){return new ml([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Vn(t,this.elementShape,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return nr(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Kf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Vn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Vn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");De(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new ml([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Vn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=Kf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Vn(this.elementShape,e.shape,"TensorList shape mismatch: "),De(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Vn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=Kf(this.elementShape,this.tensors,n);return t.length===0?ur([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return nr(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Vn(this.elementShape,e,"TensorList shape mismatch: ");let n=Kf(this.elementShape,this.tensors,e);return this.size()===0?ur([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return ne(o,0)})}};function VD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Vn(o,t,"TensorList shape mismatch: ");let s=vr(r);return new ml(s,t,n)}function GD(r,t,e,n){return new ml([],r,t,n)}function WD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new ml([],e,r.dtype,n),i=vr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function UD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to + ${n}, and tensor's shape is: ${e.shape}`);if(!this.dynamicSize&&t.length!==this.maxSize)throw new Error(`TensorArray's size is not equal to the size of lengths (${this.maxSize} vs. ${t.length}), and the TensorArray is not marked as dynamically resizeable`);let s=n===0?0:e.size/n,i=[];B(()=>{e=R(e,[1,n,s]);for(let u=0;u{if(n!==s.dtype)throw new Error(`Invalid data types; op elements ${n}, but list elements ${s.dtype}`);Wn(e,s.shape,"TensorList shape mismatch: "),Ae(s)}),this.idTensor=mt(0),this.maxNumElements=o,Ae(this.idTensor)}get id(){return this.idTensor.id}copy(){return new hl([...this.tensors],this.elementShape,this.elementDtype)}clearAndClose(t){this.tensors.forEach(e=>{(t==null||!t.has(e.id))&&e.dispose()}),this.tensors.length=0,this.idTensor.dispose()}size(){return this.tensors.length}stack(t,e,n=-1){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(n!==-1&&this.tensors.length!==n)throw new Error(`Operation expected a list with ${n} elements but got a list with ${this.tensors.length} elements.`);Wn(t,this.elementShape,"TensorList shape mismatch: ");let o=Xf(this.elementShape,this.tensors,t);return B(()=>{let s=this.tensors.map(i=>R(i,o));return qe(s,0)})}popBack(t,e){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);if(this.size()===0)throw new Error("Trying to pop from an empty list.");let n=Xf(this.elementShape,this.tensors,t),o=this.tensors.pop();return o.kept=!1,Wn(o.shape,t,"TensorList shape mismatch: "),R(o,n)}pushBack(t){if(t.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${t.dtype}, but list elements ${this.elementDtype}`);if(Wn(t.shape,this.elementShape,"TensorList shape mismatch: "),this.maxNumElements===this.size())throw new Error("Trying to push element into a full list.");Ae(t),this.tensors.push(t)}resize(t){if(t<0)throw new Error(`TensorListResize expects size to be non-negative. Got: ${t}`);if(this.maxNumElements!==-1&&t>this.maxNumElements)throw new Error(`TensorListResize input size ${t} is greater maxNumElement ${this.maxNumElements}.`);let e=new hl([],this.elementShape,this.elementDtype,this.maxNumElements);e.tensors.length=t;for(let n=0;nthis.tensors.length)throw new Error(`Trying to access element ${t} in a list with ${this.tensors.length} elements.`);if(this.tensors[t]==null)throw new Error(`element at index ${t} is null.`);Wn(this.tensors[t].shape,e,"TensorList shape mismatch: ");let o=Xf(this.elementShape,this.tensors,e);return R(this.tensors[t],o)}setItem(t,e){if(e.dtype!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e.dtype}, but list elements ${this.elementDtype}`);if(t<0||this.maxNumElements!==-1&&t>=this.maxNumElements)throw new Error(`Trying to set element ${t} in a list with max ${this.maxNumElements} elements.`);Wn(this.elementShape,e.shape,"TensorList shape mismatch: "),Ae(e),this.tensors[t]!=null&&(this.tensors[t].kept=!1),this.tensors[t]=e}gather(t,e,n){if(e!==this.elementDtype)throw new Error(`Invalid data types; op elements ${e}, but list elements ${this.elementDtype}`);Wn(this.elementShape,n,"TensorList shape mismatch: "),t=t.slice(0,this.size());let o=Xf(this.elementShape,this.tensors,n);return t.length===0?nr([],[0].concat(o)):B(()=>{let s=t.map(i=>R(this.tensors[i],o));return qe(s,0)})}concat(t,e){if(!!t&&t!==this.elementDtype)throw new Error(`TensorList dtype is ${this.elementDtype} but concat requested dtype ${t}`);Wn(this.elementShape,e,"TensorList shape mismatch: ");let n=Xf(this.elementShape,this.tensors,e);return this.size()===0?nr([],[0].concat(n)):B(()=>{let o=this.tensors.map(s=>R(s,n));return oe(o,0)})}};function WD(r,t,e){let n=r.dtype;if(r.shape.length<1)throw new Error(`Tensor must be at least a vector, but saw shape: ${r.shape}`);if(r.dtype!==e)throw new Error(`Invalid data types; op elements ${r.dtype}, but list elements ${e}`);let o=r.shape.slice(1);Wn(o,t,"TensorList shape mismatch: ");let s=dr(r);return new hl(s,t,n)}function UD(r,t,e,n){return new hl([],r,t,n)}function HD(r,t,e,n){if(t.length!==r.shape[0])throw new Error(`Expected len(indices) == tensor.shape[0], but saw: ${t.length} vs. ${r.shape[0]}`);let o=Math.max(...t);if(n!=null&&n!==-1&&o>=n)throw new Error(`Max index must be < array size (${o} vs. ${n})`);let s=new hl([],e,r.dtype,n),i=dr(r,0);return t.forEach((a,u)=>{s.setItem(a,i[u])}),s}function qD(r,t,e){let n=0,o=t.map(c=>(n+=c,n));if(n!==r.shape[0])throw new Error(`Expected sum of lengths to be equal to tensor.shape[0], but sum of lengths is - ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=Mb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=S("thenBranch",r,t,e),o=S("elseBranch",r,t,e),s=S("cond",r,t,e),i=S("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=S("body",r,t,e),o=S("cond",r,t,e),s=S("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=S("pred",r,t,e);return[Zs(n)]}case"Switch":{let n=S("pred",r,t,e),o=S("data",r,t,e);return o.kept||(o=Zs(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>br(o,t,e)!==void 0);if(n){let o=br(n,t,e);return[Zs(o)]}return}case"Enter":{let n=S("frameName",r,t,e),o=S("tensor",r,t,e);return e.enterFrame(n),[Zs(o)]}case"Exit":{let n=S("tensor",r,t,e);return e.exitFrame(),[Zs(n)]}case"NextIteration":{let n=S("tensor",r,t,e);return e.nextIteration(),[Zs(n)]}case"TensorArrayV3":{let n=S("size",r,t,e),o=S("dtype",r,t,e),s=S("elementShape",r,t,e),i=S("dynamicSize",r,t,e),a=S("clearAfterRead",r,t,e),u=S("identicalElementShapes",r,t,e),l=S("name",r,t,e),c=new zb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=S("tensorArrayId",r,t,e),o=S("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=S("tensorArrayId",r,t,e),o=S("indices",r,t,e),s=S("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=S("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=S("tensorArrayId",r,t,e),o=S("tensor",r,t,e),s=S("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=S("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=S("tensorListId",r,t,e),o=S("index",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=S("indices",r,t,e),o=S("tensor",r,t,e),s=S("elementShape",r,t,e),i=S("numElements",r,t,e),a=WD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=S("elementShape",r,t,e),o=S("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=S(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=GD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=S("tensorListId",r,t,e),o=S("indices",r,t,e),s=S("elementShape",r,t,e),i=S("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=S("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e),i=VD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id),s=S("dtype",r,t,e),i=S("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=S("tensorListId",r,t,e),o=S("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=S("tensorListId",r,t,e),o=S("elementShape",r,t,e),s=S("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=S("tensor",r,t,e),o=S("elementShape",r,t,e),s=S("lengths",r,t,e),i=UD(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=S("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=S("tensorListId",r,t,e),o=S("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function qD(r,t,e){let[n,o]=S("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=S("numArgs",r,t,e);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=S("strides",r,t,e),p=Rh(r,t,e),m=S("dataFormat",r,t,e).toUpperCase(),f=S("dilations",r,t,e),[d,h]=S("args",r,t,e);i&&(h=d,d=void 0);let g=S("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var KD=(r,t,e,n=ae)=>{switch(r.op){case"Conv1D":{let o=S("stride",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilation",r,t,e);return[n.conv1d(S("x",r,t,e),S("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv2d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.conv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=qD(r,t,e);return[n.fused.depthwiseConv2d({x:S("x",r,t,e),filter:S("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=S("outputShape",r,t,e),s=S("strides",r,t,e),i=Rh(r,t,e);return[n.conv2dTranspose(S("x",r,t,e),S("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=S("strides",r,t,e),s=Rh(r,t,e),i=S("dilations",r,t,e),a=S("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(S("input",r,t,e),S("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dataFormat",r,t,e).toUpperCase(),a=S("dilations",r,t,e);return[n.conv3d(S("x",r,t,e),S("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e),a=S("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(S("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.avgPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("kernelSize",r,t,e);return[n.maxPool3d(S("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=S("strides",r,t,e),s=S("pad",r,t,e),i=S("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(S("x",r,t,e),S("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var jD=(r,t,e,n=ae)=>{switch(r.op){case"Fill":{let o=S("shape",r,t,e),s=S("dtype",r,t,e),i=S("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=S("logits",r,t,e),s=S("numSamples",r,t,e),i=S("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=S("indices",r,t,e),s=S("depth",r,t,e),i=S("onValue",r,t,e),a=S("offValue",r,t,e),u=S("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(S("shape",r,t,e),S("dtype",r,t,e))];case"OnesLike":return[n.onesLike(S("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(S("shape",r,t,e),S("dtype",r,t,e),S("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(S("shape",r,t,e),S("minval",r,t,e),S("maxval",r,t,e),S("dtype",r,t,e))];case"Range":{let o=S("start",r,t,e),s=S("stop",r,t,e),i=S("step",r,t,e);return[n.range(o,s,i,S("dtype",r,t,e))]}case"TruncatedNormal":{let o=S("shape",r,t,e),s=S("mean",r,t,e),i=S("stdDev",r,t,e),a=S("seed",r,t,e);return[n.truncatedNormal(o,s,i,S("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(S("shape",r,t,e),S("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function mN(r,t,e){let n=S("boxes",r,t,e),o=S("scores",r,t,e),s=S("maxOutputSize",r,t,e),i=S("iouThreshold",r,t,e),a=S("scoreThreshold",r,t,e),u=S("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var XD=async(r,t,e,n,o=ae)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=mN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e),c=S("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=mN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(S("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(S("x",r,t,e),S("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=ae)=>{switch(r.op){case"LowerBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=S("x",r,t,e),s=S("k",r,t,e),i=S("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=S("sortedSequence",r,t,e),s=S("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=S("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=S("x",r,t,e),s=S("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var ZD=(r,t,e,n=ae)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=S("default",r,t,e);return[br(r.name,t,e)||o];case"Placeholder":return[br(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=S("x",r,t,e);return[Zs(c)]}case"IdentityN":return S("x",r,t,e).map(c=>Zs(c));case"Snapshot":let s=S("x",r,t,e);return[Zs(s)];case"Shape":return[n.tensor1d(S("x",r,t,e).shape,"int32")];case"ShapeN":return S("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(S("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(S("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=S("x",r,t,e),a=S("data",r,t,e),u=S("message",r,t,e),l=S("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=vr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=S("keyDType",r,t,e),i=S("valueDType",r,t,e),a=new Bb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"LookupTableImport":case"LookupTableImportV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=S("tableHandle",r,t,e,n),s=S("keys",r,t,e),i=S("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=S("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=ae)=>{switch(r.op){case"ResizeBilinear":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=S("images",r,t,e),s=S("size",r,t,e),i=S("alignCorners",r,t,e),a=S("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=S("image",r,t,e),s=S("boxes",r,t,e),i=S("boxInd",r,t,e),a=S("cropSize",r,t,e),u=S("method",r,t,e),l=S("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=S("images",r,t,e),s=S("transforms",r,t,e),i=S("outputShape",r,t,e),a=S("fillValue",r,t,e),u=S("interpolation",r,t,e),l=S("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var tR=(r,t,e,n=ae)=>{switch(r.op){case"Equal":return[n.equal(S("a",r,t,e),S("b",r,t,e))];case"NotEqual":return[n.notEqual(S("a",r,t,e),S("b",r,t,e))];case"Greater":return[n.greater(S("a",r,t,e),S("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(S("a",r,t,e),S("b",r,t,e))];case"Less":return[n.less(S("a",r,t,e),S("b",r,t,e))];case"LessEqual":return[n.lessEqual(S("a",r,t,e),S("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(S("a",r,t,e),S("b",r,t,e))];case"LogicalNot":return[n.logicalNot(S("a",r,t,e))];case"LogicalOr":return[n.logicalOr(S("a",r,t,e),S("b",r,t,e))];case"Select":case"SelectV2":return[n.where(S("condition",r,t,e),S("a",r,t,e),S("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=ae)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(S("a",r,t,e),S("b",r,t,e),S("transposeA",r,t,e),S("transposeB",r,t,e))];case"Einsum":return[n.einsum(S("equation",r,t,e),...S("tensors",r,t,e))];case"Transpose":return[n.transpose(S("x",r,t,e),S("perm",r,t,e))];case"_FusedMatMul":let[o,s]=S("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=S("numArgs",r,t,e),l=S("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=S("args",r,t,e);return[n.fused.matMul({a:S("a",r,t,e),b:S("b",r,t,e),transposeA:S("transposeA",r,t,e),transposeB:S("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=ae)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(S("x",r,t,e),S("axis",r,t,e),S("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(S("x",r,t,e),S("mean",r,t,e),S("variance",r,t,e),S("offset",r,t,e),S("scale",r,t,e),S("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(S("x",r,t,e),S("radius",r,t,e),S("bias",r,t,e),S("alpha",r,t,e),S("beta",r,t,e))];case"Softmax":return[n.softmax(S("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(S("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(S("sparseIndices",r,t,e),S("outputShape",r,t,e),S("sparseValues",r,t,e),S("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=ae)=>{switch(r.op){case"Max":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.max(S("x",r,t,e),a,u)]}case"Mean":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.mean(S("x",r,t,e),a,u)]}case"Min":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.min(S("x",r,t,e),a,u)]}case"Sum":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.sum(S("x",r,t,e),a,u)]}case"All":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.all(S("x",r,t,e),a,u)]}case"Any":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.any(S("x",r,t,e),a,u)]}case"ArgMax":{let a=S("axis",r,t,e);return[n.argMax(S("x",r,t,e),a)]}case"ArgMin":{let a=S("axis",r,t,e);return[n.argMin(S("x",r,t,e),a)]}case"Prod":{let a=S("axis",r,t,e),u=S("keepDims",r,t,e);return[n.prod(S("x",r,t,e),a,u)]}case"Cumprod":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumprod(S("x",r,t,e),a,u,l)]}case"Cumsum":{let a=S("axis",r,t,e),u=S("exclusive",r,t,e),l=S("reverse",r,t,e);return[n.cumsum(S("x",r,t,e),a,u,l)]}case"Bincount":let o=S("x",r,t,e),s=S("weights",r,t,e),i=S("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=S("x",r,t,e),u=S("weights",r,t,e),l=S("size",r,t,e),c=S("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=ae)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=S("n",r,t,e),s=S("axis",r,t,e),i=S("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=S("axis",r,t,e),s=S("batchDims",r,t,e),i=S("x",r,t,e),a=S("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=S("dims",r,t,e),s=[];for(let a=0;a{let o=S("axis",r,t,e),s=S("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=S("axis",r,t,e),s=S("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=S("reps",r,t,e);return[n.tile(S("x",r,t,e),o)]}case"Split":case"SplitV":{let o=S("axis",r,t,e),s=S("numOrSizeSplits",r,t,e),i=S("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=S("indices",r,t,e),s=S("values",r,t,e),i=S("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=S("x",r,t,e),s=S("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=S("sparseIndices",r,t,e),s=S("outputShape",r,t,e),i=S("sparseValues",r,t,e),a=S("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=ae)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(S("indices",r,t,e),S("values",r,t,e),S("denseShape",r,t,e),S("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(S("inputIndices",r,t,e),S("inputShape",r,t,e),S("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(S("data",r,t,e),S("indices",r,t,e),S("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=ae)=>{switch(r.op){case"FFT":return[n.fft(S("x",r,t,e))];case"IFFT":return[n.ifft(S("x",r,t,e))];case"RFFT":return[n.rfft(S("x",r,t,e))];case"IRFFT":return[n.irfft(S("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=ae)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(S("data",r,t,e),S("dataSplits",r,t,e),S("separator",r,t,e),S("nGramWidths",r,t,e),S("leftPad",r,t,e),S("rightPad",r,t,e),S("padWidth",r,t,e),S("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(S("input",r,t,e),S("delimiter",r,t,e),S("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(S("input",r,t,e),S("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=ae)=>{switch(r.op){case"Cast":return[n.cast(S("x",r,t,e),S("dtype",r,t,e))];case"ExpandDims":{let o=S("axis",r,t,e);return[n.expandDims(S("x",r,t,e),o)]}case"Squeeze":{let o=S("axis",r,t,e);return[n.squeeze(S("x",r,t,e),o)]}case"Reshape":return[n.reshape(S("x",r,t,e),S("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(S("x",r,t,e),S("padding",r,t,e),S("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(S("x",r,t,e),S("padding",r,t,e),S("constantValue",r,t,e))];case"SpaceToBatchND":{let o=S("blockShape",r,t,e),s=S("paddings",r,t,e);return[n.spaceToBatchND(S("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=S("blockShape",r,t,e),s=S("crops",r,t,e);return[n.batchToSpaceND(S("x",r,t,e),o,s)]}case"DepthToSpace":{let o=S("blockSize",r,t,e),s=S("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(S("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(S("x",r,t,e),S("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(S("s0",r,t,e),S("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function fN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>MD(i,a,u));case"basic_math":return o(()=>zD(i,a,u));case"control":return HD(i,a,u);case"convolution":return o(()=>KD(i,a,u));case"creation":return o(()=>jD(i,a,u));case"dynamic":return XD(i,a,u);case"evaluation":return o(()=>YD(i,a,u));case"image":return o(()=>QD(i,a,u));case"graph":return o(()=>ZD(i,a,u));case"logical":return o(()=>tR(i,a,u));case"matrices":return o(()=>eR(i,a,u));case"normalization":return o(()=>rR(i,a,u));case"reduction":return o(()=>nR(i,a,u));case"slice_join":return o(()=>oR(i,a,u));case"sparse":return o(()=>sR(i,a,u));case"spectral":return o(()=>iR(i,a,u));case"string":return o(()=>aR(i,a,u));case"transformation":return o(()=>lR(i,a,u));case"hash_table":return JD(i,a,u,n);case"custom":let l=Nb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Lb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Oh=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function dN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>xn(m)[0]),c=[];n!=null&&(c=n.map(m=>xn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((hN(m)||F7(m)||O7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function uR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>xn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var $7=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],D7=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],R7=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function hN(r){return $7.indexOf(r.op)>=0}function F7(r){return D7.indexOf(r.op)>=0}function O7(r){return R7.indexOf(r.op)>=0}var Nc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.intermediateTensors={},this.keepTensorForDebug=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new Nc(t.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+"--"+o.join(this.SEPERATOR)}compile(t,e){let n=dN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return uR(this.graph,this.weightMap,n)}execute(t,e){t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[xn(p)[0]]),s=e.map(p=>xn(p)[0]),i=s.map(p=>this.graph.nodes[p]);this.resetIntermediateTensors(),i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));let l={},c={};return B(()=>{let p=new Oh(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);Object.keys(t).forEach(h=>{let[g,x]=xn(h),b=[];b[x]=t[h],m[g]=b});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hbr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category==="control"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!=="control"){let l=FD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];if(p===1){if(!this.keepTensorForDebug)c.dispose();else{let[m,f]=_o(e.name,o);this.intermediateTensors[m]?this.intermediateTensors[m][f]=c:(this.intermediateTensors[m]=[],this.intermediateTensors[m][f]=c)}delete a[c.id]}else p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.intermediateTensors||(Object.keys(this.intermediateTensors).forEach(t=>this.intermediateTensors[t].forEach(e=>e.dispose())),this.disposeTensorsMap())}disposeTensorsMap(){!this.tensorsMap||Object.keys(this.tensorsMap).forEach(t=>{this.tensorsMap[t].forEach(n=>{n&&!n.kept&&!n.isDisposed&&!this.keepIds.has(n.id)&&n.dispose()})})}getIntermediateTensors(){return this.tensorsMap}resetIntermediateTensors(){for(let t in this.intermediateTensors)this.intermediateTensors[t].forEach(e=>e.dispose()),delete this.intermediateTensors[t]}async _executeAsync(t,e,n=!1,o={},s={}){n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepTensorForDebug=z().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(c){console.warn(c.message)}this.resetIntermediateTensors();let i=new Oh(this.weightMap,o,s,this.functionExecutorMap);this.tensorsMap=await this.executeWithControlFlow(t,i,e,n);let a=e.map(c=>br(c,this.tensorsMap,i)),u=a.map(c=>c.id),l=Object.keys(t).map(c=>t[c].id);return this.keepIds=new Set([...u,...l,...this.weightIds]),this.keepTensorForDebug||this.disposeTensorsMap(),this.parent==null&&i.dispose(this.keepIds),a}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[xn(w)[0]]),a=n.map(w=>xn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=dN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=xn(w),_=[];_[N]=t[w],d[C]=_});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=u.filter(w=>!hN(w)&&!br(w.name,d,e)).map(w=>w.name);if(b.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&S("isConstant",p.node,o,n)&&([m]=_o(p.node.name,n)),o[p.node.name]==null){let f=fN(p.node,o,n,this._resourceManager);m||([m]=_o(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=_o(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!br(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=xn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){let e={};for(let n in t)if(this._signature!=null&&this._signature.inputs!=null&&this._signature.inputs[n]!=null){let o=this._signature.inputs[n];e[o.name]=t[n]}else e[n]=t[n];return e}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=xn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>this._signature!=null&&this._signature.outputs!=null&&this._signature.outputs[e]!=null?this._signature.outputs[e].name:e,{})}checkOutputs(t){t.forEach(e=>{let[n]=xn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Vb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var P7="?tfjs-format=file",L7="model.json",Ph=class{constructor(t,e={},n=_r){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Vb}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new Nc(Fh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Fh.Instance.transformGraph(t.modelInitializer);this.initializer=new Nc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}predict(t,e){let n=this.execute(t,this.outputNodes);if(this.structuredOutputKeys){let o=n instanceof Ft?[n]:n,s={};return o.forEach((i,a)=>s[this.structuredOutputKeys[a]]=i),s}return n}normalizeInputs(t){if(!(t instanceof Ft)&&!Array.isArray(t)){if(this.signature!=null&&this.signature.inputs!=null)for(let o in this.signature.inputs){let s=this.signature.inputs[o];s.resourceId!=null&&(t[o]=this.resourceIdToCapturedInput[s.resourceId])}return t}t=Array.isArray(t)?t:[t];let e=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+e!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-e} non-resource placeholders, while there are ${t.length} input tensors provided.`);let n=0;return this.inputNodes.reduce((o,s)=>{let i=this.signature?this.signature.inputs[s]:null;return i!=null&&i.resourceId!=null?o[s]=this.resourceIdToCapturedInput[i.resourceId]:o[s]=t[n++],o},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=Object.keys(this.initializerSignature.outputs);for(let n=0;n1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&vt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function M7(r,t={},e=_r){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof r=="string"&&(r=B7(r));let n=new Ph(r,t,e);return await n.load(),n}function z7(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=_r.getWeightSpecs(n.weightsManifest),i=_r.getModelArtifactsForJSONSync(n,s,o);t=_r.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=_r.fromMemorySync(r);else throw new Error("Unknown model format");let e=new Ph(t);return e.load(),e}function B7(r){return r.endsWith("/")||(r=r+"/"),`${r}${L7}${P7}`}var cR="4.0.0";var AR={};Wt(AR,{CSVDataset:()=>Yf,Dataset:()=>Js,FileDataSource:()=>ed,TextLineDataset:()=>Xf,URLDataSource:()=>rd,array:()=>wR,csv:()=>NR,func:()=>TR,generator:()=>kR,microphone:()=>_R,version_data:()=>PN,webcam:()=>ER,zip:()=>CR});var bR=Tl(fh());var gR=Tl(fh());function pR(r,t){return Gb(r,t)}function Gb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(vu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Gb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function mR(r,t=xN){return fR(r,t)}function fR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(vu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=fR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function xN(r){return r===null?null:vu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Wb(r,t){let e=new Map;Gb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Gb(r,t,e)}function vu(r){let t=!1;if(z().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=gN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function dR(r){return r==null||V7(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ft||y.isTypedArray(r)}function V7(r){return r===null||typeof r!="object"&&typeof r!="function"}function hR(r){return pR(r,G7)}function G7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:vu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var jf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Tc=class extends jf{constructor(){super(Tc.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new SN(this,t,e)}columnMajorBatch(t,e=!0,n=xN){return this.rowMajorBatch(t,e).map(s=>mR(s,n))}concatenate(t,e){return new Hb(AN([this,t]),e)}take(t){return t<0||t==null?this:new IN(this,t)}skip(t){return t<0||t==null?this:new CN(this,t)}prefetch(t){return new qb(this,t)}shuffle(t,e){return new _N(this,t,e)}serial(){return new wN(this)}},yN=class extends Je{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:hR(t),done:!1}}},bN=class extends Je{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},wN=class extends Je{constructor(t){super(),this.upstream=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},CN=class extends Je{constructor(t,e){super(),this.upstream=t,this.maxCount=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},SN=class extends Je{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},vN=class extends Je{constructor(t,e){super(),this.upstream=t,this.predicate=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;vt(t.value)}}},NN=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},TN=class extends Je{constructor(t,e){super(),this.upstream=t,this.handler=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(t){if(!this.handler(t))return{value:null,done:!0}}}},Ub=class extends Je{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=go.getTensorsInContainer(t.value),n=await this.transform(t.value),o=go.getTensorsInContainer(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},kc=class extends Je{constructor(){super(),this.outputQueue=new Tc,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},kN=class extends kc{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=go.getTensorsInContainer(t.value),n=this.transform(t.value),o=go.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)go.isTensorInList(s,o)||s.dispose();return!0}},Hb=class extends Je{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},fl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(fl||(fl={}));var EN=class extends Je{constructor(t,e=fl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof Je?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Wb(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case fl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case fl.SHORTEST:return{value:null,done:!0};case fl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},qb=class extends Je{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new jf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},_N=class extends qb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=gR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var Js=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is - ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),kn(async()=>(await n.iterator()).columnMajorBatch(t,e,W7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,kn(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,kn(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return kn(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return kn(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let e=this;return kn(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,kn(async()=>{let o=Lh(async()=>({value:await e.iterator(),done:!1}));return xR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let o=this,s=bR.alea(e||y.now().toString());return kn(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,kn(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};Js.MAX_BUFFER_SIZE=1e4;function kn(r,t=null){return new class extends Js{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function wR(r){return kn(async()=>AN(r),r.length)}function CR(r){if(!vu(r))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(r))for(let e=0;e{let e=await Wb(r,n=>{if(n instanceof Js)return{value:n.iterator(),recurse:!1};if(vu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return yR(e,fl.SHORTEST)},t)}function W7(r){if(r===null)return null;let t=r[0];return dR(t)?{value:U7(r),recurse:!1}:{value:null,recurse:!0}}function U7(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ft?nr(r):ur(r)}var Xf=class extends Js{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` -`).map(o=>(o.endsWith("\r")&&(o=o.slice(0,-1)),o))}};var Kb='"',Mh=Symbol("out"),IR=Symbol("field"),jb=Symbol("quote"),$N=Symbol("quoteafterquote"),SR=Symbol("quoteinquote"),Yf=class extends Js{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Xf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=e.delimiter?e.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&t&&y.assert(t.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+t.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key "'+o+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(t={}){if(!z().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new Zf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),ur(n,e)}};var Jf=class extends Je{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Me([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Vs([i,s,u,a],[1,4])}else this.cropBox=Vs([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!z().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!e.resizeWidth||!e.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new Jf(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=nx.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=rr(J(t,"float32"),0),n;n=Gs.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return R(n,o.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var Qf=class{};var zh=class extends Je{split(t){return new DN(this,t)}},DN=class extends zh{constructor(t,e){super(),this.upstream=t,this.impl=new RN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},RN=class extends kc{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Xb=class extends Je{decodeUTF8(){return new FN(this)}},FN=class extends zh{constructor(t){super(),this.upstream=t,this.impl=new ON(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},ON=class extends kc{constructor(t){if(super(),this.upstream=t,z().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=gN();this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return z().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var td=class extends Xb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(z().get("IS_BROWSER")?t instanceof File||t instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError("FileReader returned unknown type."));e(u)},s.onabort=a=>n(new Error("Aborted")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function vR(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=H7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new td(i,t)}else throw new Error(s.statusText)}var H7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Yb(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var ed=class extends Qf{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Yb(this.input)&&z().get("IS_NODE")){let t=Zb();this.input=t.readFileSync(this.input.slice(7))}return new td(this.input,this.options)}};var rd=class extends Qf{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Yb(this.url)?new ed(this.url,this.fileOptions).iterator():vR(this.url,this.fileOptions)}};function NR(r,t={}){return new Yf(new rd(r),t)}function TR(r){let t=Lh(r);return kn(async()=>t)}function kR(r){return kn(async()=>{let t=await r();return Lh(()=>t.next())})}async function ER(r,t){return Jf.create(r,t)}async function _R(r){return Zf.create(r)}var PN="4.0.0";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var q7=Ur.whereImpl,Nu=class extends zo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new ra(this,Pn())}nextDataId(){return Nu.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,z().get("IS_NODE")&&v.warn(` + ${n}, and tensor's shape is: ${r.shape}`);let s=r.shape.slice(1),i=zb(s,e),a=n===0?0:r.size/n,u=B(()=>{let c=[];r=R(r,[1,n,a]);for(let p=0;p{switch(r.op){case"If":case"StatelessIf":{let n=I("thenBranch",r,t,e),o=I("elseBranch",r,t,e),s=I("cond",r,t,e),i=I("args",r,t,e);return(await s.data())[0]?e.functionMap[n].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap):e.functionMap[o].executeFunctionAsync(i,e.tensorArrayMap,e.tensorListMap)}case"While":case"StatelessWhile":{let n=I("body",r,t,e),o=I("cond",r,t,e),s=I("args",r,t,e),i=await e.functionMap[o].executeFunctionAsync(s,e.tensorArrayMap,e.tensorListMap),a=s.map(c=>c.id),u=await i[0].data();i.forEach(c=>{!c.kept&&a.indexOf(c.id)===-1&&c.dispose()});let l=s;for(;u[0];){let c=l;l=await e.functionMap[n].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);let p=l.map(f=>f.id);c.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()});let m=await e.functionMap[o].executeFunctionAsync(l,e.tensorArrayMap,e.tensorListMap);u=await m[0].data(),m.forEach(f=>{!f.kept&&a.indexOf(f.id)===-1&&p.indexOf(f.id)===-1&&f.dispose()})}return l}case"LoopCond":{let n=I("pred",r,t,e);return[ti(n)]}case"Switch":{let n=I("pred",r,t,e),o=I("data",r,t,e);return o.kept||(o=ti(o)),(await n.data())[0]?[void 0,o]:[o,void 0]}case"Merge":{let n=r.inputNames.find(o=>Cr(o,t,e)!==void 0);if(n){let o=Cr(n,t,e);return[ti(o)]}return}case"Enter":{let n=I("frameName",r,t,e),o=I("tensor",r,t,e);return e.enterFrame(n),[ti(o)]}case"Exit":{let n=I("tensor",r,t,e);return e.exitFrame(),[ti(n)]}case"NextIteration":{let n=I("tensor",r,t,e);return e.nextIteration(),[ti(n)]}case"TensorArrayV3":{let n=I("size",r,t,e),o=I("dtype",r,t,e),s=I("elementShape",r,t,e),i=I("dynamicSize",r,t,e),a=I("clearAfterRead",r,t,e),u=I("identicalElementShapes",r,t,e),l=I("name",r,t,e),c=new Bb(l,o,n,s,u,i,a);return e.addTensorArray(c),[c.idTensor,mt(1)]}case"TensorArrayWriteV3":{let n=I("tensorArrayId",r,t,e),o=I("index",r,t,e),s=I("tensor",r,t,e),i=e.getTensorArray(n.id);return i.write(o,s),[i.idTensor]}case"TensorArrayReadV3":{let n=I("tensorArrayId",r,t,e),o=I("index",r,t,e);return[e.getTensorArray(n.id).read(o)]}case"TensorArrayGatherV3":{let n=I("tensorArrayId",r,t,e),o=I("indices",r,t,e),s=I("dtype",r,t,e);return[e.getTensorArray(n.id).gather(o,s)]}case"TensorArrayScatterV3":{let n=I("tensorArrayId",r,t,e),o=I("indices",r,t,e),s=I("tensor",r,t,e),i=e.getTensorArray(n.id);return i.scatter(o,s),[i.idTensor]}case"TensorArrayConcatV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id),s=I("dtype",r,t,e);return[o.concat(s)]}case"TensorArraySplitV3":{let n=I("tensorArrayId",r,t,e),o=I("tensor",r,t,e),s=I("lengths",r,t,e),i=e.getTensorArray(n.id);return i.split(s,o),[i.idTensor]}case"TensorArraySizeV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return[mt(o.size(),"int32")]}case"TensorArrayCloseV3":{let n=I("tensorArrayId",r,t,e),o=e.getTensorArray(n.id);return o.clearAndClose(),[o.idTensor]}case"TensorListSetItem":{let n=I("tensorListId",r,t,e),o=I("index",r,t,e),s=I("tensor",r,t,e),i=e.getTensorList(n.id);return i.setItem(o,s),[i.idTensor]}case"TensorListGetItem":{let n=I("tensorListId",r,t,e),o=I("index",r,t,e),s=I("elementShape",r,t,e),i=I("elementDType",r,t,e);return[e.getTensorList(n.id).getItem(o,s,i)]}case"TensorListScatterV2":case"TensorListScatter":{let n=I("indices",r,t,e),o=I("tensor",r,t,e),s=I("elementShape",r,t,e),i=I("numElements",r,t,e),a=HD(o,n,s,i);return e.addTensorList(a),[a.idTensor]}case"TensorListReserve":case"EmptyTensorList":{let n=I("elementShape",r,t,e),o=I("elementDType",r,t,e),s;r.op==="TensorListReserve"?s="numElements":s="maxNumElements";let i=I(s,r,t,e),a=r.op==="TensorListReserve"?-1:i,u=UD(n,o,i,a);return e.addTensorList(u),[u.idTensor]}case"TensorListGather":{let n=I("tensorListId",r,t,e),o=I("indices",r,t,e),s=I("elementShape",r,t,e),i=I("elementDType",r,t,e);return[e.getTensorList(n.id).gather(o,i,s)]}case"TensorListStack":{let n=I("tensorListId",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e),i=I("numElements",r,t,e);return[e.getTensorList(n.id).stack(o,s,i)]}case"TensorListFromTensor":{let n=I("tensor",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e),i=WD(n,o,s);return e.addTensorList(i),[i.idTensor]}case"TensorListConcat":case"TensorListConcatV2":{let n=I("tensorListId",r,t,e),o=e.getTensorList(n.id),s=I("dtype",r,t,e),i=I("elementShape",r,t,e);return[o.concat(s,i)]}case"TensorListPushBack":{let n=I("tensorListId",r,t,e),o=I("tensor",r,t,e),s=e.getTensorList(n.id);return s.pushBack(o),[s.idTensor]}case"TensorListPopBack":{let n=I("tensorListId",r,t,e),o=I("elementShape",r,t,e),s=I("elementDType",r,t,e);return[e.getTensorList(n.id).popBack(o,s)]}case"TensorListSplit":{let n=I("tensor",r,t,e),o=I("elementShape",r,t,e),s=I("lengths",r,t,e),i=qD(n,s,o);return e.addTensorList(i),[i.idTensor]}case"TensorListLength":{let n=I("tensorListId",r,t,e),o=e.getTensorList(n.id);return[mt(o.size(),"int32")]}case"TensorListResize":{let n=I("tensorListId",r,t,e),o=I("size",r,t,e),i=e.getTensorList(n.id).resize(o);return e.addTensorList(i),[i.idTensor]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};function jD(r,t,e){let[n,o]=I("fusedOps",r,t,e),s=n==="biasadd",i=!s,a=o==="prelu",u=n==="fusedbatchnorm",l=I("numArgs",r,t,e);if(s){if(a&&l!==2)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&s&&l!==1)throw new Error("FusedConv2d and DepthwiseConv2d with BiasAdd must have one extra argument: bias.")}if(u)throw new Error("FusedConv2d and DepthwiseConv2d with FusedBatchNorm is not supported");let c=I("strides",r,t,e),p=Fh(r,t,e),m=I("dataFormat",r,t,e).toUpperCase(),f=I("dilations",r,t,e),[d,h]=I("args",r,t,e);i&&(h=d,d=void 0);let g=I("leakyreluAlpha",r,t,e);return{stride:c,pad:p,dataFormat:m,dilations:f,biasArg:d,preluArg:h,activationFunc:o,leakyreluAlpha:g}}var XD=(r,t,e,n=se)=>{switch(r.op){case"Conv1D":{let o=I("stride",r,t,e),s=I("pad",r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilation",r,t,e);return[n.conv1d(I("x",r,t,e),I("filter",r,t,e),o,s,i,a)]}case"Conv2D":{let o=I("strides",r,t,e),s=Fh(r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilations",r,t,e);return[n.conv2d(I("x",r,t,e),I("filter",r,t,e),[o[1],o[2]],s,i,[a[1],a[2]])]}case"_FusedConv2D":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=jD(r,t,e);return[n.fused.conv2d({x:I("x",r,t,e),filter:I("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"FusedDepthwiseConv2dNative":{let{stride:o,pad:s,dataFormat:i,dilations:a,biasArg:u,preluArg:l,activationFunc:c,leakyreluAlpha:p}=jD(r,t,e);return[n.fused.depthwiseConv2d({x:I("x",r,t,e),filter:I("filter",r,t,e),strides:[o[1],o[2]],pad:s,dataFormat:i,dilations:[a[1],a[2]],bias:u,activation:c,preluActivationWeights:l,leakyreluAlpha:p})]}case"Conv2DBackpropInput":case"Conv2dTranspose":{let o=I("outputShape",r,t,e),s=I("strides",r,t,e),i=Fh(r,t,e);return[n.conv2dTranspose(I("x",r,t,e),I("filter",r,t,e),o,[s[1],s[2]],i)]}case"DepthwiseConv2dNative":case"DepthwiseConv2d":{let o=I("strides",r,t,e),s=Fh(r,t,e),i=I("dilations",r,t,e),a=I("dataFormat",r,t,e).toUpperCase();return[n.depthwiseConv2d(I("input",r,t,e),I("filter",r,t,e),[o[1],o[2]],s,a,[i[1],i[2]])]}case"Conv3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("dataFormat",r,t,e).toUpperCase(),a=I("dilations",r,t,e);return[n.conv3d(I("x",r,t,e),I("filter",r,t,e),[o[1],o[2],o[3]],s,i,[a[1],a[2],a[3]])]}case"AvgPool":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.avgPool(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPool":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.maxPool(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s)]}case"MaxPoolWithArgmax":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e),a=I("includeBatchInIndex",r,t,e),{result:u,indexes:l}=n.maxPoolWithArgmax(I("x",r,t,e),[i[1],i[2]],[o[1],o[2]],s,a);return[u,l]}case"AvgPool3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.avgPool3d(I("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"MaxPool3D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("kernelSize",r,t,e);return[n.maxPool3d(I("x",r,t,e),[i[1],i[2],i[3]],[o[1],o[2],o[3]],s)]}case"Dilation2D":{let o=I("strides",r,t,e),s=I("pad",r,t,e),i=I("dilations",r,t,e),a=o[1],u=o[2],l=i[1],c=i[2];return[n.dilation2d(I("x",r,t,e),I("filter",r,t,e),[a,u],s,[l,c],"NHWC")]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var YD=(r,t,e,n=se)=>{switch(r.op){case"Fill":{let o=I("shape",r,t,e),s=I("dtype",r,t,e),i=I("value",r,t,e);return[n.fill(o,i,s)]}case"LinSpace":{let o=I("start",r,t,e),s=I("stop",r,t,e),i=I("num",r,t,e);return[n.linspace(o,s,i)]}case"Multinomial":{let o=I("logits",r,t,e),s=I("numSamples",r,t,e),i=I("seed",r,t,e);return[n.multinomial(o,s,i)]}case"OneHot":{let o=I("indices",r,t,e),s=I("depth",r,t,e),i=I("onValue",r,t,e),a=I("offValue",r,t,e),u=I("dtype",r,t,e);return[n.oneHot(o,s,i,a,u)]}case"Ones":return[n.ones(I("shape",r,t,e),I("dtype",r,t,e))];case"OnesLike":return[n.onesLike(I("x",r,t,e))];case"RandomStandardNormal":return[n.randomStandardNormal(I("shape",r,t,e),I("dtype",r,t,e),I("seed",r,t,e))];case"RandomUniform":return[n.randomUniform(I("shape",r,t,e),I("minval",r,t,e),I("maxval",r,t,e),I("dtype",r,t,e))];case"Range":{let o=I("start",r,t,e),s=I("stop",r,t,e),i=I("step",r,t,e);return[n.range(o,s,i,I("dtype",r,t,e))]}case"TruncatedNormal":{let o=I("shape",r,t,e),s=I("mean",r,t,e),i=I("stdDev",r,t,e),a=I("seed",r,t,e);return[n.truncatedNormal(o,s,i,I("dtype",r,t,e),a)]}case"Zeros":return[n.zeros(I("shape",r,t,e),I("dtype",r,t,e))];case"ZerosLike":return[n.zerosLike(I("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function hN(r,t,e){let n=I("boxes",r,t,e),o=I("scores",r,t,e),s=I("maxOutputSize",r,t,e),i=I("iouThreshold",r,t,e),a=I("scoreThreshold",r,t,e),u=I("softNmsSigma",r,t,e);return{boxes:n,scores:o,maxOutputSize:s,iouThreshold:i,scoreThreshold:a,softNmsSigma:u}}var ZD=async(r,t,e,n,o=se)=>{switch(r.op){case"NonMaxSuppressionV5":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l,softNmsSigma:c}=hN(r,t,e),p=await o.image.nonMaxSuppressionWithScoreAsync(s,i,a,u,l,c);return[p.selectedIndices,p.selectedScores]}case"NonMaxSuppressionV4":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=hN(r,t,e),c=I("padToMaxOutputSize",r,t,e),p=await o.image.nonMaxSuppressionPaddedAsync(s,i,a,u,l,c);return[p.selectedIndices,p.validOutputs]}case"NonMaxSuppressionV3":case"NonMaxSuppressionV2":{let{boxes:s,scores:i,maxOutputSize:a,iouThreshold:u,scoreThreshold:l}=hN(r,t,e);return[await o.image.nonMaxSuppressionAsync(s,i,a,u,l)]}case"Where":{let s=o.cast(I("condition",r,t,e),"bool"),i=[await o.whereAsync(s)];return s.dispose(),i}case"ListDiff":return o.setdiff1dAsync(I("x",r,t,e),I("y",r,t,e));default:throw TypeError(`Node type ${r.op} is not implemented`)}};var JD=(r,t,e,n=se)=>{switch(r.op){case"LowerBound":{let o=I("sortedSequence",r,t,e),s=I("values",r,t,e);return[n.lowerBound(o,s)]}case"TopKV2":{let o=I("x",r,t,e),s=I("k",r,t,e),i=I("sorted",r,t,e),a=n.topk(o,s,i);return[a.values,a.indices]}case"UpperBound":{let o=I("sortedSequence",r,t,e),s=I("values",r,t,e);return[n.upperBound(o,s)]}case"Unique":{let o=I("x",r,t,e),s=n.unique(o);return[s.values,s.indices]}case"UniqueV2":{let o=I("x",r,t,e),s=I("axis",r,t,e),i=n.unique(o,s);return[i.values,i.indices]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var QD=(r,t,e,n=se)=>{switch(r.op){case"Const":return t[r.name];case"PlaceholderWithDefault":let o=I("default",r,t,e);return[Cr(r.name,t,e)||o];case"Placeholder":return[Cr(r.name,t,e)];case"Identity":case"StopGradient":case"FakeQuantWithMinMaxVars":{let c=I("x",r,t,e);return[ti(c)]}case"IdentityN":return I("x",r,t,e).map(c=>ti(c));case"Snapshot":let s=I("x",r,t,e);return[ti(s)];case"Shape":return[n.tensor1d(I("x",r,t,e).shape,"int32")];case"ShapeN":return I("x",r,t,e).map(c=>n.tensor1d(c.shape));case"Size":return[n.scalar(I("x",r,t,e).size,"int32")];case"Rank":return[n.scalar(I("x",r,t,e).rank,"int32")];case"NoOp":return[n.scalar(1)];case"Print":let i=I("x",r,t,e),a=I("data",r,t,e),u=I("message",r,t,e),l=I("summarize",r,t,e);console.warn("The graph has a tf.print() operation,usually used for debugging, which slows down performance."),console.log(u);for(let c=0;ct.dispose()),this.tensorMap.clear(),this.handle.dispose()}size(){return this.tensorMap.size}tensorSize(){return mt(this.size(),"int32")}async import(t,e){this.checkKeyAndValueTensor(t,e);let n=await t.data();return this.tensorMap.forEach(o=>o.dispose()),this.tensorMap.clear(),B(()=>{let o=dr(e),s=n.length,i=o.length;y.assert(s===i,()=>`The number of elements doesn't match, keys has ${s} elements, the values has ${i} elements.`);for(let a=0;a{let o=[];for(let s=0;s{switch(r.op){case"HashTable":case"HashTableV2":{let o=n.getHashTableHandleByName(r.name);if(o!=null)return[o];{let s=I("keyDType",r,t,e),i=I("valueDType",r,t,e),a=new Vb(s,i);return n.addHashTable(r.name,a),[a.handle]}}case"InitializeTable":case"InitializeTableV2":case"LookupTableImport":case"LookupTableImportV2":{let o=I("tableHandle",r,t,e,n),s=I("keys",r,t,e),i=I("values",r,t,e);return[await n.getHashTableById(o.id).import(s,i)]}case"LookupTableFind":case"LookupTableFindV2":{let o=I("tableHandle",r,t,e,n),s=I("keys",r,t,e),i=I("defaultValue",r,t,e);return[await n.getHashTableById(o.id).find(s,i)]}case"LookupTableSize":case"LookupTableSizeV2":{let o=I("tableHandle",r,t,e,n);return[n.getHashTableById(o.id).tensorSize()]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var eR=(r,t,e,n=se)=>{switch(r.op){case"ResizeBilinear":{let o=I("images",r,t,e),s=I("size",r,t,e),i=I("alignCorners",r,t,e),a=I("halfPixelCenters",r,t,e);return[n.image.resizeBilinear(o,[s[0],s[1]],i,a)]}case"ResizeNearestNeighbor":{let o=I("images",r,t,e),s=I("size",r,t,e),i=I("alignCorners",r,t,e),a=I("halfPixelCenters",r,t,e);return[n.image.resizeNearestNeighbor(o,[s[0],s[1]],i,a)]}case"CropAndResize":{let o=I("image",r,t,e),s=I("boxes",r,t,e),i=I("boxInd",r,t,e),a=I("cropSize",r,t,e),u=I("method",r,t,e),l=I("extrapolationValue",r,t,e);return[n.image.cropAndResize(o,s,i,a,u,l)]}case"ImageProjectiveTransformV3":{let o=I("images",r,t,e),s=I("transforms",r,t,e),i=I("outputShape",r,t,e),a=I("fillValue",r,t,e),u=I("interpolation",r,t,e),l=I("fillMode",r,t,e);return[n.image.transform(o,s,u.toLowerCase(),l.toLowerCase(),a,i)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var rR=(r,t,e,n=se)=>{switch(r.op){case"Equal":return[n.equal(I("a",r,t,e),I("b",r,t,e))];case"NotEqual":return[n.notEqual(I("a",r,t,e),I("b",r,t,e))];case"Greater":return[n.greater(I("a",r,t,e),I("b",r,t,e))];case"GreaterEqual":return[n.greaterEqual(I("a",r,t,e),I("b",r,t,e))];case"Less":return[n.less(I("a",r,t,e),I("b",r,t,e))];case"LessEqual":return[n.lessEqual(I("a",r,t,e),I("b",r,t,e))];case"LogicalAnd":return[n.logicalAnd(I("a",r,t,e),I("b",r,t,e))];case"LogicalNot":return[n.logicalNot(I("a",r,t,e))];case"LogicalOr":return[n.logicalOr(I("a",r,t,e),I("b",r,t,e))];case"Select":case"SelectV2":return[n.where(I("condition",r,t,e),I("a",r,t,e),I("b",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var nR=(r,t,e,n=se)=>{switch(r.op){case"BatchMatMul":case"BatchMatMulV2":case"MatMul":return[n.matMul(I("a",r,t,e),I("b",r,t,e),I("transposeA",r,t,e),I("transposeB",r,t,e))];case"Einsum":return[n.einsum(I("equation",r,t,e),...I("tensors",r,t,e))];case"Transpose":return[n.transpose(I("x",r,t,e),I("perm",r,t,e))];case"_FusedMatMul":let[o,s]=I("fusedOps",r,t,e),i=o==="biasadd",a=s==="prelu",u=I("numArgs",r,t,e),l=I("leakyreluAlpha",r,t,e);if(i){if(a&&u!==2)throw new Error("Fused MatMul with BiasAdd and Prelu must have two extra arguments: bias and alpha.");if(!a&&u!==1)throw new Error("Fused MatMul with BiasAdd must have one extra argument: bias.")}let[c,p]=I("args",r,t,e);return[n.fused.matMul({a:I("a",r,t,e),b:I("b",r,t,e),transposeA:I("transposeA",r,t,e),transposeB:I("transposeB",r,t,e),bias:c,activation:s,preluActivationWeights:p,leakyreluAlpha:l})];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var oR=(r,t,e,n=se)=>{switch(r.op){case"EuclideanNorm":return[n.euclideanNorm(I("x",r,t,e),I("axis",r,t,e),I("keepDims",r,t,e))];case"FusedBatchNorm":case"FusedBatchNormV2":return[n.batchNorm(I("x",r,t,e),I("mean",r,t,e),I("variance",r,t,e),I("offset",r,t,e),I("scale",r,t,e),I("epsilon",r,t,e))];case"FusedBatchNormV3":return[n.batchNorm(I("x",r,t,e),I("mean",r,t,e),I("variance",r,t,e),I("offset",r,t,e),I("scale",r,t,e),I("epsilon",r,t,e))];case"LRN":return[n.localResponseNormalization(I("x",r,t,e),I("radius",r,t,e),I("bias",r,t,e),I("alpha",r,t,e),I("beta",r,t,e))];case"Softmax":return[n.softmax(I("x",r,t,e))];case"LogSoftmax":return[n.logSoftmax(I("x",r,t,e))];case"SparseToDense":return[n.sparseToDense(I("sparseIndices",r,t,e),I("outputShape",r,t,e),I("sparseValues",r,t,e),I("defaultValue",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var sR=(r,t,e,n=se)=>{switch(r.op){case"RaggedGather":{let{outputNestedSplits:o,outputDenseValues:s}=n.raggedGather(I("paramsNestedSplits",r,t,e),I("paramsDenseValues",r,t,e),I("indices",r,t,e),I("outputRaggedRank",r,t,e));return o.concat(s)}case"RaggedRange":{let{rtNestedSplits:o,rtDenseValues:s}=n.raggedRange(I("starts",r,t,e),I("limits",r,t,e),I("splits",r,t,e));return[o,s]}case"RaggedTensorToTensor":return[n.raggedTensorToTensor(I("shape",r,t,e),I("values",r,t,e),I("defaultValue",r,t,e),I("rowPartitionTensors",r,t,e),I("rowPartitionTypes",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var iR=(r,t,e,n=se)=>{switch(r.op){case"Max":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.max(I("x",r,t,e),a,u)]}case"Mean":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.mean(I("x",r,t,e),a,u)]}case"Min":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.min(I("x",r,t,e),a,u)]}case"Sum":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.sum(I("x",r,t,e),a,u)]}case"All":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.all(I("x",r,t,e),a,u)]}case"Any":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.any(I("x",r,t,e),a,u)]}case"ArgMax":{let a=I("axis",r,t,e);return[n.argMax(I("x",r,t,e),a)]}case"ArgMin":{let a=I("axis",r,t,e);return[n.argMin(I("x",r,t,e),a)]}case"Prod":{let a=I("axis",r,t,e),u=I("keepDims",r,t,e);return[n.prod(I("x",r,t,e),a,u)]}case"Cumprod":{let a=I("axis",r,t,e),u=I("exclusive",r,t,e),l=I("reverse",r,t,e);return[n.cumprod(I("x",r,t,e),a,u,l)]}case"Cumsum":{let a=I("axis",r,t,e),u=I("exclusive",r,t,e),l=I("reverse",r,t,e);return[n.cumsum(I("x",r,t,e),a,u,l)]}case"Bincount":let o=I("x",r,t,e),s=I("weights",r,t,e),i=I("size",r,t,e);return[n.bincount(o,s,i)];case"DenseBincount":{let a=I("x",r,t,e),u=I("weights",r,t,e),l=I("size",r,t,e),c=I("binaryOutput",r,t,e);return[n.denseBincount(a,u,l,c)]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var aR=(r,t,e,n=se)=>{switch(r.op){case"ConcatV2":case"Concat":{let o=I("n",r,t,e),s=I("axis",r,t,e),i=I("tensors",r,t,e);return i=i.slice(0,o),[n.concat(i,s)]}case"Gather":{let o=I("x",r,t,e),s=I("indices",r,t,e);return[n.gather(o,n.cast(s,"int32"),0)]}case"GatherV2":{let o=I("axis",r,t,e),s=I("batchDims",r,t,e),i=I("x",r,t,e),a=I("indices",r,t,e);return[n.gather(i,n.cast(a,"int32"),o,s)]}case"Reverse":{let o=I("dims",r,t,e),s=[];for(let a=0;a{let o=I("axis",r,t,e),s=I("tensors",r,t,e),i=s[0].shape,a=n.squeeze(s[0]).shape,u=s.map(l=>{let c=y.arraysEqual(l.shape,i);if(!c&&!y.arraysEqual(n.squeeze(l).shape,a))throw new Error("the input tensors shape does not match");return c?l:n.reshape(l,i)});return[n.stack(u,o)]});case"Unpack":{let o=I("axis",r,t,e),s=I("tensor",r,t,e);return n.unstack(s,o)}case"Tile":{let o=I("reps",r,t,e);return[n.tile(I("x",r,t,e),o)]}case"Split":case"SplitV":{let o=I("axis",r,t,e),s=I("numOrSizeSplits",r,t,e),i=I("x",r,t,e);return n.split(i,s,o)}case"ScatterNd":{let o=I("indices",r,t,e),s=I("values",r,t,e),i=I("shape",r,t,e);return[n.scatterND(o,s,i)]}case"GatherNd":{let o=I("x",r,t,e),s=I("indices",r,t,e);return[n.gatherND(o,s)]}case"SparseToDense":{let o=I("sparseIndices",r,t,e),s=I("outputShape",r,t,e),i=I("sparseValues",r,t,e),a=I("defaultValue",r,t,e);return[n.sparseToDense(o,i,s,i.dtype===a.dtype?a:n.cast(a,i.dtype))]}default:throw TypeError(`Node type ${r.op} is not implemented`)}};var lR=(r,t,e,n=se)=>{switch(r.op){case"SparseFillEmptyRows":{let{outputIndices:o,outputValues:s,emptyRowIndicator:i,reverseIndexMap:a}=n.sparse.sparseFillEmptyRows(I("indices",r,t,e),I("values",r,t,e),I("denseShape",r,t,e),I("defaultValue",r,t,e));return[o,s,i,a]}case"SparseReshape":{let{outputIndices:o,outputShape:s}=n.sparse.sparseReshape(I("inputIndices",r,t,e),I("inputShape",r,t,e),I("newShape",r,t,e));return[o,s]}case"SparseSegmentMean":return[n.sparse.sparseSegmentMean(I("data",r,t,e),I("indices",r,t,e),I("segmentIds",r,t,e))];case"SparseSegmentSum":return[n.sparse.sparseSegmentSum(I("data",r,t,e),I("indices",r,t,e),I("segmentIds",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var uR=(r,t,e,n=se)=>{switch(r.op){case"FFT":return[n.fft(I("x",r,t,e))];case"IFFT":return[n.ifft(I("x",r,t,e))];case"RFFT":return[n.rfft(I("x",r,t,e))];case"IRFFT":return[n.irfft(I("x",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var cR=(r,t,e,n=se)=>{switch(r.op){case"StringNGrams":{let{nGrams:o,nGramsSplits:s}=n.string.stringNGrams(I("data",r,t,e),I("dataSplits",r,t,e),I("separator",r,t,e),I("nGramWidths",r,t,e),I("leftPad",r,t,e),I("rightPad",r,t,e),I("padWidth",r,t,e),I("preserveShortSequences",r,t,e));return[o,s]}case"StringSplit":{let{indices:o,values:s,shape:i}=n.string.stringSplit(I("input",r,t,e),I("delimiter",r,t,e),I("skipEmpty",r,t,e));return[o,s,i]}case"StringToHashBucketFast":return[n.string.stringToHashBucketFast(I("input",r,t,e),I("numBuckets",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};var pR=(r,t,e,n=se)=>{switch(r.op){case"Cast":return[n.cast(I("x",r,t,e),I("dtype",r,t,e))];case"ExpandDims":{let o=I("axis",r,t,e);return[n.expandDims(I("x",r,t,e),o)]}case"Squeeze":{let o=I("axis",r,t,e);return[n.squeeze(I("x",r,t,e),o)]}case"Reshape":return[n.reshape(I("x",r,t,e),I("shape",r,t,e))];case"MirrorPad":return[n.mirrorPad(I("x",r,t,e),I("padding",r,t,e),I("mode",r,t,e))];case"PadV2":case"Pad":return[n.pad(I("x",r,t,e),I("padding",r,t,e),I("constantValue",r,t,e))];case"SpaceToBatchND":{let o=I("blockShape",r,t,e),s=I("paddings",r,t,e);return[n.spaceToBatchND(I("x",r,t,e),o,s)]}case"BatchToSpaceND":{let o=I("blockShape",r,t,e),s=I("crops",r,t,e);return[n.batchToSpaceND(I("x",r,t,e),o,s)]}case"DepthToSpace":{let o=I("blockSize",r,t,e),s=I("dataFormat",r,t,e).toUpperCase();return[n.depthToSpace(I("x",r,t,e),o,s)]}case"BroadcastTo":return[n.broadcastTo(I("x",r,t,e),I("shape",r,t,e))];case"BroadcastArgs":return[n.broadcastArgs(I("s0",r,t,e),I("s1",r,t,e))];default:throw TypeError(`Node type ${r.op} is not implemented`)}};function gN(r,t,e,n,o=B){let s=((i,a,u)=>{switch(i.category){case"arithmetic":return o(()=>BD(i,a,u));case"basic_math":return o(()=>VD(i,a,u));case"control":return KD(i,a,u);case"convolution":return o(()=>XD(i,a,u));case"creation":return o(()=>YD(i,a,u));case"dynamic":return ZD(i,a,u);case"evaluation":return o(()=>JD(i,a,u));case"image":return o(()=>eR(i,a,u));case"graph":return o(()=>QD(i,a,u));case"logical":return o(()=>rR(i,a,u));case"matrices":return o(()=>nR(i,a,u));case"normalization":return o(()=>oR(i,a,u));case"ragged":return o(()=>sR(i,a,u));case"reduction":return o(()=>iR(i,a,u));case"slice_join":return o(()=>aR(i,a,u));case"sparse":return o(()=>lR(i,a,u));case"spectral":return o(()=>uR(i,a,u));case"string":return o(()=>cR(i,a,u));case"transformation":return o(()=>pR(i,a,u));case"hash_table":return tR(i,a,u,n);case"custom":let l=Tb(i.op);if(l&&l.customExecutor)return l.customExecutor(new Mb(i,a,u));throw TypeError(`Custom op ${i.op} is not registered.`);default:throw TypeError(`Unknown op '${i.op}'. File an issue at https://github.com/tensorflow/tfjs/issues so we can add it, or register a custom execution with tf.registerOp()`)}})(r,t,e);return y.isPromise(s)?s.then(i=>[].concat(i)):[].concat(s)}var Ph=class{constructor(t={},e={},n={},o={}){this.weightMap=t,this.tensorArrayMap=e,this.tensorListMap=n,this.functionMap=o,this.rootContext={id:0,frameName:"",iterationId:0},this.contexts=[this.rootContext],this.lastId=0,this.generateCurrentContextIds()}newFrame(t,e){return{id:t,frameName:e,iterationId:0}}set currentContext(t){this.contexts!==t&&(this.contexts=t,this.generateCurrentContextIds())}get currentContext(){return this.contexts}get currentContextId(){return this._currentContextIds[0]}get currentContextIds(){return this._currentContextIds}generateCurrentContextIds(){let t=[];for(let e=0;ee.id===0&&e.iterationId===0?"":`${e.frameName}-${e.iterationId}`).join("/"):""}enterFrame(t){this.contexts&&(this.lastId++,this.contexts=this.contexts.slice(),this.contexts.push(this.newFrame(this.lastId,t)),this._currentContextIds.unshift(this.contextIdforContexts(this.contexts)))}exitFrame(){if(this.contexts&&this.contexts.length>1)this.contexts=this.contexts.slice(),this.contexts.splice(-1),this.currentContextIds.shift();else throw new Error("Cannot exit frame, the context is empty")}nextIteration(){if(this.contexts&&this.contexts.length>0){this.contexts=this.contexts.slice(),this.lastId++;let t=Object.assign({},this.contexts[this.contexts.length-1]);t.iterationId+=1,t.id=this.lastId,this.contexts.splice(-1,1,t),this._currentContextIds.splice(0,1,this.contextIdforContexts(this.contexts))}else throw new Error("Cannot increase frame iteration, the context is empty")}getWeight(t){return this.weightMap[t]}addTensorArray(t){this.tensorArrayMap[t.id]=t}getTensorArray(t){return this.tensorArrayMap[t]}addTensorList(t){this.tensorListMap[t.id]=t}getTensorList(t){return this.tensorListMap[t]}dispose(t){for(let e in this.tensorArrayMap)this.tensorArrayMap[e].clearAndClose(t);for(let e in this.tensorListMap)this.tensorListMap[e].clearAndClose(t)}};function xN(r,t,e,n){let o=new Set,s=[],i=null,a=null,u=new Set,l=Object.keys(r).map(m=>bn(m)[0]),c=[];n!=null&&(c=n.map(m=>bn(m.name)[0]));let p=[...t];for(;p.length>0;){let m=p.pop();if((yN(m)||G7(m)||W7(m))&&i==null&&(i=m,a=i.children.map(f=>f.name).filter(f=>o.has(f))),o.add(m.name),e[m.name]==null&&l.indexOf(m.name)===-1&&c.indexOf(m.name)===-1){if(m.inputs.length===0){s.push(m.name);continue}m.inputs.forEach(f=>{u.has(f.name)||(u.add(f.name),p.push(f))})}}return{inputs:r,outputs:t,usedNodes:o,missingInputs:s,dynamicNode:i,syncInputs:a}}function mR(r,t,e){let{usedNodes:n,inputs:o}=e,s=[],i=Object.keys(o).map(c=>bn(c)[0]).map(c=>r.nodes[c]),a=r.initNodes;i.forEach(c=>{n.has(c.name)&&s.push(c)}),r.weights.forEach(c=>{n.has(c.name)&&s.push(c)}),a!=null&&a.forEach(c=>{n.has(c.name)&&s.push(c)});let u=new Set,l=[];for(;s.length>0;){let c=s.pop();u.add(c.name),t[c.name]||l.push(c),c.children.forEach(p=>{!u.has(p.name)&&n.has(p.name)&&p.inputs.every(m=>u.has(m.name))&&s.push(p)})}return l}var z7=["Switch","Merge","Enter","Exit","NextIteration","StatelessIf","StatelessWhile","if","While"],B7=["NonMaxSuppressionV2","NonMaxSuppressionV3","NonMaxSuppressionV5","Where"],V7=["HashTable","HashTableV2","LookupTableImport","LookupTableImportV2","LookupTableFind","LookupTableFindV2","LookupTableSize","LookupTableSizeV2"];function yN(r){return z7.indexOf(r.op)>=0}function G7(r){return B7.indexOf(r.op)>=0}function W7(r){return V7.indexOf(r.op)>=0}var kc=class{constructor(t,e){this.graph=t,this.parent=e,this.compiledMap=new Map,this._weightMap={},this.SEPERATOR=",",this._functions={},this._functionExecutorMap={},this.keepIntermediateTensors=!1,this._outputs=t.outputs,this._inputs=t.inputs,this._initNodes=t.initNodes,this._signature=t.signature,this._functions=t.functions,t.functions!=null&&Object.keys(t.functions).forEach(n=>{this._functionExecutorMap[n]=new kc(t.functions[n],this)})}get weightIds(){return this.parent?this.parent.weightIds:this._weightIds}get functionExecutorMap(){return this.parent?this.parent.functionExecutorMap:this._functionExecutorMap}get weightMap(){return this.parent?this.parent.weightMap:this._weightMap}set weightMap(t){let e=Object.keys(t).map(n=>t[n].map(o=>o.id));this._weightIds=[].concat(...e),this._weightMap=t}set resourceManager(t){this._resourceManager=t}get inputs(){return this._inputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get outputs(){return this._outputs.map(t=>({name:t.name,shape:t.attrParams.shape?t.attrParams.shape.value:void 0,dtype:t.attrParams.dtype?t.attrParams.dtype.value:void 0}))}get inputNodes(){return this._inputs.map(t=>t.signatureKey||t.name)}get outputNodes(){return this._outputs.map(t=>{let e=t.signatureKey||t.name;return t.defaultOutput?`${e}:${t.defaultOutput}`:e})}get functions(){return Object.keys(this._functions).reduce((t,e)=>(t[e]=this._functions[e].signature,t),{})}getCompilationKey(t,e){let n=t.map(s=>s.name).sort(),o=e.map(s=>s.name).sort();return n.join(this.SEPERATOR)+"--"+o.join(this.SEPERATOR)}compile(t,e){let n=xN(t,e,this.weightMap,this._initNodes),{missingInputs:o,dynamicNode:s,syncInputs:i}=n;if(s!=null)throw new Error(`This execution contains the node '${s.name}', which has the dynamic op '${s.op}'. Please use model.executeAsync() instead. Alternatively, to avoid the dynamic ops, specify the inputs [${i}]`);if(o.length>0){let a=e.map(l=>l.name),u=Object.keys(t);throw new Error(`Cannot compute the outputs [${a}] from the provided inputs [${u}]. Missing the following inputs: [${o}]`)}return mR(this.graph,this.weightMap,n)}cloneAndKeepTensor(t){if(t==null)return null;let e=t.clone();return Ae(e),e}cloneTensorList(t){return t?t.map(n=>this.cloneAndKeepTensor(n)):null}cloneTensorMap(t){return Object.fromEntries(Object.entries(t).map(([e,n])=>[e,this.cloneTensorList(n)]))}execute(t,e){this.disposeIntermediateTensors(),t=this.mapInputs(t);let n=Object.keys(t).sort();this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e);let o=n.map(p=>this.graph.nodes[bn(p)[0]]),s=e.map(p=>bn(p)[0]),i=s.map(p=>this.graph.nodes[p]);i.length===0&&(i=this._outputs);let a=this.getCompilationKey(o,i),u=this.compiledMap.get(a);u==null&&(u=this.compile(t,i),this.compiledMap.set(a,u));try{this.keepIntermediateTensors=M().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(p){this.keepIntermediateTensors=!1,console.warn(p.message)}let l={},c={};return B(()=>{let p=new Ph(this.weightMap,l,c,this.functionExecutorMap),m=Object.assign({},this.weightMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap)),Object.keys(t).forEach(h=>{let[g,x]=bn(h),b=[];b[x]=t[h],m[g]=b,this.keepIntermediateTensors&&(this.clonedTensorsMap[g]=this.cloneTensorList(b))});let f=this.getFrozenTensorIds(m),d={};for(let h=0;hCr(h,m,p))})}getFrozenTensorIds(t){let e=[].concat.apply([],Object.keys(t).map(n=>t[n]).map(n=>n.map(o=>o.id)));return new Set(e)}checkTensorForDisposal(t,e,n,o,s,i,a){e.category==="control"||i.indexOf(t)!==-1||(n[t].forEach(u=>{u!=null&&(a[u.id]=(a[u.id]||0)+e.children.length)}),e.inputs.forEach(u=>{if(u.category!=="control"){let l=PD(u.name,n,o);l!=null&&l.forEach(c=>{if(c&&!c.kept&&!s.has(c.id)){let p=a[c.id];p===1?(c.dispose(),delete a[c.id]):p!=null&&a[c.id]--}})}}))}async executeAsync(t,e){return this._executeAsync(t,e)}disposeIntermediateTensors(){!this.clonedTensorsMap||(Object.values(this.clonedTensorsMap).forEach(t=>{for(let e of t)e&&!e.isDisposed&&e.dispose()}),this.clonedTensorsMap=null)}getIntermediateTensors(){return this.clonedTensorsMap}async _executeAsync(t,e,n=!1,o={},s={}){this.disposeIntermediateTensors(),n||(t=this.mapInputs(t),this.checkInputs(t),this.checkInputShapeAndType(t),e=this.mapOutputs(e),this.checkOutputs(e));try{this.keepIntermediateTensors=M().getBool("KEEP_INTERMEDIATE_TENSORS")}catch(m){this.keepIntermediateTensors=!1,console.warn(m.message)}let i=new Ph(this.weightMap,o,s,this.functionExecutorMap);this.keepIntermediateTensors&&(this.clonedTensorsMap=this.cloneTensorMap(this.weightMap));let a=await this.executeWithControlFlow(t,i,e,n),u=e.map(m=>Cr(m,a,i)),l=u.map(m=>m.id),c=Object.keys(t).map(m=>t[m].id),p=new Set([...l,...c,...this.weightIds]);return Object.values(a).forEach(m=>{m.forEach(f=>{f&&!f.isDisposed&&!p.has(f.id)&&f.dispose()})}),this.parent==null&&i.dispose(p),u}async executeFunctionAsync(t,e,n){let o=t.reduce((s,i,a)=>(s[this.inputs[a].name]=i,s),{});return this._executeAsync(o,this.outputNodes,!0,e,n)}async executeWithControlFlow(t,e,n,o){let s=Object.keys(t),i=s.map(w=>this.graph.nodes[bn(w)[0]]),a=n.map(w=>bn(w)[0]),u=a.map(w=>this.graph.nodes[w]);u.length===0&&(u=this._outputs);let{usedNodes:l,missingInputs:c,dynamicNode:p,syncInputs:m}=xN(t,u,this.weightMap,this._initNodes),f=[...i,...this.graph.weights,...this._initNodes||[]].map(w=>({node:w,contexts:e.currentContext})),d=Object.assign({},this.weightMap);Object.keys(t).forEach(w=>{let[C,N]=bn(w),E=[];E[N]=t[w],d[C]=E});let h={},g=this.getFrozenTensorIds(d),x={};for(;f.length>0;){let w=this.processStack(i,f,e,d,x,g,a,h,l);await Promise.all(w)}p==null&&!o&&console.warn("This model execution did not contain any nodes with control flow or dynamic output shapes. You can use model.execute() instead.");let b=u.filter(w=>!yN(w)&&!Cr(w.name,d,e)).map(w=>w.name);if(b.length>0){let w="";throw p!=null&&(w=`Alternatively, to avoid the dynamic ops, use model.execute() and specify the inputs [${m}]`),new Error(`Cannot compute the outputs [${b}] from the provided inputs [${s}]. Consider providing the following inputs: [${c}]. ${w}`)}return d}processStack(t,e,n,o,s,i,a,u,l){let c=[];for(;e.length>0;){let p=e.pop();n.currentContext=p.contexts;let m="";if(p.node.op==="Enter"&&I("isConstant",p.node,o,n)&&([m]=Qs(p.node.name,n)),o[p.node.name]==null){let f=gN(p.node,o,n,this._resourceManager);m||([m]=Qs(p.node.name,n));let d=n.currentContext;y.isPromise(f)?c.push(f.then(h=>(o[m]=h,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(h)),n.currentContext=d,this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l),h))):(o[m]=f,this.keepIntermediateTensors&&(this.clonedTensorsMap[m]=this.cloneTensorList(f)),this.checkTensorForDisposal(m,p.node,o,n,i,a,u),this.processChildNodes(p.node,e,n,o,s,l))}else this.processChildNodes(p.node,e,n,o,s,l)}return c}processChildNodes(t,e,n,o,s,i){t.children.forEach(a=>{let[u]=Qs(a.name,n);s[u]||!i.has(a.name)||(a.op==="Merge"?a.inputNames.some(l=>!!Cr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})):a.inputNames.every(l=>!!Cr(l,o,n))&&(s[u]=!0,e.push({contexts:n.currentContext,node:a})))})}dispose(){Object.keys(this.weightMap).forEach(t=>this.weightMap[t].forEach(e=>e.dispose()))}checkInputShapeAndType(t){Object.keys(t).forEach(e=>{let n=t[e],[o]=bn(e),s=this.graph.nodes[o];if(s.attrParams.shape&&s.attrParams.shape.value){let i=s.attrParams.shape.value,a=i.length===n.shape.length&&n.shape.every((u,l)=>i[l]===-1||i[l]===u);y.assert(a,()=>`The shape of dict['${s.name}'] provided in model.execute(dict) must be [${i}], but was [${n.shape}]`)}s.attrParams.dtype&&s.attrParams.dtype.value&&y.assert(n.dtype===s.attrParams.dtype.value,()=>`The dtype of dict['${s.name}'] provided in model.execute(dict) must be ${s.attrParams.dtype.value}, but was ${n.dtype}`)})}mapInputs(t){var e,n;let o={};for(let s in t){let i=(n=(e=this._signature)===null||e===void 0?void 0:e.inputs)===null||n===void 0?void 0:n[s];i!=null?o[i.name]=t[s]:o[s]=t[s]}return o}checkInputs(t){let e=Object.keys(t).filter(n=>{let[o]=bn(n);return this.graph.nodes[o]==null});if(e.length>0)throw new Error(`The dict provided in model.execute(dict) has keys: [${e}] that are not part of graph`)}mapOutputs(t){return t.map(e=>{var n,o;let s=(o=(n=this._signature)===null||n===void 0?void 0:n.outputs)===null||o===void 0?void 0:o[e];return s!=null?s.name:e},{})}checkOutputs(t){t.forEach(e=>{let[n]=bn(e);if(!this.graph.nodes[n])throw new Error(`The output '${e}' is not found in the graph`)})}};var Gb=class{constructor(t={},e={}){this.hashTableNameToHandle=t,this.hashTableMap=e}addHashTable(t,e){this.hashTableNameToHandle[t]=e.handle,this.hashTableMap[e.id]=e}getHashTableHandleByName(t){return this.hashTableNameToHandle[t]}getHashTableById(t){return this.hashTableMap[t]}dispose(){for(let t in this.hashTableMap)this.hashTableMap[t].clearAndClose(),delete this.hashTableMap[t];for(let t in this.hashTableNameToHandle)this.hashTableNameToHandle[t].dispose(),delete this.hashTableNameToHandle[t]}};var U7="?tfjs-format=file",H7="model.json",Lh=class{constructor(t,e={},n=$r){this.modelUrl=t,this.loadOptions=e,this.version="n/a",this.io=n,e==null&&(this.loadOptions={}),this.resourceManager=new Gb}get modelVersion(){return this.version}get inputNodes(){return this.executor.inputNodes}get outputNodes(){return this.executor.outputNodes}get inputs(){return this.executor.inputs}get outputs(){return this.executor.outputs}get weights(){return this.executor.weightMap}get metadata(){return this.artifacts.userDefinedMetadata}get modelSignature(){return this.signature}get modelStructuredOutputKeys(){return this.structuredOutputKeys}findIOHandler(){let t=this.modelUrl;if(t.load!=null)this.handler=t;else if(this.loadOptions.requestInit!=null)this.handler=this.io.browserHTTPRequest(t,this.loadOptions);else{let e=this.io.getLoadHandlers(t,this.loadOptions);if(e.length===0)e.push(this.io.browserHTTPRequest(t,this.loadOptions));else if(e.length>1)throw new Error(`Found more than one (${e.length}) load handlers for URL '${[t]}'`);this.handler=e[0]}}load(){if(this.findIOHandler(),this.handler.load==null)throw new Error("Cannot proceed with model loading because the IOHandler provided does not have the `load` method implemented.");let t=this.handler.load();return y.isPromise(t)?t.then(e=>this.loadSync(e)):this.loadSync(t)}loadSync(t){this.artifacts=t;let e=this.artifacts.modelTopology,n=this.artifacts.signature;if(this.artifacts.userDefinedMetadata!=null){let s=this.artifacts.userDefinedMetadata;s.signature!=null&&(n=s.signature),s.structuredOutputKeys!=null&&(this.structuredOutputKeys=s.structuredOutputKeys)}this.signature=n,this.version=`${e.versions.producer}.${e.versions.minConsumer}`;let o=this.io.decodeWeights(this.artifacts.weightData,this.artifacts.weightSpecs);if(this.executor=new kc(Oh.Instance.transformGraph(e,this.signature)),this.executor.weightMap=this.convertTensorMapToTensorsMap(o),this.executor.resourceManager=this.resourceManager,t.modelInitializer!=null&&t.modelInitializer.node!=null){let s=Oh.Instance.transformGraph(t.modelInitializer);this.initializer=new kc(s),this.initializer.weightMap=this.executor.weightMap,this.initializer.resourceManager=this.resourceManager,this.initializerSignature=t.initializerSignature}return!0}async save(t,e){if(typeof t=="string"){let n=this.io.getSaveHandlers(t);if(n.length===0)throw new Error(`Cannot find any save handlers for URL '${t}'`);if(n.length>1)throw new Error(`Found more than one (${n.length}) save handlers for URL '${t}'`);t=n[0]}if(t.save==null)throw new Error("GraphModel.save() cannot proceed because the IOHandler provided does not have the `save` attribute defined.");return t.save(this.artifacts)}addStructuredOutputNames(t){if(this.structuredOutputKeys){let e=t instanceof Ft?[t]:t,n={};return e.forEach((o,s)=>n[this.structuredOutputKeys[s]]=o),n}return t}predict(t,e){let n=this.execute(t,this.outputNodes);return this.addStructuredOutputNames(n)}async predictAsync(t,e){let n=await this.executeAsync(t,this.outputNodes);return this.addStructuredOutputNames(n)}normalizeInputs(t){var e;if(!(t instanceof Ft)&&!Array.isArray(t)){let s=(e=this.signature)===null||e===void 0?void 0:e.inputs;if(s!=null)for(let i in s){let a=s[i];a.resourceId!=null&&(t[i]=this.resourceIdToCapturedInput[a.resourceId])}return t}t=Array.isArray(t)?t:[t];let n=Object.keys(this.resourceIdToCapturedInput).length;if(t.length+n!==this.inputNodes.length)throw new Error(`Input tensor count mismatch, the graph model has ${this.inputNodes.length-n} non-resource placeholders, while there are ${t.length} input tensors provided.`);let o=0;return this.inputNodes.reduce((s,i)=>{var a,u,l;let c=(l=(u=(a=this.signature)===null||a===void 0?void 0:a.inputs)===null||u===void 0?void 0:u[i])===null||l===void 0?void 0:l.resourceId;return c!=null?s[i]=this.resourceIdToCapturedInput[c]:s[i]=t[o++],s},{})}normalizeOutputs(t){return t=t||this.outputNodes,Array.isArray(t)?t:[t]}executeInitializerGraph(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.execute({},[]):this.initializer.execute({},Object.keys(this.initializerSignature.outputs))}async executeInitializerGraphAsync(){return this.initializer==null?[]:this.initializerSignature==null?this.initializer.executeAsync({},[]):this.initializer.executeAsync({},Object.keys(this.initializerSignature.outputs))}setResourceIdToCapturedInput(t){if(this.resourceIdToCapturedInput={},this.initializerSignature){let e=this.initializerSignature.outputs,n=Object.keys(e);for(let o=0;o1?n:n[0]}async executeAsync(t,e){this.resourceIdToCapturedInput==null&&this.setResourceIdToCapturedInput(await this.executeInitializerGraphAsync()),t=this.normalizeInputs(t),e=this.normalizeOutputs(e);let n=await this.executor.executeAsync(t,e);return n.length>1?n:n[0]}getIntermediateTensors(){return this.executor.getIntermediateTensors()}disposeIntermediateTensors(){this.executor.disposeIntermediateTensors()}convertTensorMapToTensorsMap(t){return Object.keys(t).reduce((e,n)=>(e[n]=[t[n]],e),{})}dispose(){this.executor.dispose(),this.initializer&&(this.initializer.dispose(),this.resourceIdToCapturedInput&&Nt(this.resourceIdToCapturedInput)),this.resourceManager.dispose()}};async function q7(r,t={},e=$r){if(r==null)throw new Error("modelUrl in loadGraphModel() cannot be null. Please provide a url or an IOHandler that loads the model");t==null&&(t={}),t.fromTFHub&&typeof r=="string"&&(r=j7(r));let n=new Lh(r,t,e);return await n.load(),n}function K7(r){if(r==null)throw new Error("modelUrl in loadGraphModelSync() cannot be null. Please provide model artifacts or an IOHandler that loads the model");let t;if(r instanceof Array){let[n,o]=r;if(!n)throw new Error("modelJSON must be the first element of the array");if(!o||!(o instanceof ArrayBuffer))throw new Error("An ArrayBuffer of weights must be the second element of the array");if(!("modelTopology"in n))throw new Error("Model JSON is missing 'modelTopology'");if(!("weightsManifest"in n))throw new Error("Model JSON is missing 'weightsManifest'");let s=$r.getWeightSpecs(n.weightsManifest),i=$r.getModelArtifactsForJSONSync(n,s,o);t=$r.fromMemorySync(i)}else if("load"in r)t=r;else if("modelTopology"in r&&"weightSpecs"in r&&"weightData"in r)t=$r.fromMemorySync(r);else throw new Error("Unknown model format");let e=new Lh(t);return e.load(),e}function j7(r){return r.endsWith("/")||(r=r+"/"),`${r}${H7}${U7}`}var fR="4.1.0";var RR={};Wt(RR,{CSVDataset:()=>Jf,Dataset:()=>ei,FileDataSource:()=>nd,TextLineDataset:()=>Zf,URLDataSource:()=>od,array:()=>vR,csv:()=>ER,func:()=>_R,generator:()=>AR,microphone:()=>DR,version_data:()=>zN,webcam:()=>$R,zip:()=>SR});var IR=_l(dh());var bR=_l(dh());function dR(r,t){return Wb(r,t)}function Wb(r,t,e=new Map,n=new Set){if(r==null)return null;if(typeof Blob=="function"&&r instanceof Blob)return r.slice();if(n.has(r))throw new Error("Circular references are not supported.");if(e.has(r))return e.get(r);let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep map function may not return both a value and recurse=true.");if(o.recurse)if(Tu(r)){let s=Array.isArray(r)?[]:{};n.add(r);for(let i in r){let a=r[i],u=Wb(a,t,e,n);s[i]=u}return n.delete(r),r.__proto__&&(s.__proto__=r.__proto__),s}else throw new Error(`Can't recurse into non-iterable type: ${r}`);else return e.set(r,o.value),o.value}function hR(r,t=wN){return gR(r,t)}function gR(r,t,e=new Set){let n=r[0];if(e.has(n))throw new Error("Circular references are not supported.");let o=t(r);if(o.recurse&&o.value!==null)throw new Error("A deep zip function may not return both a value and recurse=true.");if(o.recurse)if(Tu(n)){let s=Array.isArray(n)?[]:{};e.add(n);for(let i in n){let a=r.map(l=>l[i]),u=gR(a,t,e);s[i]=u}return e.delete(n),s}else throw new Error(`Can't recurse into non-iterable type: ${n}`);else return o.value}function wN(r){return r===null?null:Tu(r[0])?{value:null,recurse:!0}:{value:r,recurse:!1}}async function Ub(r,t){let e=new Map;Wb(r,t,e);for(let o of Array.from(e.keys())){let s=e.get(o);if(y.isPromise(s)){let i=await s;e.set(o,i)}}return Wb(r,t,e)}function Tu(r){let t=!1;if(M().get("IS_BROWSER"))t=r instanceof TextDecoder;else{let{StringDecoder:e}=bN();t=r instanceof e}return r!=null&&!ArrayBuffer.isView(r)&&(Array.isArray(r)||typeof r=="object"&&!(r instanceof Ft)&&!(r instanceof Promise)&&!t)}function xR(r){return r==null||X7(r)||Array.isArray(r)||typeof r=="object"&&r instanceof Ft||y.isTypedArray(r)}function X7(r){return r===null||typeof r!="object"&&typeof r!="function"}function yR(r){return dR(r,Y7)}function Y7(r){return r instanceof Ft?{value:r.clone(),recurse:!1}:Tu(r)?{value:null,recurse:!0}:{value:r,recurse:!1}}var Yf=class{constructor(t){if(this.capacity=t,this.begin=0,this.end=0,t==null)throw new RangeError("Can't create a ring buffer of unknown capacity.");if(t<1)throw new RangeError("Can't create ring buffer of capacity < 1.");this.data=new Array(t),this.doubledCapacity=2*t}wrap(t){for(;t<0;)t+=this.doubledCapacity;return t%this.doubledCapacity}get(t){if(t<0)throw new RangeError("Can't get item at a negative index.");return this.data[t%this.capacity]}set(t,e){if(t<0)throw new RangeError("Can't set item at a negative index.");this.data[t%this.capacity]=e}length(){let t=this.end-this.begin;return t<0&&(t=this.doubledCapacity+t),t}isFull(){return this.length()===this.capacity}isEmpty(){return this.length()===0}push(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.set(this.end,t),this.end=this.wrap(this.end+1)}pushAll(t){for(let e of t)this.push(e)}pop(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");this.end=this.wrap(this.end-1);let t=this.get(this.end);return this.set(this.end,void 0),t}unshift(t){if(this.isFull())throw new RangeError("Ring buffer is full.");this.begin=this.wrap(this.begin-1),this.set(this.begin,t)}shift(){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let t=this.get(this.begin);return this.set(this.begin,void 0),this.begin=this.wrap(this.begin+1),t}shuffleExcise(t){if(this.isEmpty())throw new RangeError("Ring buffer is empty.");let e=this.wrap(this.begin+t),n=this.get(e);return this.set(e,this.pop()),n}};var Ec=class extends Yf{constructor(){super(Ec.INITIAL_CAPACITY)}isFull(){return!1}push(t){super.isFull()&&this.expand(),super.push(t)}unshift(t){super.isFull()&&this.expand(),super.unshift(t)}expand(){let t=this.capacity*2,e=new Array(t),n=this.length();for(let o=0;oe===!0)}rowMajorBatch(t,e=!0){return new TN(this,t,e)}columnMajorBatch(t,e=!0,n=wN){return this.rowMajorBatch(t,e).map(s=>hR(s,n))}concatenate(t,e){return new qb(RN([this,t]),e)}take(t){return t<0||t==null?this:new NN(this,t)}skip(t){return t<0||t==null?this:new SN(this,t)}prefetch(t){return new Kb(this,t)}shuffle(t,e){return new DN(this,t,e)}serial(){return new vN(this)}},CN=class extends tr{constructor(t){super(),this.items=t,this.trav=0}summary(){return`Array of ${this.items.length} items`}async next(){if(this.trav>=this.items.length)return{value:null,done:!0};let t=this.items[this.trav];return this.trav++,{value:yR(t),done:!1}}},IN=class extends tr{constructor(t){super(),this.nextFn=t}summary(){return"Function call"}async next(){try{return this.nextFn()}catch(t){throw t.message=`Error thrown while iterating through a dataset: ${t.message}`,t}}},vN=class extends tr{constructor(t){super(),this.upstream=t,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Serial`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){return this.upstream.next()}},SN=class extends tr{constructor(t,e){super(),this.upstream=t,this.maxCount=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Skip`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.count++ Take`}async next(){return this.count++>=this.maxCount?{value:null,done:!0}:this.upstream.next()}},TN=class extends tr{constructor(t,e,n=!0){super(),this.upstream=t,this.batchSize=e,this.enableSmallLastBatch=n,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> RowMajorBatch`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){let t=[];for(;t.length0?{value:t,done:!1}:{value:null,done:!0};t.push(e.value)}return{value:t,done:!1}}},kN=class extends tr{constructor(t,e){super(),this.upstream=t,this.predicate=e,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> Filter`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;){let t=await this.upstream.next();if(t.done||this.predicate(t.value))return t;Nt(t.value)}}},EN=class extends tr{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Map`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=yo.getTensorsInContainer(t.value),n=this.transform(t.value),o=yo.getTensorsInContainer(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},_N=class extends tr{constructor(t,e){super(),this.upstream=t,this.handler=e,this.count=0,this.lastRead=Promise.resolve({value:null,done:!1})}summary(){return`${this.upstream.summary()} -> handleErrors`}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;;)try{return await this.upstream.next()}catch(t){if(!this.handler(t))return{value:null,done:!0}}}},Hb=class extends tr{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> AsyncMap`}async next(){let t=await this.upstream.next();if(t.done)return{value:null,done:!0};let e=yo.getTensorsInContainer(t.value),n=await this.transform(t.value),o=yo.getTensorsInContainer(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return{value:n,done:!1}}},_c=class extends tr{constructor(){super(),this.outputQueue=new Ec,this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}async serialNext(){for(;this.outputQueue.length()===0;)if(!await this.pump())return{value:null,done:!0};return{value:this.outputQueue.shift(),done:!1}}},AN=class extends _c{constructor(t,e){super(),this.upstream=t,this.transform=e}summary(){return`${this.upstream.summary()} -> Flatmap`}async pump(){let t=await this.upstream.next();if(t.done)return!1;let e=yo.getTensorsInContainer(t.value),n=this.transform(t.value),o=yo.getTensorsInContainer(n);this.outputQueue.pushAll(n);for(let s of e)yo.isTensorInList(s,o)||s.dispose();return!0}},qb=class extends tr{constructor(t,e){super(),this.baseErrorHandler=e,this.lastRead=null,this.iterator=null,this.moreIterators=t}summary(){return"TODO: fill in upstream of chained summaries -> Chained"}async next(){return this.lastRead=this.readFromChain(this.lastRead),this.lastRead}async readFromChain(t){if(await t,this.iterator==null){let n=await this.moreIterators.next();if(n.done)return{value:null,done:!0};this.iterator=n.value,this.baseErrorHandler!=null&&(this.iterator=this.iterator.handleErrors(this.baseErrorHandler))}let e=await this.iterator.next();return e.done?(this.iterator=null,this.readFromChain(t)):e}},gl;(function(r){r[r.FAIL=0]="FAIL",r[r.SHORTEST=1]="SHORTEST",r[r.LONGEST=2]="LONGEST"})(gl||(gl={}));var $N=class extends tr{constructor(t,e=gl.FAIL){super(),this.iterators=t,this.mismatchMode=e,this.count=0,this.currentPromise=null}summary(){return"{TODO: fill in upstream of zip summaries} -> Zip"}async nextState(t){await t;let e=0,n=0;function o(i){return i instanceof tr?{value:i.next().then(u=>(e++,u.done&&n++,u.value)),recurse:!1}:{value:null,recurse:!0}}let s=await Ub(this.iterators,o);if(e===n)return{value:null,done:!0};if(n>0)switch(this.mismatchMode){case gl.FAIL:throw new Error(`Zipped streams should have the same length. Mismatched at element ${this.count}.`);case gl.SHORTEST:return{value:null,done:!0};case gl.LONGEST:default:}return this.count++,{value:s,done:!1}}async next(){return this.currentPromise=this.nextState(this.currentPromise),this.currentPromise}},Kb=class extends tr{constructor(t,e){super(),this.upstream=t,this.bufferSize=e,this.buffer=new Yf(e)}summary(){return`${this.upstream.summary()} -> Prefetch`}refill(){for(;!this.buffer.isFull();){let t=this.upstream.next();this.buffer.push(t)}}next(){return this.refill(),this.buffer.shift()}},DN=class extends Kb{constructor(t,e,n){super(t,e),this.upstream=t,this.windowSize=e,this.upstreamExhausted=!1,this.random=bR.alea(n||y.now().toString()),this.lastRead=Promise.resolve({value:null,done:!1})}async next(){return this.lastRead=this.lastRead.then(()=>this.serialNext()),this.lastRead}randomInt(t){return Math.floor(this.random()*t)}chooseIndex(){return this.randomInt(this.buffer.length())}async serialNext(){for(this.upstreamExhausted||this.refill();!this.buffer.isEmpty();){let t=this.chooseIndex(),e=await this.buffer.shuffleExcise(t);if(e.done)this.upstreamExhausted=!0;else return this.refill(),e}return{value:null,done:!0}}};var ei=class{constructor(){this.size=null}batch(t,e=!0){let n=this;y.assert(t>0,()=>`batchSize needs to be positive, but it is + ${t}`);let o;return this.size===1/0||this.size==null?o=this.size:e?o=Math.ceil(this.size/t):o=Math.floor(this.size/t),_n(async()=>(await n.iterator()).columnMajorBatch(t,e,Z7),o)}concatenate(t){let e=this,n;return this.size===1/0||t.size===1/0?n=1/0:this.size!=null&&t.size!=null?n=this.size+t.size:n=null,_n(async()=>(await e.iterator()).concatenate(await t.iterator()),n)}filter(t){let e=this,n;return this.size===1/0?n=1/0:n=null,_n(async()=>(await e.iterator()).filter(o=>B(()=>t(o))),n)}async forEachAsync(t){return(await this.iterator()).forEachAsync(t)}map(t){let e=this;return _n(async()=>(await e.iterator()).map(n=>B(()=>t(n))),this.size)}mapAsync(t){let e=this;return _n(async()=>(await e.iterator()).mapAsync(t),this.size)}prefetch(t){if(t==null)throw new RangeError("`Dataset.prefetch()` requires bufferSize to be specified.");let e=this;return _n(async()=>(await e.iterator()).prefetch(t),this.size)}repeat(t){let e=this,n;return this.size!=null&&t>0?n=this.size*t:t===0?n=0:this.size!=null&&(t===void 0||t<0)?n=1/0:n=null,_n(async()=>{let o=Mh(async()=>({value:await e.iterator(),done:!1}));return wR(o.take(t))},n)}skip(t){let e=this,n;return this.size!=null&&t>=0&&this.size>=t?n=this.size-t:this.size!=null&&(this.size(await e.iterator()).skip(t),n)}shuffle(t,e,n=!0){if(t==null||t<0)throw this.size==null?new RangeError("`Dataset.shuffle()` requires bufferSize to be specified."):new RangeError(`\`Dataset.shuffle()\` requires bufferSize to be specified. If your data fits in main memory (for regular JS objects), and/or GPU memory (for \`tf.Tensor\`s), consider setting bufferSize to the dataset size (${this.size} elements)`);let o=this,s=IR.alea(e||y.now().toString());return _n(async()=>{let i=s.int32();return n&&(i+=s.int32()),(await o.iterator()).shuffle(t,i.toString())},this.size)}take(t){let e=this,n;return this.size!=null&&this.size>t?n=t:this.size!=null&&this.size<=t?n=this.size:n=null,_n(async()=>(await e.iterator()).take(t),n)}async toArray(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArray()}async toArrayForTest(){if(this.size===1/0)throw new Error("Can not convert infinite data stream to array.");return(await this.iterator()).toArrayForTest()}};ei.MAX_BUFFER_SIZE=1e4;function _n(r,t=null){return new class extends ei{constructor(){super(...arguments),this.size=t}async iterator(){return r()}}}function vR(r){return _n(async()=>RN(r),r.length)}function SR(r){if(!Tu(r))throw new Error("The argument to zip() must be an object or array.");let t;if(Array.isArray(r))for(let e=0;e{let e=await Ub(r,n=>{if(n instanceof ei)return{value:n.iterator(),recurse:!1};if(Tu(n))return{value:null,recurse:!0};throw new Error("Leaves of the structure passed to zip() must be Datasets, not primitives.")});return CR(e,gl.SHORTEST)},t)}function Z7(r){if(r===null)return null;let t=r[0];return xR(t)?{value:J7(r),recurse:!1}:{value:null,recurse:!0}}function J7(r){if(r.length===0)throw new Error("Can't make a batch of zero elements.");return r[0]instanceof Ft?qe(r):nr(r)}var Zf=class extends ei{constructor(t){super(),this.input=t}async iterator(){return(await this.input.iterator()).decodeUTF8().split(` +`).map(o=>(o.endsWith("\r")&&(o=o.slice(0,-1)),o))}};var jb='"',zh=Symbol("out"),NR=Symbol("field"),Xb=Symbol("quote"),FN=Symbol("quoteafterquote"),TR=Symbol("quoteinquote"),Jf=class extends ei{constructor(t,e){super(),this.input=t,this.hasHeader=!0,this.fullColumnNames=null,this.columnNamesValidated=!1,this.columnConfigs=null,this.configuredColumnsOnly=!1,this.delimiter=",",this.delimWhitespace=!1,this.base=new Zf(t),e||(e={}),this.hasHeader=e.hasHeader!==!1,this.fullColumnNames=e.columnNames,this.columnConfigs=e.columnConfigs,this.configuredColumnsOnly=e.configuredColumnsOnly,e.delimWhitespace?(y.assert(e.delimiter==null,()=>"Delimiter should not be provided when delimWhitespace is true."),this.delimWhitespace=!0,this.delimiter=" "):this.delimiter=e.delimiter?e.delimiter:","}async columnNames(){return this.columnNamesValidated||await this.setColumnNames(),this.configuredColumnsOnly?Object.keys(this.columnConfigs):this.fullColumnNames}async setColumnNames(){let t=await this.maybeReadHeaderLine();if(!this.fullColumnNames&&!t)throw new Error("Column names must be provided if there is no header line.");this.fullColumnNames&&t&&y.assert(t.length===this.fullColumnNames.length,()=>"The length of provided columnNames ("+this.fullColumnNames.length.toString()+") does not match the length of the header line read from file ("+t.length.toString()+")."),this.fullColumnNames||(this.fullColumnNames=t);let e=this.fullColumnNames.reduce((o,s)=>(o[s]=o[s]+1||1,o),{}),n=Object.keys(e).filter(o=>e[o]>1);if(y.assert(n.length===0,()=>"Duplicate column names found: "+n.toString()),this.columnConfigs){for(let o of Object.keys(this.columnConfigs))if(this.fullColumnNames.indexOf(o)===-1)throw new Error('The key "'+o+'" provided in columnConfigs does not match any of the column names ('+this.fullColumnNames.toString()+").")}this.columnNamesValidated=!0}async maybeReadHeaderLine(){if(this.hasHeader){let e=await(await this.base.iterator()).next();if(e.done)throw new Error("No data was found for CSV parsing.");let n=e.value;return this.parseRow(n,!1)}else return null}async iterator(){this.columnNamesValidated||await this.setColumnNames();let t=await this.base.iterator();return this.hasHeader&&(t=t.skip(1)),t.map(e=>this.makeDataElement(e))}makeDataElement(t){let e=this.parseRow(t),n={},o={};for(let s=0;s14||!Number.isInteger(e))throw new Error(`Invalid fftSize: it must be a power of 2 between 2 to 4 and 2 to 14, but got ${this.fftSize}`);if(this.numFrames=t.numFramesPerSpectrogram||43,this.sampleRateHz=t.sampleRateHz,this.columnTruncateLength=t.columnTruncateLength||this.fftSize,this.audioTrackConstraints=t.audioTrackConstraints,this.smoothingTimeConstant=t.smoothingTimeConstant||0,this.includeSpectrogram=t.includeSpectrogram!==!1,this.includeWaveform=t.includeWaveform===!0,!this.includeSpectrogram&&!this.includeWaveform)throw new Error("Both includeSpectrogram and includeWaveform are false. At least one type of data should be returned.")}summary(){return"microphone"}static async create(t={}){if(!M().get("IS_BROWSER"))throw new Error("microphone API is only supported in browser environment.");let e=new Qf(t);return await e.start(),e}async start(){try{this.stream=await navigator.mediaDevices.getUserMedia({audio:this.audioTrackConstraints==null?!0:this.audioTrackConstraints,video:!1})}catch(n){throw new Error(`Error thrown while initializing video stream: ${n.message}`)}if(!this.stream)throw new Error("Could not obtain audio from microphone.");let t=window.AudioContext||window.webkitAudioContext;if(this.audioContext=new t,!this.sampleRateHz)this.sampleRateHz=this.audioContext.sampleRate;else if(this.audioContext.sampleRate!==this.sampleRateHz)throw new Error(`Mismatch in sampling rate: Expected: ${this.sampleRateHz}; Actual: ${this.audioContext.sampleRate}`);let e=this.audioContext.createMediaStreamSource(this.stream);this.analyser=this.audioContext.createAnalyser(),this.analyser.fftSize=this.fftSize*2,this.analyser.smoothingTimeConstant=this.smoothingTimeConstant,e.connect(this.analyser),this.freqData=new Float32Array(this.fftSize),this.timeData=new Float32Array(this.fftSize)}async next(){if(this.isClosed)return{value:null,done:!0};let t,e,n=await this.getAudioData();if(this.includeSpectrogram){let o=this.flattenQueue(n.freqDataQueue);t=this.getTensorFromAudioDataArray(o,[this.numFrames,this.columnTruncateLength,1])}if(this.includeWaveform){let o=this.flattenQueue(n.timeDataQueue);e=this.getTensorFromAudioDataArray(o,[this.numFrames*this.fftSize,1])}return{value:{spectrogram:t,waveform:e},done:!1}}async capture(){return(await this.next()).value}async getAudioData(){let t=[],e=[],n=0;return new Promise(o=>{let s=setInterval(()=>{this.includeSpectrogram&&(this.analyser.getFloatFrequencyData(this.freqData),this.freqData[0]===-1/0&&o({freqDataQueue:t,timeDataQueue:e}),t.push(this.freqData.slice(0,this.columnTruncateLength))),this.includeWaveform&&(this.analyser.getFloatTimeDomainData(this.timeData),e.push(this.timeData.slice())),++n===this.numFrames&&(clearInterval(s),o({freqDataQueue:t,timeDataQueue:e}))},this.fftSize/this.sampleRateHz*1e3)})}stop(){this.isClosed||(this.isClosed=!0,this.analyser.disconnect(),this.audioContext.close(),this.stream!=null&&this.stream.getTracks().length>0&&this.stream.getTracks()[0].stop())}toArray(){throw new Error("Can not convert infinite audio stream to array.")}getSampleRate(){return this.sampleRateHz}flattenQueue(t){let e=t[0].length,n=new Float32Array(t.length*e);return t.forEach((o,s)=>n.set(o,s*e)),n}getTensorFromAudioDataArray(t,e){let n=new Float32Array(y.sizeFromShape(e));return n.set(t,n.length-t.length),nr(n,e)}};var td=class extends tr{constructor(t,e){if(super(),this.webcamVideoElement=t,this.webcamConfig=e,this.isClosed=!0,this.resize=!1,this.needToResize())if(this.resize=!0,this.cropSize=[this.webcamConfig.resizeHeight,this.webcamConfig.resizeWidth],this.cropBoxInd=Ke([0],"int32"),this.webcamConfig.centerCrop){let n=this.webcamConfig.resizeWidth*1/this.webcamVideoElement.width,o=this.webcamConfig.resizeHeight*1/this.webcamVideoElement.height,s=(1-n)/2,i=(1-o)/2,a=s+n,u=o+i;this.cropBox=Us([i,s,u,a],[1,4])}else this.cropBox=Us([0,0,1,1],[1,4])}summary(){return"webcam"}static async create(t,e={}){if(!M().get("IS_BROWSER"))throw new Error("tf.data.webcam is only supported in browser environment.");if(!t){if(t=document.createElement("video"),!e.resizeWidth||!e.resizeHeight)throw new Error("Please provide webcam video element, or resizeWidth and resizeHeight to create a hidden video element.");t.width=e.resizeWidth,t.height=e.resizeHeight}let n=new td(t,e);return await n.start(),n}async start(){this.webcamConfig.facingMode&&y.assert(this.webcamConfig.facingMode==="user"||this.webcamConfig.facingMode==="environment",()=>`Invalid webcam facing mode: ${this.webcamConfig.facingMode}. Please provide 'user' or 'environment'`);try{this.stream=await navigator.mediaDevices.getUserMedia({video:{deviceId:this.webcamConfig.deviceId,facingMode:this.webcamConfig.facingMode?this.webcamConfig.facingMode:"user",width:this.webcamVideoElement.width,height:this.webcamVideoElement.height}})}catch(t){throw t.message=`Error thrown while initializing video stream: ${t.message}`,t}if(!this.stream)throw new Error("Could not obtain video from webcam.");try{this.webcamVideoElement.srcObject=this.stream}catch(t){console.log(t),this.webcamVideoElement.src=window.URL.createObjectURL(this.stream)}return this.webcamVideoElement.play(),this.isClosed=!1,new Promise(t=>{this.webcamVideoElement.onloadedmetadata=()=>{t()}})}async next(){if(this.isClosed)return{value:null,done:!0};let t;try{t=ox.fromPixels(this.webcamVideoElement)}catch(e){throw new Error(`Error thrown converting video to pixels: ${JSON.stringify(e)}`)}if(this.resize)try{return{value:this.cropAndResizeFrame(t),done:!1}}catch(e){throw new Error(`Error thrown cropping the video: ${e.message}`)}finally{t.dispose()}else return{value:t,done:!1}}needToResize(){return!!(this.webcamConfig.resizeWidth&&this.webcamConfig.resizeHeight&&(this.webcamVideoElement.width!==this.webcamConfig.resizeWidth||this.webcamVideoElement.height!==this.webcamConfig.resizeHeight))}cropAndResizeFrame(t){return B(()=>{let e=sr(J(t,"float32"),0),n;n=so.cropAndResize(e,this.cropBox,this.cropBoxInd,this.cropSize,"bilinear");let o=n.shape;return R(n,o.slice(1))})}async capture(){return(await this.next()).value}stop(){this.stream.getTracks().forEach(e=>e.stop());try{this.webcamVideoElement.srcObject=null}catch(e){console.log(e),this.webcamVideoElement.src=null}this.isClosed=!0}toArray(){throw new Error("Can not convert infinite video stream to array.")}};var ed=class{};var Bh=class extends tr{split(t){return new ON(this,t)}},ON=class extends Bh{constructor(t,e){super(),this.upstream=t,this.impl=new PN(t,e)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},PN=class extends _c{constructor(t,e){super(),this.upstream=t,this.separator=e,this.carryover=""}summary(){return`${this.upstream.summary()} -> Split('${this.separator}')`}async pump(){let t=await this.upstream.next();if(t.done)return this.carryover===""?!1:(this.outputQueue.push(this.carryover),this.carryover="",!0);let e=t.value.split(this.separator);e[0]=this.carryover+e[0];for(let n of e.slice(0,-1))this.outputQueue.push(n);return this.carryover=e[e.length-1],!0}};var Yb=class extends tr{decodeUTF8(){return new LN(this)}},LN=class extends Bh{constructor(t){super(),this.upstream=t,this.impl=new MN(t)}summary(){return this.impl.summary()}async next(){return this.impl.next()}},MN=class extends _c{constructor(t){if(super(),this.upstream=t,M().get("IS_BROWSER"))this.decoder=new TextDecoder("utf-8");else{let{StringDecoder:e}=bN();this.decoder=new e("utf8")}}summary(){return`${this.upstream.summary()} -> Utf8`}async pump(){let t=await this.upstream.next(),e;if(t.done)return!1;e=t.value;let n;return M().get("IS_BROWSER")?n=this.decoder.decode(e,{stream:!0}):n=this.decoder.write(Buffer.from(e.buffer)),this.outputQueue.push(n),!0}};var rd=class extends Yb{constructor(t,e={}){super(),this.file=t,this.options=e,y.assert(t instanceof Uint8Array||(M().get("IS_BROWSER")?t instanceof File||t instanceof Blob:!1),()=>"FileChunkIterator only supports File, Blob and Uint8Array right now."),this.offset=e.offset||0,this.chunkSize=e.chunkSize||1024*1024}summary(){return`FileChunks ${this.file}`}async next(){return this.offset>=(this.file instanceof Uint8Array?this.file.byteLength:this.file.size)?{value:null,done:!0}:{value:await new Promise((e,n)=>{let o=this.offset+this.chunkSize;if(this.file instanceof Uint8Array)e(new Uint8Array(this.file.slice(this.offset,o)));else{let s=new FileReader;s.onload=a=>{let u=s.result;if(u instanceof ArrayBuffer&&(u=new Uint8Array(u)),!(u instanceof Uint8Array))return n(new TypeError("FileReader returned unknown type."));e(u)},s.onabort=a=>n(new Error("Aborted")),s.onerror=a=>n(new Error(a.type));let i=this.file.slice(this.offset,o);s.readAsArrayBuffer(i)}this.offset=o}),done:!1}}};async function kR(r,t={},e){let n,o;typeof r=="string"?n=r:(n=r.url,o=Q7(r));let s=await(e||y.fetch)(n,o);if(s.ok){let i=new Uint8Array(await s.arrayBuffer());return new rd(i,t)}else throw new Error(s.statusText)}var Q7=r=>({method:r.method,headers:r.headers,body:r.body,mode:r.mode,credentials:r.credentials,cache:r.cache,redirect:r.redirect,referrer:r.referrer,integrity:r.integrity});function Zb(r){return typeof r=="string"&&r.slice(0,7)==="file://"}var nd=class extends ed{constructor(t,e={}){super(),this.input=t,this.options=e}async iterator(){if(Zb(this.input)&&M().get("IS_NODE")){let t=Jb();this.input=t.readFileSync(this.input.slice(7))}return new rd(this.input,this.options)}};var od=class extends ed{constructor(t,e={}){super(),this.url=t,this.fileOptions=e}async iterator(){return Zb(this.url)?new nd(this.url,this.fileOptions).iterator():kR(this.url,this.fileOptions)}};function ER(r,t={}){return new Jf(new od(r),t)}function _R(r){let t=Mh(r);return _n(async()=>t)}function AR(r){return _n(async()=>{let t=await r();return Mh(()=>t.next())})}async function $R(r,t){return td.create(r,t)}async function DR(r){return Qf.create(r)}var zN="4.1.0";function tt(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the CPU backend.`)})}var tJ=qr.whereImpl,ku=class extends Bo{constructor(){super(),this.blockSize=48,this.firstUse=!0,this.data=new aa(this,Mn())}nextDataId(){return ku.nextDataId++}write(t,e,n){this.firstUse&&(this.firstUse=!1,M().get("IS_NODE")&&S.warn(` ============================ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dramatically, install our node backend, visit https://github.com/tensorflow/tfjs-node for more details. -============================`));let o={id:this.nextDataId()};return this.data.set(o,{values:t,dtype:n,refCount:1}),o}makeTensorInfo(t,e,n){let o;if(e==="string"&&n!=null&&n.length>0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return v.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){tt([t],"where");let e=this.readSync(t.dataId);return q7(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};Nu.nextDataId=0;var mw={};Wt(mw,{addImpl:()=>zN,bincountImpl:()=>sd,bincountReduceImpl:()=>Jb,castImpl:()=>MN,ceilImpl:()=>BN,concatImpl:()=>Ec,equalImpl:()=>VN,expImpl:()=>WN,expm1Impl:()=>HN,floorImpl:()=>qN,gatherNdImpl:()=>Qb,gatherV2Impl:()=>tw,greaterEqualImpl:()=>jN,greaterImpl:()=>KN,lessEqualImpl:()=>YN,lessImpl:()=>XN,linSpaceImpl:()=>ew,logImpl:()=>ZN,maxImpl:()=>rw,maximumImpl:()=>JN,minimumImpl:()=>QN,multiplyImpl:()=>Bh,negImpl:()=>tT,notEqualImpl:()=>eT,prodImpl:()=>rT,raggedGatherImpl:()=>nw,raggedRangeImpl:()=>ow,raggedTensorToTensorImpl:()=>sw,rangeImpl:()=>Ac,rsqrtImpl:()=>nT,scatterImpl:()=>dl,sigmoidImpl:()=>sF,simpleAbsImpl:()=>LN,sliceImpl:()=>$c,sparseFillEmptyRowsImpl:()=>iw,sparseReshapeImpl:()=>aw,sparseSegmentReductionImpl:()=>ld,sqrtImpl:()=>lF,squaredDifferenceImpl:()=>sT,stridedSliceImpl:()=>lw,stringNGramsImpl:()=>Dc,stringSplitImpl:()=>Rc,stringToHashBucketFastImpl:()=>Fc,subImpl:()=>aT,tileImpl:()=>uw,topKImpl:()=>cw,transposeImpl:()=>id,uniqueImpl:()=>pw});function LN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=LN(o),e.makeOutput(n,t.shape,t.dtype)},$R={kernelName:ii,backendName:"cpu",kernelFunc:K7};function Qt(r){return(t,e,n,o,s)=>{let i=v.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=v.getBroadcastDims(t,i),g=v.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let _=y.locToIndex(N,m,d);c[x]=r(n[C],o[_])}return[c,i]}}function wr(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var DR={kernelName:pp,backendName:"cpu",kernelFunc:wr};function nd(r,t,e="float32"){if(e==="complex64"){let o=nd(r,t,"float32"),s=nd(r,t,"float32");return wr({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Kr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var RR={kernelName:co,backendName:"cpu",kernelFunc:Kr};function Ao(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var FR={kernelName:Rp,backendName:"cpu",kernelFunc:Ao};function MN(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function $o(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Kr({inputs:{x:o},backend:e});let c=nd(e,o.shape,o.dtype),p=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=wr({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=Ao({inputs:{input:o},backend:e}),p=$o({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Kr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=MN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var OR={kernelName:lo,backendName:"cpu",kernelFunc:$o};function oe(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?v.fromUint8ToStringArray(l):l,m=i.dtype==="string"?v.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=$o({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=$o({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,_,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",_),P=wr({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function od(r){return(t,e,n,o,s,i)=>{let a=v.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=v.getBroadcastDims(t,a),d=v.getBroadcastDims(e,a),h=v.mergeRealAndImagArrays(n,o),g=v.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=_.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var zN=Qt((r,t)=>r+t),j7=od((r,t,e,n)=>({real:r+e,imag:t+n})),Ki=oe(Zn,zN,j7),PR={kernelName:Zn,backendName:"cpu",kernelFunc:Ki};function sd(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Jb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function yn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var BN=yn(r=>Math.ceil(r)),X7=Do(qo,BN),LR={kernelName:qo,backendName:"cpu",kernelFunc:X7};function Ec(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?v.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),GN=oe(xa,VN,null,"bool"),MR={kernelName:xa,backendName:"cpu",kernelFunc:GN};var WN=yn(r=>Math.exp(r)),UN=Do(es,WN,"float32"),zR={kernelName:es,backendName:"cpu",kernelFunc:UN};var HN=yn(r=>Math.expm1(r)),Y7=Do(ya,HN),BR={kernelName:ya,backendName:"cpu",kernelFunc:Y7};var qN=yn(r=>Math.floor(r)),Z7=Do(rs,qN),VR={kernelName:rs,backendName:"cpu",kernelFunc:Z7};function Qb(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),J7=oe(Ca,KN,null,"bool"),GR={kernelName:Ca,backendName:"cpu",kernelFunc:J7};var jN=Qt((r,t)=>r>=t?1:0),Q7=oe(ss,jN,null,"bool"),WR={kernelName:ss,backendName:"cpu",kernelFunc:Q7};var XN=Qt((r,t)=>rr<=t?1:0),eJ=oe(Ta,YN,null,"bool"),HR={kernelName:Ta,backendName:"cpu",kernelFunc:eJ};function ew(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),rJ=Do(as,ZN),qR={kernelName:as,backendName:"cpu",kernelFunc:rJ};function rw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var JN=Qt((r,t)=>Math.max(r,t)),nJ=oe(us,JN),KR={kernelName:us,backendName:"cpu",kernelFunc:nJ};var QN=Qt((r,t)=>Math.min(r,t)),oJ=oe(fs,QN),jR={kernelName:fs,backendName:"cpu",kernelFunc:oJ};var Bh=Qt((r,t)=>r*t),sJ=od((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),_c=oe(hs,Bh,sJ),XR={kernelName:hs,backendName:"cpu",kernelFunc:_c};function tT(r,t,e){let n=y.createScalarValue(-1,e);return Bh([],t,n,r,e)}function iJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=tT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var YR={kernelName:pi,backendName:"cpu",kernelFunc:iJ};var eT=Qt((r,t)=>r!==t?1:0),aJ=oe(Da,eT,null,"bool"),ZR={kernelName:Da,backendName:"cpu",kernelFunc:aJ};function id(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var QR={kernelName:ws,backendName:"cpu",kernelFunc:lJ};function uJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function cJ(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function pJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);cJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function tF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>eF)throw new Error(`Requires ((limit - start) / delta) <= ${eF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Ro.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Ro.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Ro[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Ro.FIRST_DIM_SIZE:return t[0];case Ro.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Ro.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Ro[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=nF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Ri(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);rF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function rF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function sw(r,t,e,n,o,s,i,a,u,l){return new ad(r,t,e,n,o,s,i,a,u,l).compute()}function Ac(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),hJ=Do(ks,nT),oF={kernelName:ks,backendName:"cpu",kernelFunc:hJ};function dl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),oT=Et(_s,r=>1/(1+Math.exp(-r))),iF={kernelName:_s,backendName:"cpu",kernelFunc:oT};function $c(r,t,e,n,o){let s=Le.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Le.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?v.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?v.fromStringArrayToUint8(c.values):c.values}function Fo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Le.parseSliceParams(o,s,i);Le.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=$c(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var aF={kernelName:gi,backendName:"cpu",kernelFunc:Fo};function iw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(v.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(v.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let _=0;_a)break}return xMath.sqrt(r)),gJ=Et(As,r=>Math.sqrt(r)),uF={kernelName:As,backendName:"cpu",kernelFunc:gJ};var sT=Qt((r,t)=>{let e=r-t;return e*e}),xJ=oe(Rs,sT),cF={kernelName:Rs,backendName:"cpu",kernelFunc:xJ};function lw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Dc(r,t,e,n,o,s,i,a){return new iT(e,n,o,s,i,a).compute(r,t)}function yJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),bJ=od((r,t,e,n)=>({real:r-e,imag:t-n})),Vh=oe(Fs,aT,bJ),pF={kernelName:Fs,backendName:"cpu",kernelFunc:Vh};function uw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function mF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));mF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Gh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Gh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function cw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew Nu,1);var lT=Et(ts,r=>r>=0?r:Math.exp(r)-1),fF={kernelName:ts,backendName:"cpu",kernelFunc:lT};function uT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function cT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=CJ(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var hF={kernelName:bs,backendName:"cpu",kernelFunc:cT};var pT=Et(Cs,r=>Math.max(0,r)),gF={kernelName:Cs,backendName:"cpu",kernelFunc:pT};var mT=Et(vs,r=>Math.min(Math.max(0,r),6)),xF={kernelName:vs,backendName:"cpu",kernelFunc:mT};function Oc(r,t,e,n,o){if(e==="linear")return Kr({inputs:{x:t},backend:r});if(e==="relu")return pT({inputs:{x:t},backend:r});if(e==="elu")return lT({inputs:{x:t},backend:r});if(e==="relu6")return mT({inputs:{x:t},backend:r});if(e==="prelu")return cT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return uT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return oT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var yF={kernelName:di,backendName:"cpu",kernelFunc:Yt};function fT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?_.shape[1]:_.shape[2],F=i?_.shape[2]:_.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(_.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(_.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],_.dtype),st=nt.values,dt=e.blockSize;for(let ht=0;htMath.acos(r)),CF={kernelName:oa,backendName:"cpu",kernelFunc:SJ};var vJ=Et(sa,r=>Math.acosh(r)),IF={kernelName:sa,backendName:"cpu",kernelFunc:vJ};function NJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var TF={kernelName:Wo,backendName:"cpu",kernelFunc:EJ};function _J(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],v.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=v.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var kF={kernelName:kl,backendName:"cpu",kernelFunc:_J};var AJ=Et(la,r=>Math.asin(r)),EF={kernelName:la,backendName:"cpu",kernelFunc:AJ};var $J=Et(ua,r=>Math.asinh(r)),_F={kernelName:ua,backendName:"cpu",kernelFunc:$J};var DJ=Et(ca,r=>Math.atan(r)),AF={kernelName:ca,backendName:"cpu",kernelFunc:DJ};var RJ=Qt((r,t)=>Math.atan2(r,t)),FJ=oe(ma,RJ),$F={kernelName:ma,backendName:"cpu",kernelFunc:FJ};var OJ=Et(pa,r=>Math.atanh(r)),DF={kernelName:pa,backendName:"cpu",kernelFunc:OJ};function ud(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s==="avg"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s==="avg"?Z/et:Y}}}return h}function fw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,_,x)}}return i}function dw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],_=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s==="avg"&&(_t+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s==="avg"?_t/Vt:kt}}}}return w}function RF(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function PJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var FF={kernelName:Uo,backendName:"cpu",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var OF={kernelName:El,backendName:"cpu",kernelFunc:LJ};function MJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,_=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=_-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let ht=0;ht<_;ht+=w){let bt=(rt+ht)/f;if(bt<0||bt>=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var PF={kernelName:lp,backendName:"cpu",kernelFunc:MJ};function zJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,"float32"),_=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*_,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var LF={kernelName:ap,backendName:"cpu",kernelFunc:zJ};function BJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,_=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),_>=x&&(_=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var MF={kernelName:os,backendName:"cpu",kernelFunc:BJ};function VJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Fo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var zF={kernelName:ai,backendName:"cpu",kernelFunc:VJ};function GJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=sd(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var BF={kernelName:up,backendName:"cpu",kernelFunc:GJ};function WJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var VF={kernelName:cp,backendName:"cpu",kernelFunc:WJ};var UJ=Et(uo,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Kr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(C=>Ao({inputs:{input:C},backend:e})),g=u.map(C=>ji({inputs:{input:C},backend:e})),x=Tu({inputs:h,backend:e,attrs:{axis:s}}),b=Tu({inputs:g,backend:e,attrs:{axis:s}}),w=wr({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=v.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ec(c,a,t[0].dtype,p),f=v.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var HF={kernelName:li,backendName:"cpu",kernelFunc:Tu};function dT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),_=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let ht=st*_[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=ht+Zt*_[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],ht=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=ht+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),JF={kernelName:Xo,backendName:"cpu",kernelFunc:ZJ};var JJ=Et(Yo,r=>Math.cosh(r)),QF={kernelName:Yo,backendName:"cpu",kernelFunc:JJ};function QJ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),_=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let ht=0;ht1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=v.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,_=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=_.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],ht=et+st*f.inChannels,bt=ot,kt=dt;for(let _t=0;_t{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:_,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=v.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&&htot&&(ot=_t)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var cO={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var pO={kernelName:jd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:_,dilationHeight:A,dilationWidth:$,outShape:F}=v.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${jd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=ht,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function hl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=$o({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Kr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=v.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=v.getInnerMostAxes(p.length,u)),v.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=v.computeOutAndReduceShapes(m.shape,p),h=v.upcastType(m.dtype,"int32"),g=nd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=hl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var fO={kernelName:bp,backendName:"cpu",kernelFunc:aQ};function lQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var dO={kernelName:wp,backendName:"cpu",kernelFunc:lQ};var uQ=v.ERF_P,cQ=v.ERF_A1,pQ=v.ERF_A2,mQ=v.ERF_A3,fQ=v.ERF_A4,dQ=v.ERF_A5,hQ=Et(ga,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+uQ*e);return t*(1-((((dQ*n+fQ)*n+mQ)*n+pQ)*n+cQ)*n*Math.exp(-e*e))}),hO={kernelName:ga,backendName:"cpu",kernelFunc:hQ};function cd(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var gO={kernelName:ui,backendName:"cpu",kernelFunc:cd};var gQ=Qt((r,t)=>r/t),Wh=oe(Qo,gQ),Uh={kernelName:Qo,backendName:"cpu",kernelFunc:Wh};function hw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),SQ=oe(ns,IQ,null,"int32"),wO={kernelName:ns,backendName:"cpu",kernelFunc:SQ};function vQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=dT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Ki({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Ki({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c==="NCHW"&&f==="prelu"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Oc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Oc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var CO={kernelName:Ii,backendName:"cpu",kernelFunc:vQ};function NQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=hT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Ki({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Oc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var IO={kernelName:Si,backendName:"cpu",kernelFunc:NQ};function TQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=v.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=Qb(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var SO={kernelName:wa,backendName:"cpu",kernelFunc:TQ};function kQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],"gatherV2");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=v.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=tw(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var vO={kernelName:ci,backendName:"cpu",kernelFunc:kQ};function EQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=hw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var NO={kernelName:Ip,backendName:"cpu",kernelFunc:EQ};var _Q=Et(Ia,r=>Number.isFinite(r)?1:0,"bool"),TO={kernelName:Ia,backendName:"cpu",kernelFunc:_Q};var AQ=Et(Sa,r=>Math.abs(r)===1/0?1:0,"bool"),kO={kernelName:Sa,backendName:"cpu",kernelFunc:AQ};var $Q=Et(va,r=>Number.isNaN(r)?1:0,"bool"),EO={kernelName:va,backendName:"cpu",kernelFunc:$Q};function DQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=ew(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var _O={kernelName:vp,backendName:"cpu",kernelFunc:DQ};var RQ=Et(ka,r=>Math.log1p(r)),AO={kernelName:ka,backendName:"cpu",kernelFunc:RQ};var FQ=Qt((r,t)=>r&&t),OQ=oe(Ea,FQ,null,"bool"),$O={kernelName:Ea,backendName:"cpu",kernelFunc:OQ};var PQ=Et(_a,r=>r?0:1,"bool"),DO={kernelName:_a,backendName:"cpu",kernelFunc:PQ};var LQ=Qt((r,t)=>r||t),MQ=oe(Aa,LQ,null,"bool"),RO={kernelName:Aa,backendName:"cpu",kernelFunc:MQ};function zQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Kr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=ud(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LO={kernelName:cs,backendName:"cpu",kernelFunc:VQ};function GQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=v.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=dw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var MO={kernelName:Fl,backendName:"cpu",kernelFunc:GQ};function WQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=v.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=RF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,_=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let ht=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=ht===bt?1:0;if(kt===0)continue;let _t=P.get(V,ot,nt,dt,G);et+=_t*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var zO={kernelName:kp,backendName:"cpu",kernelFunc:WQ};function UQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,fw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,_=w-1-m.padInfo.top,A=wt(a.shape,"float32"),$=e.data.get(o.dataId).values,F=wt(o.shape,"float32",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var BO={kernelName:Tp,backendName:"cpu",kernelFunc:UQ};function VO(r,t,e,n,o){let s=y.computeStrides(t),i=ud(r,t,e,s,o,"max"),a=fw(r,t,e,o,!0,n);return[i.values,a.values]}var GO={kernelName:Ep,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=v.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=VO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function HQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=v.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=$o({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Wh({inputs:{a:f,b:m},backend:e});p.push(d);let h=hl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var WO={kernelName:ps,backendName:"cpu",kernelFunc:HQ};function qQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=v.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=v.getInnerMostAxes(u.length,o.shape.length)),v.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=v.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[_]&&(C[_]=(l[_]-1)*2-C[_]+c);C=C.map((_,A)=>_-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var HO={kernelName:ds,backendName:"cpu",kernelFunc:KQ};var jQ=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),XQ=oe($a,jQ),qO={kernelName:$a,backendName:"cpu",kernelFunc:XQ};var jO=Tl(fh());function yT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=xT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=v.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Vh({inputs:{a:o,b:p},backend:e}),f=UN({inputs:{x:m},backend:e}),d=hl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Wh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var KO={kernelName:Ds,backendName:"cpu",kernelFunc:yT};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:yT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=cd({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Tu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var nP={kernelName:fi,backendName:"cpu",kernelFunc:bT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;b_+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var gw={kernelName:xs,backendName:"cpu",kernelFunc:o9};var s9=Qt((r,t)=>Math.pow(r,t)),i9=oe(ys,s9),oP={kernelName:ys,backendName:"cpu",kernelFunc:i9};function a9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=nw(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var sP={kernelName:Ap,backendName:"cpu",kernelFunc:a9};function l9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ow(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var iP={kernelName:$p,backendName:"cpu",kernelFunc:l9};function u9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=sw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var aP={kernelName:Dp,backendName:"cpu",kernelFunc:u9};function c9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Ac(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var lP={kernelName:Ol,backendName:"cpu",kernelFunc:c9};var p9=Et(Pa,r=>1/r),uP={kernelName:Pa,backendName:"cpu",kernelFunc:p9};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let _=0;_1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let _=0;_1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,_=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(_)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let ht=0;ht<$;ht++){let bt=ht+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],_t=bt*C,Vt=Math.min(p-1,i?Math.round(_t):Math.floor(_t));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var fP={kernelName:Fp,backendName:"cpu",kernelFunc:h9};function g9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Kr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var dP={kernelName:Ns,backendName:"cpu",kernelFunc:g9};var hP={kernelName:qa,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=v.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),gP={kernelName:Ts,backendName:"cpu",kernelFunc:x9};function y9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=dl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var xP={kernelName:La,backendName:"cpu",kernelFunc:y9};function b9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?v9*r:S9*(Math.exp(r)-1)),CP={kernelName:Ma,backendName:"cpu",kernelFunc:N9};var T9=Et(Ba,r=>r<0?-1:r>0?1:0),IP={kernelName:Ba,backendName:"cpu",kernelFunc:T9};var k9=Et(Es,r=>Math.sin(r)),SP={kernelName:Es,backendName:"cpu",kernelFunc:k9};var E9=Et(za,r=>Math.sinh(r)),vP={kernelName:za,backendName:"cpu",kernelFunc:E9};var _9=11920928955078125e-23,NP=Math.log(_9)+2,A9=Et(Va,r=>{let t=r>-NP,e=r0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return{dataId:o,shape:t,dtype:e}}refCount(t){return this.data.has(t)?this.data.get(t).refCount:0}incRef(t){let e=this.data.get(t);e.refCount++}decRef(t){if(this.data.has(t)){let e=this.data.get(t);e.refCount--}}move(t,e,n,o,s){this.data.set(t,{values:e,dtype:o,refCount:s})}numDataIds(){return this.data.numDataIds()}async read(t){return this.readSync(t)}readSync(t){let{dtype:e,complexTensorInfos:n}=this.data.get(t);if(e==="complex64"){let o=this.readSync(n.real.dataId),s=this.readSync(n.imag.dataId);return S.mergeRealAndImagArrays(o,s)}return this.data.get(t).values}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}makeOutput(t,e,n){return Mn().makeTensorFromTensorInfo(this.makeTensorInfo(e,n,t),this)}disposeData(t,e=!1){if(this.data.has(t)){if(this.data.get(t).refCount--,!e&&this.data.get(t).refCount>0)return!1;let{complexTensorInfos:n}=this.data.get(t);n!=null&&(this.disposeData(n.real.dataId,!0),this.disposeData(n.imag.dataId,!0)),this.data.delete(t)}return!0}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}memory(){return{unreliable:!0,reasons:["The reported memory is an upper bound. Due to automatic garbage collection, the true allocated memory may be less."]}}where(t){tt([t],"where");let e=this.readSync(t.dataId);return tJ(t.shape,e)}dispose(){}floatPrecision(){return 32}epsilon(){return super.epsilon()}};ku.nextDataId=0;var fw={};Wt(fw,{addImpl:()=>GN,bincountImpl:()=>ad,bincountReduceImpl:()=>Qb,castImpl:()=>VN,ceilImpl:()=>WN,concatImpl:()=>Ac,equalImpl:()=>UN,expImpl:()=>qN,expm1Impl:()=>jN,floorImpl:()=>XN,gatherNdImpl:()=>tw,gatherV2Impl:()=>ew,greaterEqualImpl:()=>ZN,greaterImpl:()=>YN,lessEqualImpl:()=>QN,lessImpl:()=>JN,linSpaceImpl:()=>rw,logImpl:()=>tT,maxImpl:()=>nw,maximumImpl:()=>eT,minimumImpl:()=>rT,multiplyImpl:()=>Vh,negImpl:()=>nT,notEqualImpl:()=>oT,prodImpl:()=>sT,raggedGatherImpl:()=>ow,raggedRangeImpl:()=>sw,raggedTensorToTensorImpl:()=>iw,rangeImpl:()=>Dc,rsqrtImpl:()=>iT,scatterImpl:()=>xl,sigmoidImpl:()=>lF,simpleAbsImpl:()=>BN,sliceImpl:()=>Rc,sparseFillEmptyRowsImpl:()=>aw,sparseReshapeImpl:()=>lw,sparseSegmentReductionImpl:()=>cd,sqrtImpl:()=>pF,squaredDifferenceImpl:()=>lT,stridedSliceImpl:()=>uw,stringNGramsImpl:()=>Fc,stringSplitImpl:()=>Oc,stringToHashBucketFastImpl:()=>Pc,subImpl:()=>cT,tileImpl:()=>cw,topKImpl:()=>pw,transposeImpl:()=>ld,uniqueImpl:()=>mw});function BN(r){let t=new Float32Array(r.length);for(let e=0;e{let{x:t}=r.inputs,e=r.backend;tt(t,"abs");let n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId).values;return n=BN(o),e.makeOutput(n,t.shape,t.dtype)},FR={kernelName:ui,backendName:"cpu",kernelFunc:eJ};function Qt(r){return(t,e,n,o,s)=>{let i=S.assertAndGetBroadcastShape(t,e),a=i.length,u=y.computeStrides(i),l=y.sizeFromShape(i),c=y.getTypedArrayFromDType(s,l),p=t.length,m=e.length,f=y.computeStrides(t),d=y.computeStrides(e),h=S.getBroadcastDims(t,i),g=S.getBroadcastDims(e,i);if(h.length+g.length===0)for(let x=0;xw[A]=0);let C=y.locToIndex(w,p,f),N=b.slice(-m);g.forEach(A=>N[A]=0);let E=y.locToIndex(N,m,d);c[x]=r(n[C],o[E])}return[c,i]}}function Ir(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=e.makeTensorInfo(n.shape,"complex64"),u=e.data.get(a.dataId);return u.complexTensorInfos={real:e.makeTensorInfo(n.shape,"float32",s),imag:e.makeTensorInfo(o.shape,"float32",i)},a}var OR={kernelName:mp,backendName:"cpu",kernelFunc:Ir};function sd(r,t,e="float32"){if(e==="complex64"){let o=sd(r,t,"float32"),s=sd(r,t,"float32");return Ir({inputs:{real:o,imag:s},backend:r})}let n=y.makeZerosTypedArray(y.sizeFromShape(t),e);return r.makeTensorInfo(t,e,n)}function Xr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var PR={kernelName:mo,backendName:"cpu",kernelFunc:Xr};function $o(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.data.get(n.dataId).complexTensorInfos.real,s=e.data.get(o.dataId).values;return e.makeTensorInfo(o.shape,o.dtype,s)}var LR={kernelName:Fp,backendName:"cpu",kernelFunc:$o};function VN(r,t,e,n){if(n==="int32"){let o=Int32Array.from(r);return[t,"int32",o]}if(n==="bool"){let o=y.toTypedArray([0],e),[s,i]=Qt((a,u)=>a!==u?1:0)(t,[],r,o,"bool");return[i,"bool",s]}throw new Error(`Error in Cast: failed to cast ${e} to ${n}`)}function Do(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return Xr({inputs:{x:o},backend:e});let c=sd(e,o.shape,o.dtype),p=Do({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),m=Ir({inputs:{real:p,imag:c},backend:e});return e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),m}if(o.dtype==="complex64"){let c=$o({inputs:{input:o},backend:e}),p=Do({inputs:{x:c},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(c),p}if(!y.hasEncodingLoss(o.dtype,s)){let c=Xr({inputs:{x:o},backend:e});return{dataId:c.dataId,shape:c.shape,dtype:s}}let i=e.data.get(o.dataId).values,[a,u,l]=VN(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}var MR={kernelName:co,backendName:"cpu",kernelFunc:Do};function ie(r,t,e,n){return e==null?({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;tt([i,a],r);let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=i.dtype==="string"?S.fromUint8ToStringArray(l):l,m=i.dtype==="string"?S.fromUint8ToStringArray(c):c,f=n||i.dtype,[d,h]=t(i.shape,a.shape,p,m,f);return u.makeTensorInfo(h,f,d)}:({inputs:o,backend:s})=>{let{a:i,b:a}=o,u=s;if(i.dtype==="complex64"||a.dtype==="complex64"){let l=Do({inputs:{x:i},backend:u,attrs:{dtype:"complex64"}}),c=u.data.get(l.dataId),p=c.complexTensorInfos.real,m=c.complexTensorInfos.imag,f=u.data.get(p.dataId).values,d=u.data.get(m.dataId).values,h=Do({inputs:{x:a},backend:u,attrs:{dtype:"complex64"}}),g=u.data.get(h.dataId),x=g.complexTensorInfos.real,b=g.complexTensorInfos.imag,w=u.data.get(x.dataId).values,C=u.data.get(b.dataId).values,[N,E,A]=e(i.shape,a.shape,f,d,w,C),$=u.makeTensorInfo(A,"float32",N),F=u.makeTensorInfo(A,"float32",E),P=Ir({inputs:{real:$,imag:F},backend:u});return u.disposeIntermediateTensorInfo(l),u.disposeIntermediateTensorInfo(h),u.disposeIntermediateTensorInfo($),u.disposeIntermediateTensorInfo(F),P}else{let l=u.data.get(i.dataId).values,c=u.data.get(a.dataId).values,p=n||i.dtype,[m,f]=t(i.shape,a.shape,l,c,p);return u.makeTensorInfo(f,p,m)}}}function id(r){return(t,e,n,o,s,i)=>{let a=S.assertAndGetBroadcastShape(t,e),u=y.sizeFromShape(a),l=a.length,c=y.computeStrides(a),p=y.getTypedArrayFromDType("float32",u),m=y.getTypedArrayFromDType("float32",u),f=S.getBroadcastDims(t,a),d=S.getBroadcastDims(e,a),h=S.mergeRealAndImagArrays(n,o),g=S.mergeRealAndImagArrays(s,i),x=t.length,b=y.computeStrides(t),w=e.length,C=y.computeStrides(e);if(f.length+d.length===0)for(let N=0;NA[G]=0);let $=y.locToIndex(A,x,b),F=E.slice(-w);d.forEach(G=>F[G]=0);let P=y.locToIndex(F,w,C),V=r(h[$*2],h[$*2+1],g[P*2],g[P*2+1]);p[N]=V.real,m[N]=V.imag}return[p,m,a]}}var GN=Qt((r,t)=>r+t),rJ=id((r,t,e,n)=>({real:r+e,imag:t+n})),Zi=ie(Qn,GN,rJ),zR={kernelName:Qn,backendName:"cpu",kernelFunc:Zi};function ad(r,t,e,n,o){let s=y.sizeFromShape(n),i=y.makeZerosTypedArray(o,e);for(let a=0;a=o||(s>0?i[u]+=t[a]:i[u]+=1)}return i}function Qb(r,t,e,n=!1){let o=r.shape[0],s=r.shape[1],i=wt([o,e],t.dtype);for(let a=0;a=e||(n?i.set(1,a,l):t.size>0?i.set(i.get(a,l)+t.get(a,u),a,l):i.set(i.get(a,l)+1,a,l))}return i}function wn(r){return(t,e,n)=>{let o=y.getTypedArrayFromDType(e,t.length);for(let s=0;s{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=y.sizeFromShape(i.shape),c=e||i.dtype,p=y.getArrayFromDType(c,l);for(let m=0;m{let{x:i}=n;if(tt(i,r),i.dtype==="string"||e==="string")throw new Error("unaryKernelFunc does not support string input/output");let a=s,u=a.data.get(i.dataId).values,l=e||i.dtype,c=t(u,l,o);return a.makeTensorInfo(i.shape,l,c)}}var WN=wn(r=>Math.ceil(r)),nJ=Ro(Ko,WN),BR={kernelName:Ko,backendName:"cpu",kernelFunc:nJ};function Ac(r,t,e,n){let o=y.getArrayFromDType(e,y.sizeFromShape(t));if(n&&e!=="string"){let s=0;r.forEach(i=>{let a=y.sizeFromShape(i.shape);o.set(i.vals,s),s+=a})}else{let s=0;r.forEach(i=>{let a=e==="string"?S.fromUint8ToStringArray(i.vals):i.vals,u=0;for(let l=0;lr===t?1:0),HN=ie(Ia,UN,null,"bool"),VR={kernelName:Ia,backendName:"cpu",kernelFunc:HN};var qN=wn(r=>Math.exp(r)),KN=Ro(rs,qN,"float32"),GR={kernelName:rs,backendName:"cpu",kernelFunc:KN};var jN=wn(r=>Math.expm1(r)),oJ=Ro(va,jN),WR={kernelName:va,backendName:"cpu",kernelFunc:oJ};var XN=wn(r=>Math.floor(r)),sJ=Ro(ns,XN),UR={kernelName:ns,backendName:"cpu",kernelFunc:sJ};function tw(r,t,e,n,o,s,i,a,u){let l=wt([n,s],e);for(let c=0;c=u/s)throw new Error(`Invalid indices: ${p} does not index into ${a}`);for(let f=0;fr>t?1:0),iJ=ie(Ta,YN,null,"bool"),HR={kernelName:Ta,backendName:"cpu",kernelFunc:iJ};var ZN=Qt((r,t)=>r>=t?1:0),aJ=ie(is,ZN,null,"bool"),qR={kernelName:is,backendName:"cpu",kernelFunc:aJ};var JN=Qt((r,t)=>rr<=t?1:0),uJ=ie(Aa,QN,null,"bool"),jR={kernelName:Aa,backendName:"cpu",kernelFunc:uJ};function rw(r,t,e){let n=(t-r)/(e-1),o=y.makeZerosTypedArray(e,"float32");o[0]=r;for(let s=1;sMath.log(r)),cJ=Ro(us,tT),XR={kernelName:us,backendName:"cpu",kernelFunc:cJ};function nw(r,t,e,n){let o=y.getTypedArrayFromDType(n,y.sizeFromShape(e));for(let s=0;sa)&&(a=l)}o[s]=a}return o}var eT=Qt((r,t)=>Math.max(r,t)),pJ=ie(ps,eT),YR={kernelName:ps,backendName:"cpu",kernelFunc:pJ};var rT=Qt((r,t)=>Math.min(r,t)),mJ=ie(hs,rT),ZR={kernelName:hs,backendName:"cpu",kernelFunc:mJ};var Vh=Qt((r,t)=>r*t),fJ=id((r,t,e,n)=>({real:r*e-t*n,imag:r*n+t*e})),$c=ie(xs,Vh,fJ),JR={kernelName:xs,backendName:"cpu",kernelFunc:$c};function nT(r,t,e){let n=y.createScalarValue(-1,e);return Vh([],t,n,r,e)}function dJ(r){let{inputs:t,backend:e}=r,{x:n}=t;tt(n,"neg");let o=e.data.get(n.dataId).values,[s,i]=nT(o,n.shape,n.dtype);return e.makeTensorInfo(i,n.dtype,s)}var QR={kernelName:di,backendName:"cpu",kernelFunc:dJ};var oT=Qt((r,t)=>r!==t?1:0),hJ=ie(Pa,oT,null,"bool"),tF={kernelName:Pa,backendName:"cpu",kernelFunc:hJ};function ld(r,t,e,n,o){let s=t.length,i=y.sizeFromShape(t),a=y.computeStrides(t),u=y.computeStrides(o),l=y.getTypedArrayFromDType(e,y.sizeFromShape(o));for(let c=0;ce.disposeIntermediateTensorInfo(b)),e.makeTensorInfo(x,g,d)}var rF={kernelName:Is,backendName:"cpu",kernelFunc:gJ};function xJ(r,t,e){r.forEach((n,o)=>{if(n<0||n>=e){let s=y.indexToLoc(o,t.length,y.computeStrides(t)).join(",");throw new Error(`indices[${s}] = ${n} is not in [0, ${e})`)}})}function yJ(r,t){for(let e=0;eo)throw new Error("Ragged splits must not point past values");for(let s=1;sn[s])throw new Error("Ragged splits must be sorted in ascending order")}}function bJ(r,t,e,n){let o=[],s=0,i=t.length-1+e.length,a=new Array(i).fill(null).map(()=>[0]);yJ(e,n);let u=1;for(let l=0;l=0){let h=a[d],g=h[h.length-1]-f[c];for(let x=c;xo[i]=s)}return t}function nF(r,t){let e=r.slice(0,t);for(;e.length1)throw new Error("starts must be a scalar or vector");if(o.length>1)throw new Error("limits must be a scalar or vector");if(i.length>1)throw new Error("deltas must be a scalar or vector");let a=t.length===0,u=o.length===0,l=i.length===0,c=[];a||c.push(t[0]),u||c.push(o[0]),l||c.push(i[0]);for(let g=1;g0&&bx)C=0;else if(C=Math.ceil(Math.abs((b-x)/w)),C>oF)throw new Error(`Requires ((limit - start) / delta) <= ${oF}`);m[g+1]=m[g]+C}let f=m[p],d=y.getArrayFromDType(e,f),h=0;for(let g=0;gn&&(n=s)}return n}static getMaxWidthValueRowID(t){let e=t.length;if(e===0)return 0;let n=0,o=t[0],s=0;for(let i=1;i"Final length of result must be equal to firstDimension."),s}calculateOutputIndexRowSplit(t,e,n,o){let s=t.length,i=[];for(let a=0;a0&&i.length!==t[s-1])throw new Error("Invalid row split size.");return i}calculateOutputIndexValueRowID(t,e,n,o){let s=t.length,i=[];if(s===0)return[];let a=0,u=t[0];if(u>=e.length)throw new Error(`Got currentValueRowId=${u}, which is not less than ${e.length}`);let l=e[u];i.push(l);for(let c=1;c=0&&(++a,a=e.length)throw new Error(`Got nextValueRowId=${p} which is not less than ${e.length}`);l=e[p]}i.push(l)}if(i.length!==t.length)throw new Error("Invalid row ids.");return i}calculateOutputIndex(t,e,n,o){let s=this.getRowPartitionTensor(t),i=this.getRowPartitionTypeByDimension(t);switch(i){case Fo.VALUE_ROWIDS:return this.calculateOutputIndexValueRowID(s,e,n,o);case Fo.ROW_SPLITS:if(s.length-1>e.length)throw new Error(`Row partition size is greater than output size: ${s.length-1} > ${e.length}`);return this.calculateOutputIndexRowSplit(s,e,n,o);default:throw new Error(`Unsupported partition type: ${Fo[i]}`)}}getFirstDimensionSize(){let t=this.rowPartitionValues[0];if(this.rowPartitionTypes.length===0)throw new Error("No row_partition_types given.");let e=this.rowPartitionTypes[0];switch(e){case Fo.FIRST_DIM_SIZE:return t[0];case Fo.VALUE_ROWIDS:throw new Error("Cannot handle VALUE_ROWIDS in first dimension.");case Fo.ROW_SPLITS:return this.rowPartitionValuesShapes[0][0]-1;default:throw new Error(`Cannot handle type ${Fo[e]}`)}}compute(){if(this.rowPartitionValues[0].length<=0)throw new Error("Invalid first partition input. Tensor requires at least one element.");let e=this.getFirstDimensionSize(),n=this.calculateOutputSize(e),o=new Array(this.raggedRank+1);o[o.length-1]=1;for(let u=o.length-2;u>=0;--u)o[u]=o[u+1]*n[u+1];let s=iF(n,!1),i=y.getArrayFromDType(this.valuesDType,y.sizeFromShape(s));if(o[0]*n[0]>0){let u=this.calculateFirstParentOutputIndex(e,o[0],n[0]);for(let l=1;l<=this.raggedRank;++l)u=this.calculateOutputIndex(l-1,u,o[l],n[l]);this.setOutput(this.raggedRank,u,i,s)}return[s,i]}setOutput(t,e,n,o){if(n.length===0)return;let s=this.values,i=n,a=o.slice();a=a.slice(t+1);let u=y.sizeFromShape(a),l=e.length,c=this.defaultValue;if(c.length!==u&&c.length!==1){let d=this.defaultValueShape;B(()=>{let h=R(c,d);c=Pi(h,a).dataSync()})}let p=0,m=0,f=0;for(let d=0;d<=l;++d){let h=d=l){let g=n.length;h=Math.floor(g/u)}if(h>f)if(this.defaultValue.length===1)i.subarray(f*u,h*u).fill(this.defaultValue[0]),f=h;else for(;h>f;){let g=i.slice(f*u);sF(g,c,u),++f}h<0?(p=d+1,m=f):(p=d,m=f,f=m+1)}}};function sF(r,t,e){for(let n=0;n= 0`);if(n<-1)throw new Error(`Dimension ${n} must be >= -1`);n=-1}e.push(n)}return e}function iw(r,t,e,n,o,s,i,a,u,l){return new ud(r,t,e,n,o,s,i,a,u,l).compute()}function Dc(r,t,e,n){let o=r===t,s=r1;if(o||s||i)return y.makeZerosTypedArray(0,n);let a=Math.abs(Math.ceil((t-r)/e)),u=y.makeZerosTypedArray(a,n);t1/Math.sqrt(r)),vJ=Ro(As,iT),aF={kernelName:As,backendName:"cpu",kernelFunc:vJ};function xl(r,t,e,n,o,s,i,a,u,l){let c=[n/o,o],p=r.values,m=t.values;if(n===0)return wt(e,t.dtype);let f=wt(c,t.dtype);typeof u=="string"||typeof u=="number"?f.values.fill(u):typeof u=="boolean"&&f.values.fill(+u);for(let d=0;d=n/o)throw new Error(`Invalid indices: ${h} does not index into ${e}`);for(let x=0;x1/(1+Math.exp(-r))),aT=_t(Ds,r=>1/(1+Math.exp(-r))),uF={kernelName:Ds,backendName:"cpu",kernelFunc:aT};function Rc(r,t,e,n,o){let s=Me.isSliceContinous(n,t,e),i=y.sizeFromShape(e),a=y.computeStrides(n);if(s){let p=Me.computeFlatOffset(t,a);return o==="string"?r.slice(p,p+i):r.subarray(p,p+i)}let u=o==="string"?S.fromUint8ToStringArray(r):r,l=wt(n,o,u),c=wt(e,o);for(let p=0;pd+t[h]);c.set(l.get(...f),...m)}return o==="string"?S.fromStringArrayToUint8(c.values):c.values}function Oo(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n;tt(o,"slice");let[a,u]=Me.parseSliceParams(o,s,i);Me.assertParamsValid(o,a,u);let l=e.data.get(o.dataId).values,c=Rc(l,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,c)}var cF={kernelName:bi,backendName:"cpu",kernelFunc:Oo};function aw(r,t,e,n,o,s,i){let a=t[0],u=s[0],l=new Array(u),c=new Array(a),p=t[1];if(u===0){if(a!==0)throw new Error(S.getSparseFillEmptyRowsIndicesDenseShapeMismatch(a));let g=y.getArrayFromDType(e,0),x=y.getArrayFromDType(o,0);return[g,[0,p],x,l,c]}let m=!0,f=0,d=new Array(u).fill(0);for(let g=0;g=u)throw new Error(S.getSparseFillEmptyRowsOutOfRangeIndexErrorMessage(g,x,u));++d[x],m=m&&x>=f,f=x}let h=!0;for(let g=0;g0&&(d[g]+=d[g-1])}if(h&&m){let g=r,x=n;for(let b=0;b0){f[m-1]=1;for(let g=m-2;g>=0;--g)f[g]=f[g+1]*n[g+1]}let d=[];if(a>0){d[a-1]=1;for(let g=a-2;g>=0;--g)d[g]=d[g+1]*u[g+1]}let h=y.getArrayFromDType(e,i*a);for(let g=0;g0?o[a-1]+1:0;if(p<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let m=t.slice();m[0]=p;let f=m.reduce((w,C)=>w*C,1),d=y.getArrayFromDType(e,f);if(a===0)return p>0&&d.fill(i),[d,m];if(p<=0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let h=0,g=1,x=0,b=o[h];for(;;){let w=0;if(g=w)throw new Error(S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage())}if(b<0||b>=p)throw new Error(S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(b,p));b>x&&d.fill(i,x*l,b*l);for(let C=h;C=u[0])throw new Error(S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(C,n[C],u[0]));for(let E=0;Ea)break}return xMath.sqrt(r)),SJ=_t(Rs,r=>Math.sqrt(r)),mF={kernelName:Rs,backendName:"cpu",kernelFunc:SJ};var lT=Qt((r,t)=>{let e=r-t;return e*e}),NJ=ie(Ps,lT),fF={kernelName:Ps,backendName:"cpu",kernelFunc:NJ};function uw(r,t,e,n){let o=wt(r,t.dtype);for(let s=0;s0?0:a-u),f=0;f+=l*this.leftPad.length;for(let b=0;bb.forEach(w=>h[g++]=w);for(let b=0;b0){x(t[m+p-1]);for(let b=0;b0){let u=e[0];if(u!==0)throw new Error(`First split value must be 0, got ${u}`);for(let l=1;l=u;if(c=c&&e[l]<=n,!c)throw new Error(`Invalid split value ${e[l]}, must be in [${u}, ${n}]`);u=e[l]}if(u!==n)throw new Error(`Last split value must be data size. Expected ${n}, got ${u}`)}let s=o-1,i=y.getArrayFromDType("int32",o);if(n===0||o===0){let u=new Array(n);for(let l=0;l<=s;++l)i[l]=0;return[u,i]}i[0]=0;for(let u=1;u<=s;++u){let l=e[u]-e[u-1],c=0;this.nGramWidths.forEach(p=>{c+=this.getNumNGrams(l,p)}),this.preserveShort&&l>0&&c===0&&(c=1),i[u]=i[u-1]+c}let a=new Array(i[s]);for(let u=0;u{let m=e[u+1]-e[u],f=this.getNumNGrams(m,p);this.createNGrams(t,l,a,c,f,p),c+=f}),this.preserveShort&&c===i[u]){let p=e[u+1]-e[u];if(p===0)continue;let m=p+2*this.padWidth,f=1;this.createNGrams(t,l,a,c,f,m)}}return[a,i]}};function Fc(r,t,e,n,o,s,i,a){return new uT(e,n,o,s,i,a).compute(r,t)}function TJ(r,t,e,n){if(!r.length)return;if(t.length===0){for(let s=0;sr-t),kJ=id((r,t,e,n)=>({real:r-e,imag:t-n})),Gh=ie(Ls,cT,kJ),dF={kernelName:Ls,backendName:"cpu",kernelFunc:Gh};function cw(r,t){let e=new Array(r.rank);for(let o=0;o{let e=t.value-r.value;return e===0?r.index-t.index:e};function hF(r,t,e=0,n=r.length-1){for(;n>e;){if(n-e>600){let a=n-e+1,u=t-e+1,l=Math.log(a),c=.5*Math.exp(2*l/3),p=.5*Math.sqrt(l*c*(a-c)/a)*Math.sign(u-a/2),m=Math.max(e,Math.floor(t-u*c/a+p)),f=Math.min(n,Math.floor(t+(a-u)*c/a+p));hF(r,t,m,f)}let o=r[t],s=e,i=n;for(y.swap(r,e,t),Wh(r[n],o)>0&&y.swap(r,e,n);s0;)i=i-1}Wh(r[e],o)===0?y.swap(r,e,i):(i=i+1,y.swap(r,i,n)),i<=t&&(e=i+1),t<=i&&(n=i-1)}}function pw(r,t,e,n,o){let s=t[t.length-1],[i,a]=[r.length/s,s],u=y.getTypedArrayFromDType(e,i*n),l=y.getTypedArrayFromDType("int32",i*n);for(let p=0;pd[w]={value:b,index:w}),n{for(let g=0;gnew ku,1);var pT=_t(es,r=>r>=0?r:Math.exp(r)-1),gF={kernelName:es,backendName:"cpu",kernelFunc:pT};function mT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n;tt([o],"leakyRelu");let i=y.sizeFromShape(o.shape),a=e.data.get(o.dataId).values,u=y.getTypedArrayFromDType("float32",i);for(let l=0;lr<0?t*r:r);function fT(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t;tt([n,o],"prelu");let s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,[a,u]=_J(n.shape,o.shape,s,i,"float32");return e.makeTensorInfo(u,"float32",a)}var yF={kernelName:Cs,backendName:"cpu",kernelFunc:fT};var dT=_t(Ss,r=>Math.max(0,r)),bF={kernelName:Ss,backendName:"cpu",kernelFunc:dT};var hT=_t(ks,r=>Math.min(Math.max(0,r),6)),wF={kernelName:ks,backendName:"cpu",kernelFunc:hT};function Lc(r,t,e,n,o){if(e==="linear")return Xr({inputs:{x:t},backend:r});if(e==="relu")return dT({inputs:{x:t},backend:r});if(e==="elu")return pT({inputs:{x:t},backend:r});if(e==="relu6")return hT({inputs:{x:t},backend:r});if(e==="prelu")return fT({inputs:{x:t,alpha:n},backend:r});if(e==="leakyrelu")return mT({inputs:{x:t},backend:r,attrs:{alpha:o}});if(e==="sigmoid")return aT({inputs:{x:t},backend:r});throw new Error(`Activation ${e} has not been implemented for the CPU backend.`)}function Yt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=y.sizeFromShape(o.shape),a=y.inferFromImplicitShape(s,i),u=y.sizeFromShape(a);y.assert(i===u,()=>`The new shape (${a}) has ${u} elements and the old shape (${o.shape}) has ${i} elements. The new shape and old shape must have the same number of elements.`),e.incRef(o.dataId);let l=e.data.get(o.dataId);if(l.complexTensorInfos!=null){let c=l.complexTensorInfos.real,p=l.complexTensorInfos.imag;c.shape=a,p.shape=a}return{dataId:o.dataId,shape:a,dtype:o.dtype}}var CF={kernelName:xi,backendName:"cpu",kernelFunc:Yt};function gT(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;tt([o,s],"matMul");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=Yt({inputs:{x:o},backend:e,attrs:{shape:C}}),A=Yt({inputs:{x:s},backend:e,attrs:{shape:N}}),$=i?E.shape[1]:E.shape[2],F=i?E.shape[2]:E.shape[1],P=a?A.shape[1]:A.shape[2],V=Math.max(g,x),G=e.data.get(E.dataId).values,W=e.data.get(A.dataId).values,q=y.computeStrides(E.shape),H=y.computeStrides(A.shape),[j,Y,Z]=i?[q[0],1,q[1]]:[q[0],q[1],1],[et,rt,ot]=a?[1,H[1],H[0]]:[H[1],1,H[0]],at=F*P,nt=wt([V,F,P],E.dtype),st=nt.values,dt=e.blockSize;for(let gt=0;gtMath.acos(r)),SF={kernelName:ua,backendName:"cpu",kernelFunc:$J};var DJ=_t(ca,r=>Math.acosh(r)),NF={kernelName:ca,backendName:"cpu",kernelFunc:DJ};function RJ(r){let{inputs:t,backend:e}=r,n=t;tt(t,"addN");let o=n.map(a=>e.data.get(a.dataId).values),s=wt(n[0].shape,n[0].dtype),i=s.values;for(let a=0;ab&&(b=N,w=C)}f[g]=w}return l.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var _F={kernelName:Uo,backendName:"cpu",kernelFunc:PJ};function LJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n;tt(o,"argMin");let i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Ve({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),i=[i[0]],S.assertAxesAreInnerMostDims("argMin",i,u.shape.length);let[c,p]=S.computeOutAndReduceShapes(u.shape,i),m=y.sizeFromShape(c),f=y.makeZerosTypedArray(m,"int32"),d=y.sizeFromShape(p),h=e.data.get(u.dataId).values;for(let g=0;ge.disposeIntermediateTensorInfo(g)),e.makeTensorInfo(c,"int32",f)}var AF={kernelName:Al,backendName:"cpu",kernelFunc:LJ};var MJ=_t(fa,r=>Math.asin(r)),$F={kernelName:fa,backendName:"cpu",kernelFunc:MJ};var zJ=_t(da,r=>Math.asinh(r)),DF={kernelName:da,backendName:"cpu",kernelFunc:zJ};var BJ=_t(ha,r=>Math.atan(r)),RF={kernelName:ha,backendName:"cpu",kernelFunc:BJ};var VJ=Qt((r,t)=>Math.atan2(r,t)),GJ=ie(xa,VJ),FF={kernelName:xa,backendName:"cpu",kernelFunc:GJ};var WJ=_t(ga,r=>Math.atanh(r)),OF={kernelName:ga,backendName:"cpu",kernelFunc:WJ};function pd(r,t,e,n,o,s){let i=o.strideHeight,a=o.strideWidth,u=o.dilationHeight,l=o.dilationWidth,c=o.effectiveFilterHeight,p=o.effectiveFilterWidth,m=o.padInfo.top,f=o.padInfo.left,d=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,h=wt(o.outShape,e),g=h.values,x=o.outShape[1]*o.outShape[2]*o.outShape[3],b=o.outShape[2]*o.outShape[3],w=o.outShape[3];for(let C=0;CY?Y=dt:s==="avg"&&(Z+=dt,et++)}if(isNaN(Y))break}let rt=G+W*w+A;g[rt]=s==="avg"?Z/et:Y}}}return h}function dw(r,t,e,n,o=!1,s=!1){let i=wt(n.outShape,"int32"),a=n.strideHeight,u=n.strideWidth,l=n.dilationHeight,c=n.dilationWidth,p=n.effectiveFilterHeight,m=n.effectiveFilterWidth,f=n.padInfo.top,d=n.padInfo.left,h=wt(t,e,r);for(let g=0;gP&&(P=j,o?V=s?((g*n.inHeight+G)*n.inWidth+q)*n.inChannels+x:(G*n.inWidth+q)*n.inChannels+x:V=W*m+H)}}i.set(V,g,b,E,x)}}return i}function hw(r,t,e,n,o,s){let i=o.strideDepth,a=o.strideHeight,u=o.strideWidth,l=o.dilationDepth,c=o.dilationHeight,p=o.dilationWidth,m=o.effectiveFilterDepth,f=o.effectiveFilterHeight,d=o.effectiveFilterWidth,h=o.padInfo.front,g=o.padInfo.top,x=o.padInfo.left,b=s==="max"?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY,w=wt(o.outShape,e),C=w.values,N=o.outShape[1]*o.outShape[2]*o.outShape[3]*o.outShape[4],E=o.outShape[2]*o.outShape[3]*o.outShape[4],A=o.outShape[3]*o.outShape[4],$=o.outShape[4];for(let F=0;Fkt?kt=We:s==="avg"&&(At+=We,Vt++),isNaN(kt))break}if(isNaN(kt))break}if(isNaN(kt))break}let Zt=bt+G;C[Zt]=s==="avg"?At/Vt:kt}}}}return w}function PF(r,t){let e=wt(t.outShape,"int32"),n=t.strideDepth,o=t.strideHeight,s=t.strideWidth,i=t.dilationDepth,a=t.dilationHeight,u=t.dilationWidth,l=t.effectiveFilterDepth,c=t.effectiveFilterHeight,p=t.effectiveFilterWidth,m=t.padInfo.front,f=t.padInfo.top,d=t.padInfo.left;for(let h=0;h=W&&(W=ot,q=j*c*p+Z*c+rt)}}}e.set(q,h,x,N,F,g)}}}return e}function UJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;tt(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=pd(m,o.shape,o.dtype,f,c,"avg");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var LF={kernelName:Ho,backendName:"cpu",kernelFunc:UJ};function HJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"avgPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=hw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"avg");return e.makeTensorInfo(m.shape,"float32",m.values)}var MF={kernelName:$l,backendName:"cpu",kernelFunc:HJ};function qJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"avgPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=c.strideDepth,m=c.strideHeight,f=c.strideWidth,d=c.filterDepth,h=c.filterHeight,g=c.filterWidth,x=c.dilationDepth,b=c.dilationHeight,w=c.dilationWidth,C=c.effectiveFilterDepth,N=c.effectiveFilterHeight,E=c.effectiveFilterWidth,A=C-1-c.padInfo.front,$=E-1-c.padInfo.left,F=N-1-c.padInfo.top,P=wt(s.shape,"float32"),V=1/(d*h*g),G=e.bufferSync(o);for(let W=0;W=c.outDepth||Math.floor(nt)!==nt))for(let st=0;st=c.outHeight||Math.floor(dt)!==dt))for(let gt=0;gt=c.outWidth||Math.floor(bt)!==bt)continue;let kt=G.get(W,nt,dt,bt,q);ot+=kt}}}P.set(ot*V,W,H,j,Y,q)}return e.makeTensorInfo(P.shape,P.dtype,P.values)}var zF={kernelName:up,backendName:"cpu",kernelFunc:qJ};function KJ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;tt([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=c.strideHeight,m=c.strideWidth,f=c.filterHeight,d=c.filterWidth,h=c.dilationHeight,g=c.dilationWidth,x=c.effectiveFilterHeight,b=c.effectiveFilterWidth,w=b-1-c.padInfo.left,C=x-1-c.padInfo.top,N=wt(i.shape,"float32"),E=1/(f*d),A=e.data.get(o.dataId).values,$=wt(o.shape,"float32",A);for(let F=0;F=c.outHeight||Math.floor(Y)!==Y))for(let Z=0;Z=c.outWidth||Math.floor(et)!==et)continue;let rt=$.get(F,Y,et,P);H+=rt}}N.set(H*E,F,V,G,P)}return e.makeTensorInfo(N.shape,N.dtype,N.values)}var BF={kernelName:lp,backendName:"cpu",kernelFunc:KJ};function jJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,scale:s,offset:i,mean:a,variance:u}=t;y.assert(a.shape.length===u.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||a.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(s==null||a.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks."),tt([o,a,u,s,i],"batchNorm");let{varianceEpsilon:l}=n;l==null&&(l=.001);let c=e.data.get(o.dataId).values,p=e.data.get(a.dataId).values,m=e.data.get(u.dataId).values,f=s?e.data.get(s.dataId).values:new Float32Array([1]),d=i?e.data.get(i.dataId).values:new Float32Array([0]),h=new Float32Array(c.length),g=d.length,x=f.length,b=m.length,w=p.length,C=0,N=0,E=0,A=0;for(let $=0;$=g&&(C=0),N>=w&&(N=0),E>=x&&(E=0),A>=b&&(A=0);return e.makeTensorInfo(o.shape,o.dtype,h)}var VF={kernelName:ss,backendName:"cpu",kernelFunc:jJ};function XJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;tt([o],"batchToSpaceND");let a=s.reduce((x,b)=>x*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=Yt({inputs:{x:o},backend:e,attrs:{shape:u}}),d=Ve({inputs:{x:f},backend:e,attrs:{perm:l}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Oo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var GF={kernelName:ci,backendName:"cpu",kernelFunc:XJ};function YJ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,l=ad(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var WF={kernelName:cp,backendName:"cpu",kernelFunc:YJ};function ZJ(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.data.get(n.dataId).values,i=e.data.get(o.dataId).values,a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var UF={kernelName:pp,backendName:"cpu",kernelFunc:ZJ};var JJ=_t(po,(r,t)=>{let e=t;return r>e.clipValueMax?e.clipValueMax:r{let{x:t}=r.inputs,e=r.backend,n=new Float32Array(y.sizeFromShape(t.shape)),o=e.data.get(t.dataId),s=o.complexTensorInfos.real,i=o.complexTensorInfos.imag,a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values;for(let l=0;lh.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(h=>h.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(h=>y.sizeFromShape(h.shape)>0);if(u.length===1)return Xr({inputs:{x:u[0]},backend:e});if(u[0].dtype==="complex64"){let h=u.map(C=>$o({inputs:{input:C},backend:e})),g=u.map(C=>Ji({inputs:{input:C},backend:e})),x=Eu({inputs:h,backend:e,attrs:{axis:s}}),b=Eu({inputs:g,backend:e,attrs:{axis:s}}),w=Ir({inputs:{real:x,imag:b},backend:e});return h.forEach(C=>e.disposeIntermediateTensorInfo(C)),g.forEach(C=>e.disposeIntermediateTensorInfo(C)),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(b),w}let l=u.map(h=>{let x=[-1,y.sizeFromShape(h.shape.slice(s))];return Yt({inputs:{x:h},backend:e,attrs:{shape:x}})}),c=l.map(h=>({vals:e.data.get(h.dataId).values,shape:h.shape}));a=S.computeOutShape(l.map(h=>h.shape),1);let p=l[0].shape[0]===1,m=Ac(c,a,t[0].dtype,p),f=S.computeOutShape(u.map(h=>h.shape),s),d=e.makeTensorInfo(f,t[0].dtype,m);return l.forEach(h=>e.disposeIntermediateTensorInfo(h)),d}var jF={kernelName:pi,backendName:"cpu",kernelFunc:Eu};function xT(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n;tt([o,s],"conv2d");let p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f=m.filterHeight,d=m.filterWidth,h=m.dilationHeight,g=m.dilationWidth,x=m.padInfo.left,b=m.padInfo.top,w=m.dataFormat==="channelsLast",C=new pe(m.outShape,o.dtype),N=y.computeStrides(o.shape),E=y.computeStrides(s.shape),A=N[0],$=w?N[1]:N[2],F=w?N[2]:1,P=w?1:N[1],V=C.strides[0],G=w?C.strides[1]:C.strides[2],W=w?C.strides[2]:1,q=w?1:C.strides[1],H=e.data.get(o.dataId).values,j=e.data.get(s.dataId).values,Y=C.values;for(let Z=0;Z=m.inHeight)continue;let gt=st*E[0],bt=et+dt*$;for(let kt=0;kt=m.inWidth)continue;let he=gt+Zt*E[1],jt=bt+ce*F,ke=he;for(let fe=0;fe=l.inDepth)continue;let Z=j*F[0],et=V+Y*$[1];for(let rt=0;rt=l.inHeight)continue;let dt=Z+nt*F[1],gt=et+st*$[2];for(let bt=0;bt=l.inWidth)continue;let ce=dt+Vt*F[2],he=gt+Zt*l.inChannels,jt=ce;for(let ke=0;keMath.cos(r)),eO={kernelName:Yo,backendName:"cpu",kernelFunc:sQ};var iQ=_t(Zo,r=>Math.cosh(r)),rO={kernelName:Zo,backendName:"cpu",kernelFunc:iQ};function aQ(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,[c,p,m,f]=o.shape,d=s.shape[0],[h,g]=a,x=wt([d,h,g,f],"float32"),b=e.data.get(s.dataId).values,w=e.data.get(i.dataId).values,C=e.data.get(o.dataId).values,N=y.computeStrides(o.shape),E=y.computeStrides(x.shape);for(let A=0;A=c)continue;let q=h>1?(V-F)*(p-1)/(h-1):0,H=g>1?(G-P)*(m-1)/(g-1):0;for(let j=0;j1?F*(p-1)+j*q:.5*(F+V)*(p-1);if(Y<0||Y>p-1){for(let Z=0;Z1?P*(m-1)+ot*H:.5*(P+G)*(m-1);if(at<0||at>m-1){for(let gt=0;gt1?P*(m-1)+Z*H:.5*(P+G)*(m-1);if(et<0||et>m-1){for(let at=0;atx+d-b-1:(x,b)=>x+b;for(let x=0;xx+d-b-1:(x,b)=>x+b;for(let x=0;x`Only NHWC dataFormat supported on CPU for depthToSpace. Got ${i}`);let a=o.shape[0],u=o.shape[1],l=o.shape[2],c=o.shape[3],p=u*s,m=l*s,f=c/(s*s),d=e.data.get(o.dataId).values,h=new Float32Array(a*p*m*f),g=0;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${m}'`);let f=S.computeConv2DInfo(o.shape,s.shape,i,m,a,l,!0),{filterHeight:d,filterWidth:h,dilationHeight:g,dilationWidth:x,padInfo:b}=f,w=b.left,C=b.top,N=f.outChannels/f.inChannels,E=new pe(f.outShape,o.dtype),A=e.data.get(o.dataId).values,$=e.data.get(s.dataId).values,F=E.values;for(let P=0;P=f.inHeight)continue;let Z=j*p[0],et=V+Y*c[1];for(let rt=0;rt=f.inWidth)continue;let dt=Z+nt*p[1],gt=et+st*f.inChannels,bt=ot,kt=dt;for(let At=0;At{let{x:n,filter:o}=r,{strides:s,pad:i,dilations:a}=e,u=t,l=u.data.get(n.dataId).values,c=n.shape.length,p=u.data.get(o.dataId).values,m=o.shape.length,{batchSize:f,inHeight:d,inWidth:h,inChannels:g,outHeight:x,outWidth:b,padInfo:w,strideHeight:C,strideWidth:N,filterHeight:E,filterWidth:A,dilationHeight:$,dilationWidth:F,outShape:P}=S.computeDilation2DInfo(n.shape,o.shape,s,i,"NHWC",a),V=y.sizeFromShape(P),G=P.length,W=y.getArrayFromDType(n.dtype,V);for(let H=0;H=0&&st=0&>ot&&(ot=At)}}}let at=y.locToIndex([H,j,Z,rt],G,y.computeStrides(P));W[at]=ot}}}return{dataId:u.write(y.toTypedArray(W,n.dtype),P,n.dtype),shape:P,dtype:n.dtype}}};var fO={kernelName:Yd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Yd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(o.shape,o.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=gt,rt=at,ot=st)}}}V[rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),o.shape,o.dtype),shape:o.shape,dtype:o.dtype}}};var dO={kernelName:Xd,backendName:"cpu",kernelFunc:({inputs:r,backend:t,attrs:e})=>{let{x:n,filter:o,dy:s}=r,{strides:i,pad:a,dilations:u}=e,l=t,c=y.toNestedArray(n.shape,l.data.get(n.dataId).values),p=y.toNestedArray(o.shape,l.data.get(o.dataId).values),{batchSize:m,inHeight:f,inWidth:d,inChannels:h,outHeight:g,outWidth:x,padInfo:b,strideHeight:w,strideWidth:C,filterHeight:N,filterWidth:E,dilationHeight:A,dilationWidth:$,outShape:F}=S.computeDilation2DInfo(n.shape,o.shape,i,a,"NHWC",u);y.assert(s.rank===F.length,()=>`Error in ${Xd}, dy must have the same rank as output ${F.length}, but got ${s.rank}`);let P=y.toNestedArray(F,l.data.get(s.dataId).values),V=y.makeZerosNestedTypedArray(n.shape,n.dtype);for(let W=0;W=0&&nt=0&&dtet&&(et=gt,rt=nt,ot=dt)}}}V[W][rt][ot][Z]+=P[W][q][j][Z]}}}return{dataId:l.write(y.toTypedArray(V,n.dtype),n.shape,n.dtype),shape:n.shape,dtype:n.dtype}}};function yl(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"sum");let a;o.dtype==="bool"?a=Do({inputs:{x:o},backend:e,attrs:{dtype:"int32"}}):a=Xr({inputs:{x:o},backend:e});let u=a.shape.length,l=y.parseAxisParam(s,a.shape),c=S.getAxesPermutation(l,u),p=l,m=a;c!=null&&(m=Ve({inputs:{x:a},backend:e,attrs:{perm:c}}),p=S.getInnerMostAxes(p.length,u)),S.assertAxesAreInnerMostDims("sum",p,m.shape.length);let[f,d]=S.computeOutAndReduceShapes(m.shape,p),h=S.upcastType(m.dtype,"int32"),g=sd(e,f,h),x=y.sizeFromShape(d),b=e.data.get(g.dataId).values,w=e.data.get(m.dataId).values;for(let C=0;C=0&&(m=yl({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var gO={kernelName:wp,backendName:"cpu",kernelFunc:hQ};function gQ(r){let{inputs:t,backend:e}=r,{dy:n,y:o}=t;tt([n,o],"eluGrad");let s=new Float32Array(y.sizeFromShape(o.shape)),i=e.data.get(o.dataId).values,a=e.data.get(n.dataId).values;for(let u=0;u=1?s[u]=a[u]:s[u]=a[u]*(l+1)}return e.makeTensorInfo(o.shape,"float32",s)}var xO={kernelName:Cp,backendName:"cpu",kernelFunc:gQ};var xQ=S.ERF_P,yQ=S.ERF_A1,bQ=S.ERF_A2,wQ=S.ERF_A3,CQ=S.ERF_A4,IQ=S.ERF_A5,vQ=_t(Ca,r=>{let t=Math.sign(r),e=Math.abs(r),n=1/(1+xQ*e);return t*(1-((((IQ*n+CQ)*n+wQ)*n+bQ)*n+yQ)*n*Math.exp(-e*e))}),yO={kernelName:Ca,backendName:"cpu",kernelFunc:vQ};function md(r){let{inputs:t,backend:e,attrs:n}=r,{input:o}=t,{dim:s}=n,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),Yt({inputs:{x:o},backend:e,attrs:{shape:a}})}var bO={kernelName:mi,backendName:"cpu",kernelFunc:md};var SQ=Qt((r,t)=>r/t),Uh=ie(ts,SQ),Hh={kernelName:ts,backendName:"cpu",kernelFunc:Uh};function gw(r,t,e){let n=r.shape,o=n[0],s=n[1],i=e.data.get(r.dataId),a=i.complexTensorInfos.real,u=i.complexTensorInfos.imag,l=[o,s],c=y.sizeFromShape(l),p=y.getTypedArrayFromDType("float32",c),m=y.getTypedArrayFromDType("float32",c);for(let g=0;g{let{image:n}=r,o=e,s=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[i,a,u,l]=n.shape,c=o.data.get(n.dataId).values;for(let m=0;m=0&&wMath.floor(r/t)),$Q=ie(os,AQ,null,"int32"),vO={kernelName:os,backendName:"cpu",kernelFunc:$Q};function DQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=xT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;if(c==="NCHW"&&i.shape.length===1&&i.shape[0]!==1){let x=Yt({inputs:{x:i},backend:e,attrs:{shape:[i.shape[0],1,1]}});h=Zi({inputs:{a:h,b:x},backend:e}),e.disposeIntermediateTensorInfo(x)}else h=Zi({inputs:{a:h,b:i},backend:e});e.disposeIntermediateTensorInfo(g)}if(f){let g=h;if(c==="NCHW"&&f==="prelu"&&a.shape.length===1&&a.shape[0]!==1){let x=Yt({inputs:{x:a},backend:e,attrs:{shape:[a.shape[0],1,1]}});h=Lc(e,h,f,x,d),e.disposeIntermediateTensorInfo(x)}else h=Lc(e,h,f,a,d);e.disposeIntermediateTensorInfo(g)}return h}var SO={kernelName:Ni,backendName:"cpu",kernelFunc:DQ};function RQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=yT({inputs:{x:o,filter:s},backend:e,attrs:{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m}});if(i){let g=h;h=Zi({inputs:{a:h,b:i},backend:e}),e.disposeIntermediateTensorInfo(g)}if(f){let g=h;h=Lc(e,h,f,a,d),e.disposeIntermediateTensorInfo(g)}return h}var NO={kernelName:Ti,backendName:"cpu",kernelFunc:RQ};function FQ(r){let{inputs:t,backend:e}=r,{params:n,indices:o}=t,s=y.sizeFromShape(n.shape),i=o.shape,a=i[i.length-1],[u,l,c,p]=S.prepareAndValidate(n,o);if(l===0)return e.makeTensorInfo(u,n.dtype,[]);let m=e.data.get(o.dataId).values,f=e.bufferSync(n),d=tw(m,f,n.dtype,l,a,c,p,n.shape,s);return e.makeTensorInfo(u,n.dtype,d.values)}var TO={kernelName:Na,backendName:"cpu",kernelFunc:FQ};function OQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,indices:s}=t,{axis:i,batchDims:a}=n;tt([o,s],"gatherV2");let u=y.parseAxisParam(i,o.shape)[0],l=e.data.get(s.dataId).values,c=o.shape[u];for(let C=0;C=0,()=>`GatherV2: the index value ${N} is not in [0, ${c-1}]`)}let p=a;a==null&&(p=0);let m=y.sizeFromShape(s.shape),f=S.segment_util.collectGatherOpShapeInfo(o,s,u,p),d=Yt({inputs:{x:o},backend:e,attrs:{shape:[f.batchSize,f.outerSize,f.dimSize,f.sliceSize]}}),h=Yt({inputs:{x:s},backend:e,attrs:{shape:[f.batchSize,m/f.batchSize]}}),g=[f.batchSize,f.outerSize,m/f.batchSize,f.sliceSize],x=e.bufferSync(h),b=e.bufferSync(d),w=ew(b,x,g);return e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),e.makeTensorInfo(f.outputShape,w.dtype,w.values)}var kO={kernelName:fi,backendName:"cpu",kernelFunc:OQ};function PQ(r){let{inputs:t,backend:e}=r,{input:n}=t,o=y.sizeFromShape(n.shape),s=n.shape[n.shape.length-1],i=o/s,a=Yt({inputs:{x:n},backend:e,attrs:{shape:[i,s]}}),u=gw(a,!0,e),l=Yt({inputs:{x:u},backend:e,attrs:{shape:n.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(u),l}var EO={kernelName:vp,backendName:"cpu",kernelFunc:PQ};var LQ=_t(ka,r=>Number.isFinite(r)?1:0,"bool"),_O={kernelName:ka,backendName:"cpu",kernelFunc:LQ};var MQ=_t(Ea,r=>Math.abs(r)===1/0?1:0,"bool"),AO={kernelName:Ea,backendName:"cpu",kernelFunc:MQ};var zQ=_t(as,r=>Number.isNaN(r)?1:0,"bool"),$O={kernelName:as,backendName:"cpu",kernelFunc:zQ};function BQ(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=rw(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var DO={kernelName:Np,backendName:"cpu",kernelFunc:BQ};var VQ=_t($a,r=>Math.log1p(r)),RO={kernelName:$a,backendName:"cpu",kernelFunc:VQ};var GQ=Qt((r,t)=>r&&t),WQ=ie(Da,GQ,null,"bool"),FO={kernelName:Da,backendName:"cpu",kernelFunc:WQ};var UQ=_t(Ra,r=>r?0:1,"bool"),OO={kernelName:Ra,backendName:"cpu",kernelFunc:UQ};var HQ=Qt((r,t)=>r||t),qQ=ie(Fa,HQ,null,"bool"),PO={kernelName:Fa,backendName:"cpu",kernelFunc:qQ};function KQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n;tt(o,"LRN");let l=o.shape[3],c=l-1,p=e.data.get(o.dataId).values,m=y.sizeFromShape(o.shape),f=new Float32Array(m);function d(h){let g=h%l,x=h-g+Math.max(0,g-s),b=h-g+Math.min(g+s,c),w=0;for(;x<=b;x++){let C=p[x];w+=C*C}return w}for(let h=0;h`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u),p;if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))p=Xr({inputs:{x:o},backend:e});else{let m=e.data.get(o.dataId).values,f=y.computeStrides(o.shape),d=pd(m,o.shape,o.dtype,f,c,"max");p=e.makeTensorInfo(c.outShape,o.dtype,d.values)}return p}var BO={kernelName:ms,backendName:"cpu",kernelFunc:XQ};function YQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n;tt(o,"maxPool3d");let c=S.computePool3DInfo(o.shape,s,i,1,a,u,l),p=e.data.get(o.dataId).values,m=hw(p,o.shape,o.dtype,y.computeStrides(o.shape),c,"max");return e.makeTensorInfo(m.shape,"float32",m.values)}var VO={kernelName:Ll,backendName:"cpu",kernelFunc:YQ};function ZQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=n;tt([o,s],"maxPool3DGrad");let c=S.computePool3DInfo(s.shape,i,a,1,u,l),p=e.bufferSync(s),m=PF(p,c),f=c.strideDepth,d=c.strideHeight,h=c.strideWidth,g=c.dilationDepth,x=c.dilationHeight,b=c.dilationWidth,w=c.effectiveFilterDepth,C=c.effectiveFilterHeight,N=c.effectiveFilterWidth,E=w-1-c.padInfo.front,A=N-1-c.padInfo.left,$=C-1-c.padInfo.top,F=wt(s.shape,"float32"),P=e.bufferSync(o);for(let V=0;V=c.outDepth||Math.floor(ot)!==ot))for(let at=0;at=c.outHeight||Math.floor(nt)!==nt))for(let st=0;st=c.outWidth||Math.floor(dt)!==dt)continue;let gt=w*C*N-1-m.get(V,ot,nt,dt,G),bt=rt*C*N+at*N+st,kt=gt===bt?1:0;if(kt===0)continue;let At=P.get(V,ot,nt,dt,G);et+=At*kt}}}F.set(et,V,W,q,H,G)}return e.makeTensorInfo(F.shape,F.dtype,F.values)}var GO={kernelName:Ep,backendName:"cpu",kernelFunc:ZQ};function JQ(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;tt([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=S.computePool2DInfo(a.shape,u,l,1,c,p),f=e.data.get(a.dataId).values,d=wt(m.outShape,a.dtype,dw(f,a.shape,a.dtype,m).values),h=m.strideHeight,g=m.strideWidth,x=m.dilationHeight,b=m.dilationWidth,w=m.effectiveFilterHeight,C=m.effectiveFilterWidth,N=C-1-m.padInfo.left,E=w-1-m.padInfo.top,A=wt(a.shape,"float32"),$=e.data.get(o.dataId).values,F=wt(o.shape,"float32",$);for(let P=0;P=m.outHeight||Math.floor(Z)!==Z))for(let et=0;et=m.outWidth||Math.floor(rt)!==rt)continue;let ot=w*C-1-d.get(P,Z,rt,V),at=Y*C+et,nt=ot===at?1:0;if(nt===0)continue;let st=F.get(P,Z,rt,V);j+=st*nt}}A.set(j,P,G,W,V)}return e.makeTensorInfo(A.shape,A.dtype,A.values)}var WO={kernelName:kp,backendName:"cpu",kernelFunc:JQ};function UO(r,t,e,n,o){let s=y.computeStrides(t),i=pd(r,t,e,s,o,"max"),a=dw(r,t,e,o,!0,n);return[i.values,a.values]}var HO={kernelName:_p,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;tt(n,"MaxPoolWithArgmax");let l=u.data.get(n.dataId).values,c=S.computePool2DInfo(n.shape,o,s,[1,1],i),[p,m]=UO(l,n.shape,n.dtype,a,c),f=u.write(p,c.outShape,n.dtype),d=u.write(m,c.outShape,n.dtype);return[{dataId:f,shape:c.outShape,dtype:n.dtype},{dataId:d,shape:c.outShape,dtype:"int32"}]}};function QQ(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=y.parseAxisParam(s,o.shape),l=S.computeOutAndReduceShapes(o.shape,a)[1],c=y.sizeFromShape(l),p=[],m=e.makeTensorInfo([],"float32",new Float32Array([c]));p.push(m);let f=Do({inputs:{x:o},backend:e,attrs:{dtype:"float32"}});p.push(f);let d=Uh({inputs:{a:f,b:m},backend:e});p.push(d);let h=yl({inputs:{x:d},backend:e,attrs:{axis:s,keepDims:i}});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),h}var qO={kernelName:fs,backendName:"cpu",kernelFunc:QQ};function t9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;tt(o,"min");let a=y.parseAxisParam(s,o.shape),u=a,l=S.getAxesPermutation(u,o.shape.length),c=o;l!=null&&(c=Ve({inputs:{x:o},backend:e,attrs:{perm:l}}),u=S.getInnerMostAxes(u.length,o.shape.length)),S.assertAxesAreInnerMostDims("min",u,c.shape.length);let[p,m]=S.computeOutAndReduceShapes(c.shape,u),f=y.sizeFromShape(m),d=y.makeZerosTypedArray(y.sizeFromShape(p),c.dtype),h=e.data.get(c.dataId).values;for(let x=0;xw[0]+o.shape[C]+w[1]),u=s.map(w=>w[0]),l=s.map((w,C)=>w[0]+o.shape[C]),c=i==="reflect"?0:1,p=e.data.get(o.dataId).values,m=o.shape.length,f=y.computeStrides(o.shape),d=y.sizeFromShape(a),h=a.length,g=y.computeStrides(a),x=y.getTypedArrayFromDType(o.dtype,d);for(let w=0;w=l[E]&&(C[E]=(l[E]-1)*2-C[E]+c);C=C.map((E,A)=>E-u[A]);let N=y.locToIndex(C,m,f);x[w]=p[N]}return{dataId:e.write(x,a,o.dtype),shape:a,dtype:o.dtype}}var jO={kernelName:gs,backendName:"cpu",kernelFunc:e9};var r9=Qt((r,t)=>{let e=r%t;return r<0&&t<0||r>=0&&t>=0?e:(e+t)%t}),n9=ie(Oa,r9),XO={kernelName:Oa,backendName:"cpu",kernelFunc:n9};var ZO=_l(dh());function CT(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=o.shape.length,a=s;if(a===-1&&(a=i-1),a!==i-1)throw Error(`Softmax along a non-last dimension is not yet supported. Logits was rank ${i} and dim was ${a}`);let u=y.parseAxisParam([a],o.shape),l=wT({inputs:{x:o},backend:e,attrs:{reductionIndices:u,keepDims:!1}}),c=S.expandShapeToKeepDim(l.shape,u),p=Yt({inputs:{x:l},backend:e,attrs:{shape:c}}),m=Gh({inputs:{a:o,b:p},backend:e}),f=KN({inputs:{x:m},backend:e}),d=yl({inputs:{x:f},backend:e,attrs:{axis:u,keepDims:!1}}),h=Yt({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Uh({inputs:{a:f,b:h},backend:e});return e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(h),g}var YO={kernelName:Os,backendName:"cpu",kernelFunc:CT};function o9(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n;tt(o,"multinomial");let u=a?o:CT({inputs:{logits:o},backend:e,attrs:{dim:-1}}),l=u.shape[0],c=u.shape[1],p=e.data.get(u.dataId).values,m=[l,s],f=y.makeZerosTypedArray(y.sizeFromShape(m),"int32");for(let d=0;d=0&&p[m]{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=md({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Eu({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var iP={kernelName:gi,backendName:"cpu",kernelFunc:IT};function m9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;tt(o,"pad");let a=s.map((b,w)=>b[0]+o.shape[w]+b[1]),u=s.map(b=>b[0]),l=e.data.get(o.dataId).values,c=y.sizeFromShape(o.shape),p=o.shape.length,m=y.computeStrides(o.shape),f=y.sizeFromShape(a),d=a.length,h=y.computeStrides(a),g=y.getTypedArrayFromDType(o.dtype,f);i!==0&&g.fill(i);for(let b=0;bE+u[A]),N=y.locToIndex(C,d,h);g[N]=l[b]}return{dataId:e.write(g,a,o.dtype),shape:a,dtype:o.dtype}}var xw={kernelName:bs,backendName:"cpu",kernelFunc:m9};var f9=Qt((r,t)=>Math.pow(r,t)),d9=ie(ws,f9),aP={kernelName:ws,backendName:"cpu",kernelFunc:d9};function h9(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.data.get(x.dataId).values),l=o.map(x=>x.shape),c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,[m,f,d]=ow(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var lP={kernelName:$p,backendName:"cpu",kernelFunc:h9};function g9(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=sw(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var uP={kernelName:Dp,backendName:"cpu",kernelFunc:g9};function x9(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.data.get(o.dataId).values,c=e.data.get(s.dataId).values,p=e.data.get(i.dataId).values,m=a.map(g=>e.data.get(g.dataId).values),f=a.map(g=>g.shape),[d,h]=iw(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var cP={kernelName:Rp,backendName:"cpu",kernelFunc:x9};function y9(r){let{backend:t,attrs:e}=r,{start:n,stop:o,dtype:s,step:i}=e,a=Dc(n,o,i,s);return t.makeTensorInfo([a.length],s,a)}var pP={kernelName:Ml,backendName:"cpu",kernelFunc:y9};var b9=_t(vs,r=>1/r),mP={kernelName:vs,backendName:"cpu",kernelFunc:b9};function w9(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n;tt(o,"resizeBilinear");let u=y.computeStrides(o.shape),[l,c]=a,[p,m,f,d]=o.shape,h=e.data.get(o.dataId).values,g=new Float32Array(y.sizeFromShape([p,l,c,d])),x=[s&&l>1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=0,C=x[0]/b[0],N=x[1]/b[1];for(let E=0;E1?l-1:l,i&&f>1?c-1:c],g=[i&&m>1?m-1:m,i&&f>1?f-1:f],x=h[0]/g[0],b=h[1]/g[1],w=e.data.get(s.dataId).values,C=0;for(let N=0;N1?m-1:m,s&&c>1?f-1:f],b=[s&&l>1?l-1:l,s&&c>1?c-1:c],w=x[0]/b[0],C=x[1]/b[1],N=0;for(let E=0;E1?c-1:c,i&&d>1?p-1:p],b=[i&&f>1?f-1:f,i&&d>1?d-1:d],w=x[0]/b[0],C=x[1]/b[1],N=1/w,E=1/C,A=Math.ceil(N)*2+2,$=Math.ceil(E)*2+2;for(let F=0;F=f)continue;let nt=P+at*u[1],st=at*w,dt=Math.min(c-1,i?Math.round(st):Math.floor(st));if(V===dt)for(let gt=0;gt<$;gt++){let bt=gt+Z;if(bt<0||bt>=d)continue;let kt=nt+bt*u[2],At=bt*C,Vt=Math.min(p-1,i?Math.round(At):Math.floor(At));H===Vt&&(rt+=g[kt+et])}}h[j+et]=rt}}}}return e.makeTensorInfo(o.shape,o.dtype,h)}var gP={kernelName:Op,backendName:"cpu",kernelFunc:v9};function S9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n;tt(o,"reverse");let i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return Xr({inputs:{x:o},backend:e});let u=new pe(o.shape,o.dtype),l=e.bufferSync(o);for(let c=0;cm[f]=o.shape[f]-1-m[f]),u.set(l.get(...m),...p)}return e.makeTensorInfo(u.shape,u.dtype,u.values)}var xP={kernelName:Es,backendName:"cpu",kernelFunc:S9};var yP={kernelName:Xa,backendName:"cpu",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=y.getTypedArrayFromDType(n.dtype,y.sizeFromShape(n.shape)),[l,c,p,m]=n.shape,[f,d]=S.getImageCenter(i,c,p),h=255,g=Math.sin(o),x=Math.cos(o),b=a.data.get(n.dataId).values;for(let C=0;C=0&&q=0&&H{let t=Math.floor(r);return r-t<.5?Math.floor(r):r-t>.5?Math.ceil(r):t%2===0?t:t+1}),bP={kernelName:_s,backendName:"cpu",kernelFunc:N9};function T9(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=!0,f=e.bufferSync(o),d=e.bufferSync(s),h=xl(f,d,i,p,l,u,a,c,0,m);return e.makeTensorInfo(i,h.dtype,h.values)}var wP={kernelName:Ba,backendName:"cpu",kernelFunc:T9};function k9(r,t){let e=0,n=r.length,o=0;for(;e1||o.shape.length===1?1:y.sizeFromShape(o.shape.slice(1));for(let d=0;dr>=0?D9*r:$9*(Math.exp(r)-1)),SP={kernelName:Va,backendName:"cpu",kernelFunc:R9};var F9=_t(Wa,r=>r<0?-1:r>0?1:0),NP={kernelName:Wa,backendName:"cpu",kernelFunc:F9};var O9=_t($s,r=>Math.sin(r)),TP={kernelName:$s,backendName:"cpu",kernelFunc:O9};var P9=_t(Ga,r=>Math.sinh(r)),kP={kernelName:Ga,backendName:"cpu",kernelFunc:P9};var L9=11920928955078125e-23,EP=Math.log(L9)+2,M9=_t(Ua,r=>{let t=r>-EP,e=rNumber(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var EP={kernelName:Pl,backendName:"cpu",kernelFunc:D9};function R9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape + ${i.shape}`);let a=e.data.get(n.dataId).values,u=e.data.get(o.dataId).values,l=e.data.get(s.dataId).values,c=e.data.get(i.dataId).values[0],[p,m,f,d,h]=aw(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var $P={kernelName:zl,backendName:"cpu",kernelFunc:B9};function V9(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape - ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=aw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var _P={kernelName:Ga,backendName:"cpu",kernelFunc:R9};function F9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.data.get(o.dataId).values),a=e.data.get(n.dataId).values,u=Array.from(e.data.get(s.dataId).values),[l,c,p]=lw(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var DP={kernelName:Ha,backendName:"cpu",kernelFunc:V9};function G9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var AP={kernelName:Ll,backendName:"cpu",kernelFunc:F9};function O9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=cd(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var RP={kernelName:Bl,backendName:"cpu",kernelFunc:G9};function W9(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=ld(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var $P={kernelName:Ml,backendName:"cpu",kernelFunc:O9};function P9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case"bool":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}case"float32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case"int32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=dl(d,g,a,m,c,l,u,p,x,f);break}case"string":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=dl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var DP={kernelName:Lp,backendName:"cpu",kernelFunc:P9};function L9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Fo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var RP={kernelName:yi,backendName:"cpu",kernelFunc:L9};var FP={kernelName:zl,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),OP={kernelName:po,backendName:"cpu",kernelFunc:M9};function z9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Fo({inputs:{x:o},backend:e,attrs:{begin:b,size:_}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let _=e.bufferSync(o),A=lw(f,_,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var PP={kernelName:Wa,backendName:"cpu",kernelFunc:z9};function B9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Dc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var LP={kernelName:Bl,backendName:"cpu",kernelFunc:B9};function V9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Rc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var MP={kernelName:Vl,backendName:"cpu",kernelFunc:V9};function G9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=Fc(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var zP={kernelName:Gl,backendName:"cpu",kernelFunc:G9};var W9=Et(Os,r=>Math.tan(r)),BP={kernelName:Os,backendName:"cpu",kernelFunc:W9};var U9=Et(Ps,r=>Math.tanh(r)),VP={kernelName:Ps,backendName:"cpu",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=uw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var GP={kernelName:Jn,backendName:"cpu",kernelFunc:H9};function q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=cw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var WP={kernelName:Ua,backendName:"cpu",kernelFunc:q9};function K9(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),_=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function X9(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function Y9(r,t){return r}function Z9(r,t){return y.clamp(0,r,t-1)}function Kh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var jP={kernelName:Wl,backendName:"cpu",kernelFunc:rtt};var ntt=[wF,$R,CF,IF,PR,SF,vF,NF,TF,kF,EF,_F,AF,$F,DF,FF,OF,PF,LF,bF,MF,zF,BF,VF,OR,LR,GF,DR,WF,HF,qF,KF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,fO,fF,dO,MR,hO,zR,gO,BR,xO,yO,bO,VR,wO,CO,IO,SO,vO,GR,WR,RR,NO,UF,TO,kO,EO,dF,UR,HR,_O,qR,AO,$O,DO,RO,FO,OO,PO,KR,LO,MO,zO,BO,GO,WO,UO,jR,HO,qO,XO,XR,YR,YO,ZO,JO,ZR,QO,rP,nP,gw,oP,hF,QR,sP,iP,aP,lP,FR,Uh,uP,gF,xF,yF,cP,pP,mP,fP,dP,hP,gP,oF,xP,bP,wP,CP,iF,IP,SP,vP,aF,KO,TP,kP,EP,_P,AP,$P,DP,RP,uF,FP,cF,OP,PP,LP,MP,zP,pF,mO,BP,VP,GP,WP,HP,JR,qP,KP,jP,tP];for(let r of ntt)Lu(r);var dd={};Wt(dd,{assertNotComplex:()=>Qs,bindCanvasToFramebuffer:()=>mtt,bindColorTextureToFramebuffer:()=>Zh,bindTextureToProgramUniformSampler:()=>OT,bindTextureUnit:()=>JP,bindVertexBufferToProgramAttribute:()=>Iw,callAndCheck:()=>yt,canBeRepresented:()=>ST,createFragmentShader:()=>NT,createFramebuffer:()=>DT,createProgram:()=>TT,createStaticIndexBuffer:()=>_T,createStaticVertexBuffer:()=>ET,createTexture:()=>AT,createVertexShader:()=>vT,getBatchDim:()=>xl,getExtensionOrThrow:()=>pd,getFramebufferErrorMessage:()=>QP,getMaxTexturesInShader:()=>MT,getNumChannels:()=>ctt,getProgramUniformLocation:()=>FT,getProgramUniformLocationOrThrow:()=>RT,getRowsCols:()=>yl,getShapeAs3D:()=>fd,getTextureShapeFromLogicalShape:()=>PT,getWebGLDisjointQueryTimerVersion:()=>zT,getWebGLErrorMessage:()=>ZP,getWebGLMaxTextureSize:()=>LT,hasExtension:()=>Wn,isCapableOfRenderingToFloatTexture:()=>BT,isDownloadFloatTextureEnabled:()=>VT,isReshapeFree:()=>Eu,isWebGLFenceEnabled:()=>GT,isWebGLVersionEnabled:()=>vw,linkProgram:()=>kT,logShaderSourceAndInfoLog:()=>Cw,resetMaxTextureSize:()=>ftt,resetMaxTexturesInShader:()=>dtt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>ptt,validateFramebuffer:()=>md,validateProgram:()=>Yh,validateTextureSize:()=>$T});var Pc={},xw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function wT(r,t){Pc[r]=t}function Gn(r,t){if(!(r in Pc)||t!=null){let n=stt(r,t);if(n!==null)Pc[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=Pc[r];return e==null||e.isContextLost()?(delete Pc[r],Gn(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Pc[r])}function ott(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function stt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?ott(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Pc[r]},!1),z().getBool("SOFTWARE_WEBGL_ENABLED")&&(xw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",xw)||e.getContext("experimental-webgl",xw):e.getContext("webgl2",xw)}var ku;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(ku||(ku={}));var jr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(jr||(jr={}));var Pr;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Pr||(Pr={}));function Lc(r,t){return[t,r]}function XP(r,t){return r*t}function jh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Xi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function YP(r,t){let[e,n]=Xi(r,t);return e*n*4}function Xh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return z().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function yt(r,t){let e=t();return z().getBool("DEBUG")&&itt(r),e}function itt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+ZP(r,t))}var att=596e-10,ltt=65504;function ST(r){return!!(z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||attr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function vT(r,t){let e=gl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function NT(r,t){let e=gl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(yt(r,()=>r.shaderSource(e,t)),yt(r,()=>r.compileShader(e)),z().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Cw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var utt=/ERROR: [0-9]+:([0-9]+):/g;function Cw(r,t){let e=utt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` + ${s.shape}`);if(o.shape[0]!==s.shape[0])throw new Error("segmentIds and indices should have same size.");let i=e.data.get(n.dataId).values,a=e.data.get(o.dataId).values,u=e.data.get(s.dataId).values,[l,c]=cd(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var FP={kernelName:Vl,backendName:"cpu",kernelFunc:W9};function U9(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1,d=e.bufferSync(o),h;switch(s.dtype){case"bool":{let g=e.bufferSync(s),x=Boolean(e.data.get(i.dataId).values[0]);h=xl(d,g,a,m,c,l,u,p,x,f);break}case"float32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=xl(d,g,a,m,c,l,u,p,x,f);break}case"int32":{let g=e.bufferSync(s),x=e.data.get(i.dataId).values[0];h=xl(d,g,a,m,c,l,u,p,x,f);break}case"string":{let g=e.bufferSync(s),x=y.decodeString(e.data.get(i.dataId).values[0]);h=xl(d,g,a,m,c,l,u,p,x,f);break}default:throw new Error(`Unsupported type ${s.dtype}`)}return e.makeTensorInfo(a,h.dtype,h.values)}var OP={kernelName:Mp,backendName:"cpu",kernelFunc:U9};function H9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Oo({inputs:{x:o},backend:e,attrs:{begin:l,size:m}});return l[a]+=p,f})}var PP={kernelName:Ci,backendName:"cpu",kernelFunc:H9};var LP={kernelName:Gl,backendName:"cpu",kernelFunc:({inputs:r,backend:t})=>{let{x:e}=r,n=t;tt(e,"square");let o=n.data.get(e.dataId).values,s=new Float32Array(o.length);for(let a=0;a{let e=t;return isNaN(r)?NaN:r>0?1:e.alpha}),MP={kernelName:fo,backendName:"cpu",kernelFunc:q9};function K9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n;tt(o,"stridedSlice");let{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=Yt({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Me.computeOutShape(b,w,C),A=Oo({inputs:{x:o},backend:e,attrs:{begin:b,size:E}});N=Yt({inputs:{x:A},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo(A)}else{let E=e.bufferSync(o),A=uw(f,E,C,b);N=e.makeTensorInfo(d,A.dtype,A.values)}return N}var zP={kernelName:qa,backendName:"cpu",kernelFunc:K9};function j9(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.data.get(c.dataId).values,f=e.data.get(p.dataId).values,[d,h]=Fc(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var BP={kernelName:Wl,backendName:"cpu",kernelFunc:j9};function X9(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.data.get(s.dataId).values,u=e.data.get(i.dataId).values[0],[l,c,p]=Oc(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var VP={kernelName:Ul,backendName:"cpu",kernelFunc:X9};function Y9(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.data.get(s.dataId).values,a=Pc(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var GP={kernelName:Hl,backendName:"cpu",kernelFunc:Y9};var Z9=_t(Ms,r=>Math.tan(r)),WP={kernelName:Ms,backendName:"cpu",kernelFunc:Z9};var J9=_t(zs,r=>Math.tanh(r)),UP={kernelName:zs,backendName:"cpu",kernelFunc:J9};function Q9(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reps:s}=n;tt(o,"tile");let i=cw(e.bufferSync(o),s);return e.makeTensorInfo(i.shape,i.dtype,i.values)}var HP={kernelName:to,backendName:"cpu",kernelFunc:Q9};function ttt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{k:s,sorted:i}=n;tt(o,"topk");let a=e.data.get(o.dataId).values,[u,l]=pw(a,o.shape,o.dtype,s,i);return[e.makeTensorInfo(u.shape,u.dtype,u.values),e.makeTensorInfo(l.shape,l.dtype,l.values)]}var qP={kernelName:Ka,backendName:"cpu",kernelFunc:ttt};function ett(r){let{inputs:t,attrs:e,backend:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=e,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=y.computeStrides(o.shape),b=x[0],w=x[1],C=x[2],N=y.computeStrides(g),E=N[0],A=N[1],$=N[2],F=y.getTypedArrayFromDType(o.dtype,y.sizeFromShape(g));F.fill(u);let P=n.data.get(o.dataId).values,V=n.data.get(s.dataId).values;for(let W=0;Wt-1)if(t<=1)e=0;else{let n=2*t;e-=n*Math.trunc(e/n),e>=t&&(e=n-e-1)}return y.clamp(0,e,t-1)}function ntt(r,t){let e=r;if(e<0)if(t<=1)e=0;else{let n=t-1;e+=t*(Math.trunc(-e/n)+1)}else if(e>t-1)if(t<=1)e=0;else{let n=t-1;e-=t*Math.trunc(e/n)}return y.clamp(0,e,t-1)}function ott(r,t){return r}function stt(r,t){return y.clamp(0,r,t-1)}function jh(r,t,e,n,o,s,i,a,u,l,c){let p=i*n+a*o+u*s+l;return 0<=a&&ae.disposeIntermediateTensorInfo(d)),f}var ZP={kernelName:ql,backendName:"cpu",kernelFunc:ctt};var ptt=[vF,FR,SF,NF,zR,TF,kF,EF,_F,AF,$F,DF,RF,FF,OF,LF,MF,zF,BF,IF,VF,GF,WF,UF,MR,BR,HF,OR,qF,jF,XF,YF,ZF,JF,QF,tO,eO,rO,nO,oO,sO,iO,aO,lO,uO,cO,pO,mO,fO,dO,gO,gF,xO,VR,yO,GR,bO,WR,wO,CO,IO,UR,vO,SO,NO,TO,kO,HR,qR,PR,EO,KF,_O,AO,$O,xF,KR,jR,DO,XR,RO,FO,OO,PO,LO,MO,zO,YR,BO,VO,GO,WO,HO,qO,KO,ZR,jO,XO,JO,JR,QR,QO,tP,eP,tF,rP,sP,iP,xw,aP,yF,rF,lP,uP,cP,pP,LR,Hh,mP,bF,wF,CF,fP,dP,hP,gP,xP,yP,bP,aF,wP,IP,vP,SP,uF,NP,TP,kP,cF,YO,_P,AP,$P,DP,RP,FP,OP,PP,mF,LP,fF,MP,zP,BP,VP,GP,dF,hO,WP,UP,HP,qP,jP,eF,XP,YP,ZP,nP];for(let r of ptt)zu(r);var gd={};Wt(gd,{assertNotComplex:()=>ri,bindCanvasToFramebuffer:()=>wtt,bindColorTextureToFramebuffer:()=>Jh,bindTextureToProgramUniformSampler:()=>MT,bindTextureUnit:()=>eL,bindVertexBufferToProgramAttribute:()=>vw,callAndCheck:()=>ht,canBeRepresented:()=>TT,createFragmentShader:()=>ET,createFramebuffer:()=>OT,createProgram:()=>_T,createStaticIndexBuffer:()=>DT,createStaticVertexBuffer:()=>$T,createTexture:()=>RT,createVertexShader:()=>kT,getBatchDim:()=>wl,getExtensionOrThrow:()=>fd,getFramebufferErrorMessage:()=>rL,getMaxTexturesInShader:()=>VT,getNumChannels:()=>ytt,getProgramUniformLocation:()=>LT,getProgramUniformLocationOrThrow:()=>PT,getRowsCols:()=>Cl,getShapeAs3D:()=>hd,getTextureShapeFromLogicalShape:()=>zT,getWebGLDisjointQueryTimerVersion:()=>GT,getWebGLErrorMessage:()=>tL,getWebGLMaxTextureSize:()=>BT,hasExtension:()=>Hn,isCapableOfRenderingToFloatTexture:()=>WT,isDownloadFloatTextureEnabled:()=>UT,isReshapeFree:()=>Au,isWebGLFenceEnabled:()=>HT,isWebGLVersionEnabled:()=>Nw,linkProgram:()=>AT,logShaderSourceAndInfoLog:()=>Iw,resetMaxTextureSize:()=>Ctt,resetMaxTexturesInShader:()=>Itt,unbindColorTextureFromFramebuffer:()=>Sw,unbindTextureUnit:()=>btt,validateFramebuffer:()=>dd,validateProgram:()=>Zh,validateTextureSize:()=>FT});var Mc={},yw={alpha:!1,antialias:!1,premultipliedAlpha:!1,preserveDrawingBuffer:!1,depth:!1,stencil:!1,failIfMajorPerformanceCaveat:!0};function vT(r,t){Mc[r]=t}function Un(r,t){if(!(r in Mc)||t!=null){let n=ftt(r,t);if(n!==null)Mc[r]=n;else return console.log("Could not get context for WebGL version",r),null}let e=Mc[r];return e==null||e.isContextLost()?(delete Mc[r],Un(r)):(e.disable(e.DEPTH_TEST),e.disable(e.STENCIL_TEST),e.disable(e.BLEND),e.disable(e.DITHER),e.disable(e.POLYGON_OFFSET_FILL),e.disable(e.SAMPLE_COVERAGE),e.enable(e.SCISSOR_TEST),e.enable(e.CULL_FACE),e.cullFace(e.BACK),Mc[r])}function mtt(r){if(typeof OffscreenCanvas!="undefined"&&r===2)return new OffscreenCanvas(300,150);if(typeof document!="undefined")return document.createElement("canvas");throw new Error("Cannot create a canvas in this context")}function ftt(r,t){if(r!==1&&r!==2)throw new Error("Cannot get WebGL rendering context, WebGL is disabled.");let e=t==null?mtt(r):t;return e.addEventListener("webglcontextlost",n=>{n.preventDefault(),delete Mc[r]},!1),M().getBool("SOFTWARE_WEBGL_ENABLED")&&(yw.failIfMajorPerformanceCaveat=!1),r===1?e.getContext("webgl",yw)||e.getContext("experimental-webgl",yw):e.getContext("webgl2",yw)}var _u;(function(r){r[r.DENSE=0]="DENSE",r[r.SHARED_BATCH=1]="SHARED_BATCH"})(_u||(_u={}));var Yr;(function(r){r[r.RENDER=0]="RENDER",r[r.UPLOAD=1]="UPLOAD",r[r.PIXELS=2]="PIXELS",r[r.DOWNLOAD=3]="DOWNLOAD"})(Yr||(Yr={}));var Lr;(function(r){r[r.UNPACKED_FLOAT16=0]="UNPACKED_FLOAT16",r[r.UNPACKED_FLOAT32=1]="UNPACKED_FLOAT32",r[r.PACKED_4X1_UNSIGNED_BYTE=2]="PACKED_4X1_UNSIGNED_BYTE",r[r.PACKED_2X2_FLOAT32=3]="PACKED_2X2_FLOAT32",r[r.PACKED_2X2_FLOAT16=4]="PACKED_2X2_FLOAT16"})(Lr||(Lr={}));function zc(r,t){return[t,r]}function JP(r,t){return r*t}function Xh(r){let t=y.sizeFromShape(r),e=Math.ceil(t/4);return y.sizeToSquarishShape(e)}function Qi(r,t){return[Math.max(1,Math.ceil(t/2)),Math.max(1,Math.ceil(r/2))]}function QP(r,t){let[e,n]=Qi(r,t);return e*n*4}function Yh(r,t){let e=r,n,o,s,i,a,u,l,c,p,m;return M().getNumber("WEBGL_VERSION")===2?(n=e.R32F,o=e.R16F,s=e.RGBA16F,i=e.RGBA32F,a=e.RED,l=4,c=1,p=e.HALF_FLOAT,m=e.FLOAT,u=e.RGBA8):(n=r.RGBA,o=r.RGBA,s=r.RGBA,i=e.RGBA,a=r.RGBA,l=4,c=4,p=t!=null?t.HALF_FLOAT_OES:null,m=r.FLOAT,u=r.RGBA),{internalFormatFloat:n,internalFormatHalfFloat:o,internalFormatPackedHalfFloat:s,internalFormatPackedFloat:i,textureFormatFloat:a,downloadTextureFormat:u,downloadUnpackNumChannels:l,defaultNumChannels:c,textureTypeHalfFloat:p,textureTypeFloat:m}}function ht(r,t){let e=t();return M().getBool("DEBUG")&&dtt(r),e}function dtt(r){let t=r.getError();if(t!==r.NO_ERROR)throw new Error("WebGL Error: "+tL(r,t))}var htt=596e-10,gtt=65504;function TT(r){return!!(M().getBool("WEBGL_RENDER_FLOAT32_ENABLED")||r===0||httr.getExtension(t),'Extension "'+t+'" not supported on this browser.')}function kT(r,t){let e=bl(r,()=>r.createShader(r.VERTEX_SHADER),"Unable to create vertex WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw console.log(r.getShaderInfoLog(e)),new Error("Failed to compile vertex shader.");return e}function ET(r,t){let e=bl(r,()=>r.createShader(r.FRAGMENT_SHADER),"Unable to create fragment WebGLShader.");if(ht(r,()=>r.shaderSource(e,t)),ht(r,()=>r.compileShader(e)),M().get("ENGINE_COMPILE_ONLY"))return e;if(r.getShaderParameter(e,r.COMPILE_STATUS)===!1)throw Iw(t,r.getShaderInfoLog(e)),new Error("Failed to compile fragment shader.");return e}var xtt=/ERROR: [0-9]+:([0-9]+):/g;function Iw(r,t){let e=xtt.exec(t);if(e==null){console.log(`Couldn't parse line number in error: ${t}`),console.log(r);return}let n=+e[1],o=r.split(` `),s=o.length.toString().length+2,i=o.map((p,m)=>y.rightPad((m+1).toString(),s)+p),a=0;for(let p=0;pr.createProgram(),"Unable to create WebGLProgram.")}function kT(r,t){if(yt(r,()=>r.linkProgram(t)),!z().get("ENGINE_COMPILE_ONLY")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Yh(r,t){if(yt(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function ET(r,t){let e=gl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function _T(r,t){let e=gl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return yt(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),yt(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ctt(){return z().getNumber("WEBGL_VERSION")===2?1:4}function AT(r){return gl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function $T(r,t){let e=z().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+o+".")}}function DT(r){return gl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function Iw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),yt(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),yt(r,()=>r.enableVertexAttribArray(a)),!0)}function JP(r,t,e){tL(r,e),yt(r,()=>r.activeTexture(r.TEXTURE0+e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function ptt(r,t){tL(r,t),yt(r,()=>r.activeTexture(r.TEXTURE0+t)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function RT(r,t,e){return gl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function FT(r,t,e){return r.getUniformLocation(t,e)}function OT(r,t,e,n){yt(r,()=>JP(r,t,n)),yt(r,()=>r.uniform1i(e,n))}function mtt(r){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),yt(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),yt(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Zh(r,t,e){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){yt(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),yt(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function md(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+QP(r,t))}function QP(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function gl(r,t,e){let n=yt(r,()=>t());if(n==null)throw new Error(e);return n}function tL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function xl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function yl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function fd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[xl(r),...yl(r)]),t}function PT(r,t=!1){let e=z().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=z().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&z().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=xl(r),u=2,l=2;r.length&&([u,l]=yl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function yw(r){return r%2===0}function Eu(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||yw(e)&&yw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&yw(r[0])&&yw(t[0])}var bw,ww;function LT(r){if(bw==null){let t=Gn(r);bw=t.getParameter(t.MAX_TEXTURE_SIZE)}return bw}function ftt(){bw=null}function dtt(){ww=null}function MT(r){if(ww==null){let t=Gn(r);ww=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,ww)}function zT(r){if(r===0)return 0;let t,e=Gn(r);return Wn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Wn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Wn(r,t){return r.getExtension(t)!=null}function vw(r){try{if(Gn(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function BT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,"OES_texture_float"))return!1}else if(!Wn(t,"EXT_color_buffer_float"))return!1;return IT(t)}function VT(r){if(r===0)return!1;let t=Gn(r);if(r===1){if(!Wn(t,"OES_texture_float")||!Wn(t,"WEBGL_color_buffer_float"))return!1}else{if(Wn(t,"EXT_color_buffer_float"))return IT(t);let n="EXT_color_buffer_half_float";if(Wn(t,n)){let o=t.getExtension(n);return htt(t,o)}return!1}return IT(t)}function IT(r){let t=Xh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function htt(r,t){let e=Xh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function GT(r){return r!==2?!1:Gn(r).fenceSync!=null}function Qs(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=z();Tt.registerFlag("HAS_WEBGL",()=>Tt.getNumber("WEBGL_VERSION")>0);Tt.registerFlag("WEBGL_VERSION",()=>vw(2)?2:vw(1)?1:0);Tt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Tt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Tt.get("WEBGL_VERSION")===2);Tt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Tt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Tt.registerFlag("WEBGL_PACK",()=>Tt.getBool("HAS_WEBGL"));Tt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_CLIP",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_REDUCE",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_LAZILY_UNPACK",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_CONV_IM2COL",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>LT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>MT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Tt.getNumber("WEBGL_VERSION");return r===0?0:zT(r)});Tt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Tt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Kl.isMobile());Tt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>BT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Tt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Tt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Tt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>VT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>GT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Tt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Tt.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Kl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Tt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Tt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Tt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Tt.registerFlag("WEBGL_EXP_CONV",()=>!1);Tt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Tt.getBool("IS_TEST"));Tt.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Tt.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Tt.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return z().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=z().getBool("WEBGL2_ISNAN_CUSTOM")?` +`))}function _T(r){return bl(r,()=>r.createProgram(),"Unable to create WebGLProgram.")}function AT(r,t){if(ht(r,()=>r.linkProgram(t)),!M().get("ENGINE_COMPILE_ONLY")&&r.getProgramParameter(t,r.LINK_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Failed to link vertex and fragment shaders.")}function Zh(r,t){if(ht(r,()=>r.validateProgram(t)),r.getProgramParameter(t,r.VALIDATE_STATUS)===!1)throw console.log(r.getProgramInfoLog(t)),new Error("Shader program validation failed.")}function $T(r,t){let e=bl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function DT(r,t){let e=bl(r,()=>r.createBuffer(),"Unable to create WebGLBuffer");return ht(r,()=>r.bindBuffer(r.ELEMENT_ARRAY_BUFFER,e)),ht(r,()=>r.bufferData(r.ELEMENT_ARRAY_BUFFER,t,r.STATIC_DRAW)),e}function ytt(){return M().getNumber("WEBGL_VERSION")===2?1:4}function RT(r){return bl(r,()=>r.createTexture(),"Unable to create WebGLTexture.")}function FT(r,t){let e=M().getNumber("WEBGL_MAX_TEXTURE_SIZE");if(r<=0||t<=0){let n=`[${r}x${t}]`;throw new Error("Requested texture size "+n+" is invalid.")}if(r>e||t>e){let n=`[${r}x${t}]`,o=`[${e}x${e}]`;throw new Error("Requested texture size "+n+" greater than WebGL maximum on this browser / GPU "+o+".")}}function OT(r){return bl(r,()=>r.createFramebuffer(),"Unable to create WebGLFramebuffer.")}function vw(r,t,e,n,o,s,i){let a=r.getAttribLocation(t,e);return a===-1?!1:(ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,n)),ht(r,()=>r.vertexAttribPointer(a,o,r.FLOAT,!1,s,i)),ht(r,()=>r.enableVertexAttribArray(a)),!0)}function eL(r,t,e){nL(r,e),ht(r,()=>r.activeTexture(r.TEXTURE0+e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,t))}function btt(r,t){nL(r,t),ht(r,()=>r.activeTexture(r.TEXTURE0+t)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function PT(r,t,e){return bl(r,()=>r.getUniformLocation(t,e),'uniform "'+e+'" not present in program.')}function LT(r,t,e){return r.getUniformLocation(t,e)}function MT(r,t,e,n){ht(r,()=>eL(r,t,n)),ht(r,()=>r.uniform1i(e,n))}function wtt(r){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,null)),ht(r,()=>r.viewport(0,0,r.canvas.width,r.canvas.height)),ht(r,()=>r.scissor(0,0,r.canvas.width,r.canvas.height))}function Jh(r,t,e){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,e)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t,0))}function Sw(r,t){ht(r,()=>r.bindFramebuffer(r.FRAMEBUFFER,t)),ht(r,()=>r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,null,0))}function dd(r){let t=r.checkFramebufferStatus(r.FRAMEBUFFER);if(t!==r.FRAMEBUFFER_COMPLETE)throw new Error("Error binding framebuffer: "+rL(r,t))}function rL(r,t){switch(t){case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"FRAMEBUFFER_INCOMPLETE_DIMENSIONS";case r.FRAMEBUFFER_UNSUPPORTED:return"FRAMEBUFFER_UNSUPPORTED";default:return`unknown error ${t}`}}function bl(r,t,e){let n=ht(r,()=>t());if(n==null)throw new Error(e);return n}function nL(r,t){let e=r.MAX_COMBINED_TEXTURE_IMAGE_UNITS-1,n=t+r.TEXTURE0;if(ne){let o=`[gl.TEXTURE0, gl.TEXTURE${e}]`;throw new Error(`textureUnit must be in ${o}.`)}}function wl(r,t=2){return y.sizeFromShape(r.slice(0,r.length-t))}function Cl(r){if(r.length===0)throw Error("Cannot get rows and columns of an empty shape array.");return[r.length>1?r[r.length-2]:1,r[r.length-1]]}function hd(r){let t=[1,1,1];return r.length===0||r.length===1&&r[0]===1||(t=[wl(r),...Cl(r)]),t}function zT(r,t=!1){let e=M().getNumber("WEBGL_MAX_TEXTURE_SIZE"),n=M().getNumber("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE");n===1/0&&M().getBool("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE")&&(n=e/2),t&&(e=e*2,n=n*2,r=r.map((a,u)=>u>=r.length-2?y.nearestLargerEven(r[u]):r[u]),r.length===1&&(r=[2,r[0]])),r.length!==2&&(r=y.squeezeShape(r).newShape);let o=y.sizeFromShape(r),s=null;r.length<=1&&o<=e?s=[1,o]:r.length===2&&r[0]<=e&&r[1]<=e?s=r:r.length===3&&r[0]*r[1]<=e&&r[2]<=e?s=[r[0]*r[1],r[2]]:r.length===3&&r[0]<=e&&r[1]*r[2]<=e?s=[r[0],r[1]*r[2]]:r.length===4&&r[0]*r[1]*r[2]<=e&&r[3]<=e?s=[r[0]*r[1]*r[2],r[3]]:r.length===4&&r[0]<=e&&r[1]*r[2]*r[3]<=e&&(s=[r[0],r[1]*r[2]*r[3]]);let i=s!=null&&Math.max(...s)>n&&Math.min(...s)<=(t?2:1)&&Math.min(...s)>0;if(s==null||i)if(t){let a=wl(r),u=2,l=2;r.length&&([u,l]=Cl(r)),o=a*(u/2)*(l/2),s=y.sizeToSquarishShape(o).map(c=>c*2)}else s=y.sizeToSquarishShape(o);return s}function bw(r){return r%2===0}function Au(r,t){if(r=r.slice(-2),t=t.slice(-2),y.arraysEqual(r,t)||!r.length||!t.length||r[0]===0||r[1]===0||t[0]===0||t[1]===0)return!0;if(r.length!==t.length){let e=r.slice(-1)[0],n=t.slice(-1)[0];if(e===n||bw(e)&&bw(n)&&(r[0]===1||t[0]===1))return!0}return r[1]===t[1]&&bw(r[0])&&bw(t[0])}var ww,Cw;function BT(r){if(ww==null){let t=Un(r);ww=t.getParameter(t.MAX_TEXTURE_SIZE)}return ww}function Ctt(){ww=null}function Itt(){Cw=null}function VT(r){if(Cw==null){let t=Un(r);Cw=t.getParameter(t.MAX_TEXTURE_IMAGE_UNITS)}return Math.min(16,Cw)}function GT(r){if(r===0)return 0;let t,e=Un(r);return Hn(e,"EXT_disjoint_timer_query_webgl2")&&r===2?t=2:Hn(e,"EXT_disjoint_timer_query")?t=1:t=0,t}function Hn(r,t){return r.getExtension(t)!=null}function Nw(r){try{if(Un(r)!=null)return!0}catch(t){return console.log("Error when getting WebGL context: ",t),!1}return!1}function WT(r){if(r===0)return!1;let t=Un(r);if(r===1){if(!Hn(t,"OES_texture_float"))return!1}else if(!Hn(t,"EXT_color_buffer_float"))return!1;return NT(t)}function UT(r){if(r===0)return!1;let t=Un(r);if(r===1){if(!Hn(t,"OES_texture_float")||!Hn(t,"WEBGL_color_buffer_float"))return!1}else{if(Hn(t,"EXT_color_buffer_float"))return NT(t);let n="EXT_color_buffer_half_float";if(Hn(t,n)){let o=t.getExtension(n);return vtt(t,o)}return!1}return NT(t)}function NT(r){let t=Yh(r),e=r.createTexture();r.bindTexture(r.TEXTURE_2D,e);let n=1,o=1;r.texImage2D(r.TEXTURE_2D,0,t.internalFormatFloat,n,o,0,t.textureFormatFloat,t.textureTypeFloat,null);let s=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,s),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,e,0);let i=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(e),r.deleteFramebuffer(s),i}function vtt(r,t){let e=Yh(r,t),n=r.createTexture();r.bindTexture(r.TEXTURE_2D,n);let o=1,s=1;r.texImage2D(r.TEXTURE_2D,0,e.internalFormatHalfFloat,o,s,0,e.textureFormatFloat,e.textureTypeHalfFloat,null);let i=r.createFramebuffer();r.bindFramebuffer(r.FRAMEBUFFER,i),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,n,0);let a=r.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return r.bindTexture(r.TEXTURE_2D,null),r.bindFramebuffer(r.FRAMEBUFFER,null),r.deleteTexture(n),r.deleteFramebuffer(i),a}function HT(r){return r!==2?!1:Un(r).fenceSync!=null}function ri(r,t){Array.isArray(r)||(r=[r]),r.forEach(e=>{e!=null&&y.assert(e.dtype!=="complex64",()=>`${t} does not support complex64 tensors in the WebGL backend.`)})}var Tt=M();Tt.registerFlag("HAS_WEBGL",()=>Tt.getNumber("WEBGL_VERSION")>0);Tt.registerFlag("WEBGL_VERSION",()=>Nw(2)?2:Nw(1)?1:0);Tt.registerFlag("WEBGL_CHECK_NUMERICAL_PROBLEMS",()=>!1);Tt.registerFlag("WEBGL_BUFFER_SUPPORTED",()=>Tt.get("WEBGL_VERSION")===2);Tt.registerFlag("WEBGL_CPU_FORWARD",()=>!0);Tt.registerFlag("WEBGL_FORCE_F16_TEXTURES",()=>!1);Tt.registerFlag("WEBGL_PACK",()=>Tt.getBool("HAS_WEBGL"));Tt.registerFlag("WEBGL_PACK_NORMALIZATION",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_CLIP",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_DEPTHWISECONV",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_BINARY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_UNARY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_ARRAY_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_IMAGE_OPERATIONS",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_PACK_REDUCE",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_LAZILY_UNPACK",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_CONV_IM2COL",()=>Tt.getBool("WEBGL_PACK"));Tt.registerFlag("WEBGL_MAX_TEXTURE_SIZE",()=>BT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_MAX_TEXTURES_IN_SHADER",()=>VT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION",()=>{let r=Tt.getNumber("WEBGL_VERSION");return r===0?0:GT(r)});Tt.registerFlag("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE",()=>Tt.getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0&&!Yl.isMobile());Tt.registerFlag("WEBGL_RENDER_FLOAT32_CAPABLE",()=>WT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_RENDER_FLOAT32_ENABLED",()=>Tt.getBool("WEBGL_FORCE_F16_TEXTURES")?!1:Tt.getBool("WEBGL_RENDER_FLOAT32_CAPABLE"));Tt.registerFlag("WEBGL_DOWNLOAD_FLOAT_ENABLED",()=>UT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_FENCE_API_ENABLED",()=>HT(Tt.getNumber("WEBGL_VERSION")));Tt.registerFlag("WEBGL_SIZE_UPLOAD_UNIFORM",()=>Tt.getBool("WEBGL_RENDER_FLOAT32_ENABLED")?4:0);Tt.registerFlag("WEBGL_DELETE_TEXTURE_THRESHOLD",()=>-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_DELETE_TEXTURE_THRESHOLD must be -1 (indicating never delete) or at least 0, but got ${r}.`)});Tt.registerFlag("WEBGL_FLUSH_THRESHOLD",()=>Yl.isMobile()?1:-1,r=>{if(r<0&&r!==-1)throw new Error(`WEBGL_FLUSH_THRESHOLD must be -1 (indicating never manual flush) or at least 0, but got ${r}.`)});Tt.registerFlag("CPU_HANDOFF_SIZE_THRESHOLD",()=>128);Tt.registerFlag("WEBGL_USE_SHAPES_UNIFORMS",()=>!1);Tt.registerFlag("TOPK_LAST_DIM_CPU_HANDOFF_SIZE_THRESHOLD",()=>1e5);Tt.registerFlag("TOPK_K_CPU_HANDOFF_THRESHOLD",()=>128);Tt.registerFlag("WEBGL_EXP_CONV",()=>!1);Tt.registerFlag("SOFTWARE_WEBGL_ENABLED",()=>Tt.getBool("IS_TEST"));Tt.registerFlag("WEBGL_MAX_SIZE_FOR_NARROW_TEXTURE",()=>1/0);Tt.registerFlag("WEBGL_AUTO_SQUARIFY_NARROW_TEXTURE_SHAPE",()=>!1);Tt.registerFlag("WEBGL2_ISNAN_CUSTOM",()=>!1);Tt.registerFlag("ENGINE_COMPILE_ONLY",()=>!1);function Ge(){let r,t,e,n,o,s,i,a,u,l;return M().getNumber("WEBGL_VERSION")===2?(r="#version 300 es",t="in",e="out",n="in",o="texture",s="outputColor",i="out vec4 outputColor;",a=M().getBool("WEBGL2_ISNAN_CUSTOM")?` bool isnan_custom(float val) { uint floatToUint = floatBitsToUint(val); return (floatToUint & 0x7fffffffu) > 0x7f800000u; @@ -108,15 +108,15 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram ivec4 round(vec4 value) { return ivec4(floor(value + vec4(0.5))); } - `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ti(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join("")}function Mc(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join("")}function gtt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function eL(r,t,e="index"){let n=r.map((s,i)=>i),o=gtt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join("")}function hd(r){let t=y.computeStrides(r).map(e=>e.toString());return` + `),{version:r,attribute:t,varyingVs:e,varyingFs:n,texture2D:o,output:s,defineOutput:i,defineSpecialNaN:a,defineSpecialInf:u,defineRound:l}}function ni(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / ${o}`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * ${o}`:`index -= ${r[s]} * ${o}`;return`${i}; ${a};`}).join("")}function Bc(r,t,e="index"){let n=y.computeStrides(t);return n.map((o,s)=>{let i=`int ${r[s]} = ${e} / outShapeStrides[${s}]`,a=s===n.length-1?`int ${r[s+1]} = ${e} - ${r[s]} * outShapeStrides[${s}]`:`index -= ${r[s]} * outShapeStrides[${s}]`;return`${i}; ${a};`}).join("")}function Stt(r,t){let e=r.length,n=r.map(s=>`${t}[${s}]`),o=new Array(e-1);o[e-2]=n[e-1];for(let s=e-3;s>=0;--s)o[s]=`(${o[s+1]} * ${n[s+1]})`;return o}function oL(r,t,e="index"){let n=r.map((s,i)=>i),o=Stt(n,t);return o.map((s,i)=>{let a=`int ${r[i]} = ${e} / ${o[i]}`,u=i===o.length-1?`int ${r[i+1]} = ${e} - ${r[i]} * ${o[i]}`:`index -= ${r[i]} * ${o[i]}`;return`${a}; ${u};`}).join("")}function xd(r){let t=y.computeStrides(r).map(e=>e.toString());return` int getFlatIndex(ivec3 coords) { return coords.x * ${t[0]} + coords.y * ${t[1]} + coords.z; } -`}function gd(){return` +`}function yd(){return` int getFlatIndex(ivec3 coords) { return coords.x * outShapeStrides[0] + coords.y * outShapeStrides[1] + coords.z; } -`}var Nw=` +`}var Tw=` const float FLOAT_MAX = 1.70141184e38; const float FLOAT_MIN = 1.17549435e-38; @@ -155,22 +155,22 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return c / 255.0; } -`;var{getBroadcastDims:rL}=v;function nL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:""};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=Tw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push("uniform int outShape;");break;case 2:n.push("uniform ivec2 outShape;"),n.push("uniform int outShapeStrides;");break;case 3:n.push("uniform ivec3 outShape;"),n.push("uniform ivec2 outShapeStrides;");break;case 4:n.push("uniform ivec4 outShape;"),n.push("uniform ivec3 outShapeStrides;");break;default:break}n.push("uniform ivec2 outTexShape;")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:""};`)});let o=n.join(` -`),s=r.map(f=>xtt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` -`),i=t.texShape,a=Ge(),u=wtt(a),l,c,p=Stt(a);return t.isPacked?(l=ytt(t.logicalShape,i,e.enableShapeUniforms),c=Itt(a)):(l=btt(t.logicalShape,i,e.enableShapeUniforms),c=Ctt(a)),e.packedInputs&&(p+=ktt),[p,u,c,o,l,s,e.userCode].join(` -`)}function yd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return ztt(r,t);case 1:return Vtt(r,t);case 2:return Wtt(r,t);case 3:return Htt(r,t);case 4:return Ktt(r,t);case 5:return jtt(r);case 6:return Xtt(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function oL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return Mtt(r);case 1:return Btt(r,t);case 2:return Gtt(r,t);case 3:return Utt(r,t);default:return qtt(r,t)}}function xtt(r,t,e=!1,n){let o="";e?o+=oL(r,n):o+=yd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=Ytt(r,t):o+=Ztt(r,t)),o}function ytt(r,t,e){switch(r.length){case 0:return sL();case 1:return Ett(r,t,e);case 2:return Ptt(r,t,e);case 3:return Att(r,t,e);default:return Dtt(r,t,e)}}function btt(r,t,e){switch(r.length){case 0:return sL();case 1:return _tt(r,t,e);case 2:return Ltt(r,t,e);case 3:return $tt(r,t,e);case 4:return Rtt(r,t,e);case 5:return Ftt(r,t);case 6:return Ott(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function wtt(r){return` +`;var{getBroadcastDims:sL}=S;function iL(r,t,e){let n=[];if(r.forEach(f=>{let d=y.sizeFromShape(f.shapeInfo.logicalShape);if(f.shapeInfo.isUniform?n.push(`uniform float ${f.name}${d>1?`[${d}]`:""};`):(n.push(`uniform sampler2D ${f.name};`),n.push(`uniform int offset${f.name};`)),e.enableShapeUniforms){let{uniformShape:h}=kw(e.packedInputs,f.shapeInfo.logicalShape,f.shapeInfo.texShape);switch(h.length){case 1:n.push(`uniform int ${f.name}Shape;`);break;case 2:n.push(`uniform ivec2 ${f.name}Shape;`);break;case 3:n.push(`uniform ivec3 ${f.name}Shape;`);break;case 4:n.push(`uniform ivec4 ${f.name}Shape;`);break;default:break}n.push(`uniform ivec2 ${f.name}TexShape;`)}}),e.enableShapeUniforms){switch(t.logicalShape.length){case 1:n.push("uniform int outShape;");break;case 2:n.push("uniform ivec2 outShape;"),n.push("uniform int outShapeStrides;");break;case 3:n.push("uniform ivec3 outShape;"),n.push("uniform ivec2 outShapeStrides;");break;case 4:n.push("uniform ivec4 outShape;"),n.push("uniform ivec3 outShapeStrides;");break;default:break}n.push("uniform ivec2 outTexShape;")}e.customUniforms&&e.customUniforms.forEach(f=>{n.push(`uniform ${f.type} ${f.name}${f.arrayIndex?`[${f.arrayIndex}]`:""};`)});let o=n.join(` +`),s=r.map(f=>Ntt(f,t,e.packedInputs,e.enableShapeUniforms)).join(` +`),i=t.texShape,a=Ge(),u=Ett(a),l,c,p=$tt(a);return t.isPacked?(l=Ttt(t.logicalShape,i,e.enableShapeUniforms),c=Att(a)):(l=ktt(t.logicalShape,i,e.enableShapeUniforms),c=_tt(a)),e.packedInputs&&(p+=Ott),[p,u,c,o,l,s,e.userCode].join(` +`)}function wd(r,t=!1){let e=r.shapeInfo.logicalShape;switch(e.length){case 0:return Ktt(r,t);case 1:return Xtt(r,t);case 2:return Ztt(r,t);case 3:return Qtt(r,t);case 4:return eet(r,t);case 5:return ret(r);case 6:return net(r);default:throw new Error(`${e.length}-D input sampling is not yet supported`)}}function aL(r,t){switch(r.shapeInfo.logicalShape.length){case 0:return qtt(r);case 1:return jtt(r,t);case 2:return Ytt(r,t);case 3:return Jtt(r,t);default:return tet(r,t)}}function Ntt(r,t,e=!1,n){let o="";e?o+=aL(r,n):o+=wd(r,n);let s=r.shapeInfo.logicalShape,i=t.logicalShape;return s.length<=i.length&&(e?o+=oet(r,t):o+=set(r,t)),o}function Ttt(r,t,e){switch(r.length){case 0:return lL();case 1:return Ptt(r,t,e);case 2:return Utt(r,t,e);case 3:return Mtt(r,t,e);default:return Btt(r,t,e)}}function ktt(r,t,e){switch(r.length){case 0:return lL();case 1:return Ltt(r,t,e);case 2:return Htt(r,t,e);case 3:return ztt(r,t,e);case 4:return Vtt(r,t,e);case 5:return Gtt(r,t);case 6:return Wtt(r,t);default:throw new Error(`${r.length}-D output sampling is not yet supported`)}}function Ett(r){return` float sampleTexture(sampler2D textureSampler, vec2 uv) { return ${r.texture2D}(textureSampler, uv).r; } - `}function Ctt(r){return` + `}function _tt(r){return` void setOutput(float val) { ${r.output} = vec4(val, 0, 0, 0); } - `}function Itt(r){return` + `}function Att(r){return` void setOutput(vec4 val) { ${r.output} = val; } - `}function Stt(r){return`${r.version} + `}function $tt(r){return`${r.version} precision highp float; precision highp int; precision highp sampler2D; @@ -225,10 +225,10 @@ Hi, looks like you are running TensorFlow.js in Node.js. To speed things up dram return fract((p3.x + p3.y) * p3.z); } - ${vtt} - ${Ntt} - ${Ttt} - `}var vtt=` + ${Dtt} + ${Rtt} + ${Ftt} + `}var Dtt=` vec2 uvFromFlat(int texNumR, int texNumC, int index) { int texR = index / texNumC; int texC = index - texR * texNumC; @@ -240,7 +240,7 @@ vec2 packedUVfrom1D(int texNumR, int texNumC, int index) { int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Ntt=` +`,Rtt=` vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texNumC, int row, int col) { int texelIndex = (row / 2) * texelsInLogicalRow + (col / 2); @@ -248,7 +248,7 @@ vec2 packedUVfrom2D(int texelsInLogicalRow, int texNumR, int texC = texelIndex - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,Ttt=` +`,Ftt=` vec2 packedUVfrom3D(int texNumR, int texNumC, int texelsInBatch, int texelsInLogicalRow, int b, int row, int col) { @@ -257,7 +257,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int texC = index - texR * texNumC; return (vec2(texC, texR) + halfCR) / vec2(texNumC, texNumR); } -`,ktt=` +`,Ott=` float getChannel(vec4 frag, vec2 innerDims) { vec2 modCoord = mod(innerDims, 2.); return modCoord.x == 0. ? @@ -268,11 +268,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float modCoord = mod(float(dim), 2.); return modCoord == 0. ? frag.r : frag.g; } -`;function sL(){return` +`;function lL(){return` int getOutputCoords() { return 0; } - `}function Ett(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` + `}function Ptt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];return n[0]===1?e?` int getOutputCoords() { return 2 * int(resultUV.x * ceil(float(outTexShape[1]) / 2.0)); } @@ -301,7 +301,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${n[0]}, ${n[1]})); return 2 * (resTexRC.x * ${n[1]} + resTexRC.y); } - `}function _tt(r,t,e){return t[0]===1?e?` + `}function Ltt(r,t,e){return t[0]===1?e?` int getOutputCoords() { return int(resultUV.x * float(outTexShape[1])); } @@ -329,7 +329,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2(${t[0]}, ${t[1]})); return resTexRC.x * ${t[1]} + resTexRC.y; } - `}function Att(r,t,e){if(e)return` + `}function Mtt(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); int texelsInLogicalRow = int(ceil(float(outShape[2]) / 2.0)); @@ -360,15 +360,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec3(b, r, c); } - `}function $tt(r,t,e){if(e)return` + `}function ztt(r,t,e){if(e)return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Mc(["r","c","d"],r)} + ${Bc(["r","c","d"],r)} return ivec3(r, c, d); } -`;let n=ti(["r","c","d"],r);return` +`;let n=ni(["r","c","d"],r);return` ivec3 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -376,7 +376,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec3(r, c, d); } - `}function Dtt(r,t,e){if(e)return` + `}function Btt(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); ivec2 resTexRC = ivec2(resultUV.yx * @@ -417,15 +417,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec${r.length}(${u}); } - `}function Rtt(r,t,e){if(e)return` + `}function Vtt(r,t,e){if(e)return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); int index = resTexRC.x * outTexShape[1] + resTexRC.y; - ${Mc(["r","c","d","d2"],r)} + ${Bc(["r","c","d","d2"],r)} return ivec4(r, c, d, d2); } - `;let n=ti(["r","c","d","d2"],r);return` + `;let n=ni(["r","c","d","d2"],r);return` ivec4 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -433,7 +433,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${n} return ivec4(r, c, d, d2); } - `}function Ftt(r,t){let e=ti(["r","c","d","d2","d3"],r);return` + `}function Gtt(r,t){let e=ni(["r","c","d","d2","d3"],r);return` ivec5 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -445,7 +445,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec5 outShape = ivec5(r, c, d, d2, d3); return outShape; } - `}function Ott(r,t){let e=ti(["r","c","d","d2","d3","d4"],r);return` + `}function Wtt(r,t){let e=ni(["r","c","d","d2","d3","d4"],r);return` ivec6 getOutputCoords() { ivec2 resTexRC = ivec2(resultUV.yx * vec2(${t[0]}, ${t[1]})); @@ -456,7 +456,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ivec6 result = ivec6(r, c, d, d2, d3, d4); return result; } - `}function Ptt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` + `}function Utt(r,t,e){let n=[Math.ceil(t[0]/2),Math.ceil(t[1]/2)];if(y.arraysEqual(r,t))return e?` ivec2 getOutputCoords() { ivec2 packedTexShape = ivec2(ceil(float(outTexShape[0]) / 2.0), ceil(float(outTexShape[1]) / 2.0)); return 2 * ivec2(resultUV.yx * vec2(packedTexShape[0], packedTexShape[1])); @@ -489,7 +489,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, return ivec2(r, c); } - `}function Ltt(r,t,e){return y.arraysEqual(r,t)?e?` + `}function Htt(r,t,e){return y.arraysEqual(r,t)?e?` ivec2 getOutputCoords() { return ivec2(resultUV.yx * vec2(outTexShape[0], outTexShape[1])); } @@ -543,15 +543,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, int c = index - r * ${r[1]}; return ivec2(r, c); } - `}function zc(r){return`offset${r}`}function Mtt(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=Ge();return` + `}function Vc(r){return`offset${r}`}function qtt(r){let t=r.name,e="get"+t.charAt(0).toUpperCase()+t.slice(1),n=Ge();return` vec4 ${e}() { return ${n.texture2D}(${t}, halfCR); } - `}function ztt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` + `}function Ktt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return`float ${n}() {return ${e};}`;let[o,s]=r.shapeInfo.texShape;if(o===1&&s===1)return` float ${n}() { return sampleTexture(${e}, halfCR); } - `;let i=zc(e);if(t)return` + `;let i=Vc(e);if(t)return` float ${n}() { vec2 uv = uvFromFlat(${e}TexShape[0], ${e}TexShape[1], ${i}); return sampleTexture(${e}, uv); @@ -561,7 +561,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${a}, ${u}, ${i}); return sampleTexture(${e}, uv); } - `}function Btt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=Ge();if(t)return` + `}function jtt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1),o=r.shapeInfo.texShape,s=Ge();if(t)return` vec4 ${n}(int index) { ivec2 packedTexShape = ivec2(ceil(float(${e}TexShape[0]) / 2.0), ceil(float(${e}TexShape[1]) / 2.0)); vec2 uv = packedUVfrom1D( @@ -574,15 +574,15 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${i[0]}, ${i[1]}, index); return ${s.texture2D}(${e}, uv); } - `}function Vtt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` + `}function Xtt(r,t){let e=r.name,n="get"+e.charAt(0).toUpperCase()+e.slice(1);if(r.shapeInfo.isUniform)return` float ${n}(int index) { - ${bd(r)} + ${Cd(r)} } `;let o=r.shapeInfo.texShape,s=o[0],i=o[1];if(i===1&&s===1)return` float ${n}(int index) { return sampleTexture(${e}, halfCR); } - `;let a=zc(e);return i===1?t?` + `;let a=Vc(e);return i===1?t?` float ${n}(int index) { vec2 uv = vec2(0.5, (float(index + ${a}) + 0.5) / float(${e}TexShape[0])); return sampleTexture(${e}, uv); @@ -612,7 +612,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = uvFromFlat(${s}, ${i}, index + ${a}); return sampleTexture(${e}, uv); } - `}function Gtt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=Ge();if(s!=null&&y.arraysEqual(e,s))return t?` + `}function Ytt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape,i=s[0],a=s[1],u=Ge();if(s!=null&&y.arraysEqual(e,s))return t?` vec4 ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); @@ -636,7 +636,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = packedUVfrom2D(${c}, ${l[0]}, ${l[1]}, row, col); return ${u.texture2D}(${n}, uv); } - `}function Wtt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` + `}function Ztt(r,t){let e=r.shapeInfo.logicalShape,n=r.name,o="get"+n.charAt(0).toUpperCase()+n.slice(1),s=r.shapeInfo.texShape;if(s!=null&&y.arraysEqual(e,s)){if(t)return` float ${o}(int row, int col) { vec2 uv = (vec2(col, row) + halfCR) / vec2(${n}TexShape[1], ${n}TexShape[0]); return sampleTexture(${n}, uv); @@ -646,17 +646,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec2 uv = (vec2(col, row) + halfCR) / vec2(${f}.0, ${m}.0); return sampleTexture(${n}, uv); } - `}let{newShape:i,keptDims:a}=y.squeezeShape(e),u=i;if(u.length=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` + `}function oet(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=r.shapeInfo.logicalShape.length,i=t.logicalShape.length,a=sL(r.shapeInfo.logicalShape,t.logicalShape),u=Bt(i),l=i-s,c,p=["x","y","z","w","u","v"];s===0?c="":i<2&&a.length>=1?c="coords = 0;":c=a.map(b=>`coords.${p[b+l]} = 0;`).join(` `);let m="";i<2&&s>0?m="coords":m=r.shapeInfo.logicalShape.map((b,w)=>`coords.${p[w+l]}`).join(", ");let f="return outputValue;",h=y.sizeFromShape(r.shapeInfo.logicalShape)===1,x=y.sizeFromShape(t.logicalShape)===1;if(s===1&&!h&&!x)f=` return vec4(outputValue.xy, outputValue.xy); `;else if(h&&!x)i===1?f=` @@ -973,20 +973,20 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, vec4 outputValue = get${n}(${m}); ${f} } - `}function Ztt(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return` + `}function set(r,t){let e=r.name,n=e.charAt(0).toUpperCase()+e.slice(1),o="get"+n+"AtOutCoords",s=t.texShape,i=r.shapeInfo.texShape,a=r.shapeInfo.logicalShape.length,u=t.logicalShape.length;if(!r.shapeInfo.isUniform&&a===u&&r.shapeInfo.flatOffset==null&&y.arraysEqual(i,s))return` float ${o}() { return sampleTexture(${e}, resultUV); } - `;let l=zt(u),c=rL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=["x","y","z","w","u","v"];a===0?m="":u<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` + `;let l=Bt(u),c=sL(r.shapeInfo.logicalShape,t.logicalShape),p=u-a,m,f=["x","y","z","w","u","v"];a===0?m="":u<2&&c.length>=1?m="coords = 0;":m=c.map(h=>`coords.${f[h+p]} = 0;`).join(` `);let d="";return u<2&&a>0?d="coords":d=r.shapeInfo.logicalShape.map((h,g)=>`coords.${f[g+p]}`).join(", "),` float ${o}() { ${l} coords = getOutputCoords(); ${m} return get${n}(${d}); } - `}function zt(r){if(r<=1)return"int";if(r===2)return"ivec2";if(r===3)return"ivec3";if(r===4)return"ivec4";if(r===5)return"ivec5";if(r===6)return"ivec6";throw Error(`GPU for rank ${r} is not yet supported`)}function Tw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(", ")}function aL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=nL(o,i,t),u=NT(r.gl,a),l=r.createProgram(u);return z().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},WT(r,t,l))}function WT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,"NAN",!1),z().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(e,"INFINITY",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function iL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function lL(r,t,e,n,o){t.program.enableShapeUniforms||(iL(t.inShapeInfos,e),iL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),z().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=Tw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type==="float")r.gl.uniform1fv(c,p);else if(u.type==="vec2")r.gl.uniform2fv(c,p);else if(u.type==="vec3")r.gl.uniform3fv(c,p);else if(u.type==="vec4")r.gl.uniform4fv(c,p);else if(u.type==="int")r.gl.uniform1iv(c,p);else if(u.type==="ivec2")r.gl.uniform2iv(c,p);else if(u.type==="ivec3")r.gl.uniform3iv(c,p);else if(u.type==="ivec4")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function uL(r,t,e){let n="";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=Tw(r.packedInputs,i.shape,u),m="",f="",d="";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=v.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?"uniform":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+="_"+n+"_"+o+`${z().getNumber("WEBGL_VERSION")}`,s}function we(r){return z().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var kw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` + `}function Bt(r){if(r<=1)return"int";if(r===2)return"ivec2";if(r===3)return"ivec3";if(r===4)return"ivec4";if(r===5)return"ivec5";if(r===6)return"ivec6";throw Error(`GPU for rank ${r} is not yet supported`)}function kw(r,t,e){let{newShape:n,keptDims:o}=y.squeezeShape(t),s=t.length,i=r&&s===3&&t[0]===1,a=i?t.slice(1):n,u=!r&&s>1&&!y.arraysEqual(t,e)&&n.lengthr[e]).join(", ")}function cL(r,t,e,n){let o=e.map((c,p)=>{let m={logicalShape:c.shape,texShape:c.isUniform?null:c.texData.texShape,isUniform:c.isUniform,isPacked:c.isUniform?!1:c.texData.isPacked,flatOffset:null};return c.texData!=null&&c.texData.slice!=null&&c.texData.slice.flatOffset>0&&(m.flatOffset=c.texData.slice.flatOffset),{name:t.variableNames[p],shapeInfo:m}}),s=o.map(c=>c.shapeInfo),i={logicalShape:n.shape,texShape:n.texData.texShape,isUniform:!1,isPacked:n.texData.isPacked,flatOffset:null},a=iL(o,i,t),u=ET(r.gl,a),l=r.createProgram(u);return M().get("ENGINE_COMPILE_ONLY")?{program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i,uniformLocations:null,customUniformLocations:null,infLoc:null,nanLoc:null,inShapesLocations:null,inTexShapesLocations:null,outShapeLocation:null,outShapeStridesLocation:null,outTexShapeLocation:null}:Object.assign({program:t,fragmentShader:u,source:a,webGLProgram:l,inShapeInfos:s,outShapeInfo:i},qT(r,t,l))}function qT(r,t,e){let n={},o={},s={},i=[],a,u,l,c=null,p=null;p=r.getUniformLocation(e,"NAN",!1),M().getNumber("WEBGL_VERSION")===1&&(c=r.getUniformLocation(e,"INFINITY",!1));let m=!1;for(let f=0;f{i[d]=r.getUniformLocation(e,f.name,m)}),{uniformLocations:n,customUniformLocations:i,infLoc:c,nanLoc:p,inShapesLocations:o,inTexShapesLocations:s,outShapeLocation:a,outShapeStridesLocation:l,outTexShapeLocation:u}}function uL(r,t){if(r.length!==t.length)throw Error(`Binary was compiled with ${r.length} inputs, but was executed with ${t.length} inputs`);r.forEach((e,n)=>{let o=e.logicalShape,s=t[n],i=s.shape;if(!y.arraysEqual(o,i))throw Error(`Binary was compiled with different shapes than the current args. Shapes ${o} and ${i} must match`);if(e.isUniform&&s.isUniform)return;let a=e.texShape,u=s.isUniform?null:s.texData.texShape;if(!y.arraysEqual(a,u))throw Error(`Binary was compiled with different texture shapes than the current args. Shape ${a} and ${u} must match`)})}function pL(r,t,e,n,o){t.program.enableShapeUniforms||(uL(t.inShapeInfos,e),uL([t.outShapeInfo],[n]));let s=n.texData.texture,i=n.texData.texShape;n.texData.isPacked?r.setOutputPackedMatrixTexture(s.texture,i[0],i[1]):r.setOutputMatrixTexture(s.texture,i[0],i[1]),r.setProgram(t.webGLProgram),M().getNumber("WEBGL_VERSION")===1&&t.infLoc!==null&&r.gl.uniform1f(t.infLoc,1/0),t.nanLoc!==null&&r.gl.uniform1f(t.nanLoc,NaN),e.forEach((u,l)=>{let c=t.program.variableNames[l],p=t.uniformLocations[c],m=t.uniformLocations[`offset${c}`],f=t.inShapesLocations[`${c}Shape`],d=t.inTexShapesLocations[`${c}TexShape`];if(f){let{uniformShape:h}=kw(t.program.packedInputs,u.shape,u.texData.texShape);switch(h.length){case 1:r.gl.uniform1iv(f,new Int32Array(h));break;case 2:r.gl.uniform2iv(f,new Int32Array(h));break;case 3:r.gl.uniform3iv(f,new Int32Array(h));break;case 4:r.gl.uniform4iv(f,new Int32Array(h));break;default:break}}if(d&&r.gl.uniform2i(d,u.texData.texShape[0],u.texData.texShape[1]),p!=null){if(u.isUniform){if(y.sizeFromShape(u.shape)<2)r.gl.uniform1f(p,u.uniformValues[0]);else{let h=u.uniformValues;h instanceof Float32Array||(h=new Float32Array(h)),r.gl.uniform1fv(p,h)}return}u.texData.slice!=null&&m!=null&&r.gl.uniform1i(m,u.texData.slice.flatOffset),r.setInputMatrixTexture(u.texData.texture.texture,p,l)}});let a=t.outShapeLocation;if(a)switch(n.shape.length){case 1:r.gl.uniform1iv(a,new Int32Array(n.shape));break;case 2:r.gl.uniform2iv(a,new Int32Array(n.shape));break;case 3:r.gl.uniform3iv(a,new Int32Array(n.shape));break;case 4:r.gl.uniform4iv(a,new Int32Array(n.shape));break;default:break}if(t.outShapeStridesLocation){let u=y.computeStrides(n.shape);switch(n.shape.length){case 2:r.gl.uniform1iv(t.outShapeStridesLocation,new Int32Array(u));break;case 3:r.gl.uniform2iv(t.outShapeStridesLocation,new Int32Array(u));break;case 4:r.gl.uniform3iv(t.outShapeStridesLocation,new Int32Array(u));break;default:break}}t.outTexShapeLocation&&r.gl.uniform2i(t.outTexShapeLocation,n.texData.texShape[0],n.texData.texShape[1]),t.program.customUniforms&&o&&t.program.customUniforms.forEach((u,l)=>{let c=t.customUniformLocations[l],p=o[l];if(u.type==="float")r.gl.uniform1fv(c,p);else if(u.type==="vec2")r.gl.uniform2fv(c,p);else if(u.type==="vec3")r.gl.uniform3fv(c,p);else if(u.type==="vec4")r.gl.uniform4fv(c,p);else if(u.type==="int")r.gl.uniform1iv(c,p);else if(u.type==="ivec2")r.gl.uniform2iv(c,p);else if(u.type==="ivec3")r.gl.uniform3iv(c,p);else if(u.type==="ivec4")r.gl.uniform4iv(c,p);else throw Error(`uniform type ${u.type} is not supported yet.`)}),r.executeProgram()}function mL(r,t,e){let n="";t.concat(e).forEach(i=>{let a=i.texData!=null&&i.texData.slice!=null&&i.texData.slice.flatOffset>0;if(r.enableShapeUniforms&&!i.isUniform){let u=i.texData.texShape,{useSqueezeShape:l,uniformShape:c,keptDims:p}=kw(r.packedInputs,i.shape,u),m="",f="",d="";if(c.length===1&&r.packedInputs){let N=[Math.ceil(u[0]/2),Math.ceil(u[1]/2)];m=`${N[0]>1}_${N[1]>1}`}else if(c.length===2&&!r.packedInputs)f=`${c[0]>1}_${c[1]>1}`;else if(c.length>2&&!r.packedInputs){let N=y.computeStrides(c);d=`${N[0]===u[1]}_${N[N.length-1]===u[1]}`}let h=i.shape.length,g=c.length===2&&y.arraysEqual(i.shape,u),x=y.sizeFromShape(i.shape)===1,b=S.getBroadcastDims(i.shape,e.shape),w=!r.packedInputs&&h===e.shape.length&&y.arraysEqual(u,e.texData.texShape),C=r.packedInputs||c.length>2?"":`${u[0]>1}_${u[1]>1}`;n+=`${h}_${w}_${l?p:""}_${c.length}_${x}_${b}_${g}_${m}_${f}_${d}_${C}_${a}`}else{let u=i.isUniform?"uniform":i.texData.texShape;n+=`${i.shape}_${u}_${a}`}});let o=r.userCode,s=r.constructor.name;return s+="_"+n+"_"+o+`${M().getNumber("WEBGL_VERSION")}`,s}function we(r){return M().getBool("WEBGL_USE_SHAPES_UNIFORMS")&&r<=4}var Ew=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0,this.outPackingScheme=_u.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Mc(["r","c","d"],t):ti(["r","c","d"],t)} + ${this.enableShapeUniforms?Bc(["r","c","d"],t):ni(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1004,9 +1004,9 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var Ew=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=ku.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` + `}};var _w=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outPackingScheme=_u.DENSE,this.customUniforms=[{name:"texShape",type:"ivec2"}];let e=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` ivec3 outCoordsFromFlatIndex(int index) { - ${this.enableShapeUniforms?Mc(["r","c","d"],t):ti(["r","c","d"],t)} + ${this.enableShapeUniforms?Bc(["r","c","d"],t):ni(["r","c","d"],t)} return ivec3(r, c, d); } @@ -1024,26 +1024,26 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, ${e.output} = result; } - `}};var _w=class{constructor(t){this.variableNames=["A"],this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=` - ${Nw} + `}};var Aw=class{constructor(t){this.variableNames=["A"],this.outTexUsage=Yr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=` + ${Tw} void main() { float x = getAAtOutCoords(); ${e.output} = encode_float(x); } - `}};var Aw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=jr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=` - ${Nw} + `}};var $w=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outTexUsage=Yr.DOWNLOAD;let e=Ge();this.outputShape=t,this.userCode=` + ${Tw} void main() { ivec3 coords = getOutputCoords(); float x = getChannel(getAAtOutCoords(), vec2(coords.y, coords.z)); ${e.output} = encode_float(x); } - `}};var tet={R:0,G:1,B:2,A:3},Jh=class{constructor(t,e=!1,n="RGBA"){this.variableNames=["A"],this.customUniforms=[{name:"texShape",type:"ivec2"}];let o=Ge();this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let s="result";e&&(s="floor(result * 255. + 0.5)");let i="";for(let a=0;aJT,createBufferFromOutputTexture:()=>ek,createFloat16MatrixTexture:()=>jT,createFloat16PackedMatrixTexture:()=>ZT,createFloat32MatrixTexture:()=>KT,createIndexBuffer:()=>qT,createPackedMatrixTexture:()=>YT,createUnsignedBytesMatrixTexture:()=>XT,createVertexBuffer:()=>HT,createVertexShader:()=>UT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>nk,downloadFloat32MatrixFromBuffer:()=>rk,downloadMatrixFromPackedOutputTexture:()=>sk,downloadPackedMatrixFromBuffer:()=>ok,getInternalFormatForFloat16MatrixTexture:()=>Rw,getInternalFormatForFloat16PackedMatrixTexture:()=>Pw,getInternalFormatForFloat32MatrixTexture:()=>Dw,getInternalFormatForPackedMatrixTexture:()=>Ow,getInternalFormatForUnsignedBytesMatrixTexture:()=>Fw,uploadDenseMatrixToTexture:()=>QT,uploadPixelDataToTexture:()=>tk});function UT(r){let t=Ge(),e=`${t.version} + `}};var uk={};Wt(uk,{bindVertexProgramAttributeStreams:()=>ek,createBufferFromOutputTexture:()=>ok,createFloat16MatrixTexture:()=>ZT,createFloat16PackedMatrixTexture:()=>tk,createFloat32MatrixTexture:()=>YT,createIndexBuffer:()=>XT,createPackedMatrixTexture:()=>QT,createUnsignedBytesMatrixTexture:()=>JT,createVertexBuffer:()=>jT,createVertexShader:()=>KT,downloadByteEncodedFloatMatrixFromOutputTexture:()=>ik,downloadFloat32MatrixFromBuffer:()=>sk,downloadMatrixFromPackedOutputTexture:()=>lk,downloadPackedMatrixFromBuffer:()=>ak,getInternalFormatForFloat16MatrixTexture:()=>Fw,getInternalFormatForFloat16PackedMatrixTexture:()=>Lw,getInternalFormatForFloat32MatrixTexture:()=>Rw,getInternalFormatForPackedMatrixTexture:()=>Pw,getInternalFormatForUnsignedBytesMatrixTexture:()=>Ow,uploadDenseMatrixToTexture:()=>rk,uploadPixelDataToTexture:()=>nk});function KT(r){let t=Ge(),e=`${t.version} precision highp float; ${t.attribute} vec3 clipSpacePos; ${t.attribute} vec2 uv; @@ -1115,11 +1115,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, void main() { gl_Position = vec4(clipSpacePos, 1); resultUV = uv; - }`;return vT(r,e)}function HT(r){let t=new Float32Array([-1,1,0,0,1,-1,-1,0,0,0,1,1,0,1,1,1,-1,0,1,0]);return ET(r,t)}function qT(r){let t=new Uint16Array([0,1,2,2,1,3]);return _T(r,t)}function Qh(r,t,e,n,o,s){$T(t,e);let i=AT(r),a=r.TEXTURE_2D;return yt(r,()=>r.bindTexture(a,i)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),yt(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),z().getNumber("WEBGL_VERSION")===1?yt(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):yt(r,()=>r.texStorage2D(a,1,n,t,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Dw(r){return r.internalFormatFloat}function KT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Dw(n),n.textureFormatFloat,r.FLOAT)}function Rw(r){return r.internalFormatHalfFloat}function jT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Rw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Fw(r){return r.downloadTextureFormat}function XT(r,t,e,n){let[o,s]=Lc(t,e);return Qh(r,o,s,Fw(n),r.RGBA,r.UNSIGNED_BYTE)}function Ow(r){return r.internalFormatPackedFloat}function YT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Ow(n),r.RGBA,r.FLOAT)}function Pw(r){return r.internalFormatPackedHalfFloat}function ZT(r,t,e,n){let[o,s]=Xi(t,e);return Qh(r,o,s,Pw(n),r.RGBA,n.textureTypeHalfFloat)}function JT(r,t,e){return yt(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),Iw(r,t,"clipSpacePos",e,3,20,0)&&Iw(r,t,"uv",e,2,20,12)}function QT(r,t,e,n,o,s){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),z().getNumber("WEBGL_VERSION")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function tk(r,t,e){yt(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?z().getNumber("WEBGL_VERSION")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):z().getNumber("WEBGL_VERSION")===2?yt(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):yt(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),yt(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ek(r,t,e,n){let o=r.createBuffer();yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return yt(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),yt(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function rk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function nk(r,t,e,n){let[o,s]=Lc(t,e),i=4,a=new Uint8Array(XP(t*e,i));return yt(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ok(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(YP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function sk(r,t,e){let n=new Float32Array(t*e*4);return yt(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Bc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.vertexAttrsAreBound=!1,this.itemsToPoll=[];let e=z().getNumber("WEBGL_VERSION");t!=null?(this.gl=t,wT(e,t)):this.gl=Gn(e);let n="WEBGL_color_buffer_float",o="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),z().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=pd(this.gl,s),Wn(this.gl,i))this.textureHalfFloatExtension=pd(this.gl,i);else if(z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Wn(this.gl,o))this.colorBufferHalfFloatExtension=pd(this.gl,o);else if(z().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",Wn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Wn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=HT(this.gl),this.indexBuffer=qT(this.gl),this.framebuffer=DT(this.gl),this.textureConfig=Xh(this.gl,this.textureHalfFloatExtension)}get debug(){return z().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let t=this.gl;yt(t,()=>t.finish()),yt(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),yt(t,()=>t.deleteFramebuffer(this.framebuffer)),yt(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),yt(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),yt(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),KT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),jT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),XT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),tk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),QT(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),yt(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>nk(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ok(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return rk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ek(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(z().getBool("WEBGL_FENCE_API_ENABLED")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>sk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=UT(e));let n=TT(e);return yt(e,()=>e.attachShader(n,this.vertexShader)),yt(e,()=>e.attachShader(n,t)),kT(e,n),this.debug&&Yh(e,n),this.vertexAttrsAreBound||(this.setProgram(n),this.vertexAttrsAreBound=JT(e,this.program,this.vertexBuffer)),n}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&yt(this.gl,()=>this.gl.deleteProgram(t))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&this.debug&&Yh(this.gl,this.program),yt(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?RT(this.gl,t,e):FT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),yt(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),OT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Xi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Yh(this.gl,this.program),md(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;this.debug&&this.debugValidate(),yt(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),yt(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=pd(this.gl,z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=eet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in z().platform&&(n=z().platform.setTimeoutCustom.bind(z().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Zh(this.gl,t,this.framebuffer),this.debug&&md(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Zh(this.gl,this.outputTexture,this.framebuffer),this.debug&&md(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Zh(o,t,this.framebuffer),this.debug&&md(o),this.outputTexture=t,yt(o,()=>o.viewport(0,0,e,n)),yt(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),yt(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function eet(r){let t=0;for(;t`${r}.${e}`)}function Qe(r,t){return t===1?[r]:ak(r,t)}function QL(r,t){if(r===1)return"rc";let e="";for(let n=0;nr.bindTexture(a,i)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_S,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_WRAP_T,r.CLAMP_TO_EDGE)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MIN_FILTER,r.NEAREST)),ht(r,()=>r.texParameteri(a,r.TEXTURE_MAG_FILTER,r.NEAREST)),M().getNumber("WEBGL_VERSION")===1?ht(r,()=>r.texImage2D(a,0,n,t,e,0,o,s,null)):ht(r,()=>r.texStorage2D(a,1,n,t,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null)),{texture:i,texShape:[e,t]}}function Rw(r){return r.internalFormatFloat}function YT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Rw(n),n.textureFormatFloat,r.FLOAT)}function Fw(r){return r.internalFormatHalfFloat}function ZT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Fw(n),n.textureFormatFloat,n.textureTypeHalfFloat)}function Ow(r){return r.downloadTextureFormat}function JT(r,t,e,n){let[o,s]=zc(t,e);return tg(r,o,s,Ow(n),r.RGBA,r.UNSIGNED_BYTE)}function Pw(r){return r.internalFormatPackedFloat}function QT(r,t,e,n){let[o,s]=Qi(t,e);return tg(r,o,s,Pw(n),r.RGBA,r.FLOAT)}function Lw(r){return r.internalFormatPackedHalfFloat}function tk(r,t,e,n){let[o,s]=Qi(t,e);return tg(r,o,s,Lw(n),r.RGBA,n.textureTypeHalfFloat)}function ek(r,t,e){return ht(r,()=>r.bindBuffer(r.ARRAY_BUFFER,e)),vw(r,t,"clipSpacePos",e,3,20,0)&&vw(r,t,"uv",e,2,20,12)}function rk(r,t,e,n,o,s){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t));let i,a,u;o instanceof Uint8Array?(i=new Uint8Array(e*n*4),a=r.UNSIGNED_BYTE,u=r.RGBA):(i=new Float32Array(e*n*4),a=r.FLOAT,u=s.internalFormatPackedFloat),i.set(o),M().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e,n,r.RGBA,a,i)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,u,e,n,0,r.RGBA,a,i)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function nk(r,t,e){ht(r,()=>r.bindTexture(r.TEXTURE_2D,t)),e.data instanceof Uint8Array?M().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,e.width,e.height,r.RGBA,r.UNSIGNED_BYTE,e.data)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,e.width,e.height,0,r.RGBA,r.UNSIGNED_BYTE,e.data)):M().getNumber("WEBGL_VERSION")===2?ht(r,()=>r.texSubImage2D(r.TEXTURE_2D,0,0,0,r.RGBA,r.UNSIGNED_BYTE,e)):ht(r,()=>r.texImage2D(r.TEXTURE_2D,0,r.RGBA,r.RGBA,r.UNSIGNED_BYTE,e)),ht(r,()=>r.bindTexture(r.TEXTURE_2D,null))}function ok(r,t,e,n){let o=r.createBuffer();ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,o));let a=4*4*t*e;return ht(r,()=>r.bufferData(r.PIXEL_PACK_BUFFER,a,r.STREAM_READ)),ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,0)),ht(r,()=>r.bindBuffer(r.PIXEL_PACK_BUFFER,null)),o}function sk(r,t,e){let n=r,o=new Float32Array(e);return n.bindBuffer(n.PIXEL_PACK_BUFFER,t),n.getBufferSubData(n.PIXEL_PACK_BUFFER,0,o),n.bindBuffer(n.PIXEL_PACK_BUFFER,null),o}function ik(r,t,e,n){let[o,s]=zc(t,e),i=4,a=new Uint8Array(JP(t*e,i));return ht(r,()=>r.readPixels(0,0,o,s,n.downloadTextureFormat,r.UNSIGNED_BYTE,a)),new Float32Array(a.buffer)}function ak(r,t,e,n,o,s,i,a){let u=r,l=new Float32Array(QP(s,i));return u.bindBuffer(u.PIXEL_PACK_BUFFER,t),u.getBufferSubData(u.PIXEL_PACK_BUFFER,0,l),u.bindBuffer(u.PIXEL_PACK_BUFFER,null),l}function lk(r,t,e){let n=new Float32Array(t*e*4);return ht(r,()=>r.readPixels(0,0,e,t,r.RGBA,r.FLOAT,n)),n}var Gc=class{constructor(t){this.outputTexture=null,this.program=null,this.disposed=!1,this.itemsToPoll=[];let e=M().getNumber("WEBGL_VERSION");if(t!=null?(this.gl=t,vT(e,t)):this.gl=Un(e),t=this.gl,M().getNumber("WEBGL_VERSION")===2){let s=t;this.createVertexArray=()=>ht(s,()=>s.createVertexArray()),this.bindVertexArray=i=>ht(s,()=>s.bindVertexArray(i)),this.deleteVertexArray=i=>ht(s,()=>s.deleteVertexArray(i)),this.getVertexArray=()=>ht(s,()=>s.getParameter(s.VERTEX_ARRAY_BINDING))}else if(t!=null){let s=t.getExtension("OES_vertex_array_object");if(s==null)throw new Error("All WebGL1 implementations are expected to offer OES_vertex_array_object.");this.createVertexArray=()=>ht(t,()=>s.createVertexArrayOES()),this.bindVertexArray=i=>ht(t,()=>s.bindVertexArrayOES(i)),this.deleteVertexArray=i=>ht(t,()=>s.deleteVertexArrayOES(i)),this.getVertexArray=()=>ht(t,()=>t.getParameter(s.VERTEX_ARRAY_BINDING_OES))}let n="WEBGL_color_buffer_float",o="EXT_color_buffer_half_float";if(this.parallelCompilationExtension=this.gl.getExtension("KHR_parallel_shader_compile"),M().getNumber("WEBGL_VERSION")===1){let s="OES_texture_float",i="OES_texture_half_float";if(this.textureFloatExtension=fd(this.gl,s),Hn(this.gl,i))this.textureHalfFloatExtension=fd(this.gl,i);else if(M().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support half float textures, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.");if(this.colorBufferFloatExtension=this.gl.getExtension(n),Hn(this.gl,o))this.colorBufferHalfFloatExtension=fd(this.gl,o);else if(M().get("WEBGL_FORCE_F16_TEXTURES"))throw new Error("GL context does not support color renderable half floats, yet the environment flag WEBGL_FORCE_F16_TEXTURES is set to true.")}else if(n="EXT_color_buffer_float",Hn(this.gl,n))this.colorBufferFloatExtension=this.gl.getExtension(n);else if(Hn(this.gl,o))this.colorBufferHalfFloatExtension=this.gl.getExtension(o);else throw new Error("GL context does not support color renderable floats");this.vertexBuffer=jT(this.gl),this.indexBuffer=XT(this.gl),this.framebuffer=OT(this.gl),this.textureConfig=Yh(this.gl,this.textureHalfFloatExtension)}get debug(){return M().getBool("DEBUG")}dispose(){if(this.disposed)return;this.program!=null&&console.warn("Disposing a GPGPUContext that still has a bound WebGLProgram. This is probably a resource leak, delete the program with GPGPUContext.deleteProgram before disposing."),this.outputTexture!=null&&console.warn("Disposing a GPGPUContext that still has a bound output matrix texture. This is probably a resource leak, delete the output matrix texture with GPGPUContext.deleteMatrixTexture before disposing.");let t=this.gl;ht(t,()=>t.finish()),ht(t,()=>t.bindFramebuffer(t.FRAMEBUFFER,null)),ht(t,()=>t.deleteFramebuffer(this.framebuffer)),ht(t,()=>t.bindBuffer(t.ARRAY_BUFFER,null)),ht(t,()=>t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)),ht(t,()=>t.deleteBuffer(this.indexBuffer)),this.disposed=!0}createFloat32MatrixTexture(t,e){return this.throwIfDisposed(),YT(this.gl,t,e,this.textureConfig)}createFloat16MatrixTexture(t,e){return this.throwIfDisposed(),ZT(this.gl,t,e,this.textureConfig)}createUnsignedBytesMatrixTexture(t,e){return this.throwIfDisposed(),JT(this.gl,t,e,this.textureConfig)}uploadPixelDataToTexture(t,e){this.throwIfDisposed(),nk(this.gl,t,e)}uploadDenseMatrixToTexture(t,e,n,o){this.throwIfDisposed(),rk(this.gl,t,e,n,o,this.textureConfig)}createFloat16PackedMatrixTexture(t,e){return this.throwIfDisposed(),tk(this.gl,t,e,this.textureConfig)}createPackedMatrixTexture(t,e){return this.throwIfDisposed(),QT(this.gl,t,e,this.textureConfig)}deleteMatrixTexture(t){this.throwIfDisposed(),this.outputTexture===t&&(Sw(this.gl,this.framebuffer),this.outputTexture=null),ht(this.gl,()=>this.gl.deleteTexture(t))}downloadByteEncodedFloatMatrixFromOutputTexture(t,e,n){return this.downloadMatrixDriver(t,()=>ik(this.gl,e,n,this.textureConfig))}downloadPackedMatrixFromBuffer(t,e,n,o,s,i){return ak(this.gl,t,e,n,o,s,i,this.textureConfig)}downloadFloat32MatrixFromBuffer(t,e){return sk(this.gl,t,e)}createBufferFromTexture(t,e,n){this.bindTextureToFrameBuffer(t);let o=ok(this.gl,e,n,this.textureConfig);return this.unbindTextureToFrameBuffer(),o}createAndWaitForFence(){let t=this.createFence(this.gl);return this.pollFence(t)}createFence(t){let e,n;if(M().getBool("WEBGL_FENCE_API_ENABLED")){let o=t,s=o.fenceSync(o.SYNC_GPU_COMMANDS_COMPLETE,0);t.flush(),n=()=>{let i=o.clientWaitSync(s,0,0);return i===o.ALREADY_SIGNALED||i===o.CONDITION_SATISFIED},e=s}else M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")>0?(e=this.beginQuery(),this.endQuery(),n=()=>this.isQueryAvailable(e,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))):n=()=>!0;return{query:e,isFencePassed:n}}downloadMatrixFromPackedTexture(t,e,n){return this.downloadMatrixDriver(t,()=>lk(this.gl,e,n))}createProgram(t){this.throwIfDisposed();let e=this.gl;this.vertexShader==null&&(this.vertexShader=KT(e));let n=_T(e);ht(e,()=>e.attachShader(n,this.vertexShader)),ht(e,()=>e.attachShader(n,t)),AT(e,n);let o;return o=Object.assign(n,{vao:this.createVertexArray()}),this.bindVertexArray(o.vao),ht(e,()=>e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,this.indexBuffer)),console.assert(ek(e,o,this.vertexBuffer),"gpgpu_util.bindVertexProgramAttributeStreams not fully successful."),this.debug&&Zh(e,o),this.setProgram(o),o}deleteProgram(t){this.throwIfDisposed(),t===this.program&&(this.program=null),t!=null&&(ht(this.gl,()=>this.gl.deleteProgram(t)),this.deleteVertexArray(t.vao))}setProgram(t){this.throwIfDisposed(),this.program=t,this.program!=null&&(this.bindVertexArray(this.program.vao),this.debug&&Zh(this.gl,this.program)),ht(this.gl,()=>this.gl.useProgram(t))}getUniformLocation(t,e,n=!0){return this.throwIfDisposed(),n?PT(this.gl,t,e):LT(this.gl,t,e)}getAttributeLocation(t,e){return this.throwIfDisposed(),ht(this.gl,()=>this.gl.getAttribLocation(t,e))}getUniformLocationNoThrow(t,e){return this.throwIfDisposed(),this.gl.getUniformLocation(t,e)}setInputMatrixTexture(t,e,n){this.throwIfDisposed(),this.throwIfNoProgram(),MT(this.gl,t,e,n)}setOutputMatrixTexture(t,e,n){this.setOutputMatrixTextureDriver(t,n,e)}setOutputPackedMatrixTexture(t,e,n){this.throwIfDisposed();let[o,s]=Qi(e,n);this.setOutputMatrixTextureDriver(t,o,s)}setOutputMatrixWriteRegion(t,e,n,o){this.setOutputMatrixWriteRegionDriver(n,t,o,e)}setOutputPackedMatrixWriteRegion(t,e,n,o){throw new Error("setOutputPackedMatrixWriteRegion not implemented.")}debugValidate(){this.program!=null&&Zh(this.gl,this.program),dd(this.gl)}executeProgram(){this.throwIfDisposed(),this.throwIfNoProgram();let t=this.gl;if(this.debug){let e=this.getVertexArray();console.assert(e===this.program.vao,"VAO changed between setProgram and executeProgram!"),this.debugValidate()}ht(t,()=>t.drawElements(t.TRIANGLES,6,t.UNSIGNED_SHORT,0))}blockUntilAllProgramsCompleted(){this.throwIfDisposed(),ht(this.gl,()=>this.gl.finish())}getQueryTimerExtension(){return this.disjointQueryTimerExtension==null&&(this.disjointQueryTimerExtension=fd(this.gl,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2?"EXT_disjoint_timer_query_webgl2":"EXT_disjoint_timer_query")),this.disjointQueryTimerExtension}getQueryTimerExtensionWebGL2(){return this.getQueryTimerExtension()}getQueryTimerExtensionWebGL1(){return this.getQueryTimerExtension()}beginQuery(){if(M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.createQuery();return n.beginQuery(o.TIME_ELAPSED_EXT,s),s}let t=this.getQueryTimerExtensionWebGL1(),e=t.createQueryEXT();return t.beginQueryEXT(t.TIME_ELAPSED_EXT,e),e}endQuery(){if(M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION")===2){let e=this.gl,n=this.getQueryTimerExtensionWebGL2();e.endQuery(n.TIME_ELAPSED_EXT);return}let t=this.getQueryTimerExtensionWebGL1();t.endQueryEXT(t.TIME_ELAPSED_EXT)}async waitForQueryAndGetTime(t){return await y.repeatedTry(()=>this.disposed||this.isQueryAvailable(t,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))),this.getQueryTime(t,M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_VERSION"))}getQueryTime(t,e){if(e===0)return null;if(e===2){let n=this.gl;return n.getQueryParameter(t,n.QUERY_RESULT)/1e6}else{let n=this.getQueryTimerExtensionWebGL1();return n.getQueryObjectEXT(t,n.QUERY_RESULT_EXT)/1e6}}isQueryAvailable(t,e){if(e===0)return!0;if(e===2){let n=this.gl,o=this.getQueryTimerExtensionWebGL2(),s=n.getQueryParameter(t,n.QUERY_RESULT_AVAILABLE);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(o.GPU_DISJOINT_EXT)),s&&!this.disjoint}else{let n=this.getQueryTimerExtensionWebGL1(),o=n.getQueryObjectEXT(t,n.QUERY_RESULT_AVAILABLE_EXT);return this.disjoint==null&&(this.disjoint=this.gl.getParameter(n.GPU_DISJOINT_EXT)),o&&!this.disjoint}}pollFence(t){return new Promise(e=>{this.addItemToPoll(()=>t.isFencePassed(),()=>e())})}pollItems(){let t=cet(this.itemsToPoll.map(e=>e.isDoneFn));for(let e=0;e<=t;++e){let{resolveFn:n}=this.itemsToPoll[e];n()}this.itemsToPoll=this.itemsToPoll.slice(t+1)}addItemToPoll(t,e){if(this.itemsToPoll.push({isDoneFn:t,resolveFn:e}),this.itemsToPoll.length>1)return;let n;"setTimeoutCustom"in M().platform&&(n=M().platform.setTimeoutCustom.bind(M().platform)),y.repeatedTry(()=>(this.pollItems(),this.itemsToPoll.length===0),()=>0,null,n)}bindTextureToFrameBuffer(t){this.throwIfDisposed(),Jh(this.gl,t,this.framebuffer),this.debug&&dd(this.gl)}unbindTextureToFrameBuffer(){this.outputTexture!=null?(Jh(this.gl,this.outputTexture,this.framebuffer),this.debug&&dd(this.gl)):Sw(this.gl,this.framebuffer)}downloadMatrixDriver(t,e){this.bindTextureToFrameBuffer(t);let n=e();return this.unbindTextureToFrameBuffer(),n}setOutputMatrixTextureDriver(t,e,n){this.throwIfDisposed();let o=this.gl;Jh(o,t,this.framebuffer),this.debug&&dd(o),this.outputTexture=t,ht(o,()=>o.viewport(0,0,e,n)),ht(o,()=>o.scissor(0,0,e,n))}setOutputMatrixWriteRegionDriver(t,e,n,o){this.throwIfDisposed(),ht(this.gl,()=>this.gl.scissor(t,e,n,o))}throwIfDisposed(){if(this.disposed)throw new Error("Attempted to use disposed GPGPUContext.")}throwIfNoProgram(){if(this.program==null)throw new Error("No GPU program is currently set.")}};function cet(r){let t=0;for(;t`${r}.${e}`)}function er(r,t){return t===1?[r]:ck(r,t)}function rM(r,t){if(r===1)return"rc";let e="";for(let n=0;n= ${this.enableShapeUniforms?"outShape":this.outputShape[0]} ? 0. : getA(rc + 1)), 0, 0`:`getA(${e[0]}), cEdge ? 0. : getA(${e[1]}), rEdge ? 0. : getA(${e[2]}), - rEdge || cEdge ? 0. : getA(${e[3]})`}};var Id=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n="";for(let o=0;o<4;o++){let s="thisRC = rc;";o%2===1&&(s+="thisRC.z += 1;"),o>1&&(s+="thisRC.y += 1;"),n+=` + rEdge || cEdge ? 0. : getA(${e[3]})`}};var Sd=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"inputShape",type:"ivec3"}],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let n="";for(let o=0;o<4;o++){let s="thisRC = rc;";o%2===1&&(s+="thisRC.z += 1;"),o>1&&(s+="thisRC.y += 1;"),n+=` ${s} ${o>0?"if(thisRC.y < rows && thisRC.z < cols){":""} int flatIndex = getFlatIndex(thisRC); @@ -1154,8 +1154,8 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, getChannel(getA(inputRC.x, inputRC.y, inputRC.z), inputRCInnerDims); ${o>0?"}":""} `}this.userCode=` - ${ret(e,this.enableShapeUniforms)} - ${this.enableShapeUniforms?gd():hd(t)} + ${pet(e,this.enableShapeUniforms)} + ${this.enableShapeUniforms?yd():xd(t)} void main() { ivec3 rc = getOutputCoords(); @@ -1170,12 +1170,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function ret(r,t){return` + `}};function pet(r,t){return` ivec3 inputCoordsFromReshapedOutCoords(int index) { - ${t?eL(["r","c","d"],"inputShape"):ti(["r","c","d"],r)} + ${t?oL(["r","c","d"],"inputShape"):ni(["r","c","d"],r)} return ivec3(r, c, d); } - `}var Vw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=eM(e,n),s=rM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=tM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Pr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Pr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Pr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Pr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=eM(n,o),i=rM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=tM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=z().get("WEBGL_DELETE_TEXTURE_THRESHOLD");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function net(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function tM(r,t,e,n,o){let s=oet(t,n),i;if(o){let[u,l]=Xi(r[0],r[1]);i=u*l}else{let[u,l]=Lc(r[0],r[1]);i=u*l}let a=net(e,s);return i*a}function oet(r,t){switch(r){case Pr.PACKED_2X2_FLOAT32:return Ow(t);case Pr.PACKED_2X2_FLOAT16:return Pw(t);case Pr.UNPACKED_FLOAT32:return Dw(t);case Pr.UNPACKED_FLOAT16:return Rw(t);case Pr.PACKED_4X1_UNSIGNED_BYTE:return Fw(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function set(r){return z().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Pr.PACKED_2X2_FLOAT32:Pr.UNPACKED_FLOAT32:r?Pr.PACKED_2X2_FLOAT16:Pr.UNPACKED_FLOAT16}function eM(r,t){if(r===jr.UPLOAD)return Pr.PACKED_2X2_FLOAT32;if(r===jr.RENDER||r==null)return set(t);if(r===jr.DOWNLOAD||r===jr.PIXELS)return Pr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function rM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var tn=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` + `}var Gw=class{constructor(t){this.gpgpu=t,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0,this.freeTextures={},this.logEnabled=!1,this.usedTextures={}}acquireTexture(t,e,n){let o=oM(e,n),s=sM(t,o,n);s in this.freeTextures||(this.freeTextures[s]=[]),s in this.usedTextures||(this.usedTextures[s]=[]);let i=nM(t,o,this.gpgpu.gl,this.gpgpu.textureConfig,n);if(this.freeTextures[s].length>0){this.numFreeTextures--,this.numUsedTextures++,this._numBytesFree-=i,this.log();let u=this.freeTextures[s].shift();return this.usedTextures[s].push(u),u}let a;return o===Lr.PACKED_2X2_FLOAT32?a=this.gpgpu.createPackedMatrixTexture(t[0],t[1]):o===Lr.PACKED_2X2_FLOAT16?a=this.gpgpu.createFloat16PackedMatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT32?a=this.gpgpu.createFloat32MatrixTexture(t[0],t[1]):o===Lr.UNPACKED_FLOAT16?a=this.gpgpu.createFloat16MatrixTexture(t[0],t[1]):o===Lr.PACKED_4X1_UNSIGNED_BYTE&&(a=this.gpgpu.createUnsignedBytesMatrixTexture(t[0],t[1])),this.usedTextures[s].push(a),this.numUsedTextures++,this._numBytesAllocated+=i,this.log(),a}releaseTexture(t,e,n,o){if(this.freeTextures==null)return;let s=oM(n,o),i=sM(e,s,o);i in this.freeTextures||(this.freeTextures[i]=[]);let a=nM(e,s,this.gpgpu.gl,this.gpgpu.textureConfig,o),u=M().get("WEBGL_DELETE_TEXTURE_THRESHOLD");u!==-1&&this._numBytesAllocated>u?(this.gpgpu.deleteMatrixTexture(t.texture),this._numBytesAllocated-=a):(this.freeTextures[i].push(t),this.numFreeTextures++,this._numBytesFree+=a),this.numUsedTextures--;let l=this.usedTextures[i],c=l.indexOf(t);if(c<0)throw new Error("Cannot release a texture that was never provided by this texture manager");l.splice(c,1),this.log()}log(){if(!this.logEnabled)return;let t=this.numFreeTextures+this.numUsedTextures;console.log("Free/Used",`${this.numFreeTextures} / ${this.numUsedTextures}`,`(${t})`);let e=this._numBytesFree/this._numBytesAllocated;console.log(`Bytes allocated: ${this._numBytesAllocated}`),console.log(`Bytes unused: ${this._numBytesFree} (${Math.round(100*e)}%)`)}get numBytesAllocated(){return this._numBytesAllocated}get numBytesFree(){return this._numBytesFree}getNumUsedTextures(){return this.numUsedTextures}getNumFreeTextures(){return this.numFreeTextures}dispose(){if(this.freeTextures!=null){for(let t in this.freeTextures)this.freeTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});for(let t in this.usedTextures)this.usedTextures[t].forEach(e=>{this.gpgpu.deleteMatrixTexture(e.texture)});this.freeTextures=null,this.usedTextures=null,this.numUsedTextures=0,this.numFreeTextures=0,this._numBytesAllocated=0,this._numBytesFree=0}}};function met(r,t){let e=r;if(t===e.R32F)return 4;if(t===e.R16F)return 2;if(t===e.RGBA32F)return 16;if(t===r.RGBA)return 16;if(t===e.RGBA16F)return 8;if(t===e.RGBA8)return 4;throw new Error(`Unknown internal format ${t}`)}function nM(r,t,e,n,o){let s=fet(t,n),i;if(o){let[u,l]=Qi(r[0],r[1]);i=u*l}else{let[u,l]=zc(r[0],r[1]);i=u*l}let a=met(e,s);return i*a}function fet(r,t){switch(r){case Lr.PACKED_2X2_FLOAT32:return Pw(t);case Lr.PACKED_2X2_FLOAT16:return Lw(t);case Lr.UNPACKED_FLOAT32:return Rw(t);case Lr.UNPACKED_FLOAT16:return Fw(t);case Lr.PACKED_4X1_UNSIGNED_BYTE:return Ow(t);default:throw new Error(`Unknown physical texture type ${r}`)}}function det(r){return M().getBool("WEBGL_RENDER_FLOAT32_ENABLED")?r?Lr.PACKED_2X2_FLOAT32:Lr.UNPACKED_FLOAT32:r?Lr.PACKED_2X2_FLOAT16:Lr.UNPACKED_FLOAT16}function oM(r,t){if(r===Yr.UPLOAD)return Lr.PACKED_2X2_FLOAT32;if(r===Yr.RENDER||r==null)return det(t);if(r===Yr.DOWNLOAD||r===Yr.PIXELS)return Lr.PACKED_4X1_UNSIGNED_BYTE;throw new Error(`Unknown logical texture type ${r}`)}function sM(r,t,e){return`${r[0]}_${r[1]}_${t}_${e}`}var Mr=class{constructor(t,e){this.variableNames=["A"],this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` float unaryOperation(float x) { ${e} } @@ -1186,11 +1186,11 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}},fr="if (isnan(x)) return x;",nM="return x;",lk="return abs(x);";var oM="return (x >= 0.0) ? x : (exp(x) - 1.0);",sM=fr+` + `}},hr="if (isnan(x)) return x;",iM="return x;",pk="return abs(x);";var aM="return (x >= 0.0) ? x : (exp(x) - 1.0);",lM=hr+` return (x < 0.0) ? 0.0 : x; -`,iM=fr+` +`,uM=hr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Gc="return x;",aM="return 1.0 / (1.0 + exp(-1.0 * x));";var uM="return x;",cM=` +`,ta="return x;",cM="return 1.0 / (1.0 + exp(-1.0 * x));";var mM="return x;",fM=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -1199,7 +1199,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,pM=` +`,dM=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1209,7 +1209,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,mM=` +`,hM=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -1219,7 +1219,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.a = isNaN.a ? x.a : result.a; return result; -`,fM="return 1.0 / (1.0 + exp(-1.0 * x));",so=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` +`,gM="return 1.0 / (1.0 + exp(-1.0 * x));",An=class{constructor(t,e){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` vec4 unaryOperation(vec4 x) { ${e} } @@ -1230,17 +1230,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(y); } - `}};var Gw=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=Qe("rc",e),o=zt(e),s=QL(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` + `}};var Ww=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!1,this.outputShape=t,this.enableShapeUniforms=we(this.outputShape.length);let e=t.length,n=er("rc",e),o=Bt(e),s=rM(e,n),i=n.slice(-2),a=e<=1?"rc":`vec2(${i.join(",")})`;this.userCode=` void main() { ${o} rc = getOutputCoords(); vec4 packedInput = getA(${s}); setOutput(getChannel(packedInput, ${a})); } - `}};var aet=Ur.whereImpl,uet=1e-7,cet=1e-4,Ww={};function pet(r){return r in Ww||(Ww[r]={}),Ww[r]}var met=z().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),fet=600;function det(){return z().global.screen==null?1024:z().global.screen.height*z().global.screen.width*window.devicePixelRatio*fet/1024/1024}var _u=class extends zo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!z().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof Bc)e=t;else{let n=Gn(z().getNumber("WEBGL_VERSION"),t);e=new Bc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Gn(z().getNumber("WEBGL_VERSION"));e=new Bc(n),this.binaryCache=pet(z().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Vw(this.gpgpu),this.numMBBeforeWarning=det(),this.texData=new ra(this,Pn())}nextDataId(){return _u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=fd(e),c=new Jh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((z().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||z().getBool("DEBUG"))&&this.checkNumericalProblems(t),n==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:jr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(z().getBool("DEBUG")&&this.checkNumericalProblems(e),o==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:n,dtype:o,values:e,usage:jr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new so(a,Gc):m=new tn(a,Gc);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o==="string")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=v.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new so(o,Gc):d=new tn(o,Gc);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(z().getBool("DEBUG")&&!z().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&z().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(i!=="complex64"&&z().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...jh(o))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(i==="complex64"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=v.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;yt(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Pn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let f;u?f=new so(s,Gc):f=new tn(s,Gc);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let c=this.decode(t,e.customTexShape),p=Pn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(z().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=met){return z().getBool("WEBGL_CPU_FORWARD")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Pn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Gw(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Bw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[xl(t.shape),...yl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[xl(e),...yl(e)],i=new Id(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let a=fd(s),u;o?u=new Ew(a):u=new kw(a);let l=!0,c=[e!=null?e:jh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===ku.DENSE){let x=i!=null?i:jh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=z().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Eu(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=uL(t,c,p),f=this.getAndSaveBinary(m,()=>aL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),z().get("ENGINE_COMPILE_ONLY")||lL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=z().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!z().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(z().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!z().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=z().getBool("DEBUG");z().set("DEBUG",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(z().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?uet:cet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=PT(n,u),e.texShape=p),s!=null){let m=fd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Xi(p[0],p[1])),u?f=new $w(m,g):f=new Jh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=jr.PIXELS:w.usage=jr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,_=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(_.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,z().get("ENGINE_COMPILE_ONLY")?this.disposeData(_.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(_.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return this.releaseGPUData(t),e!=null&&(n.values=het(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await gh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Cw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=WT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Pn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=u.writeTexture(o,e,n,s,i,a);return Pn().makeTensorFromDataId(l,e,n,u)}};_u.nextDataId=0;function het(r,t){if(t==="float32"||t==="complex64")return r;if(t==="int32"||t==="bool"){let e=t==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew _u,2);var Zke={forceHalfFloat:hM};var Sd=` + `}};var get=qr.whereImpl,xet=1e-7,yet=1e-4,Uw={};function bet(r){return r in Uw||(Uw[r]={}),Uw[r]}var wet=M().getNumber("CPU_HANDOFF_SIZE_THRESHOLD"),Cet=600;function Iet(){return M().global.screen==null?1024:M().global.screen.height*M().global.screen.width*window.devicePixelRatio*Cet/1024/1024}var $u=class extends Bo{constructor(t){if(super(),this.pendingRead=new WeakMap,this.pendingDisposal=new WeakSet,this.dataRefCount=new WeakMap,this.numBytesInGPU=0,this.uploadWaitMs=0,this.downloadWaitMs=0,this.lastGlFlushTime=0,this.warnedAboutMemory=!1,this.pendingDeletes=0,this.disposed=!1,!M().getBool("HAS_WEBGL"))throw new Error("WebGL is not supported on this device");let e;if(t!=null){if(t instanceof Gc)e=t;else{let n=Un(M().getNumber("WEBGL_VERSION"),t);e=new Gc(n)}this.binaryCache={},this.gpgpuCreatedLocally=!1}else{let n=Un(M().getNumber("WEBGL_VERSION"));e=new Gc(n),this.binaryCache=bet(M().getNumber("WEBGL_VERSION")),this.gpgpuCreatedLocally=!0}this.gpgpu=e,this.canvas=this.gpgpu.gl.canvas,this.textureManager=new Gw(this.gpgpu),this.numMBBeforeWarning=Iet(),this.texData=new aa(this,Mn())}nextDataId(){return $u.nextDataId++}numDataIds(){return this.texData.numDataIds()-this.pendingDeletes}writeTexture(t,e,n,o,s,i){let a=this.makeTensorInfo(e,n),u=this.texData.get(a.dataId);u.isPacked=!1,u.texture={texture:t,texShape:[o,s]},u.texShape=[o,s];let l=hd(e),c=new Qh(l,!1,i),p=this.runWebGLProgram(c,[a],n,[[o,s]]);return p.shape=e,u.texture=null,this.disposeIntermediateTensorInfo(a),p.dataId}write(t,e,n){if((M().getBool("WEBGL_CHECK_NUMERICAL_PROBLEMS")||M().getBool("DEBUG"))&&this.checkNumericalProblems(t),n==="complex64"&&t!=null)throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");let o={id:this.nextDataId()};return this.texData.set(o,{shape:e,dtype:n,values:t,usage:Yr.UPLOAD,refCount:1}),o}refCount(t){return this.texData.has(t)?this.texData.get(t).refCount:0}incRef(t){let e=this.texData.get(t);e.refCount++}decRef(t){if(this.texData.has(t)){let e=this.texData.get(t);e.refCount--}}move(t,e,n,o,s){if(M().getBool("DEBUG")&&this.checkNumericalProblems(e),o==="complex64")throw new Error("Cannot write to a complex64 dtype. Please use tf.complex(real, imag).");this.texData.set(t,{shape:n,dtype:o,values:e,usage:Yr.UPLOAD,refCount:s})}disposeIntermediateTensorInfo(t){this.disposeData(t.dataId)}readSync(t){let e=this.texData.get(t),{values:n,dtype:o,complexTensorInfos:s,slice:i,shape:a,isPacked:u}=e;if(i!=null){let m;u?m=new An(a,ta):m=new Mr(a,ta);let f=this.runWebGLProgram(m,[{dataId:t,shape:a,dtype:o}],o),d=this.readSync(f.dataId);return this.disposeIntermediateTensorInfo(f),d}if(n!=null)return this.convertAndCacheOnCPU(t);if(o==="string")return n;let l=this.activeTimers!=null,c;l&&(c=y.now());let p;if(o==="complex64"){let m=this.readSync(s.real.dataId),f=this.readSync(s.imag.dataId);p=S.mergeRealAndImagArrays(m,f)}else p=this.getValuesFromTexture(t);return l&&(this.downloadWaitMs+=y.now()-c),this.convertAndCacheOnCPU(t,p)}async read(t){if(this.pendingRead.has(t)){let d=this.pendingRead.get(t);return new Promise(h=>d.push(h))}let e=this.texData.get(t),{values:n,shape:o,slice:s,dtype:i,complexTensorInfos:a,isPacked:u}=e;if(s!=null){let d;u?d=new An(o,ta):d=new Mr(o,ta);let h=this.runWebGLProgram(d,[{dataId:t,shape:o,dtype:i}],i),g=this.read(h.dataId);return this.disposeIntermediateTensorInfo(h),g}if(n!=null)return this.convertAndCacheOnCPU(t);if(M().getBool("DEBUG")&&!M().getBool("WEBGL_DOWNLOAD_FLOAT_ENABLED")&&M().getNumber("WEBGL_VERSION")===2)throw new Error("tensor.data() with WEBGL_DOWNLOAD_FLOAT_ENABLED=false and WEBGL_VERSION=2 not yet supported.");let l=null,c;if(i!=="complex64"&&M().get("WEBGL_BUFFER_SUPPORTED")){c=this.decode(t);let d=this.texData.get(c.dataId);l=this.gpgpu.createBufferFromTexture(d.texture.texture,...Xh(o))}this.pendingRead.set(t,[]),i!=="complex64"&&await this.gpgpu.createAndWaitForFence();let p;if(i==="complex64"){let d=await Promise.all([this.read(a.real.dataId),this.read(a.imag.dataId)]),h=d[0],g=d[1];p=S.mergeRealAndImagArrays(h,g)}else if(l==null)p=this.getValuesFromTexture(t);else{let d=y.sizeFromShape(o);p=this.gpgpu.downloadFloat32MatrixFromBuffer(l,d)}if(c!=null&&this.disposeIntermediateTensorInfo(c),l!=null){let d=this.gpgpu.gl;ht(d,()=>d.deleteBuffer(l))}let m=this.convertAndCacheOnCPU(t,p),f=this.pendingRead.get(t);return this.pendingRead.delete(t),f.forEach(d=>d(m)),this.pendingDisposal.has(t)&&(this.pendingDisposal.delete(t),this.disposeData(t)&&Mn().removeDataId(t,this),this.pendingDeletes--),m}readToGPU(t,e={}){let n=this.texData.get(t),{values:o,shape:s,slice:i,dtype:a,isPacked:u,texture:l}=n;if(a==="complex64")throw new Error("Does not support reading texture for complex64 dtype.");if(i!=null){let f;u?f=new An(s,ta):f=new Mr(s,ta);let d=this.runWebGLProgram(f,[{dataId:t,shape:s,dtype:a}],a),h=this.readToGPU(d,e);return this.disposeIntermediateTensorInfo(d),h}if(l==null)throw o!=null?new Error("Data is not on GPU but on CPU."):new Error("There is no data on GPU or CPU.");let c=this.decode(t,e.customTexShape),p=Mn().makeTensorFromTensorInfo(c),m=this.texData.get(c.dataId);return Object.assign({tensorRef:p},m.texture)}bufferSync(t){let e=this.readSync(t.dataId);if(t.dtype==="string")try{let n=e.map(o=>y.decodeString(o));return wt(t.shape,t.dtype,n)}catch(n){throw new Error("Failed to decode encoded string bytes into utf-8")}return wt(t.shape,t.dtype,e)}checkNumericalProblems(t){if(t!=null)for(let e=0;e0}time(t){let e=this.activeTimers,n=[],o=!1;this.programTimersStack==null?(this.programTimersStack=n,o=!0):this.activeTimers.push(n),this.activeTimers=n,t();let s=y.flatten(this.activeTimers.map(u=>u.query)).filter(u=>u!=null),i=y.flatten(this.activeTimers.map(u=>u.name)).filter(u=>u!=null);this.activeTimers=e,o&&(this.programTimersStack=null);let a={uploadWaitMs:this.uploadWaitMs,downloadWaitMs:this.downloadWaitMs,kernelMs:null,wallMs:null};return(async()=>{if(M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0){let u=await Promise.all(s);a.kernelMs=y.sum(u),a.getExtraProfileInfo=()=>u.map((l,c)=>({name:i[c],ms:l})).map(l=>`${l.name}: ${l.ms}`).join(", ")}else a.kernelMs={error:"WebGL query timers are not supported in this environment."};return this.uploadWaitMs=0,this.downloadWaitMs=0,a})()}memory(){return{unreliable:!1,numBytesInGPU:this.numBytesInGPU,numBytesInGPUAllocated:this.textureManager.numBytesAllocated,numBytesInGPUFree:this.textureManager.numBytesFree}}startTimer(){return M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?this.gpgpu.beginQuery():{startMs:y.now(),endMs:null}}endTimer(t){return M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0?(this.gpgpu.endQuery(),t):(t.endMs=y.now(),t)}async getQueryTime(t){if(M().getNumber("WEBGL_DISJOINT_QUERY_TIMER_EXTENSION_RELIABLE")>0)return this.gpgpu.waitForQueryAndGetTime(t);let e=t;return e.endMs-e.startMs}disposeData(t,e=!1){if(this.pendingDisposal.has(t))return!1;if(!this.texData.has(t))return!0;if(e?this.texData.get(t).refCount=0:this.texData.get(t).refCount--,!e&&this.texData.get(t).refCount>0)return!1;if(this.pendingRead.has(t))return this.pendingDisposal.add(t),this.pendingDeletes++,!1;this.releaseGPUData(t);let{complexTensorInfos:n}=this.texData.get(t);return n!=null&&(this.disposeData(n.real.dataId,e),this.disposeData(n.imag.dataId,e)),this.texData.delete(t),!0}releaseGPUData(t){let{texture:e,dtype:n,texShape:o,usage:s,isPacked:i,slice:a}=this.texData.get(t),u=a&&a.origDataId||t,l=this.dataRefCount.get(u);l>1?this.dataRefCount.set(u,l-1):(this.dataRefCount.delete(u),e!=null&&(this.numBytesInGPU-=this.computeBytes(o,n),this.textureManager.releaseTexture(e,o,s,i)));let c=this.texData.get(t);c.texture=null,c.texShape=null,c.isPacked=!1,c.slice=null}getTexture(t){return this.uploadToGPU(t),this.texData.get(t).texture.texture}getDataInfo(t){return this.texData.get(t)}shouldExecuteOnCPU(t,e=wet){return M().getBool("WEBGL_CPU_FORWARD")&&t.every(n=>this.texData.get(n.dataId).texture==null&&y.sizeFromShape(n.shape)0&&y.isString(n[0])){let s=n.map(i=>y.encodeString(i));o=this.write(s,t,e)}else o=this.write(n,t,e);return this.texData.get(o).usage=null,{dataId:o,shape:t,dtype:e}}makeOutput(t,e,n){return Mn().makeTensorFromTensorInfo(this.makeTensorInfo(t,e,n),this)}unpackTensor(t){let e=new Ww(t.shape);return this.runWebGLProgram(e,[t],t.dtype)}packTensor(t){let e=new Vw(t.shape),n=!0;return this.runWebGLProgram(e,[t],t.dtype,null,n)}packedReshape(t,e){let n=[wl(t.shape),...Cl(t.shape)],o={dtype:t.dtype,shape:n,dataId:t.dataId},s=[wl(e),...Cl(e)],i=new Sd(s,n),a=!0,u=[n],l=this.runWebGLProgram(i,[o],t.dtype,u,a);return{dataId:l.dataId,shape:e,dtype:l.dtype}}decode(t,e){let n=this.texData.get(t),{isPacked:o,shape:s,dtype:i}=n;if(e!=null){let m=y.sizeFromShape(s),f=e[0]*e[1]*4;y.assert(m<=f,()=>"customTexShape is too small. Row * Column * 4 should be equal or larger than the size of the tensor data.")}let a=hd(s),u;o?u=new _w(a):u=new Ew(a);let l=!0,c=[e!=null?e:Xh(a)],p=this.runWebGLProgram(u,[{shape:a,dtype:i,dataId:t}],i,c,l,e);return{dtype:i,shape:s,dataId:p.dataId}}runWebGLProgram(t,e,n,o,s=!1,i){let a=this.makeTensorInfo(t.outputShape,n),u=this.texData.get(a.dataId);if(t.packedOutput&&(u.isPacked=!0),t.outPackingScheme===_u.DENSE){let x=i!=null?i:Xh(t.outputShape);u.texShape=x.map(b=>b*2)}if(t.outTexUsage!=null&&(u.usage=t.outTexUsage),y.sizeFromShape(a.shape)===0)return u.values=y.getTypedArrayFromDType(a.dtype,0),a;let l=[],c=e.map(x=>{if(x.dtype==="complex64")throw new Error("GPGPUProgram does not support complex64 input. For complex64 dtypes, please separate the program into real and imaginary parts.");let b=this.texData.get(x.dataId);if(b.texture==null){if(!t.packedInputs&&y.sizeFromShape(x.shape)<=M().getNumber("WEBGL_SIZE_UPLOAD_UNIFORM"))return{shape:x.shape,texData:null,isUniform:!0,uniformValues:b.values};t.packedInputs&&(b.isPacked=!0,b.shape=x.shape)}if(this.uploadToGPU(x.dataId),!!b.isPacked!=!!t.packedInputs)x=b.isPacked?this.unpackTensor(x):this.packTensor(x),l.push(x),b=this.texData.get(x.dataId);else if(b.isPacked&&!Au(b.shape,x.shape)){let w=x,C=x.shape;x.shape=b.shape,x=this.packedReshape(x,C),l.push(x),b=this.texData.get(x.dataId),w.shape=C}return{shape:x.shape,texData:b,isUniform:!1}});this.uploadToGPU(a.dataId);let p={shape:a.shape,texData:u,isUniform:!1},m=mL(t,c,p),f=this.getAndSaveBinary(m,()=>cL(this.gpgpu,t,c,p)),d=this.activeTimers!=null,h;d&&(h=this.startTimer()),M().get("ENGINE_COMPILE_ONLY")||pL(this.gpgpu,f,c,p,o),l.forEach(x=>this.disposeIntermediateTensorInfo(x)),d&&(h=this.endTimer(h),this.activeTimers.push({name:t.constructor.name,query:this.getQueryTime(h)}));let g=M().get("WEBGL_FLUSH_THRESHOLD");if(g>0){let x=y.now();x-this.lastGlFlushTime>g&&(this.gpgpu.gl.flush(),this.lastGlFlushTime=x)}if(!M().getBool("WEBGL_LAZILY_UNPACK")&&u.isPacked&&s===!1){let x=this.unpackTensor(a);return this.disposeIntermediateTensorInfo(a),x}return a}compileAndRun(t,e,n,o,s=!1){return n=n||e[0].dtype,this.runWebGLProgram(t,e,n,o,s)}getAndSaveBinary(t,e){return t in this.binaryCache||(this.binaryCache[t]=e()),this.binaryCache[t]}getTextureManager(){return this.textureManager}dispose(){this.disposed||(M().getBool("IS_TEST")||Object.keys(this.binaryCache).forEach(e=>{this.gpgpu.deleteProgram(this.binaryCache[e].webGLProgram),delete this.binaryCache[e]}),this.textureManager.dispose(),this.canvas!=null&&typeof HTMLCanvasElement!="undefined"&&this.canvas instanceof HTMLCanvasElement?this.canvas.remove():this.canvas=null,this.gpgpuCreatedLocally&&(this.gpgpu.program=null,this.gpgpu.dispose()),this.disposed=!0)}floatPrecision(){return this.floatPrecisionValue==null&&(this.floatPrecisionValue=B(()=>{if(!M().get("WEBGL_RENDER_FLOAT32_ENABLED")){let t=M().getBool("DEBUG");M().set("DEBUG",!1);let e=this.abs(mt(1e-8)).dataSync()[0];if(M().set("DEBUG",t),e>0)return 32}return 16})),this.floatPrecisionValue}epsilon(){return this.floatPrecision()===32?xet:yet}uploadToGPU(t){let e=this.texData.get(t),{shape:n,dtype:o,values:s,texture:i,usage:a,isPacked:u}=e;if(i!=null)return;let l=this.activeTimers!=null,c;l&&(c=y.now());let p=e.texShape;if(p==null&&(p=zT(n,u),e.texShape=p),s!=null){let m=hd(n),f,d=p[1],h=p[0],g=s instanceof Uint8Array||s instanceof Uint8ClampedArray;(u||!g)&&([d,h]=Qi(p[0],p[1])),u?f=new Dw(m,g):f=new Qh(m,g);let x=g?[h,d]:p,b=this.makeTensorInfo(x,o),w=this.texData.get(b.dataId);g?w.usage=Yr.PIXELS:w.usage=Yr.UPLOAD,w.texShape=x,this.gpgpu.uploadDenseMatrixToTexture(this.getTexture(b.dataId),d,h,s);let C=[[h,d]],N=!0,E=this.runWebGLProgram(f,[b],o,C,N),A=this.texData.get(E.dataId);e.texShape=A.texShape,e.isPacked=A.isPacked,e.usage=A.usage,M().get("ENGINE_COMPILE_ONLY")?this.disposeData(E.dataId):(e.texture=A.texture,e.values=null,this.texData.delete(E.dataId)),this.disposeIntermediateTensorInfo(b),l&&(this.uploadWaitMs+=y.now()-c)}else{let m=this.acquireTexture(p,a,o,u);e.texture=m}}convertAndCacheOnCPU(t,e){let n=this.texData.get(t),{dtype:o}=n;return e!=null&&(n.values=vet(e,o)),n.values}acquireTexture(t,e,n,o){if(this.numBytesInGPU+=this.computeBytes(t,n),!this.warnedAboutMemory&&this.numBytesInGPU>this.numMBBeforeWarning*1024*1024){let s=(this.numBytesInGPU/1024/1024).toFixed(2);this.warnedAboutMemory=!0,console.warn(`High memory usage in GPU: ${s} MB, most likely due to a memory leak`)}return this.textureManager.acquireTexture(t,e,o)}computeBytes(t,e){return t[0]*t[1]*y.bytesPerElement(e)}checkCompileCompletion(){for(let[,t]of Object.entries(this.binaryCache))this.checkCompletion_(t)}async checkCompileCompletionAsync(){let t=[];if(this.gpgpu.parallelCompilationExtension){for(let[,e]of Object.entries(this.binaryCache))t.push(this.checkCompletionAsync_(e));return Promise.all(t)}else{for(let[,e]of Object.entries(this.binaryCache)){let n=new Promise(o=>{try{this.checkCompletion_(e),o(!0)}catch(s){throw s}});t.push(n)}return Promise.all(t)}}async checkCompletionAsync_(t){return this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.parallelCompilationExtension.COMPLETION_STATUS_KHR)?this.checkCompletion_(t):(await xh(),this.checkCompletionAsync_(t))}checkCompletion_(t){if(this.gpgpu.gl.getProgramParameter(t.webGLProgram,this.gpgpu.gl.LINK_STATUS)===!1)throw console.log(this.gpgpu.gl.getProgramInfoLog(t.webGLProgram)),this.gpgpu.gl.getShaderParameter(t.fragmentShader,this.gpgpu.gl.COMPILE_STATUS)===!1?(Iw(t.source,this.gpgpu.gl.getShaderInfoLog(t.fragmentShader)),new Error("Failed to compile fragment shader.")):new Error("Failed to link vertex and fragment shaders.");return!0}getUniformLocations(){for(let[,t]of Object.entries(this.binaryCache)){let{uniformLocations:e,customUniformLocations:n,infLoc:o,nanLoc:s,inShapesLocations:i,inTexShapesLocations:a,outShapeLocation:u,outShapeStridesLocation:l,outTexShapeLocation:c}=qT(this.gpgpu,t.program,t.webGLProgram);t.uniformLocations=e,t.customUniformLocations=n,t.infLoc=o,t.nanLoc=s,t.inShapesLocations=i,t.inTexShapesLocations=a,t.outShapeLocation=u,t.outShapeStridesLocation=l,t.outTexShapeLocation=c}}createTensorFromTexture(t,e,n){let{texture:o,height:s,width:i,channels:a}=t,u=Mn().backend;if(!u.gpgpu.gl.isTexture(o))throw new Error("The texture is invalid. Also, please make sure the texture and the TFJS WebGL backend are using the same canvas. If you want to use your own custom canvas, you have to create and use the custom TFJS WebGL backend created from the canvas through 'new tf.MathBackendWebGL(customCanvas)'.");let l=u.writeTexture(o,e,n,s,i,a);return Mn().makeTensorFromDataId(l,e,n,u)}};$u.nextDataId=0;function vet(r,t){if(t==="float32"||t==="complex64")return r;if(t==="int32"||t==="bool"){let e=t==="int32"?new Int32Array(r.length):new Uint8Array(r.length);for(let n=0;nnew $u,2);var b1e={forceHalfFloat:yM};var Nd=` if (isnan(a)) return a; if (isnan(b)) return b; -`;var io=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=v.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` +`;var lo=class{constructor(t,e,n){this.variableNames=["A","B"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.enableShapeUniforms=we(this.outputShape.length),this.userCode=` float binaryOperation(float a, float b) { ${t} } @@ -1250,17 +1250,17 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float b = getBAtOutCoords(); setOutput(binaryOperation(a, b)); } - `}};var Yi=` + `}};var ea=` result.r = isNaN.r ? NAN : result.r; result.g = isNaN.g ? NAN : result.g; result.b = isNaN.b ? NAN : result.b; result.a = isNaN.a ? NAN : result.a; -`;var Oo=class{constructor(t,e,n,o=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=v.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i="";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=` +`;var Po=class{constructor(t,e,n,o=!1){this.variableNames=["A","B"],this.supportsBroadcasting=!0,this.packedInputs=!0,this.packedOutput=!0,this.outputShape=S.assertAndGetBroadcastShape(e,n);let s=this.outputShape.length;this.enableShapeUniforms=we(s);let i="";if(o)if(s===0||y.sizeFromShape(this.outputShape)===1)i=` result.y = 0.; result.z = 0.; result.w = 0.; `;else if(i=` - ${zt(s)} coords = getOutputCoords(); + ${Bt(s)} coords = getOutputCoords(); `,s===1)this.enableShapeUniforms?i+=` result.y = (coords + 1) >= outShape ? 0. : result.y; result.z = 0.; @@ -1269,7 +1269,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, result.y = (coords + 1) >= ${this.outputShape[0]} ? 0. : result.y; result.z = 0.; result.w = 0.; - `;else{let u=Qe("coords",s);this.enableShapeUniforms?i+=` + `;else{let u=er("coords",s);this.enableShapeUniforms?i+=` bool nextRowOutOfBounds = (${u[s-2]} + 1) >= outShape[${s} - 2]; bool nextColOutOfBounds = @@ -1299,13 +1299,13 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};function tr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var gM={kernelName:co,backendName:"webgl",kernelFunc:tr};function En(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,"complex64"),i=e.texData.get(s.dataId),a=tr({inputs:{x:n},backend:e}),u=tr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var xM={kernelName:pp,backendName:"webgl",kernelFunc:En};var uk="return (a < 0.) ? b * a : a;",ck=` + `}};function rr(r){let{inputs:t,backend:e}=r,{x:n}=t;return e.incRef(n.dataId),{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}var bM={kernelName:mo,backendName:"webgl",kernelFunc:rr};function $n(r){let{inputs:t,backend:e}=r,{real:n,imag:o}=t,s=e.makeTensorInfo(n.shape,"complex64"),i=e.texData.get(s.dataId),a=rr({inputs:{x:n},backend:e}),u=rr({inputs:{x:o},backend:e});return i.complexTensorInfos={real:a,imag:u},s}var wM={kernelName:mp,backendName:"webgl",kernelFunc:$n};var mk="return (a < 0.) ? b * a : a;",fk=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function get(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Oo(ck,o.shape,i.shape):new io(uk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var yM={kernelName:is,backendName:"webgl",kernelFunc:get};var pk="return (a < 0.) ? b * a : a;",mk=` +`;function Net(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{alpha:s}=n,i=e.makeTensorInfo([],"float32",y.createScalarValue(s,"float32")),a=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po(fk,o.shape,i.shape):new lo(mk,o.shape,i.shape),u=e.runWebGLProgram(a,[o,i],"float32");return e.disposeIntermediateTensorInfo(i),u}var CM={kernelName:ls,backendName:"webgl",kernelFunc:Net};var dk="return (a < 0.) ? b * a : a;",hk=` vec4 aLessThanZero = vec4(lessThan(a, vec4(0.))); return (aLessThanZero * (b * a)) + ((vec4(1.0) - aLessThanZero) * a); -`;function xet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Oo(mk,n.shape,o.shape):new io(pk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var bM={kernelName:bs,backendName:"webgl",kernelFunc:xet};var Po="if (isnan(x)) return x;";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=z().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new so(i.shape,t):c=new tn(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype==="complex64"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,_={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new io(r,u.shape,l.shape);return c.runWebGLProgram($,[_,A],sr(C.dtype,N.dtype))}),b=En({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||sr(u.dtype,l.dtype);if((u.dtype==="string"||l.dtype==="string"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype==="string"?v.fromUint8ToStringArray(d):d,x=u.dtype==="string"?v.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=z().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new Oo(t,u.shape,l.shape,e):f=new io(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function bl(r,t=!1){if(r==="linear")return t?uM:nM;if(r==="relu")return t?pM:sM;if(r==="elu")return t?cM:oM;if(r==="relu6")return t?mM:iM;if(r==="prelu")return t?mk:pk;if(r==="leakyrelu")return t?ck:uk;if(r==="sigmoid")return t?fM:aM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var vd=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=o?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";a&&(u?g=`vec4 activation(vec4 a) { +`;function Tet(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po(hk,n.shape,o.shape):new lo(dk,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],"float32")}var IM={kernelName:Cs,backendName:"webgl",kernelFunc:Tet};var Lo="if (isnan(x)) return x;";function Ct({opSnippet:r,packedOpSnippet:t,cpuKernelImpl:e,dtype:n}){return({inputs:o,backend:s})=>{let{x:i}=o,a=s,u=n||i.dtype;if(a.shouldExecuteOnCPU([i])&&e!=null){let p=a.texData.get(i.dataId),m=e(p.values,u);return a.makeTensorInfo(i.shape,u,m)}let l=M().getBool("WEBGL_PACK_UNARY_OPERATIONS")&&t!=null,c;return l?c=new An(i.shape,t):c=new Mr(i.shape,r),a.runWebGLProgram(c,[i],u)}}function le({opSnippet:r,packedOpSnippet:t,checkOutOfBounds:e=!1,supportsComplex:n=!1,cpuKernelImpl:o,dtype:s}){return({inputs:i,backend:a})=>{let{a:u,b:l}=i,c=a;if(n&&u.dtype==="complex64"){let d=c.texData.get(u.dataId),h=c.texData.get(l.dataId),[g,x]=[[d.complexTensorInfos.real,h.complexTensorInfos.real],[d.complexTensorInfos.imag,h.complexTensorInfos.imag]].map(w=>{let[C,N]=w,E={dataId:C.dataId,dtype:C.dtype,shape:u.shape},A={dataId:N.dataId,dtype:N.dtype,shape:l.shape},$=new lo(r,u.shape,l.shape);return c.runWebGLProgram($,[E,A],ar(C.dtype,N.dtype))}),b=$n({inputs:{real:g,imag:x},backend:c});return c.disposeIntermediateTensorInfo(g),c.disposeIntermediateTensorInfo(x),b}let p=s||ar(u.dtype,l.dtype);if((u.dtype==="string"||l.dtype==="string"||c.shouldExecuteOnCPU([u,l]))&&o!=null){let d=c.texData.get(u.dataId).values,h=c.texData.get(l.dataId).values,g=u.dtype==="string"?S.fromUint8ToStringArray(d):d,x=u.dtype==="string"?S.fromUint8ToStringArray(h):h,[b,w]=o(u.shape,l.shape,g,x,p),C=c.makeTensorInfo(w,p),N=c.texData.get(C.dataId);return N.values=b,C}let m=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")&&t!=null,f;return m?f=new Po(t,u.shape,l.shape,e):f=new lo(r,u.shape,l.shape),c.runWebGLProgram(f,[u,l],p)}}function Il(r,t=!1){if(r==="linear")return t?mM:iM;if(r==="relu")return t?dM:lM;if(r==="elu")return t?fM:aM;if(r==="relu6")return t?hM:uM;if(r==="prelu")return t?hk:dk;if(r==="leakyrelu")return t?fk:mk;if(r==="sigmoid")return t?gM:cM;throw new Error(`Activation ${r} has not been implemented for the WebGL backend.`)}var Td=class{constructor(t,e,n,o=!1,s=!1,i=!1,a=null,u=!1,l=!1){this.variableNames=["matrixA","matrixB"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=n,this.enableShapeUniforms=we(this.outputShape.length);let c=o?t[1]:t[2],p=Math.ceil(c/2),m=o?"i * 2, rc.y":"rc.y, i * 2",f=s?"rc.z, i * 2":"i * 2, rc.z",d=o?["a.xxyy","a.zzww"]:["a.xxzz","a.yyww"],h=s?["b.xzxz","b.ywyw"]:["b.xyxy","b.zwzw"],g="",x="";a&&(u?g=`vec4 activation(vec4 a) { vec4 b = getPreluActivationWeightsAtOutCoords(); ${a} }`:l?g=`vec4 activation(vec4 a) { @@ -1344,7 +1344,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, setOutput(result); } - `}};var fk={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},tg=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=v.assertAndGetBroadcastShape(e,n),this.userCode=` + `}};var gk={REAL:"return areal * breal - aimag * bimag;",IMAG:"return areal * bimag + aimag * breal;"},eg=class{constructor(t,e,n){this.variableNames=["AReal","AImag","BReal","BImag"],this.outputShape=S.assertAndGetBroadcastShape(e,n),this.userCode=` float binaryOpComplex( float areal, float aimag, float breal, float bimag) { ${t} @@ -1357,7 +1357,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, float bimag = getBImagAtOutCoords(); setOutput(binaryOpComplex(areal, aimag, breal, bimag)); } - `}};var wM="return a * b;";function eg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=v.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new tg(fk.REAL,n.shape,o.shape),c=new tg(fk.IMAG,n.shape,o.shape),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:n.shape},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:n.shape},{dataId:u.complexTensorInfos.real.dataId,dtype:u.complexTensorInfos.real.dtype,shape:o.shape},{dataId:u.complexTensorInfos.imag.dataId,dtype:u.complexTensorInfos.imag.dtype,shape:o.shape}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=En({inputs:{real:m,imag:f},backend:e});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}if(e.shouldExecuteOnCPU([n,o])){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),[l,c]=AL(n.shape,o.shape,a.values,u.values,s),p=e.makeTensorInfo(c,s),m=e.texData.get(p.dataId);return m.values=l,p}let i;return z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Oo(wM,n.shape,o.shape):i=new io(wM,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var CM={kernelName:hs,backendName:"webgl",kernelFunc:eg};function IM(r,t,e){let n=[xl(r.shape),...yl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[xl(t),...yl(t)],i=new Id(s,n),a=!0,u=[n],l=e.runWebGLProgram(i,[o],r.dtype,u,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function it(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=e,a=y.sizeFromShape(o.shape),u=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(u);y.assert(a===l,()=>`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Eu(o.shape,u)&&!(c.texture!==null&&Eu(c.shape,u))?IM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var SM={kernelName:di,backendName:"webgl",kernelFunc:it};var rg=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` + `}};var vM="return a * b;";function rg(r){let{inputs:t,backend:e}=r,{a:n,b:o}=t,s=S.upcastType(n.dtype,o.dtype);if(n.dtype==="complex64"){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),l=new eg(gk.REAL,n.shape,o.shape),c=new eg(gk.IMAG,n.shape,o.shape),p=[{dataId:a.complexTensorInfos.real.dataId,dtype:a.complexTensorInfos.real.dtype,shape:n.shape},{dataId:a.complexTensorInfos.imag.dataId,dtype:a.complexTensorInfos.imag.dtype,shape:n.shape},{dataId:u.complexTensorInfos.real.dataId,dtype:u.complexTensorInfos.real.dtype,shape:o.shape},{dataId:u.complexTensorInfos.imag.dataId,dtype:u.complexTensorInfos.imag.dtype,shape:o.shape}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=$n({inputs:{real:m,imag:f},backend:e});return e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}if(e.shouldExecuteOnCPU([n,o])){let a=e.texData.get(n.dataId),u=e.texData.get(o.dataId),[l,c]=RL(n.shape,o.shape,a.values,u.values,s),p=e.makeTensorInfo(c,s),m=e.texData.get(p.dataId);return m.values=l,p}let i;return M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?i=new Po(vM,n.shape,o.shape):i=new lo(vM,n.shape,o.shape),e.runWebGLProgram(i,[n,o],s)}var SM={kernelName:xs,backendName:"webgl",kernelFunc:rg};function NM(r,t,e){let n=[wl(r.shape),...Cl(r.shape)],o={dtype:r.dtype,shape:n,dataId:r.dataId},s=[wl(t),...Cl(t)],i=new Sd(s,n),a=!0,u=[n],l=e.runWebGLProgram(i,[o],r.dtype,u,a);return{dataId:l.dataId,shape:t,dtype:l.dtype}}function it(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{shape:s}=n,i=e,a=y.sizeFromShape(o.shape),u=y.inferFromImplicitShape(s,a),l=y.sizeFromShape(u);y.assert(a===l,()=>`The new shape (${u}) has ${l} elements and the old shape (${o.shape}) has ${a} elements. The new shape and old shape must have the same number of elements.`);let c=i.texData.get(o.dataId);return c.isPacked&&!Au(o.shape,u)&&!(c.texture!==null&&Au(c.shape,u))?NM(o,u,i):(i.incRef(o.dataId),{dataId:o.dataId,shape:u,dtype:o.dtype})}var TM={kernelName:xi,backendName:"webgl",kernelFunc:it};var ng=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a=Math.floor(n/4)*4,u=n%4,l="sumValue += dot(values, ones);";if(e!=null){let p=1/e;l=`sumValue += dot(values * ${y.isInt(p)?p.toPrecision(2):p}, ones);`}let c="";s%n>0&&(c=` if (inIdx < 0 || inIdx >= ${s}) { return 0.0; } @@ -1410,7 +1410,7 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(sumValue); } - `}};var Uw=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a="0.0",u="";e==="prod"?a="1.0":e==="min"?(a="1.0 / 1e-20",u="min"):e==="max"&&(a="-1.0 / 1e-20",u="max");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="sum"?l="sumValue":e==="prod"?l="prodValue":e==="all"?l="allValue":e==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,p=n%4,m=` + `}};var Hw=class{constructor(t,e){this.variableNames=["x"];let{windowSize:n,batchSize:o,inSize:s,outSize:i}=t;this.outputShape=[o,i];let a="0.0",u="";e==="prod"?a="1.0":e==="min"?(a="1.0 / 1e-20",u="min"):e==="max"&&(a="-1.0 / 1e-20",u="max");let l=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="sum"?l="sumValue":e==="prod"?l="prodValue":e==="all"?l="allValue":e==="any"&&(l="anyValue");let c=Math.floor(n/4)*4,p=n%4,m=` if (${e==="sum"}) { sumValue += dot(values, ones); } else if (${e==="prod"}) { @@ -1502,12 +1502,12 @@ vec2 packedUVfrom3D(int texNumR, int texNumC, } setOutput(${l}); } - `}};function bet(r){let t=[];for(;t.length===0||t[t.length-1].outSize!==1;){let e=t.length?t[t.length-1].outSize:r[1],n=v.computeOptimalWindowSize(e);t.push({inSize:e,windowSize:n,outSize:Math.ceil(e/n)})}return t}function Un(r,t,e,n){let o=bet(r.shape),s=r;for(let i=0;i6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=zt(this.rank),s=ak("rc",this.rank),i=new Array(this.rank);for(let c=0;c6)throw Error(`Transpose for rank ${t} is not yet supported`);let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u","resRC.v"],n=new Array(t);for(let o=0;o6)throw Error(`Packed transpose for rank ${this.rank} is not yet supported.`);let o=Bt(this.rank),s=ck("rc",this.rank),i=new Array(this.rank);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],_=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:_}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?bl(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>dk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let ht=eg({inputs:{a:nt,b:dt},backend:o});Y=Wc({inputs:{x:ht},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(ht)}else{let et=sr(r.dtype,t.dtype),rt=new vd(N,_,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Cet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Uc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var kM={kernelName:Ci,backendName:"webgl",kernelFunc:Cet};var EM="return abs(x);";function Iet(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=Mw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new so(n.shape,EM):o=new tn(n.shape,EM),e.runWebGLProgram(o,[n],n.dtype)}var _M={kernelName:ii,backendName:"webgl",kernelFunc:Iet};var vet=fr+` + `}};function Du(r,t,e){let n=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new Kw(r.shape,t):new qw(r.shape,t);return e.runWebGLProgram(n,[r],r.dtype)}function kM(r,t,e,n){let o=t,s=r.shape.length,i=y.parseAxisParam(o,r.shape),a=i,u=S.getAxesPermutation(a,s),l=u!=null,c=r;l&&(c=Du(r,u,n),a=S.getInnerMostAxes(a.length,s)),S.assertAxesAreInnerMostDims("sum",a,s);let[p,m]=S.computeOutAndReduceShapes(c.shape,a),f=p;e&&(f=S.expandShapeToKeepDim(p,i));let d=y.sizeFromShape(m),g=y.sizeFromShape(r.shape)/d,x=it({inputs:{x:c},attrs:{shape:[g,d]},backend:n}),b=Hu(r.dtype),w=qn(x,b,"sum",n),C=it({inputs:{x:w},attrs:{shape:f},backend:n});return n.disposeIntermediateTensorInfo(x),n.disposeIntermediateTensorInfo(w),l&&n.disposeIntermediateTensorInfo(c),C}function Uc(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n;return kM(o,s,i,e)}var EM={kernelName:Fs,backendName:"webgl",kernelFunc:Uc};function Oe(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{perm:s}=n,i=e,a=o.shape.length,u=new Array(a);for(let c=0;c`Error in matMul: inner shapes (${p}) and (${m}) of Tensors with shapes ${r.shape} and ${t.shape} and transposeA=${e} and transposeB=${n} must match.`);let N=e?[x,p,f]:[x,f,p],E=n?[b,d,m]:[b,m,d],A=it({inputs:{x:r},backend:o,attrs:{shape:N}}),$=it({inputs:{x:t},backend:o,attrs:{shape:E}}),F=[A,$],P=Math.max(x,b),V=e?A.shape[1]:A.shape[2],G=s!=null,W=i!=null,q=u==="leakyrelu",H=u!=null?Il(u,!0):null,j=G||W||q||H!=null,Y;if((f===1||d===1)&&V>xk&&j===!1){let et=A,rt=$;e&&(et=Oe({inputs:{x:A},backend:o,attrs:{perm:[0,2,1]}}),F.push(et)),n&&(rt=Oe({inputs:{x:$},backend:o,attrs:{perm:[0,2,1]}}),F.push(rt));let ot=d!==1,at=d===1,nt=et;ot&&(nt=it({inputs:{x:et},backend:o,attrs:{shape:[P,V,1]}}),F.push(nt));let st=d===1?2:1,dt=rt;at&&(dt=it({inputs:{x:rt},backend:o,attrs:{shape:[P,1,V]}}),F.push(dt));let gt=rg({inputs:{a:nt,b:dt},backend:o});Y=Uc({inputs:{x:gt},backend:o,attrs:{axis:st,keepDims:!0}}),F.push(gt)}else{let et=ar(r.dtype,t.dtype),rt=new Td(N,E,[P,f,d],e,n,G,H,W,q),ot=[A,$];if(s!=null&&ot.push(s),W&&ot.push(i),q){let at=o.makeTensorInfo([],"float32",y.createScalarValue(a,"float32"));ot.push(at),F.push(at)}Y=o.runWebGLProgram(rt,ot,et)}let Z=it({inputs:{x:Y},backend:o,attrs:{shape:C}});F.push(Y);for(let et of F)o.disposeIntermediateTensorInfo(et);return Z}function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t,{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n;return Hc({a:o,b:s,transposeA:u,transposeB:l,backend:e,bias:i,preluActivationWeights:a,leakyreluAlpha:p,activation:c})}var AM={kernelName:Si,backendName:"webgl",kernelFunc:Aet};var $M="return abs(x);";function $et(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])&&n.dtype!=="complex64"){let s=e.texData.get(n.dataId),i=zw(s.values);return e.makeTensorInfo(n.shape,n.dtype,i)}let o;return M().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new An(n.shape,$M):o=new Mr(n.shape,$M),e.runWebGLProgram(o,[n],n.dtype)}var DM={kernelName:ui,backendName:"webgl",kernelFunc:$et};var Det=hr+` if (abs(x) > 1.) { return NAN; } return acos(x); -`,Net=Ct({opSnippet:vet}),AM={kernelName:oa,backendName:"webgl",kernelFunc:Net};var Tet=fr+` +`,Ret=Ct({opSnippet:Det}),RM={kernelName:ua,backendName:"webgl",kernelFunc:Ret};var Fet=hr+` if (x < 1.0) return NAN; -return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,backendName:"webgl",kernelFunc:ket};var DM="return a + b;",Eet=le({opSnippet:DM,packedOpSnippet:DM,supportsComplex:!0,cpuKernelImpl:cL}),RM={kernelName:Zn,backendName:"webgl",kernelFunc:Eet};var Kw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` +return log(x + sqrt(x * x - 1.0));`,Oet=Ct({opSnippet:Fet}),FM={kernelName:ca,backendName:"webgl",kernelFunc:Oet};var OM="return a + b;",Pet=le({opSnippet:OM,packedOpSnippet:OM,supportsComplex:!0,cpuKernelImpl:fL}),PM={kernelName:Qn,backendName:"webgl",kernelFunc:Pet};var jw=class{constructor(t,e){this.outputShape=[],this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`float v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1539,7 +1539,7 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba float result = ${o}; setOutput(result); } - `}};var jw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` + `}};var Xw=class{constructor(t,e){this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.variableNames=e.map((s,i)=>`T${i}`);let n=[];this.variableNames.forEach(s=>{n.push(`vec4 v${s} = get${s}AtOutCoords();`)});let o=this.variableNames.map(s=>`v${s}`).join(" + ");this.userCode=` void main() { ${n.join(` `)} @@ -1547,7 +1547,7 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba vec4 result = ${o}; setOutput(result); } - `}};function Xw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return tr({inputs:{x:n[0]},backend:e});if(n.length>z().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=Xw({inputs:n.slice(0,u),backend:e}),c=Xw({inputs:n.slice(u),backend:e});return Xw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>sr(u,l)),s=n.map(u=>u.shape),a=z().getBool("WEBGL_PACK")?new jw(n[0].shape,s):new Kw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var FM={kernelName:Go,backendName:"webgl",kernelFunc:Xw};function _et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("all",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"all",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var OM={kernelName:ia,backendName:"webgl",kernelFunc:_et};function Aet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=v.getInnerMostAxes(l.length,a)),v.assertAxesAreInnerMostDims("any",l,a);let[m,f]=v.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=Un(h,h.dtype,"any",e),x;if(i){let b=v.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var PM={kernelName:aa,backendName:"webgl",kernelFunc:Aet};var Yw=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` + `}};function Yw(r){let{inputs:t,backend:e}=r,n=t;if(n.length===1)return rr({inputs:{x:n[0]},backend:e});if(n.length>M().get("WEBGL_MAX_TEXTURES_IN_SHADER")){let u=Math.floor(n.length/2),l=Yw({inputs:n.slice(0,u),backend:e}),c=Yw({inputs:n.slice(u),backend:e});return Yw({inputs:[l,c],backend:e})}let o=n.map(u=>u.dtype).reduce((u,l)=>ar(u,l)),s=n.map(u=>u.shape),a=M().getBool("WEBGL_PACK")?new Xw(n[0].shape,s):new jw(n[0].shape,s);return e.runWebGLProgram(a,n,o)}var LM={kernelName:Wo,backendName:"webgl",kernelFunc:Yw};function Let(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("all",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=qn(h,h.dtype,"all",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var MM={kernelName:pa,backendName:"webgl",kernelFunc:Let};function Met(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),l=S.getInnerMostAxes(l.length,a)),S.assertAxesAreInnerMostDims("any",l,a);let[m,f]=S.computeOutAndReduceShapes(p.shape,l),d=y.sizeFromShape(f),h=it({inputs:{x:p},backend:e,attrs:{shape:[-1,d]}}),g=qn(h,h.dtype,"any",e),x;if(i){let b=S.expandShapeToKeepDim(m,u);x=it({inputs:{x:g},backend:e,attrs:{shape:b}})}else x=it({inputs:{x:g},backend:e,attrs:{shape:m}});return e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),c!=null&&e.disposeIntermediateTensorInfo(p),x}var zM={kernelName:ma,backendName:"webgl",kernelFunc:Met};var Zw=class{constructor(t,e,n){this.variableNames=["A"];let{windowSize:o,batchSize:s,outSize:i}=t;n||this.variableNames.push("bestIndicesA"),this.outputShape=[s,i];let a=e==="max"?">":"<",u=n?"inOffset + i;":"round(getBestIndicesA(batch, inOffset + i));";this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -1567,7 +1567,7 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba } setOutput(float(bestIndex)); } - `}};var Zw=class{constructor(t,e,n,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push("bestIndicesA");let a=this.outputShape,u=a.length,l=zt(u),c=Qe("coords",u),p,m;if(i===1){m=u+1;let $=zt(m);p=` + `}};var Jw=class{constructor(t,e,n,o){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,y.assert(t.length>2,()=>`Packed arg${n.charAt(0).toUpperCase()+n.slice(1)} supports only inputs with rank above 2.`);let s=t[t.length-1],i=Math.ceil(s/e);this.outputShape=t.slice(0,-1),i>1&&this.outputShape.push(i),o||this.variableNames.push("bestIndicesA");let a=this.outputShape,u=a.length,l=Bt(u),c=er("coords",u),p,m;if(i===1){m=u+1;let $=Bt(m);p=` ${$} sourceLocR = ${$}(${c.join()}, 0); ++${c[u-1]}; ${$} sourceLocG = ${$}(${c.join()}, 0); @@ -1583,11 +1583,11 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba ${l} sourceLocA = coords; --${c[u-1]}; ${l} sourceLocB = coords; - --${c[u-2]};`;let f=["x","y","z","w","u","v"].slice(0,m),d="."+f[m-1],h=f.map($=>"int "+$),g=Qe("sourceLocR",m-1).concat("inIdx.r"),x=Qe("sourceLocG",m-1).concat("inIdx.g"),b=Qe("sourceLocB",m-1).concat("inIdx.b"),w=Qe("sourceLocA",m-1).concat("inIdx.a"),C=n==="max"?"greaterThan":"lessThan",N=o?"":` + --${c[u-2]};`;let f=["x","y","z","w","u","v"].slice(0,m),d="."+f[m-1],h=f.map($=>"int "+$),g=er("sourceLocR",m-1).concat("inIdx.r"),x=er("sourceLocG",m-1).concat("inIdx.g"),b=er("sourceLocB",m-1).concat("inIdx.b"),w=er("sourceLocA",m-1).concat("inIdx.a"),C=n==="max"?"greaterThan":"lessThan",N=o?"":` inIdx = round(vec4(getBestIndicesAChannel(${g.join()}), getBestIndicesAChannel(${x.join()}), getBestIndicesAChannel(${b.join()}), - getBestIndicesAChannel(${w.join()})));`,_=`vec4( + getBestIndicesAChannel(${w.join()})));`,E=`vec4( getAChannel(${g.join()}), hasNextCol ? getAChannel(${x.join()}) : 0., hasNextRow ? getAChannel(${b.join()}) : 0., @@ -1610,12 +1610,12 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba sourceLocB${d}, sourceLocA${d}) * ${e}; ivec4 inIdx = srcIdx; vec4 bestIndex = vec4(inIdx); - vec4 bestValue = ${_}; + vec4 bestValue = ${E}; for (int i = 0; i < ${e}; i++) { inIdx = srcIdx; ${N} - vec4 candidate = ${_}; + vec4 candidate = ${E}; bvec4 nan = isnan(candidate); bvec4 replace = bvec4( vec4(${C}(candidate, bestValue)) * (vec4(1.0) - vec4(nan))); @@ -1629,25 +1629,25 @@ return log(x + sqrt(x * x - 1.0));`,ket=Ct({opSnippet:Tet}),$M={kernelName:sa,ba } setOutput(bestIndex); } - `}};function LM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=v.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Yw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=LM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function MM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=v.computeOptimalWindowSize(s),a=new Zw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=MM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Jw(r,t,e,n){let o=[e];if(v.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!z().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=v.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=LM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return MM(r,t,n)}function $et(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var zM={kernelName:Wo,backendName:"webgl",kernelFunc:$et};function Det(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=v.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=v.getInnerMostAxes(i.length,u.shape.length)),v.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=Jw(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var BM={kernelName:kl,backendName:"webgl",kernelFunc:Det};var Ret=fr+` + `}};function BM(r,t,e,n=null){let o=t.shape[0],s=t.shape[1];n!=null&&(o=n.shape[0],s=n.shape[1]);let i=S.computeOptimalWindowSize(s),a={windowSize:i,inSize:s,batchSize:o,outSize:Math.ceil(s/i)},u=new Zw(a,e,n==null),l=[t];n!=null&&l.push(n);let c=r.runWebGLProgram(u,l,"int32");if(c.shape[1]===1)return c;let p=BM(r,t,e,c);return r.disposeIntermediateTensorInfo(c),p}function VM(r,t,e,n=null){let o=n!=null?n.shape:t.shape,s=o[o.length-1],i=S.computeOptimalWindowSize(s),a=new Jw(o,i,e,n==null),u=n==null?[t]:[t,n],l=r.runWebGLProgram(a,u,"int32");if(l.shape.length===t.shape.length){let c=VM(r,t,e,l);return r.disposeIntermediateTensorInfo(l),c}return l}function Qw(r,t,e,n){let o=[e];if(S.assertAxesAreInnerMostDims("arg"+n.charAt(0).toUpperCase()+n.slice(1),o,t.shape.length),!M().getBool("WEBGL_PACK_REDUCE")||t.shape.length<=2){let s=[],i=r.texData.get(t.dataId),a=i!==null&&i.isPacked,u=t;a&&(u=r.unpackTensor(t),s.push(u));let[l,c]=S.computeOutAndReduceShapes(u.shape,o),p=y.sizeFromShape(c),m=it({inputs:{x:u},backend:r,attrs:{shape:[-1,p]}});s.push(m);let f=BM(r,m,n);s.push(f);let d=it({inputs:{x:f},backend:r,attrs:{shape:l}});return s.forEach(h=>r.disposeIntermediateTensorInfo(h)),d}return VM(r,t,n)}function zet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMax",[i[0]],u.shape.length);let c=Qw(e,u,i[0],"max");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var GM={kernelName:Uo,backendName:"webgl",kernelFunc:zet};function Bet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s}=n,i=y.parseAxisParam(s,o.shape),a=S.getAxesPermutation(i,o.shape.length),u=o,l=[];a!=null&&(u=Oe({inputs:{x:o},backend:e,attrs:{perm:a}}),l.push(u),i=S.getInnerMostAxes(i.length,u.shape.length)),S.assertAxesAreInnerMostDims("argMin",[i[0]],u.shape.length);let c=Qw(e,u,i[0],"min");return l.forEach(p=>e.disposeIntermediateTensorInfo(p)),c}var WM={kernelName:Al,backendName:"webgl",kernelFunc:Bet};var Vet=hr+` if (abs(x) > 1.) { return NAN; } return asin(x); -`,Fet=Ct({opSnippet:Ret}),VM={kernelName:la,backendName:"webgl",kernelFunc:Fet};var Oet=fr+"return log(x + sqrt(x * x + 1.0));",Pet=Ct({opSnippet:Oet}),GM={kernelName:ua,backendName:"webgl",kernelFunc:Pet};var Let=fr+` +`,Get=Ct({opSnippet:Vet}),UM={kernelName:fa,backendName:"webgl",kernelFunc:Get};var Wet=hr+"return log(x + sqrt(x * x + 1.0));",Uet=Ct({opSnippet:Wet}),HM={kernelName:da,backendName:"webgl",kernelFunc:Uet};var Het=hr+` return atan(x); -`,Met=Ct({opSnippet:Let}),WM={kernelName:ca,backendName:"webgl",kernelFunc:Met};var zet=Sd+` +`,qet=Ct({opSnippet:Het}),qM={kernelName:ha,backendName:"webgl",kernelFunc:qet};var Ket=Nd+` return atan(a, b); -`,Bet=` +`,jet=` vec4 result = atan(a, b); bvec4 isNaNA = isnan(a); bvec4 isNaNB = isnan(b); bvec4 isNaN = bvec4(isNaNA.x || isNaNB.x, isNaNA.y || isNaNB.y, isNaNA.z || isNaNB.z, isNaNA.w || isNaNB.w); - `+Yi+` + `+ea+` return result; -`,Vet=le({opSnippet:zet,packedOpSnippet:Bet}),UM={kernelName:ma,backendName:"webgl",kernelFunc:Vet};var Get=fr+` +`,Xet=le({opSnippet:Ket,packedOpSnippet:jet}),KM={kernelName:xa,backendName:"webgl",kernelFunc:Xet};var Yet=hr+` if ((x < -1.0) || (x > 1.0)) return NAN; -return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelName:pa,backendName:"webgl",kernelFunc:Wet};var ei=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e==="avg",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),n){let $=">=";this.userCode=` +return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Zet=Ct({opSnippet:Yet}),jM={kernelName:ga,backendName:"webgl",kernelFunc:Zet};var oi=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideHeight,u=t.strideWidth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterHeight,m=t.effectiveFilterWidth,f=t.padInfo.top,d=t.padInfo.left;this.outputShape=t.outShape;let h=e==="avg",g=`((batch * ${t.inHeight} + xR) * ${t.inWidth} + xC) * ${t.inChannels} + d`,x=`(xR * ${t.inWidth} + xC) * ${t.inChannels} + d`,b="0.0";if(h||(b="-1.0 / 1e-20"),n){let $=">=";this.userCode=` const ivec2 strides = ivec2(${a}, ${u}); const ivec2 pads = ivec2(${f}, ${d}); @@ -1698,7 +1698,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(float(minMaxPosition)); } - `;return}let w="max",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(C="avgValue / count");let N=Math.floor(i/4)*4,_=i%4,A=` + `;return}let w="max",C=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(C="avgValue / count");let N=Math.floor(i/4)*4,E=i%4,A=` if (${h}) { avgValue += dot(values, ones); } else { @@ -1757,7 +1757,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } int xC = xCCorner + ${N}; - if (${_===1}) { + if (${E===1}) { vec4 values = vec4( getValue(batch, xR, xC, d), initializationValue, @@ -1766,7 +1766,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ); ${A} - } else if (${_===2}) { + } else if (${E===2}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1775,7 +1775,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ); ${A} - } else if (${_===3}) { + } else if (${E===3}) { vec4 values = vec4( getValue(batch, xR, xC, d), getValue(batch, xR, xC + ${c}, d), @@ -1788,7 +1788,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(${C}); } - `}},$u=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e==="avg",C="0.0";if(w||(C="-1.0 / 1e-20"),n){let P=">=";this.userCode=` + `}},Ru=class{constructor(t,e,n,o=!1,s=!1){if(this.variableNames=["x"],e==="avg"&&n)throw new Error("Cannot compute positions for average pool.");let i=t.filterWidth,a=t.strideDepth,u=t.strideHeight,l=t.strideWidth,c=t.dilationDepth,p=t.dilationHeight,m=t.dilationWidth,f=t.effectiveFilterDepth,d=t.effectiveFilterHeight,h=t.effectiveFilterWidth,g=t.padInfo.front,x=t.padInfo.top,b=t.padInfo.left;this.outputShape=t.outShape;let w=e==="avg",C="0.0";if(w||(C="-1.0 / 1e-20"),n){let P=">=";this.userCode=` const ivec3 strides = ivec3(${a}, ${u}, ${l}); const ivec3 pads = ivec3(${g}, ${x}, ${b}); @@ -1850,7 +1850,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(float(minMaxPosition)); } - `;return}let N="max",_=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(_="avgValue / count");let A=Math.floor(i/4)*4,$=i%4,F=` + `;return}let N="max",E=`${e}(${e}(${e}(minMaxValue[0], minMaxValue[1]), minMaxValue[2]), minMaxValue[3])`;e==="avg"&&(E="avgValue / count");let A=Math.floor(i/4)*4,$=i%4,F=` if (${w}) { avgValue += dot(values, ones); } else { @@ -1948,10 +1948,10 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${F} } } - setOutput(${_}); + setOutput(${E}); } } - `}};function Uet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;Qs(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(v.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var qM={kernelName:Uo,backendName:"webgl",kernelFunc:Uet};function Het(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new $u(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var KM={kernelName:El,backendName:"webgl",kernelFunc:Het};var Qw=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=` + `}};function Jet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;ri(o,"avgPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in avgPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return rr({inputs:{x:o},backend:e});let p=new oi(c,"avg",!1);return e.runWebGLProgram(p,[o],"float32")}var XM={kernelName:Ho,backendName:"webgl",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dimRoundingMode:u,dataFormat:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,u,l),m=new Ru(p,"avg",!1);return e.runWebGLProgram(m,[o],"float32")}var YM={kernelName:$l,backendName:"webgl",kernelFunc:Qet};var tC=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterHeight,l=t.effectiveFilterWidth,c=u-1-t.padInfo.top,p=l-1-t.padInfo.left,m=1/(e*n);this.userCode=` const ivec2 pads = ivec2(${c}, ${p}); const float avgMultiplier = float(${m}); @@ -1993,7 +1993,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},tC=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=` + `}},eC=class{constructor(t){this.variableNames=["dy"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.effectiveFilterDepth,m=t.effectiveFilterHeight,f=t.effectiveFilterWidth,d=p-1-t.padInfo.front,h=m-1-t.padInfo.top,g=f-1-t.padInfo.left,x=1/(e*n*o);this.userCode=` const ivec3 pads = ivec3(${d}, ${h}, ${g}); const float avgMultiplier = float(${x}); @@ -2049,7 +2049,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}};function qet(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new tC(m);return e.runWebGLProgram(f,[o],i.dtype)}var jM={kernelName:lp,backendName:"webgl",kernelFunc:qet};function Ket(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;Qs([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=v.computePool2DInfo(i.shape,a,u,1,l),p=new Qw(c);return e.runWebGLProgram(p,[o],i.dtype)}var XM={kernelName:ap,backendName:"webgl",kernelFunc:Ket};function jet(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Uc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var YM={kernelName:Ho,backendName:"webgl",kernelFunc:jet};var eC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};function trt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=S.computePool3DInfo(i.shape,a,u,p,l,c),f=new eC(m);return e.runWebGLProgram(f,[o],i.dtype)}var ZM={kernelName:up,backendName:"webgl",kernelFunc:trt};function ert(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s;ri([o,s],"avgPoolGrad");let{filterSize:a,strides:u,pad:l}=n,c=S.computePool2DInfo(i.shape,a,u,1,l),p=new tC(c);return e.runWebGLProgram(p,[o],i.dtype)}var JM={kernelName:lp,backendName:"webgl",kernelFunc:ert};function rrt(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;return Hc({a:o,b:s,transposeA:i,transposeB:a,backend:e})}var QM={kernelName:qo,backendName:"webgl",kernelFunc:rrt};var rC=class{constructor(t,e,n,o,s,i){this.outputShape=[],this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="0.0";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="1.0";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { float x = getXAtOutCoords(); float mean = getMeanAtOutCoords(); @@ -2059,7 +2059,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float inv = scale * inversesqrt(variance + float(${i})); setOutput(dot(vec3(x, -mean, offset), vec3(inv, inv, 1))); } - `}};var rC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],v.assertAndGetBroadcastShape(t,e),v.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(v.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(v.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` + `}};var nC=class{constructor(t,e,n,o,s,i){this.packedInputs=!0,this.packedOutput=!0,this.variableNames=["x","mean","variance"],S.assertAndGetBroadcastShape(t,e),S.assertAndGetBroadcastShape(t,n);let a="vec4(0.0)";o!=null&&(S.assertAndGetBroadcastShape(t,o),this.variableNames.push("offset"),a="getOffsetAtOutCoords()");let u="vec4(1.0)";s!=null&&(S.assertAndGetBroadcastShape(t,s),this.variableNames.push("scale"),u="getScaleAtOutCoords()"),this.outputShape=t,this.userCode=` void main() { vec4 offset = ${a}; vec4 scale = ${u}; @@ -2072,7 +2072,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN setOutput((x - mean) * inv + offset); } - `}};var Xet=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(a==null||o.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=z().getBool("WEBGL_PACK_NORMALIZATION")?new rC(n.shape,o.shape,s.shape,c,p,u):new eC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},ZM={kernelName:os,backendName:"webgl",kernelFunc:Xet};var nC=class{constructor(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;let e=zt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=Yet(this.rank),o,s=t.map((i,a)=>`sourceLoc.${hk[a]} = start[${a}] + coords.${hk[a]};`);o=` + `}};var nrt=({inputs:r,backend:t,attrs:e})=>{let{x:n,mean:o,variance:s,offset:i,scale:a}=r;y.assert(o.shape.length===s.shape.length,()=>"Batch normalization gradient requires mean and variance to have equal ranks."),y.assert(i==null||o.shape.length===i.shape.length,()=>"Batch normalization gradient requires mean and offset to have equal ranks."),y.assert(a==null||o.shape.length===a.shape.length,()=>"Batch normalization gradient requires mean and scale to have equal ranks.");let{varianceEpsilon:u}=e;u==null&&(u=.001);let l=[n,o,s],c=null;i!=null&&(c=i.shape,l.push(i));let p=null;a!=null&&(p=a.shape,l.push(a));let m=M().getBool("WEBGL_PACK_NORMALIZATION")?new nC(n.shape,o.shape,s.shape,c,p,u):new rC(n.shape,o.shape,s.shape,c,p,u);return t.runWebGLProgram(m,l,l[0].dtype)},tz={kernelName:ss,backendName:"webgl",kernelFunc:nrt};var oC=class{constructor(t){this.variableNames=["source"],this.outputShape=t,this.rank=t.length;let e=Bt(this.rank);this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let n=ort(this.rank),o,s=t.map((i,a)=>`sourceLoc.${yk[a]} = start[${a}] + coords.${yk[a]};`);o=` ${e} sourceLoc; ${e} coords = getOutputCoords(); ${s.join(` @@ -2082,7 +2082,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${o} setOutput(getSource(${n})); } - `}},hk=["x","y","z","w","u","v"];function Yet(r){if(r===1)return"sourceLoc";if(r<=6)return hk.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var oC=class{constructor(t){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let e=zt(this.rank),n=Qe("coords",this.rank),o=Qe("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=` + `}},yk=["x","y","z","w","u","v"];function ort(r){if(r===1)return"sourceLoc";if(r<=6)return yk.slice(0,r).map(t=>"sourceLoc."+t).join(",");throw Error(`Slicing for rank ${r} is not yet supported`)}var sC=class{constructor(t){this.variableNames=["source"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=t,this.rank=t.length,this.customUniforms=[{name:"start",arrayIndex:this.rank,type:"int"}];let e=Bt(this.rank),n=er("coords",this.rank),o=er("sourceLoc",this.rank),s=this.rank===1?"sourceLoc":`vec2(${o.slice(-2).join()})`,i=`getChannel(getSource(${o.join()}), ${s})`,a=` result.x = ${i}; if (++${n[this.rank-1]} < ${t[this.rank-1]}) { ++${o[this.rank-1]}; @@ -2111,7 +2111,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${u} setOutput(result); } - `}};function Zet(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Le.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function ri(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Le.parseSliceParams(o,s,i);if(Le.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=VL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Le.isSliceContinous(o.shape,a,u);if(l||!c){let p=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new oC(u):new nC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),Zet(o,a,u,e)}var JM={kernelName:gi,backendName:"webgl",kernelFunc:ri};var Jet=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=ri({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},QM={kernelName:ai,backendName:"webgl",kernelFunc:Jet};function Qet(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Lw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var tz={kernelName:up,backendName:"webgl",kernelFunc:Qet};function trt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=v.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var ez={kernelName:cp,backendName:"webgl",kernelFunc:trt};var ert="return float(a != b);",gk=le({opSnippet:ert,cpuKernelImpl:DL,dtype:"bool"}),rz={kernelName:Da,backendName:"webgl",kernelFunc:gk};function wl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.real},backend:e})}var nz={kernelName:Rp,backendName:"webgl",kernelFunc:wl};var rrt="return float(int(x));";function oz(r,t){let e=new tn(r.shape,rrt),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function xk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return tr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=xk({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=En({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=wl({inputs:{input:o},backend:e}),a=xk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=tr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=mL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return oz(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=gk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var sz={kernelName:lo,backendName:"webgl",kernelFunc:xk};var iz="return ceil(x);",nrt=Ct({opSnippet:iz,packedOpSnippet:iz,cpuKernelImpl:fL}),az={kernelName:qo,backendName:"webgl",kernelFunc:nrt};var sC=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};function srt(r,t,e,n){let o=n.texData.get(r.dataId),s=n.makeTensorInfo(e,r.dtype),i=n.texData.get(s.dataId);Object.assign(i,o),i.refCount=1,i.shape=e,i.dtype=r.dtype;let a=Me.computeFlatOffset(t,y.computeStrides(r.shape));o.slice&&(a+=o.slice.flatOffset),i.slice={flatOffset:a,origDataId:o.slice&&o.slice.origDataId||r.dataId};let u=n.dataRefCount.get(i.slice.origDataId)||1;return n.dataRefCount.set(i.slice.origDataId,u+1),s}function si(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,size:i}=n,[a,u]=Me.parseSliceParams(o,s,i);if(Me.assertParamsValid(o,a,u),y.sizeFromShape(u)===0)return e.makeTensorInfo(u,o.dtype,[]);if(e.shouldExecuteOnCPU([o])||o.dtype==="string"){let p=e.texData.get(o.dataId),m=UL(p.values,a,u,o.shape,o.dtype);return e.makeTensorInfo(u,o.dtype,m)}let{isPacked:l}=e.texData.get(o.dataId),c=Me.isSliceContinous(o.shape,a,u);if(l||!c){let p=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new sC(u):new oC(u),m=[a];return e.runWebGLProgram(p,[o],o.dtype,m)}return e.uploadToGPU(o.dataId),srt(o,a,u,e)}var ez={kernelName:bi,backendName:"webgl",kernelFunc:si};var irt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,crops:i}=n;y.assert(o.shape.length<=4,()=>"batchToSpaceND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((b,w)=>b*w),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=[],d=it({inputs:{x:o},backend:e,attrs:{shape:u}}),h=Oe({inputs:{x:d},backend:e,attrs:{perm:l}}),g=it({inputs:{x:h},backend:e,attrs:{shape:c}}),x=si({inputs:{x:g},backend:e,attrs:{begin:p,size:m}});return f.push(d),f.push(h),f.push(g),f.forEach(b=>e.disposeIntermediateTensorInfo(b)),x},rz={kernelName:ci,backendName:"webgl",kernelFunc:irt};function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i}=n,a=e.readSync(o.dataId),u=e.readSync(s.dataId),l=Mw(a,u,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,l)}var nz={kernelName:cp,backendName:"webgl",kernelFunc:art};function lrt(r){let{inputs:t,backend:e}=r,{s0:n,s1:o}=t,s=e.readSync(n.dataId),i=e.readSync(o.dataId),a=S.assertAndGetBroadcastShape(Array.from(s),Array.from(i));return e.makeTensorInfo([a.length],"int32",Int32Array.from(a))}var oz={kernelName:pp,backendName:"webgl",kernelFunc:lrt};var urt="return float(a != b);",bk=le({opSnippet:urt,cpuKernelImpl:OL,dtype:"bool"}),sz={kernelName:Pa,backendName:"webgl",kernelFunc:bk};function vl(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return rr({inputs:{x:o.complexTensorInfos.real},backend:e})}var iz={kernelName:Fp,backendName:"webgl",kernelFunc:vl};var crt="return float(int(x));";function az(r,t){let e=new Mr(r.shape,crt),n=t.runWebGLProgram(e,[r],"int32");return{dataId:n.dataId,shape:n.shape,dtype:n.dtype}}function wk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dtype:s}=n;if(s==="complex64"){if(o.dtype==="complex64")return rr({inputs:{x:o},backend:e});let i=Ne(o.shape),a=wk({inputs:{x:o},backend:e,attrs:{dtype:"float32"}}),u=$n({inputs:{real:a,imag:i},backend:e});return i.dispose(),e.disposeIntermediateTensorInfo(a),u}if(o.dtype==="complex64"){let i=vl({inputs:{input:o},backend:e}),a=wk({inputs:{x:i},backend:e,attrs:{dtype:s}});return e.disposeIntermediateTensorInfo(i),a}if(!y.hasEncodingLoss(o.dtype,s)){let i=rr({inputs:{x:o},backend:e});return{dataId:i.dataId,shape:i.shape,dtype:s}}if(e.shouldExecuteOnCPU([o])){let i=e.texData.get(o.dataId).values,[a,u,l]=hL(i,o.shape,o.dtype,s);return e.makeTensorInfo(a,u,l)}if(s==="int32")return az(o,e);if(s==="bool"){let i=e.makeTensorInfo([],"bool",y.getTypedArrayFromDType("bool",1)),u=bk({inputs:{a:o,b:i},backend:e});return e.disposeIntermediateTensorInfo(i),u}throw new Error(`Error in Cast: failed to cast ${o.dtype} to ${s}`)}var lz={kernelName:co,backendName:"webgl",kernelFunc:wk};var uz="return ceil(x);",prt=Ct({opSnippet:uz,packedOpSnippet:uz,cpuKernelImpl:gL}),cz={kernelName:Ko,backendName:"webgl",kernelFunc:prt};var iC=class{constructor(t){this.variableNames=["A"],this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` void main() { float value = getAAtOutCoords(); @@ -2122,7 +2122,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN setOutput(clamp(value, minVal, maxVal)); } - `}};var iC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` + `}};var aC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"minVal",type:"float"},{name:"maxVal",type:"float"}],this.outputShape=t,this.userCode=` void main() { vec4 value = getAAtOutCoords(); @@ -2133,7 +2133,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN setOutput(clamp(value, vec4(minVal), vec4(maxVal))); } - `}};function ort(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;z().getBool("WEBGL_PACK_CLIP")?a=new iC(o.shape):a=new sC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var lz={kernelName:uo,backendName:"webgl",kernelFunc:ort};var aC=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` + `}};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a;M().getBool("WEBGL_PACK_CLIP")?a=new aC(o.shape):a=new iC(o.shape);let u=[[s],[i]];return e.runWebGLProgram(a,[o],o.dtype,u)}var pz={kernelName:po,backendName:"webgl",kernelFunc:mrt};var lC=class{constructor(t){this.variableNames=["real","imag"],this.outputShape=t,this.userCode=` void main() { float re = abs(getRealAtOutCoords()); float im = abs(getImagAtOutCoords()); @@ -2146,7 +2146,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN mx == 0.0 ? 0.0 : mx * length(vec2(1, min(re, im)/mx)) ); } - `}};function uz(r,t){return{dataId:t.dataId,dtype:t.dtype,shape:r.shape}}function srt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=e.texData.get(n.dataId),s=new aC(n.shape),i=[uz(n,o.complexTensorInfos.real),uz(n,o.complexTensorInfos.imag)];return e.runWebGLProgram(s,i,i[0].dtype)}var cz={kernelName:_l,backendName:"webgl",kernelFunc:srt};var lC=class{constructor(t){this.outputShape=[],this.outputShape=v.computeOutShape(t,1),this.variableNames=t.map((i,a)=>`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${a}`);let e=new Array(t.length-1);e[0]=t[0][1];for(let i=1;i`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h`T${g}`);let u=new Array(t.length-1);u[0]=t[0][e];for(let h=1;h= ${u[h-1]}) { return getChannel( - getT${h}(${uC(a,l,g)}), - vec2(${uC(c,l,g)})); + getT${h}(${cC(a,l,g)}), + vec2(${cC(c,l,g)})); }`}let f=u.length,d=u[u.length-1];m+=` return getChannel( - getT${f}(${uC(a,l,d)}), - vec2(${uC(c,l,d)}));`,this.userCode=` + getT${f}(${cC(a,l,d)}), + vec2(${cC(c,l,d)}));`,this.userCode=` float getValue(${a.map(h=>"int "+h)}) { ${m} } @@ -2192,7 +2192,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(result); } - `}};function uC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function Hc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return tr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var pz={kernelName:Sp,backendName:"webgl",kernelFunc:Hc};function Nd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let p=r.map(g=>wl({inputs:{input:g},backend:e})),m=r.map(g=>Hc({inputs:{input:g},backend:e})),f=Nd(p,t,e),d=Nd(m,t,e),h=En({inputs:{real:f,imag:d},backend:e});return p.forEach(g=>e.disposeIntermediateTensorInfo(g)),m.forEach(g=>e.disposeIntermediateTensorInfo(g)),e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),h}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let p=r.map(b=>{let C=[-1,y.sizeFromShape(b.shape.slice(t))];return it({inputs:{x:b},backend:e,attrs:{shape:C}})}),m=p.map(b=>({vals:e.readSync(b.dataId),shape:b.shape})),f=v.computeOutShape(p.map(b=>b.shape),1),d=p[0].shape[0]===1,h=dL(m,f,n,d),g=v.computeOutShape(r.map(b=>b.shape),t),x=e.makeTensorInfo(g,n,h);return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}let s=z().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(r.length>s){let p=[];for(let f=0;f1){let p=new cC(r.map(m=>m.shape),t);return e.runWebGLProgram(p,r,n)}let{tensors2D:i,outShape:a}=irt(r,t,e),u=new lC(i.map(p=>p.shape)),l=e.runWebGLProgram(u,i,n);i.forEach(p=>e.disposeIntermediateTensorInfo(p));let c=it({inputs:{x:l},attrs:{shape:a},backend:e});return e.disposeIntermediateTensorInfo(l),c}function irt(r,t,e){let n=v.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function yk(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);v.assertParamsConsistent(i,s);let a=v.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?tr({inputs:{x:u[0]},backend:e}):Nd(u,s,e)}var mz={kernelName:li,backendName:"webgl",kernelFunc:yk};var Td=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,C="",N="";n&&(o?C=`float activation(float a) { + `}};function cC(r,t,e){let n=r.indexOf(t);return r.map((s,i)=>i===n?`${s} - ${e}`:s).join()}function qc(r){let{inputs:t,backend:e}=r,{input:n}=t,o=e.texData.get(n.dataId);return rr({inputs:{x:o.complexTensorInfos.imag},backend:e})}var dz={kernelName:Sp,backendName:"webgl",kernelFunc:qc};function kd(r,t,e){let n=r[0].dtype;if(n==="complex64"){let f=r.map(b=>vl({inputs:{input:b},backend:e})),d=r.map(b=>qc({inputs:{input:b},backend:e})),h=kd(f,t,e),g=kd(d,t,e),x=$n({inputs:{real:h,imag:g},backend:e});return f.forEach(b=>e.disposeIntermediateTensorInfo(b)),d.forEach(b=>e.disposeIntermediateTensorInfo(b)),e.disposeIntermediateTensorInfo(h),e.disposeIntermediateTensorInfo(g),x}let o=e.shouldExecuteOnCPU(r);if(n==="string"&&(o=!0),o){let f=r.map(C=>{let E=[-1,y.sizeFromShape(C.shape.slice(t))];return it({inputs:{x:C},backend:e,attrs:{shape:E}})}),d=f.map(C=>({vals:e.readSync(C.dataId),shape:C.shape})),h=S.computeOutShape(f.map(C=>C.shape),1),g=f[0].shape[0]===1,x=xL(d,h,n,g),b=S.computeOutShape(r.map(C=>C.shape),t),w=e.makeTensorInfo(b,n,x);return f.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}let s=r.filter(f=>y.sizeFromShape(f.shape)>0),i=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")&&s[0].shape.length>1;if(s.length===1){let f=i?new Mr(r[0].shape,ta):new An(r[0].shape,ta);return e.runWebGLProgram(f,r,n)}let a=M().getNumber("WEBGL_MAX_TEXTURES_IN_SHADER");if(s.length>a){let f=[];for(let h=0;hd.shape),t);return e.runWebGLProgram(f,s,n)}let{tensors2D:u,outShape:l}=drt(s,t,e),c=new uC(u.map(f=>f.shape)),p=e.runWebGLProgram(c,u,n);u.forEach(f=>e.disposeIntermediateTensorInfo(f));let m=it({inputs:{x:p},attrs:{shape:l},backend:e});return e.disposeIntermediateTensorInfo(p),m}function drt(r,t,e){let n=S.computeOutShape(r.map(s=>s.shape),t);return{tensors2D:r.map(s=>it({inputs:{x:s},attrs:{shape:[-1,y.sizeFromShape(s.shape.slice(t))]},backend:e})),outShape:n}}function Ck(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n,s=y.parseAxisParam(o,t[0].shape)[0],i=t.map(l=>l.shape);S.assertParamsConsistent(i,s);let a=S.computeOutShape(t.map(l=>l.shape),s);if(y.sizeFromShape(a)===0)return e.makeTensorInfo(a,t[0].dtype,[]);let u=t.filter(l=>y.sizeFromShape(l.shape)>0);return u.length===1?rr({inputs:{x:u[0]},backend:e}):kd(u,s,e)}var hz={kernelName:pi,backendName:"webgl",kernelFunc:Ck};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.outputShape=t.outShape;let i=t.padInfo.top,a=t.padInfo.left,u=t.strideHeight,l=t.strideWidth,c=t.dilationHeight,p=t.dilationWidth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4,g=t.dataFormat==="channelsLast",x=g?1:2,b=g?2:3,w=g?3:1,C="",N="";n&&(o?C=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?C=`float activation(float a) { @@ -2202,7 +2202,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float activation(float x) { ${n} } - `,N="result = activation(result);");let _=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` + `,N="result = activation(result);");let E=e?"result += getBiasAtOutCoords();":"";e&&this.variableNames.push("bias"),o&&this.variableNames.push("preluActivationWeights"),s&&this.variableNames.push("leakyreluAlpha"),this.userCode=` ${C} const ivec2 strides = ivec2(${u}, ${l}); @@ -2322,11 +2322,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } float result = dotProd; - ${_} + ${E} ${N} setOutput(result); } - `}},pC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=` + `}},mC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let e=t.padInfo.front,n=t.padInfo.top,o=t.padInfo.left,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=t.dilationDepth,l=t.dilationHeight,c=t.dilationWidth,p=t.filterDepth,m=t.filterHeight,f=t.filterWidth,d=Math.floor(t.inChannels/4)*4,h=t.inChannels%4;this.userCode=` const ivec3 strides = ivec3(${s}, ${i}, ${a}); const ivec3 pads = ivec3(${e}, ${n}, ${o}); @@ -2414,7 +2414,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}};var kd=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` + `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.padInfo.left,a=t.strideWidth,u=t.dilationWidth,l=t.filterHeight,c=t.filterWidth,p=c,m=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let g=0;g=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function dC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let C=fC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=fC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>dk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},_=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Eu(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Uc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=_,F.shape=e.outShape,g=tr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),_=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Uc({a:f?N:_,b:f?_:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(_),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=fC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=fC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let _=new mC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(_,[r],"float32",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?bl(a,!0):null,q=new vd(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,"float32"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=dC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let h=new kd(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(z().getBool("WEBGL_CONV_IM2COL"))f=hC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Td(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var fz={kernelName:Ko,backendName:"webgl",kernelFunc:art};var gC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` + `}};function dC(r,t){let e=r.length;return e>=3?t?[...r.slice(0,-3),r[e-3]*r[e-2],r[e-1]]:[...r.slice(0,-3),r[e-3],r[e-2]*r[e-1]]:!t&&e===1&&r[0]>1?[r[0],1]:null}function hC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let u=r.shape,l=n.texData.get(r.dataId),c=e.inChannels,p=u[0]*u[1]*u[2],m=e.outChannels,f=e.dataFormat==="channelsLast",d=!1,h=!1,g,x=[];if(s!=null){let C=dC(s.shape,f);C!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:C}}),x.push(s))}if(o!=null){let C=dC(o.shape,f);C!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:C}}),x.push(o))}if(!((p===1||m===1)&&c>xk)&&l.isPacked&&f&&l.texture!=null&&u[2]%2!==0&&y.arraysEqual(l.shape.slice(-3),u.slice(-3))){let C=u[0]*u[1]*(u[2]+1),N={dataId:r.dataId,shape:[1,C,e.inChannels],dtype:r.dtype},E=l.shape;l.shape=l.shape.slice(),l.shape[l.shape.length-2]++,y.assert(Au(l.shape,N.shape),()=>`packed reshape ${l.shape} to ${N.shape} isn't free`);let A=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}});x.push(A);let $=Hc({a:N,b:A,backend:n,transposeA:d,transposeB:h,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i}),F=n.texData.get($.dataId);y.assert(F.isPacked,()=>"batchMatMul result is expected to be packed"),l.shape=E,F.shape=e.outShape,g=rr({inputs:{x:$},backend:n}),g.shape=e.outShape,x.push($)}else{let C=e.outHeight*e.outWidth,N=it({inputs:{x:r},backend:n,attrs:{shape:f?[e.batchSize,C,e.inChannels]:[e.batchSize,e.inChannels,C]}}),E=it({inputs:{x:t},backend:n,attrs:{shape:[1,e.inChannels,e.outChannels]}}),A=Hc({a:f?N:E,b:f?E:N,transposeA:!f,transposeB:h,backend:n,bias:o,activation:a,preluActivationWeights:s,leakyreluAlpha:i});g=it({inputs:{x:A},backend:n,attrs:{shape:e.outShape}}),x.push(N),x.push(E),x.push(A)}for(let C of x)n.disposeIntermediateTensorInfo(C);return g}function gC({x:r,filter:t,convInfo:e,backend:n,bias:o=null,preluActivationWeights:s=null,leakyreluAlpha:i=0,activation:a=null}){let{filterWidth:u,filterHeight:l,inChannels:c,outWidth:p,outHeight:m,dataFormat:f}=e,d=f==="channelsLast",h=u*l*c,g=m*p,x=[e.batchSize,h,g],b=!0,w=!1,C=[];if(s!=null){let Z=dC(s.shape,d);Z!=null&&(s=it({inputs:{x:s},backend:n,attrs:{shape:Z}}),C.push(s))}if(o!=null){let Z=dC(o.shape,d);Z!=null&&(o=it({inputs:{x:o},backend:n,attrs:{shape:Z}}),C.push(o))}let N=it({inputs:{x:t},backend:n,attrs:{shape:[1,h,y.sizeFromShape(t.shape)/h]}});C.push(N);let E=new fC(x,e),A=[r.shape,[e.padInfo.top,e.padInfo.left],[e.strideHeight,e.strideWidth],[e.dilationHeight,e.dilationWidth],[e.inChannels],[e.filterWidth*e.inChannels],[e.outWidth]],$=n.runWebGLProgram(E,[r],"float32",A),F=it({inputs:{x:$},backend:n,attrs:{shape:x}});C.push($),C.push(F);let P=o!=null,V=s!=null,G=a==="leakyrelu",W=a?Il(a,!0):null,q=new Td(d?F.shape:N.shape,d?N.shape:F.shape,d?[e.batchSize,g,e.outChannels]:[e.batchSize,e.outChannels,g],b,w,P,W,V,G),H=d?[F,N]:[N,F];if(o&&H.push(o),V&&H.push(s),G){let Z=n.makeTensorInfo([],"float32",y.createScalarValue(i,"float32"));H.push(Z),C.push(Z)}let j=n.runWebGLProgram(q,H,"float32"),Y=it({inputs:{x:j},backend:n,attrs:{shape:e.outShape}});C.push(j);for(let Z of C)n.disposeIntermediateTensorInfo(Z);return Y}function hrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dataFormat:u,dilations:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,s.shape,i,l,a,c,!1,p),f;if(m.filterHeight===1&&m.filterWidth===1&&m.dilationHeight===1&&m.dilationWidth===1&&m.strideHeight===1&&m.strideWidth===1&&(m.padInfo.type==="SAME"||m.padInfo.type==="VALID"))f=hC({x:o,filter:s,convInfo:m,backend:e});else if(m.strideWidth<=2&&p==="channelsLast"&&M().getBool("WEBGL_EXP_CONV")){let h=new _d(m),g=[[m.padInfo.top,m.padInfo.left],[m.strideHeight,m.strideWidth],[m.dilationHeight,m.dilationWidth],[m.inHeight,m.inWidth]];f=e.runWebGLProgram(h,[o,s],"float32",g)}else if(M().getBool("WEBGL_CONV_IM2COL"))f=gC({x:o,filter:s,convInfo:m,backend:e});else{let h=new Ed(m);f=e.runWebGLProgram(h,[o,s],"float32")}let d=it({inputs:{x:f},backend:e,attrs:{shape:m.outShape}});return e.disposeIntermediateTensorInfo(f),d}var gz={kernelName:jo,backendName:"webgl",kernelFunc:hrt};var xC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.dataFormat==="channelsLast";this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -2699,7 +2699,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},xC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat==="channelsLast",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=` + `}},yC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=t.dataFormat==="channelsLast",a=e-1-t.padInfo.top,u=n-1-t.padInfo.left,l=i?1:2,c=i?2:3,p=i?3:1;this.userCode=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -2752,7 +2752,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},yC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=` + `}},bC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.padInfo.front,i=t.padInfo.top,a=t.padInfo.left;this.userCode=` void main() { ivec5 coords = getOutputCoords(); int wF = coords.x; @@ -2794,7 +2794,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},bC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=` + `}},wC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterDepth,n=t.filterHeight,o=t.filterWidth,s=t.strideDepth,i=t.strideHeight,a=t.strideWidth,u=e-1-t.padInfo.front,l=n-1-t.padInfo.top,c=o-1-t.padInfo.left;this.userCode=` const ivec3 pads = ivec3(${u}, ${l}, ${c}); void main() { @@ -2851,12 +2851,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}};function lrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=v.convertConv2DDataFormat(u),m=v.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new gC(m);return e.runWebGLProgram(f,[o,s],"float32")}var dz={kernelName:mp,backendName:"webgl",kernelFunc:lrt};function urt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=v.convertConv2DDataFormat(l),m=v.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],"float32")}var hz={kernelName:jo,backendName:"webgl",kernelFunc:urt};function crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new pC(l);return e.runWebGLProgram(c,[o,s],"float32")}var gz={kernelName:Al,backendName:"webgl",kernelFunc:crt};function prt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=v.computeConv3DInfo(o.shape,u,i,1,a),c=new yC(l);return e.runWebGLProgram(c,[o,s],"float32")}var xz={kernelName:fp,backendName:"webgl",kernelFunc:prt};function mrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=v.computeConv3DInfo(u,s.shape,a,1,i),c=new bC(l);return e.runWebGLProgram(c,[o,s],"float32")}var yz={kernelName:dp,backendName:"webgl",kernelFunc:mrt};var frt=Po+` + `}};function grt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,dataFormat:u,dimRoundingMode:l,filterShape:c}=n,p=S.convertConv2DDataFormat(u),m=S.computeConv2DInfo(o.shape,c,i,1,a,l,!1,p),f=new xC(m);return e.runWebGLProgram(f,[o,s],"float32")}var xz={kernelName:fp,backendName:"webgl",kernelFunc:grt};function xrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{inputShape:i,strides:a,pad:u,dataFormat:l,dimRoundingMode:c}=n,p=S.convertConv2DDataFormat(l),m=S.computeConv2DInfo(i,s.shape,a,1,u,c,!1,p),f=new yC(m);return e.runWebGLProgram(f,[o,s],"float32")}var yz={kernelName:Xo,backendName:"webgl",kernelFunc:xrt};function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeConv3DInfo(o.shape,s.shape,i,u,a),c=new mC(l);return e.runWebGLProgram(c,[o,s],"float32")}var bz={kernelName:Rl,backendName:"webgl",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,pad:a,filterShape:u}=n,l=S.computeConv3DInfo(o.shape,u,i,1,a),c=new bC(l);return e.runWebGLProgram(c,[o,s],"float32")}var wz={kernelName:dp,backendName:"webgl",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{pad:i,strides:a,inputShape:u}=n,l=S.computeConv3DInfo(u,s.shape,a,1,i),c=new wC(l);return e.runWebGLProgram(c,[o,s],"float32")}var Cz={kernelName:hp,backendName:"webgl",kernelFunc:wrt};var Crt=Lo+` return cos(x); -`,drt=Ct({opSnippet:frt}),bz={kernelName:Xo,backendName:"webgl",kernelFunc:drt};var hrt=` +`,Irt=Ct({opSnippet:Crt}),Iz={kernelName:Yo,backendName:"webgl",kernelFunc:Irt};var vrt=` float e2x = exp(-x); return (e2x + 1.0 / e2x) / 2.0; -`,grt=Ct({opSnippet:hrt}),wz={kernelName:Yo,backendName:"webgl",kernelFunc:grt};var wC=class{constructor(t,e,n,o,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o==="bilinear"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` +`,Srt=Ct({opSnippet:vrt}),vz={kernelName:Zo,backendName:"webgl",kernelFunc:Srt};var CC=class{constructor(t,e,n,o,s){this.variableNames=["Image","Boxes","BoxInd"],this.outputShape=[];let[i,a,u,l]=t,[c]=e,[p,m]=n;this.outputShape=[c,p,m,l];let f=o==="bilinear"?1:0,[d,h]=[`${a-1}.0`,`${u-1}.0`],[g,x,b]=p>1?[`${(a-1)/(p-1)}`,"(y2-y1) * height_ratio",`y1*${d} + float(y)*(height_scale)`]:["0.0","0.0",`0.5 * (y1+y2) * ${d}`],[w,C,N]=m>1?[`${(u-1)/(m-1)}`,"(x2-x1) * width_ratio",`x1*${h} + float(x)*(width_scale)`]:["0.0","0.0",`0.5 * (x1+x2) * ${h}`];this.userCode=` const float height_ratio = float(${g}); const float width_ratio = float(${w}); void main() { @@ -2917,20 +2917,20 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN setOutput(newValue); } } - `}};var xrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new wC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},Cz={kernelName:da,backendName:"webgl",kernelFunc:xrt};var qc;(function(r){r.Prod="*",r.Sum="+"})(qc||(qc={}));var ng=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,i=this.op===qc.Prod?"1.0":"0.0",a=n?i:`getX(${Iz(s,"coords",this.op)})`,u=this.outputShape[this.outputShape.length-1],l="",c="";n?(l=o?`end != ${u-1}`:"end != 0",c=o?"end + 1":"end - 1"):(l=o?`end + pow2 < ${u}`:"end >= pow2",c=o?"end + pow2":"end - pow2"),this.userCode=` + `}};var Nrt=r=>{let{inputs:t,backend:e,attrs:n}=r,{image:o,boxes:s,boxInd:i}=t,{cropSize:a,method:u,extrapolationValue:l}=n,c=new CC(o.shape,s.shape,a,u,l);return e.runWebGLProgram(c,[o,s,i],"float32")},Sz={kernelName:ba,backendName:"webgl",kernelFunc:Nrt};var Kc;(function(r){r.Prod="*",r.Sum="+"})(Kc||(Kc={}));var og=class{constructor(t,e,n,o){this.op=t,this.outputShape=e,this.variableNames=["x"],this.customUniforms=[{name:"index",type:"float"}];let s=this.outputShape.length,i=this.op===Kc.Prod?"1.0":"0.0",a=n?i:`getX(${Nz(s,"coords",this.op)})`,u=this.outputShape[this.outputShape.length-1],l="",c="";n?(l=o?`end != ${u-1}`:"end != 0",c=o?"end + 1":"end - 1"):(l=o?`end + pow2 < ${u}`:"end >= pow2",c=o?"end + pow2":"end - pow2"),this.userCode=` void main() { - ${zt(s)} coords = getOutputCoords(); - int end = ${Sz(s,"coords",this.op)}; + ${Bt(s)} coords = getOutputCoords(); + int end = ${Tz(s,"coords",this.op)}; float val = ${a}; int pow2 = int(pow(2.0, index)); if (${l}) { int idx = ${c}; - ${Sz(s,"coords",this.op)} = idx; - val ${this.op}= getX(${Iz(s,"coords",this.op)}); + ${Tz(s,"coords",this.op)} = idx; + val ${this.op}= getX(${Nz(s,"coords",this.op)}); } setOutput(val); } - `}};function Iz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Sz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function CC(r,t,e,n,o,s){let i=t.shape.length,a=v.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=v.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=tr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new ng(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new ng(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=v.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function yrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Prod,o,e,s,i,a)}var vz={kernelName:fa,backendName:"webgl",kernelFunc:yrt};function brt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return CC(qc.Sum,o,e,s,i,a)}var Nz={kernelName:Zo,backendName:"webgl",kernelFunc:brt};function wrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Lw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=pL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var Tz={kernelName:hp,backendName:"webgl",kernelFunc:wrt};var IC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` + `}};function Nz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.x, ${t}.y`;if(r===3)return`${t}.x, ${t}.y, ${t}.z`;if(r===4)return`${t}.x, ${t}.y, ${t}.z, ${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function Tz(r,t,e){if(r===1)return`${t}`;if(r===2)return`${t}.y`;if(r===3)return`${t}.z`;if(r===4)return`${t}.w`;throw new Error(`Cumulative ${e} for rank ${r} is not yet supported`)}function IC(r,t,e,n,o,s){let i=t.shape.length,a=S.getAxesPermutation([n],i),u=t;a!=null&&(u=Oe({inputs:{x:t},backend:e,attrs:{perm:a}}));let l=S.getInnerMostAxes(1,i)[0];if(l!==i-1)throw new Error(`WebGL cumprod shader expects an inner-most axis=${t.shape.length-1} but got axis=${n}`);let c=u.shape[l],p=rr({inputs:{x:u},backend:e});for(let m=0;m<=Math.ceil(Math.log2(c))-1;m++){let f=new og(r,u.shape,!1,s),d=[[m]],h=p;p=e.runWebGLProgram(f,[p],p.dtype,d),e.disposeIntermediateTensorInfo(h)}if(o){let m=new og(r,u.shape,o,s),f=p;p=e.runWebGLProgram(m,[p],p.dtype),e.disposeIntermediateTensorInfo(f)}if(a!=null){let m=S.getUndoAxesPermutation(a),f=Oe({inputs:{x:p},backend:e,attrs:{perm:m}});return e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(u),f}return p}function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return IC(Kc.Prod,o,e,s,i,a)}var kz={kernelName:ya,backendName:"webgl",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n;return IC(Kc.Sum,o,e,s,i,a)}var Ez={kernelName:Jo,backendName:"webgl",kernelFunc:krt};function Ert(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,weights:s}=t,{size:i,binaryOutput:a}=n;if(o.shape.length===1){let u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=Mw(u,l,s.dtype,s.shape,i);return e.makeTensorInfo([i],s.dtype,c)}else if(o.shape.length===2){let u=e.bufferSync(o),l=e.bufferSync(s),c=dL(u,l,i,a);return e.makeTensorInfo(c.shape,s.dtype,c.values)}throw new Error(`Error in denseBincount: input must be at most rank 2, but got rank${o.shape.length}.`)}var _z={kernelName:gp,backendName:"webgl",kernelFunc:Ert};var vC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=[],this.outputShape=t,this.blockSize=e,this.dataFormat=n,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -2949,7 +2949,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float result = ${this.getInputSamplingString()}; setOutput(result); } - `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function Crt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=new IC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var kz={kernelName:ha,backendName:"webgl",kernelFunc:Crt};var Ed=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l="",c="";n&&(o?l=`float activation(float a) { + `}getHeightCoordString(){return this.dataFormat==="NHWC"?"coords[1]":"coords[2]"}getWidthCoordString(){return this.dataFormat==="NHWC"?"coords[2]":"coords[3]"}getDepthCoordString(){return this.dataFormat==="NHWC"?"coords[3]":"coords[1]"}getOutputDepthSize(){return this.dataFormat==="NHWC"?this.outputShape[3]:this.outputShape[1]}getInputSamplingString(){return this.dataFormat==="NHWC"?"getX(b, in_h, in_w, in_d)":"getX(b, in_d, in_h, in_w)"}};function _rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=new vC(d,s,i);return e.runWebGLProgram(h,[o],o.dtype)}var Az={kernelName:wa,backendName:"webgl",kernelFunc:_rt};var Ad=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.filterHeight,a=t.filterWidth,u=t.outChannels/t.inChannels,l="",c="";n&&(o?l=`float activation(float a) { float b = getPreluActivationWeightsAtOutCoords(); ${n} }`:s?l=`float activation(float a) { @@ -3002,7 +3002,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${c} setOutput(result); } - `}};var _d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=` + `}};var $d=class{constructor(t,e=!1,n=null,o=!1,s=!1){this.variableNames=["x","W"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"pads",type:"ivec2"},{name:"strides",type:"ivec2"},{name:"dilations",type:"ivec2"},{name:"inDims",type:"ivec2"}],this.outputShape=t.outShape,this.enableShapeUniforms=we(this.outputShape.length);let i=t.outChannels/t.inChannels,a=t.padInfo.left,u=t.strideWidth,l=t.dilationWidth,c=t.filterHeight,p=t.filterWidth,m=p,f=` int xR; int xC; int xCOffset; vec4 wTexel; vec4 previous; vec4 final;`;for(let x=0;x`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=v.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;z().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new _d(p):m=new Ed(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],"float32",f)}var Ez={kernelName:Jo,backendName:"webgl",kernelFunc:Irt};var SC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=` + `}};function Art(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u,dimRoundingMode:l}=n,c=u;c==null&&(c=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(i,c),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${i} and dilations '${c}'`);let p=S.computeConv2DInfo(o.shape,s.shape,i,c,a,l,!0),m;M().getBool("WEBGL_PACK_DEPTHWISECONV")&&p.strideWidth<=2&&p.outChannels/p.inChannels===1?m=new $d(p):m=new Ad(p);let f=[[p.padInfo.top,p.padInfo.left],[p.strideHeight,p.strideWidth],[p.dilationHeight,p.dilationWidth],[p.inHeight,p.inWidth]];return e.runWebGLProgram(m,[o,s],"float32",f)}var $z={kernelName:Qo,backendName:"webgl",kernelFunc:Art};var SC=class{constructor(t){this.variableNames=["x","dy"],this.outputShape=t.filterShape;let e=t.strideHeight,n=t.strideWidth,o=t.padInfo.top,s=t.padInfo.left,i=t.outChannels/t.inChannels;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int wR = coords.x; @@ -3226,7 +3226,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},vC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=` + `}},NC=class{constructor(t){this.variableNames=["dy","W"],this.outputShape=t.inShape;let e=t.filterHeight,n=t.filterWidth,o=t.strideHeight,s=t.strideWidth,i=e-1-t.padInfo.top,a=n-1-t.padInfo.left,u=t.outChannels/t.inChannels;this.userCode=` const ivec2 pads = ivec2(${i}, ${a}); void main() { @@ -3271,13 +3271,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}};function Srt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=v.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],"float32")}var _z={kernelName:gp,backendName:"webgl",kernelFunc:Srt};function vrt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=v.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new vC(p);return e.runWebGLProgram(m,[o,s],"float32")}var Az={kernelName:xp,backendName:"webgl",kernelFunc:vrt};var NC=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` + `}};function $rt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,dy:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,filterShape:c}=n,p=S.computeConv2DInfo(o.shape,c,i,a,u,l,!0),m=new SC(p);return e.runWebGLProgram(m,[o,s],"float32")}var Dz={kernelName:xp,backendName:"webgl",kernelFunc:$rt};function Drt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,filter:s}=t,{strides:i,dilations:a,pad:u,dimRoundingMode:l,inputShape:c}=n,p=S.computeConv2DInfo(c,s.shape,i,a,u,l,!0),m=new NC(p);return e.runWebGLProgram(m,[o,s],"float32")}var Rz={kernelName:yp,backendName:"webgl",kernelFunc:Drt};var TC=class{constructor(t){this.variableNames=["X"],this.outputShape=[t,t],this.userCode=` void main() { ivec2 coords = getOutputCoords(); float val = coords[0] == coords[1] ? getX(coords[0]) : 0.0; setOutput(val); } - `}};function Nrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new NC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var $z={kernelName:yp,backendName:"webgl",kernelFunc:Nrt};var TC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` + `}};function Rrt(r){let{inputs:t,backend:e}=r,{x:n}=t,o=[...n.shape,...n.shape],s=y.sizeFromShape(n.shape),i=it({inputs:{x:n},backend:e,attrs:{shape:[s]}}),a=new TC(s),u=e.runWebGLProgram(a,[i],i.dtype),l=it({inputs:{x:u},backend:e,attrs:{shape:o}});return e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(u),l}var Fz={kernelName:bp,backendName:"webgl",kernelFunc:Rrt};var kC=class{constructor(t){this.variableNames=["x","W"],this.outputShape=t.outShape;let{inHeight:e,inWidth:n,padInfo:o,strideHeight:s,strideWidth:i,filterHeight:a,filterWidth:u,dilationHeight:l,dilationWidth:c}=t,{top:p,left:m}=o;this.userCode=` const ivec2 strides = ivec2(${s}, ${i}); const ivec2 pads = ivec2(${p}, ${m}); const float neg_infinity = -3.4e38; @@ -3315,7 +3315,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float result = curVal; setOutput(result); } - `}};function Trt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=v.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new TC(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Dz={kernelName:$l,backendName:"webgl",kernelFunc:Trt};function krt(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=v.decodeEinsumEquation(o,s.length);v.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=v.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Wc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Rz={kernelName:bp,backendName:"webgl",kernelFunc:krt};var Ert="return (x >= 0.0) ? x : (exp(x) - 1.0);",_rt=` + `}};function Frt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s}=t,{strides:i,pad:a,dilations:u}=n,l=S.computeDilation2DInfo(o.shape,s.shape,i,a,"NHWC",u),c,p=new kC(l);c=e.runWebGLProgram(p,[o,s],"float32");let m=it({inputs:{x:c},backend:e,attrs:{shape:l.outShape}});return e.disposeIntermediateTensorInfo(c),m}var Oz={kernelName:Fl,backendName:"webgl",kernelFunc:Frt};function Ort(r){let{inputs:t,backend:e,attrs:n}=r,{equation:o}=n,s=t,{allDims:i,summedDims:a,idDims:u}=S.decodeEinsumEquation(o,s.length);S.checkEinsumDimSizes(i.length,u,s);let{path:l,steps:c}=S.getEinsumComputePath(a,u),p=c.length,m=null,f=i.length,d=[];for(let h=0;h=0&&(m=Uc({inputs:{x:m},backend:e,attrs:{axis:l[h]-(i.length-f),keepDims:!1}}),d.push(m)),f--)}for(let h of d)h!==m&&e.disposeIntermediateTensorInfo(h);return m}var Pz={kernelName:wp,backendName:"webgl",kernelFunc:Ort};var Prt="return (x >= 0.0) ? x : (exp(x) - 1.0);",Lrt=` vec4 result; result.r = (x.r >= 0.0) ? x.r : (exp(x.r) - 1.0); @@ -3324,29 +3324,29 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN result.a = (x.a >= 0.0) ? x.a : (exp(x.a) - 1.0); return result; -`,Art=Ct({opSnippet:Ert,packedOpSnippet:_rt}),Fz={kernelName:ts,backendName:"webgl",kernelFunc:Art};var $rt="return (b >= 1.0) ? a : a * (b + 1.0);",Drt=` +`,Mrt=Ct({opSnippet:Prt,packedOpSnippet:Lrt}),Lz={kernelName:es,backendName:"webgl",kernelFunc:Mrt};var zrt="return (b >= 1.0) ? a : a * (b + 1.0);",Brt=` vec4 bGTEZero = vec4(greaterThanEqual(b, vec4(0.))); return (bGTEZero * a) + ((vec4(1.0) - bGTEZero) * (a * (b + vec4(1.0)))); -`,Rrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=z().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Oo(Drt,n.shape,o.shape):new io($rt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Oz={kernelName:wp,backendName:"webgl",kernelFunc:Rrt};var Frt=` +`,Vrt=r=>{let{inputs:t,backend:e}=r,{dy:n,y:o}=t,s=M().getBool("WEBGL_PACK_BINARY_OPERATIONS")?new Po(Brt,n.shape,o.shape):new lo(zrt,n.shape,o.shape);return e.runWebGLProgram(s,[n,o],n.dtype)},Mz={kernelName:Cp,backendName:"webgl",kernelFunc:Vrt};var Grt=` return vec4(equal(a, b)); -`,Ort="return float(a == b);",Prt=le({opSnippet:Ort,packedOpSnippet:Frt,dtype:"bool",cpuKernelImpl:hL}),Pz={kernelName:xa,backendName:"webgl",kernelFunc:Prt};var Lrt=` +`,Wrt="return float(a == b);",Urt=le({opSnippet:Wrt,packedOpSnippet:Grt,dtype:"bool",cpuKernelImpl:yL}),zz={kernelName:Ia,backendName:"webgl",kernelFunc:Urt};var Hrt=` // Error function is calculated approximately with elementary function. // See "Handbook of Mathematical Functions with Formulas, // Graphs, and Mathematical Tables", Abramowitz and Stegun. - float p = ${v.ERF_P}; - float a1 = ${v.ERF_A1}; - float a2 = ${v.ERF_A2}; - float a3 = ${v.ERF_A3}; - float a4 = ${v.ERF_A4}; - float a5 = ${v.ERF_A5}; + float p = ${S.ERF_P}; + float a1 = ${S.ERF_A1}; + float a2 = ${S.ERF_A2}; + float a3 = ${S.ERF_A3}; + float a4 = ${S.ERF_A4}; + float a5 = ${S.ERF_A5}; float sign = sign(x); x = abs(x); float t = 1.0 / (1.0 + p * x); return sign * (1.0 - (((((a5*t + a4)*t) + a3)*t + a2)*t + a1)*t*exp(-x*x)); -`,Mrt=Ct({opSnippet:Lrt}),Lz={kernelName:ga,backendName:"webgl",kernelFunc:Mrt};var zrt=Po+` +`,qrt=Ct({opSnippet:Hrt}),Bz={kernelName:Ca,backendName:"webgl",kernelFunc:qrt};var Krt=Lo+` return exp(x); -`,Brt=` +`,jrt=` vec4 result = exp(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : result.r; @@ -3355,7 +3355,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN result.a = isNaN.a ? x.a : result.a; return result; -`,bk=Ct({opSnippet:zrt,packedOpSnippet:Brt,cpuKernelImpl:gL,dtype:"float32"}),Mz={kernelName:es,backendName:"webgl",kernelFunc:bk};function kC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var zz={kernelName:ui,backendName:"webgl",kernelFunc:kC};var Bz="return exp(x) - 1.0;",Vrt=Ct({opSnippet:Bz,packedOpSnippet:Bz,cpuKernelImpl:xL}),Vz={kernelName:ya,backendName:"webgl",kernelFunc:Vrt};var og=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` +`,Ik=Ct({opSnippet:Krt,packedOpSnippet:jrt,cpuKernelImpl:bL,dtype:"float32"}),Vz={kernelName:rs,backendName:"webgl",kernelFunc:Ik};function EC(r){let{inputs:t,attrs:e,backend:n}=r,{dim:o}=e,{input:s}=t,i=s.shape.length,a=s.shape.slice(),u=o;return o<0&&(y.assert(-(i+1)<=o,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+o+1),a.splice(u,0,1),it({inputs:{x:s},backend:n,attrs:{shape:a}})}var Gz={kernelName:mi,backendName:"webgl",kernelFunc:EC};var Wz="return exp(x) - 1.0;",Xrt=Ct({opSnippet:Wz,packedOpSnippet:Wz,cpuKernelImpl:wL}),Uz={kernelName:va,backendName:"webgl",kernelFunc:Xrt};var sg=class{constructor(t,e,n){this.variableNames=["real","imag"];let o=e[1];this.outputShape=e;let s=n?`2.0 * ${Math.PI}`:`-2.0 * ${Math.PI}`,i=n?`${o}.0`:"1.0",a;if(t==="real")a="return real * expR - imag * expI;";else if(t==="imag")a="return real * expI + imag * expR;";else throw new Error(`FFT component must be either "real" or "imag", got ${t}.`);this.userCode=` const float exponentMultiplier = ${s}; float unaryOpComplex(float real, float expR, float imag, float expI) { @@ -3388,12 +3388,12 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ivec2 coords = getOutputCoords(); setOutput(mulMatDFT(coords[0], coords[1])); } - `}};function EC(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new og("real",u,t),c=new og("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=En({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Grt(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!1,e)}var Gz={kernelName:Cp,backendName:"webgl",kernelFunc:Grt};var _C=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` + `}};function _C(r,t,e){let n=e.texData.get(r.dataId),o=y.sizeFromShape(r.shape),s=r.shape[r.shape.length-1],i=o/s,a=it({inputs:{x:r},backend:e,attrs:{shape:[i,s]}}),u=a.shape,l=new sg("real",u,t),c=new sg("imag",u,t),p=[{dataId:n.complexTensorInfos.real.dataId,dtype:n.complexTensorInfos.real.dtype,shape:u},{dataId:n.complexTensorInfos.imag.dataId,dtype:n.complexTensorInfos.imag.dtype,shape:u}],m=e.runWebGLProgram(l,p,"float32"),f=e.runWebGLProgram(c,p,"float32"),d=$n({inputs:{real:m,imag:f},backend:e});e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f);let h=it({inputs:{x:d},backend:e,attrs:{shape:r.shape}});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(d),h}function Yrt(r){let{inputs:t,backend:e}=r,{input:n}=t;return _C(n,!1,e)}var Hz={kernelName:Ip,backendName:"webgl",kernelFunc:Yrt};var AC=class{constructor(t,e){this.outputShape=[],this.customUniforms=[{name:"value",type:"float"}],this.variableNames=["x"],this.outputShape=t,this.userCode=` void main() { // Input can be obtained from uniform value. setOutput(value); } - `}};function Cl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s==="string"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new _C(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var Wz={kernelName:Dl,backendName:"webgl",kernelFunc:Cl};var AC=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` + `}};function Sl(r){let{backend:t,attrs:e}=r,{shape:n,value:o}=e,{dtype:s}=e;if(s=s||y.inferDtype(o),s==="string"){let i=y.getArrayFromDType(s,y.sizeFromShape(n));return i.fill(o),t.makeTensorInfo(n,s,i)}else{let i=new AC(n,o),a=[[o]];return t.runWebGLProgram(i,[],s,a)}}var qz={kernelName:Ol,backendName:"webgl",kernelFunc:Sl};var $C=class{constructor(t){this.variableNames=["Image"],this.outputShape=[];let e=t[2];this.outputShape=t,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int x = coords[2]; @@ -3407,7 +3407,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(outputValue); } - `}};var Uz={kernelName:ba,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new AC(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var Hz="return floor(x);",Wrt=Ct({opSnippet:Hz,packedOpSnippet:Hz,cpuKernelImpl:yL}),qz={kernelName:rs,backendName:"webgl",kernelFunc:Wrt};var Urt=` + `}};var Kz={kernelName:Sa,backendName:"webgl",kernelFunc:({inputs:r,backend:t})=>{let{image:e}=r,n=t,o=new $C(e.shape);return n.runWebGLProgram(o,[e],e.dtype)}};var jz="return floor(x);",Zrt=Ct({opSnippet:jz,packedOpSnippet:jz,cpuKernelImpl:CL}),Xz={kernelName:ns,backendName:"webgl",kernelFunc:Zrt};var Jrt=` float s = sign(a) * sign(b); int ia = round(a); int ib = round(b); @@ -3417,7 +3417,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } else { return NAN; } -`,Hrt=` +`,Qrt=` ivec4 ia = round(a); ivec4 ib = round(b); bvec4 cond = notEqual(ib, ivec4(0)); @@ -3438,7 +3438,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN result[3] = idiv(ia[3], ib[3], s[3]); } return vec4(result); -`,qrt=le({opSnippet:Urt,packedOpSnippet:Hrt,dtype:"int32"}),Kz={kernelName:ns,backendName:"webgl",kernelFunc:qrt};var $C=class{constructor(t){this.variableNames=["A"];let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=` +`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,dtype:"int32"}),Yz={kernelName:os,backendName:"webgl",kernelFunc:tnt};var DC=class{constructor(t){this.variableNames=["A"];let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3460,7 +3460,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN setOutput(floor(value * 255.0 + 0.5)); } - `}};var DC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=` + `}};var RC=class{constructor(t){this.variableNames=["A"],this.packedInputs=!1,this.packedOutput=!0;let e=Ge(),[n,o]=t;this.outputShape=t,this.userCode=` void main() { ivec3 coords = getOutputCoords(); int texR = coords[0]; @@ -3494,7 +3494,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${e.output} = result; } - `}};var jz={kernelName:Yd,backendName:"webgl",kernelFunc:Krt},Ad,wk=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function Krt(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=z().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Ad==null||h!==wk)&&(wk=h,Ad=document.createElement("canvas").getContext("2d",{willReadFrequently:wk})),Ad.canvas.width=u,Ad.canvas.height=l,Ad.drawImage(o,0,0,u,l),o=Ad.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=jr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=z().getBool("WEBGL_PACK")?new DC(p):new $C(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function jrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=v.convertConv2DDataFormat(c),g=v.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f==="leakyrelu",_=()=>{let $=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=dC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&z().getBool("WEBGL_EXP_CONV")){let $=f?bl(f,!0):null,F=new kd(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=_();x=e.runWebGLProgram(F,V,"float32",P)}else if(z().getBool("WEBGL_CONV_IM2COL"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?bl(f,!1):null,F=new Td(g,w,$,C,N),P=_();x=e.runWebGLProgram(F,P,"float32")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Xz={kernelName:Ii,backendName:"webgl",kernelFunc:jrt};function Xrt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(v.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=v.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=z().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?bl(m,x):null,w=[o,s],C=i!=null,N=a!=null,_=m==="leakyrelu";if(C&&w.push(i),N&&w.push(a),_){let P=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(P),d.push(P)}let A;x?A=new _d(g,C,b,N,_):A=new Ed(g,C,b,N,_);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Yz={kernelName:Si,backendName:"webgl",kernelFunc:Xrt};var RC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=zt(n.length),i=` + `}};var Zz={kernelName:Zd,backendName:"webgl",kernelFunc:ent},Dd,vk=M().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");function ent(r){let{inputs:t,backend:e,attrs:n}=r,{pixels:o}=t,{numChannels:s}=n,i=typeof HTMLVideoElement!="undefined"&&o instanceof HTMLVideoElement,a=typeof HTMLImageElement!="undefined"&&o instanceof HTMLImageElement,[u,l]=i?[o.videoWidth,o.videoHeight]:[o.width,o.height],c=[l,u],p=[l,u,s];if(a||i){let h=M().getBool("CANVAS2D_WILL_READ_FREQUENTLY_FOR_GPU");(Dd==null||h!==vk)&&(vk=h,Dd=document.createElement("canvas").getContext("2d",{willReadFrequently:vk})),Dd.canvas.width=u,Dd.canvas.height=l,Dd.drawImage(o,0,0,u,l),o=Dd.canvas}let m=e.makeTensorInfo(c,"int32");e.texData.get(m.dataId).usage=Yr.PIXELS,e.gpgpu.uploadPixelDataToTexture(e.getTexture(m.dataId),o);let f=M().getBool("WEBGL_PACK")?new RC(p):new DC(p),d=e.runWebGLProgram(f,[m],"int32");return e.disposeData(m.dataId),d}function rnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dataFormat:c,dilations:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=n,h=S.convertConv2DDataFormat(c),g=S.computeConv2DInfo(o.shape,s.shape,u,p,l,m,!1,h),x,b=[],w=i!=null,C=a!=null,N=f==="leakyrelu",E=()=>{let $=[o,s],F=(P,V)=>{if(V==="NCHW"&&P.shape.length===1&&P.shape[0]!==1){let G=it({inputs:{x:P},backend:e,attrs:{shape:[P.shape[0],1,1]}});return b.push(G),G}return P};if(w&&$.push(F(i,c)),C&&$.push(F(a,c)),N){let P=e.makeTensorInfo([],"float32",y.createScalarValue(d,"float32"));$.push(P),b.push(P)}return $};if(g.filterHeight===1&&g.filterWidth===1&&g.dilationHeight===1&&g.dilationWidth===1&&g.strideHeight===1&&g.strideWidth===1&&(g.padInfo.type==="SAME"||g.padInfo.type==="VALID"))x=hC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else if(g.strideWidth<=2&&h==="channelsLast"&&M().getBool("WEBGL_EXP_CONV")){let $=f?Il(f,!0):null,F=new _d(g,w,$,C,N),P=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],V=E();x=e.runWebGLProgram(F,V,"float32",P)}else if(M().getBool("WEBGL_CONV_IM2COL"))x=gC({x:o,filter:s,convInfo:g,backend:e,bias:i,activation:f,preluActivationWeights:a,leakyreluAlpha:d});else{let $=f?Il(f,!1):null,F=new Ed(g,w,$,C,N),P=E();x=e.runWebGLProgram(F,P,"float32")}let A=it({inputs:{x},backend:e,attrs:{shape:g.outShape}});return b.push(x),b.forEach($=>e.disposeIntermediateTensorInfo($)),A}var Jz={kernelName:Ni,backendName:"webgl",kernelFunc:rnt};function nnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dimRoundingMode:p,activation:m,leakyreluAlpha:f}=n,d=[],h=c;h==null&&(h=[1,1]),y.assert(S.eitherStridesOrDilationsAreOne(u,h),()=>`Error in depthwiseConv2d: Either strides or dilations must be 1. Got strides ${u} and dilations '${h}'`);let g=S.computeConv2DInfo(o.shape,s.shape,u,h,l,p,!0),x=M().getBool("WEBGL_PACK_DEPTHWISECONV")&&g.strideWidth<=2&&g.outChannels/g.inChannels===1,b=m?Il(m,x):null,w=[o,s],C=i!=null,N=a!=null,E=m==="leakyrelu";if(C&&w.push(i),N&&w.push(a),E){let P=e.makeTensorInfo([],"float32",y.createScalarValue(f,"float32"));w.push(P),d.push(P)}let A;x?A=new $d(g,C,b,N,E):A=new Ad(g,C,b,N,E);let $=[[g.padInfo.top,g.padInfo.left],[g.strideHeight,g.strideWidth],[g.dilationHeight,g.dilationWidth],[g.inHeight,g.inWidth]],F=e.runWebGLProgram(A,w,"float32",$);return d.forEach(P=>e.disposeIntermediateTensorInfo(P)),F}var Qz={kernelName:Ti,backendName:"webgl",kernelFunc:nnt};var FC=class{constructor(t,e,n,o){this.sliceDim=t,this.strides=e,this.paramsShape=o,this.variableNames=["x","indices"],this.outputShape=n;let s=Bt(n.length),i=` int index;`;for(let a=0;a= 0) && (index < ${t[2]}) ? 1.0 : 0.0; setOutput(inBounds * getA(${o})); } - `}};function Zrt(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),C=wL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new FC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var Jz={kernelName:ci,backendName:"webgl",kernelFunc:Ck};var Jrt="return float(a > b);",Qrt=` + `}};function snt(r,t){let e=["resRC.x","resRC.y","resRC.z","resRC.w"],n=[];for(let o=0;o=0,()=>`GatherV2: the index value ${N} is not in [0, ${w-1}]`)}}let l=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),c=y.sizeFromShape(s.shape),p=[],m=it({inputs:{x:o},backend:e,attrs:{shape:[l.batchSize,l.outerSize,l.dimSize,l.sliceSize]}}),f=it({inputs:{x:s},backend:e,attrs:{shape:[l.batchSize,c/l.batchSize]}});p.push(m),p.push(f);let d=[l.batchSize,l.outerSize,c/l.batchSize,l.sliceSize];if(e.shouldExecuteOnCPU([o,s])||o.dtype==="string"){let b=e.bufferSync(f),w=e.bufferSync(m),C=vL(w,b,d);return p.forEach(N=>e.disposeIntermediateTensorInfo(N)),e.makeTensorInfo(l.outputShape,C.dtype,C.values)}let h=new OC(m.shape,d),g=e.runWebGLProgram(h,[m,f],m.dtype);p.push(g);let x=it({inputs:{x:g},backend:e,attrs:{shape:l.outputShape}});return p.forEach(b=>e.disposeIntermediateTensorInfo(b)),x}var e3={kernelName:fi,backendName:"webgl",kernelFunc:Sk};var int="return float(a > b);",ant=` return vec4(greaterThan(a, b)); -`,tnt=le({opSnippet:Jrt,packedOpSnippet:Qrt,cpuKernelImpl:CL,dtype:"bool"}),Qz={kernelName:Ca,backendName:"webgl",kernelFunc:tnt};var ent="return float(a >= b);",rnt=` +`,lnt=le({opSnippet:int,packedOpSnippet:ant,cpuKernelImpl:SL,dtype:"bool"}),r3={kernelName:Ta,backendName:"webgl",kernelFunc:lnt};var unt="return float(a >= b);",cnt=` return vec4(greaterThanEqual(a, b)); -`,nnt=le({opSnippet:ent,packedOpSnippet:rnt,dtype:"bool",cpuKernelImpl:IL}),t3={kernelName:ss,backendName:"webgl",kernelFunc:nnt};function ont(r){let{inputs:t,backend:e}=r,{input:n}=t;return EC(n,!0,e)}var e3={kernelName:Ip,backendName:"webgl",kernelFunc:ont};var snt="return float(!isnan(x) && !isinf(x));",int=Ct({opSnippet:snt,dtype:"bool"}),r3={kernelName:Ia,backendName:"webgl",kernelFunc:int};var ant="return float(isinf(x));",lnt=Ct({opSnippet:ant,dtype:"bool"}),n3={kernelName:Sa,backendName:"webgl",kernelFunc:lnt};var unt="return float(isnan(x));",cnt=Ct({opSnippet:unt,dtype:"bool"}),o3={kernelName:va,backendName:"webgl",kernelFunc:cnt};var pnt="return float(a < b);",mnt=` +`,pnt=le({opSnippet:unt,packedOpSnippet:cnt,dtype:"bool",cpuKernelImpl:NL}),n3={kernelName:is,backendName:"webgl",kernelFunc:pnt};function mnt(r){let{inputs:t,backend:e}=r,{input:n}=t;return _C(n,!0,e)}var o3={kernelName:vp,backendName:"webgl",kernelFunc:mnt};var fnt="return float(!isnan(x) && !isinf(x));",dnt=Ct({opSnippet:fnt,dtype:"bool"}),s3={kernelName:ka,backendName:"webgl",kernelFunc:dnt};var hnt="return float(isinf(x));",gnt=Ct({opSnippet:hnt,dtype:"bool"}),i3={kernelName:Ea,backendName:"webgl",kernelFunc:gnt};var xnt="return float(isnan(x));",ynt=Ct({opSnippet:xnt,dtype:"bool"}),a3={kernelName:as,backendName:"webgl",kernelFunc:ynt};var bnt="return float(a < b);",wnt=` return vec4(lessThan(a, b)); -`,fnt=le({opSnippet:pnt,packedOpSnippet:mnt,cpuKernelImpl:SL,dtype:"bool"}),s3={kernelName:Na,backendName:"webgl",kernelFunc:fnt};var dnt="return float(a <= b);",hnt=` +`,Cnt=le({opSnippet:bnt,packedOpSnippet:wnt,cpuKernelImpl:TL,dtype:"bool"}),l3={kernelName:_a,backendName:"webgl",kernelFunc:Cnt};var Int="return float(a <= b);",vnt=` return vec4(lessThanEqual(a, b)); -`,gnt=le({opSnippet:dnt,packedOpSnippet:hnt,cpuKernelImpl:vL,dtype:"bool"}),i3={kernelName:Ta,backendName:"webgl",kernelFunc:gnt};function xnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=NL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var a3={kernelName:vp,backendName:"webgl",kernelFunc:xnt};var ynt=Po+` +`,Snt=le({opSnippet:Int,packedOpSnippet:vnt,cpuKernelImpl:kL,dtype:"bool"}),u3={kernelName:Aa,backendName:"webgl",kernelFunc:Snt};function Nnt(r){let{backend:t,attrs:e}=r,{start:n,stop:o,num:s}=e,i=EL(n,o,s);return t.makeTensorInfo([i.length],"float32",i)}var c3={kernelName:Np,backendName:"webgl",kernelFunc:Nnt};var Tnt=Lo+` return x < 0.0 ? 0./0. : log(x); -`,bnt=` +`,knt=` vec4 result = log(x); bvec4 isNaN = isnan(x); result.r = isNaN.r ? x.r : (x.r < 0.0 ? 0./0. : result.r); @@ -3534,18 +3534,18 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN result.b = isNaN.b ? x.b : (x.b < 0.0 ? 0./0. : result.b); result.a = isNaN.a ? x.a : (x.a < 0.0 ? 0./0. : result.a); return result; -`,wnt=Ct({opSnippet:ynt,packedOpSnippet:bnt,cpuKernelImpl:TL}),l3={kernelName:as,backendName:"webgl",kernelFunc:wnt};var Cnt=Po+` +`,Ent=Ct({opSnippet:Tnt,packedOpSnippet:knt,cpuKernelImpl:_L}),p3={kernelName:us,backendName:"webgl",kernelFunc:Ent};var _nt=Lo+` return log(1.0 + x); -`,Int=Ct({opSnippet:Cnt}),u3={kernelName:ka,backendName:"webgl",kernelFunc:Int};var Snt="return float(a >= 1.0 && b >= 1.0);",vnt=` +`,Ant=Ct({opSnippet:_nt}),m3={kernelName:$a,backendName:"webgl",kernelFunc:Ant};var $nt="return float(a >= 1.0 && b >= 1.0);",Dnt=` return vec4( vec4(greaterThanEqual(a, vec4(1.0))) * vec4(greaterThanEqual(b, vec4(1.0)))); -`,Nnt=le({opSnippet:Snt,packedOpSnippet:vnt,dtype:"bool"}),c3={kernelName:Ea,backendName:"webgl",kernelFunc:Nnt};var Tnt="return float(!(x >= 1.0));",knt=Ct({opSnippet:Tnt}),p3={kernelName:_a,backendName:"webgl",kernelFunc:knt};var Ent="return float(a >= 1.0 || b >= 1.0);",_nt=` +`,Rnt=le({opSnippet:$nt,packedOpSnippet:Dnt,dtype:"bool"}),f3={kernelName:Da,backendName:"webgl",kernelFunc:Rnt};var Fnt="return float(!(x >= 1.0));",Ont=Ct({opSnippet:Fnt}),d3={kernelName:Ra,backendName:"webgl",kernelFunc:Ont};var Pnt="return float(a >= 1.0 || b >= 1.0);",Lnt=` return min( vec4(greaterThanEqual(a, vec4(1.0))) + vec4(greaterThanEqual(b, vec4(1.0))), vec4(1.0)); -`,Ant=le({opSnippet:Ent,packedOpSnippet:_nt,dtype:"bool"}),m3={kernelName:Aa,backendName:"webgl",kernelFunc:Ant};var OC=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` +`,Mnt=le({opSnippet:Pnt,packedOpSnippet:Lnt,dtype:"bool"}),h3={kernelName:Fa,backendName:"webgl",kernelFunc:Mnt};var PC=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[];let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3564,7 +3564,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN float val = x * ${u}; setOutput(val); } - `}};var PC=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` + `}};var LC=class{constructor(t,e,n,o,s){this.variableNames=["x"],this.outputShape=[],this.packedInputs=!0,this.packedOutput=!0;let i=e,a=t[3]-1;this.outputShape=t;let u,l=`float(${n}) + float(${o}) * sum`;s===.5?u=`inversesqrt(${l})`:s===1?u=`1.0/(${l})`:u=`exp(log(${l}) * float(-${s}));`,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords.x; @@ -3626,7 +3626,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN vec4 result = xAtOutputCoords * ${u}; setOutput(result); } - `}};var $nt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=z().getBool("WEBGL_PACK_NORMALIZATION")?new PC(o.shape,s,i,a,u):new OC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},f3={kernelName:Rl,backendName:"webgl",kernelFunc:$nt};var LC=class{constructor(t,e,n,o,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=` + `}};var znt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{depthRadius:s,bias:i,alpha:a,beta:u}=n,l=M().getBool("WEBGL_PACK_NORMALIZATION")?new LC(o.shape,s,i,a,u):new PC(o.shape,s,i,a,u);return e.runWebGLProgram(l,[o],o.dtype)},g3={kernelName:Pl,backendName:"webgl",kernelFunc:znt};var MC=class{constructor(t,e,n,o,s){this.variableNames=["inputImage","outputImage","dy"],this.outputShape=[],this.outputShape=t,this.depth=t[3],this.depthRadius=e,this.bias=n,this.alpha=o,this.beta=s,this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -3681,16 +3681,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(result); } - `}};var Dnt=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new LC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},d3={kernelName:Np,backendName:"webgl",kernelFunc:Dnt};function h3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,r.dtype,"max",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Ik(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A{let{inputs:t,backend:e,attrs:n}=r,{x:o,y:s,dy:i}=t,{depthRadius:a,bias:u,alpha:l,beta:c}=n,p=new MC(o.shape,a,u,l,c);return e.runWebGLProgram(p,[o,s,i],o.dtype)},x3={kernelName:Tp,backendName:"webgl",kernelFunc:Bnt};function y3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=qn(a,r.dtype,"max",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{reductionIndices:s,keepDims:i}=n,a=o.shape.length,u=y.parseAxisParam(s,o.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=e.shouldExecuteOnCPU([o]),f=o;if(p){if(m){let w=e.texData.get(f.dataId).values,C=new Array(a);for(let A=0;A`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=v.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return tr({inputs:{x:o},backend:e});let p=new ei(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var y3={kernelName:cs,backendName:"webgl",kernelFunc:Pnt};function Lnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=v.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new $u(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var b3={kernelName:Fl,backendName:"webgl",kernelFunc:Lnt};var MC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=` +`,Wnt=le({opSnippet:Vnt,packedOpSnippet:Gnt,cpuKernelImpl:$L}),w3={kernelName:ps,backendName:"webgl",kernelFunc:Wnt};function Unt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t;ri(o,"maxPool");let{filterSize:s,strides:i,pad:a,dimRoundingMode:u}=n,l=1;y.assert(S.eitherStridesOrDilationsAreOne(i,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${i} and dilations '${l}'`);let c=S.computePool2DInfo(o.shape,s,i,l,a,u);if(c.filterWidth===1&&c.filterHeight===1&&y.arraysEqual(c.inShape,c.outShape))return rr({inputs:{x:o},backend:e});let p=new oi(c,"max",!1);return e.runWebGLProgram(p,[o],o.dtype)}var C3={kernelName:ms,backendName:"webgl",kernelFunc:Unt};function Hnt(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{filterSize:s,strides:i,pad:a,dataFormat:u,dimRoundingMode:l}=n,c=[1,1,1],p=S.computePool3DInfo(o.shape,s,i,c,a,l,u),m=new Ru(p,"max",!1);return e.runWebGLProgram(m,[o],o.dtype)}var I3={kernelName:Ll,backendName:"webgl",kernelFunc:Hnt};var zC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideHeight,n=t.strideWidth,o=t.dilationHeight,s=t.effectiveFilterHeight,i=t.effectiveFilterWidth,a=s-1-t.padInfo.top,u=i-1-t.padInfo.left,l=s*i-1;this.userCode=` const ivec2 pads = ivec2(${a}, ${u}); void main() { @@ -3736,7 +3736,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}},zC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=` + `}},BC=class{constructor(t){this.variableNames=["dy","maxPos"],this.outputShape=t.inShape;let e=t.strideDepth,n=t.strideHeight,o=t.strideWidth,s=t.dilationDepth,i=t.dilationHeight,a=t.dilationWidth,u=t.effectiveFilterDepth,l=t.effectiveFilterHeight,c=t.effectiveFilterWidth,p=u-1-t.padInfo.front,m=l-1-t.padInfo.top,f=c-1-t.padInfo.left,d=u*l*c-1;this.userCode=` const ivec3 pads = ivec3(${p}, ${m}, ${f}); void main() { @@ -3800,16 +3800,16 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN } setOutput(dotProd); } - `}};function Mnt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s}=t,i=s,{filterSize:a,strides:u,pad:l,dimRoundingMode:c}=n,p=[1,1,1],m=v.computePool3DInfo(i.shape,a,u,p,l,c),f=new $u(m,"max",!0),d=e.runWebGLProgram(f,[i],i.dtype),h=new zC(m),g=e.runWebGLProgram(h,[o,d],i.dtype);return e.disposeIntermediateTensorInfo(d),g}var w3={kernelName:kp,backendName:"webgl",kernelFunc:Mnt};function znt(r){let{inputs:t,backend:e,attrs:n}=r,{dy:o,input:s,output:i}=t,a=s;Qs([s,i],"maxPoolGrad");let{filterSize:u,strides:l,pad:c,dimRoundingMode:p}=n,m=v.computePool2DInfo(a.shape,u,l,1,c,p),f=!0,d=new ei(m,"max",f),h=e.runWebGLProgram(d,[a],a.dtype),g=new MC(m),x=e.runWebGLProgram(g,[o,h],a.dtype);return e.disposeIntermediateTensorInfo(h),x}var C3={kernelName:Tp,backendName:"webgl",kernelFunc:znt};function I3(r,t,e,n){let o=new ei(e,"max",!1),s=n.runWebGLProgram(o,[r],"float32");o=new ei(e,"max",!0,!0,t);let i=n.runWebGLProgram(o,[r],"float32");return[s,i]}var S3={kernelName:Ep,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(v.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=v.computePool2DInfo(n.shape,o,s,l,i),[p,m]=I3(n,a,c,u);return[p,m]}};function v3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=Un(a,"float32","mean",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var N3={kernelName:ps,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=v.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;${let{x:n}=r,{filterSize:o,strides:s,pad:i,includeBatchInIndex:a}=t,u=e;y.assert(n.shape.length===4,()=>`Error in maxPool: input must be rank 4 but got rank ${n.shape.length}.`);let l=[1,1];y.assert(S.eitherStridesOrDilationsAreOne(s,l),()=>`Error in maxPool: Either strides or dilations must be 1. Got strides ${s} and dilations '${l}'`);let c=S.computePool2DInfo(n.shape,o,s,l,i),[p,m]=N3(n,a,c,u);return[p,m]}};function k3(r,t,e,n){let o=y.sizeFromShape(t),i=y.sizeFromShape(r.shape)/o,a=it({inputs:{x:r},attrs:{shape:[i,o]},backend:n}),u=qn(a,"float32","mean",n),l=it({inputs:{x:u},attrs:{shape:e},backend:n});return n.disposeIntermediateTensorInfo(a),n.disposeIntermediateTensorInfo(u),l}var E3={kernelName:fs,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{x:n}=r,{keepDims:o,axis:s}=t,i=e,a=n.shape.length,u=y.parseAxisParam(s,n.shape),l=u,c=S.getAxesPermutation(l,a),p=c!=null,m=i.shouldExecuteOnCPU([n]),f=[],d=n;if(p){if(m){let C=i.texData.get(d.dataId).values,N=new Array(a);for(let $=0;$c[0]+t[p]+c[1]);let o=t.length,s=zt(o),i=e.map(c=>c[0]).join(","),a=e.map((c,p)=>c[0]+t[p]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o),l=n==="reflect"?0:1;if(o===1){this.userCode=` +`,Znt=le({opSnippet:Xnt,packedOpSnippet:Ynt,cpuKernelImpl:DL}),A3={kernelName:hs,backendName:"webgl",kernelFunc:Znt};var VC=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=e.map((c,p)=>c[0]+t[p]+c[1]);let o=t.length,s=Bt(o),i=e.map(c=>c[0]).join(","),a=e.map((c,p)=>c[0]+t[p]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o),l=n==="reflect"?0:1;if(o===1){this.userCode=` int start = ${i}; int end = ${a}; @@ -3838,7 +3838,7 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${s} coords = outC - start; setOutput(getX(${u})); } - `}};var VC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=zt(o),i=e.map(d=>d[0]).join(","),a=e.map((d,h)=>d[0]+t[h]).join(","),u=Qe("rc",o),l=Qe("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=n==="reflect"?0:1,f="";if(o===1){let d=` + `}};var GC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=e.map((d,h)=>d[0]+t[h]+d[1]);let o=t.length,s=Bt(o),i=e.map(d=>d[0]).join(","),a=e.map((d,h)=>d[0]+t[h]).join(","),u=er("rc",o),l=er("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=n==="reflect"?0:1,f="";if(o===1){let d=` ${s} source = rc; if (source < start) { source = start * 2 - source - ${m}; @@ -3894,13 +3894,13 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN ${f} setOutput(result); } - `}};var Unt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new VC(n.shape,o,s):new BC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},E3={kernelName:ds,backendName:"webgl",kernelFunc:Unt};var Hnt=`if (b == 0.0) return NAN; - return mod(a, b);`,qnt=` + `}};var Jnt=({inputs:r,backend:t,attrs:e})=>{let{x:n}=r,{paddings:o,mode:s}=e,i=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new GC(n.shape,o,s):new VC(n.shape,o,s);return t.runWebGLProgram(i,[n],n.dtype)},$3={kernelName:gs,backendName:"webgl",kernelFunc:Jnt};var Qnt=`if (b == 0.0) return NAN; + return mod(a, b);`,tot=` vec4 result = mod(a, b); bvec4 isNaN = equal(b, vec4(0.0)); - `+Yi+` + `+ea+` return result; -`,Knt=le({opSnippet:Hnt,packedOpSnippet:qnt}),_3={kernelName:$a,backendName:"webgl",kernelFunc:Knt};var GC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` +`,eot=le({opSnippet:Qnt,packedOpSnippet:tot}),D3={kernelName:Oa,backendName:"webgl",kernelFunc:eot};var WC=class{constructor(t,e,n){this.variableNames=["probs"],this.customUniforms=[{name:"seed",type:"float"}],this.outputShape=[t,n],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -3920,11 +3920,11 @@ return (log(1.0 + x) - log(1.0 - x)) / 2.0;`,Wet=Ct({opSnippet:Get}),HM={kernelN // If no other event happened, last event happened. setOutput(float(${e-1})); } - `}};var jnt=` + `}};var rot=` if (a == b) { return 1.0; }; -return a / b;`,Xnt=` +return a / b;`,not=` // vec4 one = vec4(equal(a, b)); // return one + (vec4(1.0) - one) * a / b; vec4 result = a / b; @@ -3942,9 +3942,9 @@ return a / b;`,Xnt=` } return result; -`,Sk=le({opSnippet:jnt,packedOpSnippet:Xnt,checkOutOfBounds:!0}),A3={kernelName:Qo,backendName:"webgl",kernelFunc:Sk};var $3="return a - b;",vk=le({opSnippet:$3,packedOpSnippet:$3,supportsComplex:!0,cpuKernelImpl:XL}),D3={kernelName:Fs,backendName:"webgl",kernelFunc:vk};function Nk(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Ik({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=v.expandShapeToKeepDim(a.shape,i),l=it({inputs:{x:a},backend:e,attrs:{shape:u}}),c=vk({inputs:{a:o,b:l},backend:e}),p=bk({inputs:{x:c},backend:e}),m=Wc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=it({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Sk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var R3={kernelName:Ds,backendName:"webgl",kernelFunc:Nk};function Ynt(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Nk({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new GC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var F3={kernelName:_p,backendName:"webgl",kernelFunc:Ynt};var Znt=fr+` +`,Tk=le({opSnippet:rot,packedOpSnippet:not,checkOutOfBounds:!0}),R3={kernelName:ts,backendName:"webgl",kernelFunc:Tk};var F3="return a - b;",kk=le({opSnippet:F3,packedOpSnippet:F3,supportsComplex:!0,cpuKernelImpl:JL}),O3={kernelName:Ls,backendName:"webgl",kernelFunc:kk};function Ek(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{dim:s}=n,i=y.parseAxisParam([s],o.shape),a=Nk({inputs:{x:o},backend:e,attrs:{reductionIndices:i,keepDims:!1}}),u=S.expandShapeToKeepDim(a.shape,i),l=it({inputs:{x:a},backend:e,attrs:{shape:u}}),c=kk({inputs:{a:o,b:l},backend:e}),p=Ik({inputs:{x:c},backend:e}),m=Uc({inputs:{x:p},backend:e,attrs:{axis:i,keepDims:!1}}),f=it({inputs:{x:m},backend:e,attrs:{shape:u}}),d=Tk({inputs:{a:p,b:f},backend:e});return e.disposeIntermediateTensorInfo(a),e.disposeIntermediateTensorInfo(l),e.disposeIntermediateTensorInfo(c),e.disposeIntermediateTensorInfo(p),e.disposeIntermediateTensorInfo(m),e.disposeIntermediateTensorInfo(f),d}var P3={kernelName:Os,backendName:"webgl",kernelFunc:Ek};function oot(r){let{inputs:t,backend:e,attrs:n}=r,{logits:o}=t,{numSamples:s,seed:i,normalized:a}=n,u=a?o:Ek({inputs:{logits:o},backend:e,attrs:{dim:o.shape.length-1}}),l=u.shape[0],c=u.shape[1],p=new WC(l,c,s),m=[[i]],f=e.runWebGLProgram(p,[u],"int32",m);return a||e.disposeIntermediateTensorInfo(u),f}var L3={kernelName:Ap,backendName:"webgl",kernelFunc:oot};var sot=hr+` return -x; -`,Jnt=` +`,iot=` vec4 result = -x; bvec4 isNaN = isnan(x); @@ -3954,14 +3954,14 @@ return a / b;`,Xnt=` result.a = isNaN.a ? x.a : result.a; return result; -`;function Qnt(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=$L(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return z().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new so(n.shape,Jnt):o=new tn(n.shape,Znt),e.runWebGLProgram(o,[n],n.dtype)}var O3={kernelName:pi,backendName:"webgl",kernelFunc:Qnt};var tot=Ur.nonMaxSuppressionV3Impl;function eot(r){v.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=tot(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var P3={kernelName:Ra,backendName:"webgl",kernelFunc:eot};var rot=Ur.nonMaxSuppressionV4Impl;function not(r){v.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=rot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var L3={kernelName:Fa,backendName:"webgl",kernelFunc:not};var oot=Ur.nonMaxSuppressionV5Impl;function sot(r){v.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=oot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var M3={kernelName:Oa,backendName:"webgl",kernelFunc:sot};var WC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` +`;function aot(r){let{inputs:t,backend:e}=r,{x:n}=t;if(e.shouldExecuteOnCPU([n])){let s=e.texData.get(n.dataId),[i,a]=FL(s.values,n.shape,n.dtype);return e.makeTensorInfo(a,n.dtype,i)}let o;return M().getBool("WEBGL_PACK_UNARY_OPERATIONS")?o=new An(n.shape,iot):o=new Mr(n.shape,sot),e.runWebGLProgram(o,[n],n.dtype)}var M3={kernelName:di,backendName:"webgl",kernelFunc:aot};var lot=qr.nonMaxSuppressionV3Impl;function uot(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),{selectedIndices:p}=lot(l,c,i,a,u);return e.makeTensorInfo([p.length],"int32",new Int32Array(p))}var z3={kernelName:La,backendName:"webgl",kernelFunc:uot};var cot=qr.nonMaxSuppressionV4Impl;function pot(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,padToMaxOutputSize:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),{selectedIndices:m,validOutputs:f}=cot(c,p,i,a,u,l);return[e.makeTensorInfo([m.length],"int32",new Int32Array(m)),e.makeTensorInfo([],"int32",new Int32Array([f]))]}var B3={kernelName:Ma,backendName:"webgl",kernelFunc:pot};var mot=qr.nonMaxSuppressionV5Impl;function fot(r){S.warn("tf.nonMaxSuppression() in webgl locks the UI thread. Call tf.nonMaxSuppressionAsync() instead");let{inputs:t,backend:e,attrs:n}=r,{boxes:o,scores:s}=t,{maxOutputSize:i,iouThreshold:a,scoreThreshold:u,softNmsSigma:l}=n,c=e.readSync(o.dataId),p=e.readSync(s.dataId),m=i,f=a,d=u,h=l,{selectedIndices:g,selectedScores:x}=mot(c,p,m,f,d,h);return[e.makeTensorInfo([g.length],"int32",new Int32Array(g)),e.makeTensorInfo([x.length],"float32",new Float32Array(x))]}var V3={kernelName:za,backendName:"webgl",kernelFunc:fot};var UC=class{constructor(t,e,n,o){this.variableNames=["indices"],this.outputShape=[t,e],this.userCode=` void main() { ivec2 coords = getOutputCoords(); int index = round(getIndices(coords.x)); setOutput(mix(float(${o}), float(${n}), float(index == coords.y))); } - `}};var iot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new WC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},z3={kernelName:gs,backendName:"webgl",kernelFunc:iot};function sg(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=sg({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var B3={kernelName:wi,backendName:"webgl",kernelFunc:sg};function V3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=wl({inputs:{input:n},backend:e}),s=V3({inputs:{x:o},backend:e}),i=Hc({inputs:{input:n},backend:e}),a=sg({inputs:{x:i},backend:e}),u=En({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Cl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var G3={kernelName:mi,backendName:"webgl",kernelFunc:V3};function aot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return kC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=kC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=yk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var W3={kernelName:fi,backendName:"webgl",kernelFunc:aot};var UC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=zt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` + `}};var dot=r=>{let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=y.sizeFromShape(o.shape),c=new UC(l,i,a,u),p=it({inputs:{x:o},backend:e,attrs:{shape:[l]}}),m=e.runWebGLProgram(c,[p],s);e.disposeIntermediateTensorInfo(p);let f=[...o.shape,i],d=it({inputs:{x:m},backend:e,attrs:{shape:f}});return e.disposeIntermediateTensorInfo(m),d},G3={kernelName:ys,backendName:"webgl",kernelFunc:dot};function ig(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="complex64"){let o=vl({inputs:{input:n},backend:e}),s=ig({inputs:{x:o},backend:e}),i=qc({inputs:{input:n},backend:e}),a=ig({inputs:{x:i},backend:e}),u=$n({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Sl({attrs:{shape:n.shape,dtype:n.dtype,value:n.dtype==="string"?"":0},backend:e})}var W3={kernelName:vi,backendName:"webgl",kernelFunc:ig};function U3(r){let{inputs:t,backend:e}=r,{x:n}=t;if(n.dtype==="string")throw new Error("onesLike is not supported under string dtype");if(n.dtype==="complex64"){let o=vl({inputs:{input:n},backend:e}),s=U3({inputs:{x:o},backend:e}),i=qc({inputs:{input:n},backend:e}),a=ig({inputs:{x:i},backend:e}),u=$n({inputs:{real:s,imag:a},backend:e});return e.disposeIntermediateTensorInfo(o),e.disposeIntermediateTensorInfo(s),e.disposeIntermediateTensorInfo(i),e.disposeIntermediateTensorInfo(a),u}else return Sl({attrs:{shape:n.shape,dtype:n.dtype,value:1},backend:e})}var H3={kernelName:hi,backendName:"webgl",kernelFunc:U3};function hot(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return EC({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=EC({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Ck({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeIntermediateTensorInfo(c)),l}var q3={kernelName:gi,backendName:"webgl",kernelFunc:hot};var HC=class{constructor(t,e,n){this.variableNames=["x"],this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((l,c)=>l[0]+t[c]+l[1]);let o=t.length,s=Bt(o),i=e.map(l=>l[0]).join(","),a=e.map((l,c)=>l[0]+t[c]).join(","),u=["coords[0]","coords[1]","coords[2]","coords[3]"].slice(0,o);if(o===1){this.userCode=` int start = ${i}; int end = ${a}; @@ -3986,7 +3986,7 @@ return a / b;`,Xnt=` setOutput(getX(${u})); } } - `}};var HC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=zt(o),i=e.map(h=>h[0]).join(","),a=e.map((h,g)=>h[0]+t[g]).join(","),u=Qe("rc",o),l=Qe("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1; + `}};var qC=class{constructor(t,e,n){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0,this.customUniforms=[{name:"value",type:"float"}],this.outputShape=e.map((h,g)=>h[0]+t[g]+h[1]);let o=t.length,s=Bt(o),i=e.map(h=>h[0]).join(","),a=e.map((h,g)=>h[0]+t[g]).join(","),u=er("rc",o),l=er("source",o),c=`${u[o-1]} < ${this.outputShape[o-1]}`,p=o===1?"source":`vec2(${l.slice(-2).join()})`,m=[`${s} rc = outputLoc;`,`${u[o-1]} += 1; if(${c}) { `,o===1?"":`} rc = outputLoc; @@ -4010,7 +4010,7 @@ return a / b;`,Xnt=` ${d} setOutput(result); } - `}};var Tk=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Cl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new HC(o.shape,s,i):new UC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},U3={kernelName:xs,backendName:"webgl",kernelFunc:Tk};var lot=` + `}};var _k=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{paddings:s,constantValue:i}=n;if(y.sizeFromShape(o.shape)===0){let l=s.map((c,p)=>c[0]+o.shape[p]+c[1]);return Sl({backend:e,attrs:{shape:l,value:i,dtype:o.dtype}})}let a=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new qC(o.shape,s,i):new HC(o.shape,s,i),u=[[i]];return e.runWebGLProgram(a,[o],o.dtype,u)},K3={kernelName:bs,backendName:"webgl",kernelFunc:_k};var got=` if(a < 0.0 && floor(b) < b){ return NAN; } @@ -4019,7 +4019,7 @@ return a / b;`,Xnt=` } return (round(mod(b, 2.0)) != 1) ? pow(abs(a), b) : sign(a) * pow(abs(a), b); -`,uot=` +`,xot=` // isModRound1 has 1 for components with round(mod(b, 2.0)) == 1, 0 otherwise. vec4 isModRound1 = vec4(equal(round(mod(b, 2.0)), ivec4(1))); vec4 multiplier = sign(a) * isModRound1 + (vec4(1.0) - isModRound1); @@ -4035,11 +4035,11 @@ return a / b;`,Xnt=` bvec4 isNaN1 = lessThan(a, vec4(0.0)); bvec4 isNaN2 = lessThan(floor(b), b); bvec4 isNaN = bvec4(isNaN1.x && isNaN2.x, isNaN1.y && isNaN2.y, isNaN1.z && isNaN2.z, isNaN1.w && isNaN2.w); - `+Yi+` + `+ea+` return result; -`,cot=le({opSnippet:lot,packedOpSnippet:uot}),H3={kernelName:ys,backendName:"webgl",kernelFunc:cot};function pot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=v.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=v.getInnerMostAxes(c.length,a),u.push(m)),v.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=RL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=v.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Wu(o.dtype),w=Un(x,b,"prod",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=v.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var q3={kernelName:ws,backendName:"webgl",kernelFunc:pot};function mot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=FL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var K3={kernelName:Ap,backendName:"webgl",kernelFunc:mot};function fot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=OL(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var j3={kernelName:$p,backendName:"webgl",kernelFunc:fot};function dot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=PL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var X3={kernelName:Dp,backendName:"webgl",kernelFunc:dot};var kk=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=LL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Y3={kernelName:Ol,backendName:"webgl",kernelFunc:kk};var hot="return 1.0 / x;",got=Ct({opSnippet:hot}),Z3={kernelName:Pa,backendName:"webgl",kernelFunc:got};var xot=fr+` +`,yot=le({opSnippet:got,packedOpSnippet:xot}),j3={kernelName:ws,backendName:"webgl",kernelFunc:yot};function bot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,keepDims:i}=n,a=o.shape.length,u=[],l=y.parseAxisParam(s,o.shape),c=l,p=S.getAxesPermutation(c,a),m=o;p!=null&&(m=Oe({inputs:{x:o},backend:e,attrs:{perm:p}}),c=S.getInnerMostAxes(c.length,a),u.push(m)),S.assertAxesAreInnerMostDims("prod",c,a);let f;if(e.shouldExecuteOnCPU([m])){let d=e.texData.get(m.dataId).values,{outVals:h,outShape:g,outDtype:x}=PL(m.shape,m.dtype,d,c);f=e.makeTensorInfo(g,x,h)}else{let[d,h]=S.computeOutAndReduceShapes(m.shape,c),g=y.sizeFromShape(h),x=it({inputs:{x:m},backend:e,attrs:{shape:[-1,g]}}),b=Hu(o.dtype),w=qn(x,b,"prod",e);f=it({inputs:{x:w},backend:e,attrs:{shape:d}}),u.push(x),u.push(w)}if(i){u.push(f);let d=S.expandShapeToKeepDim(f.shape,l);f=it({inputs:{x:f},backend:e,attrs:{shape:d}})}return u.forEach(d=>e.disposeIntermediateTensorInfo(d)),f}var X3={kernelName:Is,backendName:"webgl",kernelFunc:bot};function wot(r){let{inputs:t,backend:e,attrs:n}=r,{paramsNestedSplits:o,paramsDenseValues:s,indices:i}=t,{outputRaggedRank:a}=n,u=o.map(x=>e.readSync(x.dataId)),l=o.map(x=>x.shape),c=e.readSync(s.dataId),p=e.readSync(i.dataId),[m,f,d]=LL(u,l,c,s.shape,s.dtype,p,i.shape,a),h=m.map(x=>e.makeTensorInfo([x.length],"int32",x)),g=e.makeTensorInfo(d,s.dtype,f);return h.concat([g])}var Y3={kernelName:$p,backendName:"webgl",kernelFunc:wot};function Cot(r){let{inputs:t,backend:e}=r,{starts:n,limits:o,deltas:s}=t,i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=ML(i,n.shape,n.dtype,a,o.shape,u,s.shape),p=e.makeTensorInfo([l.length],"int32",l),m=e.makeTensorInfo([c.length],n.dtype,c);return[p,m]}var Z3={kernelName:Dp,backendName:"webgl",kernelFunc:Cot};function Iot(r){let{inputs:t,backend:e,attrs:n}=r,{shape:o,values:s,defaultValue:i,rowPartitionTensors:a}=t,{rowPartitionTypes:u}=n,l=e.readSync(o.dataId),c=e.readSync(s.dataId),p=e.readSync(i.dataId),m=a.map(g=>e.readSync(g.dataId)),f=a.map(g=>g.shape),[d,h]=zL(l,o.shape,c,s.shape,s.dtype,p,i.shape,m,f,u);return e.makeTensorInfo(d,s.dtype,h)}var J3={kernelName:Rp,backendName:"webgl",kernelFunc:Iot};var Ak=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=BL(n,o,s,i);return t.makeTensorInfo([a.length],i,a)},Q3={kernelName:Ml,backendName:"webgl",kernelFunc:Ak};var vot="return 1.0 / x;",Sot=Ct({opSnippet:vot}),tB={kernelName:vs,backendName:"webgl",kernelFunc:Sot};var Not=hr+` return (x < 0.0) ? 0.0 : x; -`,yot=` +`,Tot=` vec4 result = x * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4049,9 +4049,9 @@ return a / b;`,Xnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,bot=Ct({opSnippet:xot,packedOpSnippet:yot}),J3={kernelName:Cs,backendName:"webgl",kernelFunc:bot};var wot=fr+` +`,kot=Ct({opSnippet:Not,packedOpSnippet:Tot}),eB={kernelName:Ss,backendName:"webgl",kernelFunc:kot};var Eot=hr+` return (x < 0.0) ? 0.0 : min(6.0, x); -`,Cot=` +`,_ot=` vec4 result = min(x, vec4(6.)) * vec4(greaterThanEqual(x, vec4(0.0))); bvec4 isNaN = isnan(x); @@ -4061,7 +4061,7 @@ return a / b;`,Xnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,Iot=Ct({opSnippet:wot,packedOpSnippet:Cot}),Q3={kernelName:vs,backendName:"webgl",kernelFunc:Iot};var qC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` +`,Aot=Ct({opSnippet:Eot,packedOpSnippet:_ot}),rB={kernelName:ks,backendName:"webgl",kernelFunc:Aot};var KC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC - vec2(0.5)":m="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -4094,7 +4094,7 @@ return a / b;`,Xnt=` setOutput(newValue); } - `}};var KC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var jC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m;s?m="(vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC - vec3(0.5)":m="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -4171,7 +4171,7 @@ return a / b;`,Xnt=` setOutput(newValue); } - `}};function Sot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new KC(o.shape,u,l,s,i):new qC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var tB={kernelName:Ss,backendName:"webgl",kernelFunc:Sot};var jC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function $ot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new jC(o.shape,u,l,s,i):new KC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],"float32")}var nB={kernelName:Ts,backendName:"webgl",kernelFunc:$ot};var XC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4252,7 +4252,7 @@ return a / b;`,Xnt=` setOutput(accumulator); } - `}};function vot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new jC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var eB={kernelName:Op,backendName:"webgl",kernelFunc:vot};var XC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new XC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var oB={kernelName:Pp,backendName:"webgl",kernelFunc:Dot};var YC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec2(yRC) + vec2(0.5)) * effectiveInputOverOutputRatioRC, vec2(0.0))":f="vec2(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec2 effectiveInputOverOutputRatioRC = vec2( ${c[0]/p[0]}, ${c[1]/p[1]}); @@ -4274,7 +4274,7 @@ return a / b;`,Xnt=` setOutput(newValue); } - `}};var YC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":f="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` + `}};var ZC=class{constructor(t,e,n,o,s){this.variableNames=["A"],this.packedInputs=!0,this.packedOutput=!0,this.outputShape=[];let[i,a,u,l]=t;this.outputShape=[i,e,n,l];let c=[o&&e>1?a-1:a,o&&n>1?u-1:u],p=[o&&e>1?e-1:e,o&&n>1?n-1:n],m=o?"0.5":"0.0",f;s?f="max((vec3(yRC) + vec3(0.5)) * effectiveInputOverOutputRatioRC, vec3(0.0))":f="vec3(yRC) * effectiveInputOverOutputRatioRC",this.userCode=` const vec3 effectiveInputOverOutputRatioRC = vec3( ${c[0]/p[0]}, ${c[1]/p[1]}, @@ -4315,7 +4315,7 @@ return a / b;`,Xnt=` setOutput(newValue); } - `}};function Not(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=z().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new YC(o.shape,u,l,s,i):new XC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var rB={kernelName:Is,backendName:"webgl",kernelFunc:Not};var ZC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` + `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o}=t,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,c=M().getBool("WEBGL_PACK_IMAGE_OPERATIONS")?new ZC(o.shape,u,l,s,i):new YC(o.shape,u,l,s,i);return e.runWebGLProgram(c,[o],o.dtype)}var sB={kernelName:Ns,backendName:"webgl",kernelFunc:Rot};var JC=class{constructor(t,e,n){this.variableNames=["dy"],this.outputShape=[],this.outputShape=e;let[,o,s]=e,[,i,a]=t,u=[n&&i>1?o-1:o,n&&a>1?s-1:s],l=[n&&i>1?i-1:i,n&&a>1?a-1:a],c=u[0]/l[0],p=u[1]/l[1],m=1/c,f=1/p,d=Math.ceil(m)*2+2,h=Math.ceil(f)*2+2;this.userCode=` void main() { ivec4 coords = getOutputCoords(); int b = coords[0]; @@ -4385,17 +4385,17 @@ return a / b;`,Xnt=` setOutput(accumulator); } - `}};function Tot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new ZC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var nB={kernelName:Fp,backendName:"webgl",kernelFunc:Tot};var JC=class{constructor(t,e){this.variableNames=["x"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=` + `}};function Fot(r){let{inputs:t,backend:e,attrs:n}=r,{images:o,dy:s}=t,{alignCorners:i}=n,a=new JC(s.shape,o.shape,i);return e.runWebGLProgram(a,[s],s.dtype)}var iB={kernelName:Op,backendName:"webgl",kernelFunc:Fot};var QC=class{constructor(t,e){this.variableNames=["x"];let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);if(this.outputShape=t,n===1){this.userCode=` void main() { int coord = getOutputCoords(); setOutput(getX(${t[0]} - coord - 1)); } - `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(","),i=zt(n);this.userCode=` + `;return}let o=a=>e.indexOf(a)!==-1&&t[a]!==1?`${t[a]} - coords[${a}] - 1`:`coords[${a}]`,s=t.map((a,u)=>o(u)).join(","),i=Bt(n);this.userCode=` void main() { ${i} coords = getOutputCoords(); setOutput(getX(${s})); } - `}};var QC=class{constructor(t,e){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=Qe("rc",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=zt(n);n===1?this.userCode=` + `}};var tI=class{constructor(t,e){this.variableNames=["x"],this.packedInputs=!0,this.packedOutput=!0;let n=t.length;if(n>4)throw new Error(`WebGL backend: Reverse of rank-${n} tensor is not yet supported`);this.outputShape=t;let o=er("rc",n),s=`${o[n-1]} + 1 < ${this.outputShape[n-1]}`,i=`${o[n-2]} + 1 < ${this.outputShape[n-2]}`,a=Bt(n);n===1?this.userCode=` void main(){ int rc = getOutputCoords(); vec4 result = vec4(0.); @@ -4423,7 +4423,7 @@ return a / b;`,Xnt=` } setOutput(result); } - `;function u(d){return m(d)}function l(d){return d[n-1]="("+d[n-1]+" + 1)",m(d)}function c(d){return d[n-2]="("+d[n-2]+" + 1)",m(d)}function p(d){return d[n-1]="("+d[n-1]+" + 1)",d[n-2]="("+d[n-2]+" + 1)",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function kot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return tr({inputs:{x:o},backend:e});let u=z().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new QC(o.shape,a):new JC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var oB={kernelName:Ns,backendName:"webgl",kernelFunc:kot};var tI=class{constructor(t,e){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=t[1],o=t[2];this.outputShape=t;let s="";typeof e=="number"?s=`float outputValue = ${e.toFixed(2)};`:s=` + `;function u(d){return m(d)}function l(d){return d[n-1]="("+d[n-1]+" + 1)",m(d)}function c(d){return d[n-2]="("+d[n-2]+" + 1)",m(d)}function p(d){return d[n-1]="("+d[n-1]+" + 1)",d[n-2]="("+d[n-2]+" + 1)",m(d)}function m(d){let h=t.map((b,w)=>f(w,d)),g=h.join(","),x=h.slice(-2).join(",");return`getChannel(getX(${g}), vec2(${x}))`}function f(d,h){return e.indexOf(d)!==-1&&t[d]!==1?`${t[d]} - ${h[d]} - 1`:`${h[d]}`}}};function Oot(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=o.shape.length,a=y.parseAxisParam(s,o.shape);if(i===0)return rr({inputs:{x:o},backend:e});let u=M().getBool("WEBGL_PACK_ARRAY_OPERATIONS")?new tI(o.shape,a):new QC(o.shape,a);return e.runWebGLProgram(u,[o],o.dtype)}var aB={kernelName:Es,backendName:"webgl",kernelFunc:Oot};var eI=class{constructor(t,e){this.variableNames=["Image"],this.outputShape=[],this.customUniforms=[{name:"params",type:"vec4"}];let n=t[1],o=t[2];this.outputShape=t;let s="";typeof e=="number"?s=`float outputValue = ${e.toFixed(2)};`:s=` vec3 fill = vec3(${e.join(",")}); float outputValue = fill[coords[3]];`,this.userCode=` void main() { @@ -4442,7 +4442,7 @@ return a / b;`,Xnt=` } setOutput(outputValue); } - `}};var sB={kernelName:qa,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new tI(n.shape,s),[l,c]=v.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Eot=` + `}};var lB={kernelName:Xa,backendName:"webgl",kernelFunc:({inputs:r,attrs:t,backend:e})=>{let{image:n}=r,{radians:o,fillValue:s,center:i}=t,a=e,u=new eI(n.shape,s),[l,c]=S.getImageCenter(i,n.shape[1],n.shape[2]),p=[[l,c,Math.sin(o),Math.cos(o)]];return a.runWebGLProgram(u,[n],n.dtype,p)}};var Pot=` // OpenGL ES does not support round function. // The algorithm is based on banker's rounding. float base = floor(x); @@ -4457,7 +4457,7 @@ return a / b;`,Xnt=` return base + 1.0; } } -`,_ot=Ct({opSnippet:Eot}),iB={kernelName:Ts,backendName:"webgl",kernelFunc:_ot};var Aot="return inversesqrt(x);",$ot=Ct({opSnippet:Aot,cpuKernelImpl:ML}),aB={kernelName:ks,backendName:"webgl",kernelFunc:$ot};var $d=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let u=zt(s.length),l=zt(i.length),c="";n===1?c="i":n===2&&(c="i, j");let p=`getIndices(${c})`,m="";o===1?m="i":o===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=e>1?"strides[j]":"strides";this.userCode=` +`,Lot=Ct({opSnippet:Pot}),uB={kernelName:_s,backendName:"webgl",kernelFunc:Lot};var Mot="return inversesqrt(x);",zot=Ct({opSnippet:Mot,cpuKernelImpl:VL}),cB={kernelName:As,backendName:"webgl",kernelFunc:zot};var Rd=class{constructor(t,e,n,o,s,i,a=!0){this.variableNames=["updates","indices","defaultValue"],this.outputShape=i;let u=Bt(s.length),l=Bt(i.length),c="";n===1?c="i":n===2&&(c="i, j");let p=`getIndices(${c})`,m="";o===1?m="i":o===2&&(m="i, coords[1]");let f=`getUpdates(${m})`,d=e>1?"strides[j]":"strides";this.userCode=` ${u} strides = ${u}(${s}); void main() { @@ -4477,7 +4477,7 @@ return a / b;`,Xnt=` } setOutput(mix(getDefaultValue(), sum, float(found))); } - `}};function Dot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=v.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g=new $d(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var lB={kernelName:La,backendName:"webgl",kernelFunc:Dot};var eI=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=z().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` + `}};function Bot(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o,updates:s}=t,{shape:i}=n,{sliceRank:a,numUpdates:u,sliceSize:l,strides:c,outputSize:p}=S.calculateShapes(s,o,i),m=[p/l,l];if(p===0)return e.makeTensorInfo(i,o.dtype);let f=it({inputs:{x:o},backend:e,attrs:{shape:[u,a]}}),d=it({inputs:{x:s},backend:e,attrs:{shape:[u,l]}}),h=e.makeTensorInfo([],"float32",new Float32Array([0])),g=new Rd(u,a,f.shape.length,d.shape.length,c,m),x=e.runWebGLProgram(g,[d,f,h],d.dtype),b=it({inputs:{x},backend:e,attrs:{shape:i}});return e.disposeIntermediateTensorInfo(f),e.disposeIntermediateTensorInfo(d),e.disposeIntermediateTensorInfo(x),e.disposeIntermediateTensorInfo(h),b}var pB={kernelName:Ba,backendName:"webgl",kernelFunc:Bot};var rI=class{constructor(t,e,n,o){this.variableNames=["sortedSequence","values"],this.customUniforms=[{name:"numInputs",type:"int"}],this.outputShape=[t,n];let s="while (left < right) {",i=`for (int i = 0; i < ${Math.ceil(Math.log2(e+1))}; ++i) { if (left >= right) break;`,a=M().getNumber("WEBGL_VERSION")===2?s:i,u=o==="left"?"<":"<=";this.userCode=` int findBound(int batch, float value) { int left = 0; int right = numInputs; @@ -4502,7 +4502,7 @@ return a / b;`,Xnt=` setOutput(float(findBound(batch, value))); } - `}};function Rot(r){let{inputs:t,backend:e,attrs:n}=r,{sortedSequence:o,values:s}=t,{side:i}=n,a=new eI(o.shape[0],o.shape[1],s.shape[1],i),u=[[o.shape[1]]];return e.runWebGLProgram(a,[o,s],"int32",u)}var uB={kernelName:Pp,backendName:"webgl",kernelFunc:Rot};var rI=class{constructor(t,e,n){this.variableNames=["c","a","b"],this.outputShape=e;let o,s;if(n>4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s="resRC",o="resRC";else{let a=["resRC.x","resRC.y","resRC.z","resRC.w"],u=[],l=[];for(let c=0;c4)throw Error(`Where for rank ${n} is not yet supported`);if(n===1)s="resRC",o="resRC";else{let a=["resRC.x","resRC.y","resRC.z","resRC.w"],u=[],l=[];for(let c=0;c= 0.0) ? scale * x : scaleAlpha * (exp(x) - 1.0); -`,Pot=Ct({opSnippet:Oot}),pB={kernelName:Ma,backendName:"webgl",kernelFunc:Pot};var Lot=Po+` +`,Uot=Ct({opSnippet:Wot}),dB={kernelName:Va,backendName:"webgl",kernelFunc:Uot};var Hot=Lo+` return 1.0 / (1.0 + exp(-1.0 * x)); -`,Mot=` +`,qot=` vec4 result = 1.0 / (1.0 + exp(-1.0 * x)); bvec4 isNaN = isnan(x); @@ -4530,15 +4530,15 @@ return a / b;`,Xnt=` result.a = isNaN.a ? x.a : result.a; return result; -`,zot=Ct({opSnippet:Lot,packedOpSnippet:Mot,cpuKernelImpl:BL}),mB={kernelName:_s,backendName:"webgl",kernelFunc:zot};var Bot=` +`,Kot=Ct({opSnippet:Hot,packedOpSnippet:qot,cpuKernelImpl:WL}),hB={kernelName:Ds,backendName:"webgl",kernelFunc:Kot};var jot=` if (isnan(x)) { return 0.0; } return sign(x); -`,Vot=Ct({opSnippet:Bot}),fB={kernelName:Ba,backendName:"webgl",kernelFunc:Vot};var Got=Po+` +`,Xot=Ct({opSnippet:jot}),gB={kernelName:Wa,backendName:"webgl",kernelFunc:Xot};var Yot=Lo+` return sin(x); -`,Wot=Ct({opSnippet:Got}),dB={kernelName:Es,backendName:"webgl",kernelFunc:Wot};var Uot=` +`,Zot=Ct({opSnippet:Yot}),xB={kernelName:$s,backendName:"webgl",kernelFunc:Zot};var Jot=` float e2x = exp(x); return (e2x - 1.0 / e2x) / 2.0; -`,Hot=Ct({opSnippet:Uot}),hB={kernelName:za,backendName:"webgl",kernelFunc:Hot};var qot=` +`,Qot=Ct({opSnippet:Jot}),yB={kernelName:Ga,backendName:"webgl",kernelFunc:Qot};var tst=` float epsilon = 1.1920928955078125e-7; float threshold = log(epsilon) + 2.0; @@ -4558,17 +4558,17 @@ return a / b;`,Xnt=` result = log(exp_x + 1.0); } return result; -`,Kot=Ct({opSnippet:qot}),gB={kernelName:Va,backendName:"webgl",kernelFunc:Kot};var jot=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},xB={kernelName:xi,backendName:"webgl",kernelFunc:jot};function Xot(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: +`,est=Ct({opSnippet:tst}),bB={kernelName:Ua,backendName:"webgl",kernelFunc:est};var rst=r=>{let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n;y.assert(o.shape.length<=4,()=>"spaceToBatchND for rank > 4 with a WebGL backend not implemented yet");let a=s.reduce((x,b)=>x*b),u=[[0,0]];u.push(...i);for(let x=1+s.length;xe.disposeIntermediateTensorInfo(x)),g},wB={kernelName:wi,backendName:"webgl",kernelFunc:rst};function nst(r){let{inputs:t,backend:e}=r,{indices:n,values:o,denseShape:s,defaultValue:i}=t;if(s.shape.length!==1)throw new Error(`Dense shape must be a vector, saw: ${s.shape}`);if(n.shape.length!==2)throw new Error(`Indices must be a matrix, saw: ${n.shape}`);if(o.shape.length!==1)throw new Error(`Values must be a vector, saw: ${o.shape}`);if(i.shape.length!==0)throw new Error(`Default value must be a scalar, saw: - ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=GL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var yB={kernelName:Pl,backendName:"webgl",kernelFunc:Xot};function Yot(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=WL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var bB={kernelName:Ga,backendName:"webgl",kernelFunc:Yot};function Zot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${i.shape}`);let a=e.readSync(n.dataId),u=e.readSync(o.dataId),l=e.readSync(s.dataId),c=e.readSync(i.dataId)[0],[p,m,f,d,h]=HL(a,n.shape,n.dtype,u,o.dtype,l,c);return[e.makeTensorInfo(m,n.dtype,p),e.makeTensorInfo([m[0]],o.dtype,f),e.makeTensorInfo([d.length],"bool",new Uint8Array(d.map(g=>Number(g)))),e.makeTensorInfo([h.length],n.dtype,new Int32Array(h))]}var CB={kernelName:zl,backendName:"webgl",kernelFunc:nst};function ost(r){let{inputs:t,backend:e}=r,{inputIndices:n,inputShape:o,newShape:s}=t;if(n.shape.length!==2)throw new Error(`Input indices should be a matrix but received shape ${n.shape}`);if(o.shape.length!==1)throw new Error(`Input shape should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=Array.from(e.readSync(o.dataId)),a=e.readSync(n.dataId),u=Array.from(e.readSync(s.dataId)),[l,c,p]=qL(a,n.shape,n.dtype,i,u);return[e.makeTensorInfo(c,n.dtype,l),e.makeTensorInfo([p.length],s.dtype,new Int32Array(p))]}var IB={kernelName:Ha,backendName:"webgl",kernelFunc:ost};function sst(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var wB={kernelName:Ll,backendName:"webgl",kernelFunc:Zot};function Jot(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Bw(i,n.shape,n.dtype,a,u,!0);return e.makeTensorInfo(c,n.dtype,l)}var vB={kernelName:Bl,backendName:"webgl",kernelFunc:sst};function ist(r){let{inputs:t,backend:e}=r,{data:n,indices:o,segmentIds:s}=t;if(n.shape.length<1)throw new Error("Data should be at least 1 dimensional but received scalar");if(o.shape.length!==1)throw new Error(`Indices should be a vector but received shape ${o.shape}`);if(s.shape.length!==1)throw new Error(`Segment ids should be a vector but received shape - ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=zw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var CB={kernelName:Ml,backendName:"webgl",kernelFunc:Jot};function Qot(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=v.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=zL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new $d(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var IB={kernelName:Lp,backendName:"webgl",kernelFunc:Qot};function tst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=ri({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var SB={kernelName:yi,backendName:"webgl",kernelFunc:tst};var vB="return sqrt(x);",est=Ct({opSnippet:vB,packedOpSnippet:vB,cpuKernelImpl:UL}),NB={kernelName:As,backendName:"webgl",kernelFunc:est};var rst="return x * x;",nst=Ct({opSnippet:rst}),TB={kernelName:zl,backendName:"webgl",kernelFunc:nst};var kB="return (a - b) * (a - b);",ost=le({opSnippet:kB,packedOpSnippet:kB}),EB={kernelName:Rs,backendName:"webgl",kernelFunc:ost};function sst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=fr+` + ${s.shape}`);let i=e.readSync(n.dataId),a=e.readSync(o.dataId),u=e.readSync(s.dataId),[l,c]=Bw(i,n.shape,n.dtype,a,u);return e.makeTensorInfo(c,n.dtype,l)}var SB={kernelName:Vl,backendName:"webgl",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{sparseIndices:o,sparseValues:s,defaultValue:i}=t,{outputShape:a}=n,{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=S.calculateShapes(s,o,a),f=!1;if(s.dtype==="string"){let x=e.bufferSync(o),b=e.bufferSync(s),w=y.decodeString(e.readSync(i.dataId)[0]),C=GL(x,b,a,m,c,l,u,p,w,f);return e.makeTensorInfo(a,C.dtype,C.values)}let d=new Rd(l,u,o.shape.length,s.shape.length,p,[m,1],f),h=e.runWebGLProgram(d,[s,o,i],s.dtype),g=it({inputs:{x:h},backend:e,attrs:{shape:a}});return e.disposeIntermediateTensorInfo(h),g}var NB={kernelName:Mp,backendName:"webgl",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=n,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=o.shape.length,c=new Array(l).fill(0),p=o.shape.slice();return u.map(m=>{let f=[...p];f[a]=m;let d=si({inputs:{x:o},backend:e,attrs:{begin:c,size:f}});return c[a]+=m,d})}var TB={kernelName:Ci,backendName:"webgl",kernelFunc:lst};var kB="return sqrt(x);",ust=Ct({opSnippet:kB,packedOpSnippet:kB,cpuKernelImpl:KL}),EB={kernelName:Rs,backendName:"webgl",kernelFunc:ust};var cst="return x * x;",pst=Ct({opSnippet:cst}),_B={kernelName:Gl,backendName:"webgl",kernelFunc:pst};var AB="return (a - b) * (a - b);",mst=le({opSnippet:AB,packedOpSnippet:AB}),$B={kernelName:Ps,backendName:"webgl",kernelFunc:mst};function fst({inputs:r,attrs:t,backend:e}){let{x:n}=r,o=hr+` return x > 0.0 ? 1.0 : float(${t.alpha}); - `,s=new tn(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var _B={kernelName:po,backendName:"webgl",kernelFunc:sst};var nI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=zt(n.length),i=zt(n.length),a="";if(o===1)a="coords * strides + begin";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` + `,s=new Mr(n.shape,o);return e.runWebGLProgram(s,[n],n.dtype)}var DB={kernelName:fo,backendName:"webgl",kernelFunc:fst};var oI=class{constructor(t,e,n){this.variableNames=["x"],this.outputShape=n;let o=n.length,s=Bt(n.length),i=Bt(n.length),a="";if(o===1)a="coords * strides + begin";else{let u=0;a=n.map((l,c)=>(u++,n.length===1?`coords * strides[${c}] + begin[${c}]`:`coords[${u-1}] * strides[${c}] + begin[${c}]`)).join(",")}this.userCode=` ${s} begin = ${s}(${t}); ${s} strides = ${s}(${e}); @@ -4576,15 +4576,15 @@ return a / b;`,Xnt=` ${i} coords = getOutputCoords(); setOutput(getX(${a})); } - `}};function ist(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Le.computeOutShape(b,w,C),$=ri({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=HL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new nI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let _=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),_}var AB={kernelName:Wa,backendName:"webgl",kernelFunc:ist};function ast(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=qL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var $B={kernelName:Bl,backendName:"webgl",kernelFunc:ast};function lst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=KL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var DB={kernelName:Vl,backendName:"webgl",kernelFunc:lst};function ust(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=jL(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var RB={kernelName:Gl,backendName:"webgl",kernelFunc:ust};var cst="return tan(x);",pst=Ct({opSnippet:cst}),FB={kernelName:Os,backendName:"webgl",kernelFunc:pst};var mst=` + `}};function dst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=it({inputs:{x:o},backend:e,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let A=Me.computeOutShape(b,w,C),$=si({inputs:{x:o},backend:e,attrs:{begin:b,size:A}});N=it({inputs:{x:$},backend:e,attrs:{shape:d}}),e.disposeIntermediateTensorInfo($)}else if(e.shouldExecuteOnCPU([o])){let $=e.readSync(o.dataId),F=wt(o.shape,o.dtype,$),P=jL(f,F,C,b);N=e.makeTensorInfo(d,o.dtype,P.values)}else{let $=new oI(b,C,f);N=e.runWebGLProgram($,[o],o.dtype)}let E=it({inputs:{x:N},backend:e,attrs:{shape:d}});return e.disposeIntermediateTensorInfo(N),E}var RB={kernelName:qa,backendName:"webgl",kernelFunc:dst};function hst(r){let{inputs:t,backend:e,attrs:n}=r,{separator:o,nGramWidths:s,leftPad:i,rightPad:a,padWidth:u,preserveShortSequences:l}=n,{data:c,dataSplits:p}=t,m=e.readSync(c.dataId),f=e.readSync(p.dataId),[d,h]=XL(m,f,o,s,i,a,u,l);return[e.makeTensorInfo([d.length],"string",d),e.makeTensorInfo(p.shape,"int32",h)]}var FB={kernelName:Wl,backendName:"webgl",kernelFunc:hst};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{skipEmpty:o}=n,{input:s,delimiter:i}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(s.shape.length!==1)throw new Error(`Input must be a vector, got shape: ${s.shape}`);if(i.shape.length!==0)throw new Error(`Delimiter must be a scalar, got shape: ${i.shape}`);let a=e.readSync(s.dataId),u=e.readSync(i.dataId)[0],[l,c,p]=YL(a,u,o),m=c.length;return[e.makeTensorInfo([m,2],"int32",l),e.makeTensorInfo([m],"string",c),e.makeTensorInfo([2],"int32",new Int32Array(p))]}var OB={kernelName:Ul,backendName:"webgl",kernelFunc:gst};function xst(r){let{inputs:t,backend:e,attrs:n}=r,{numBuckets:o}=n,{input:s}=t;if(s.dtype!=="string")throw new Error("Input must be of datatype string");if(o<=0)throw new Error("Number of buckets must be at least 1");let i=e.readSync(s.dataId),a=ZL(i,o);return e.makeTensorInfo(s.shape,"int32",a)}var PB={kernelName:Hl,backendName:"webgl",kernelFunc:xst};var yst="return tan(x);",bst=Ct({opSnippet:yst}),LB={kernelName:Ms,backendName:"webgl",kernelFunc:bst};var wst=` float e2x = exp(-2.0 * abs(x)); return sign(x) * (1.0 - e2x) / (1.0 + e2x); -`,fst=Ct({opSnippet:mst}),OB={kernelName:Ps,backendName:"webgl",kernelFunc:fst};var oI=class{constructor(t,e){this.variableNames=["A"];let n=new Array(t.length);for(let i=0;i5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype==="string"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=YL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new oI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var PB={kernelName:Jn,backendName:"webgl",kernelFunc:Ek};var sI=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=t,this.userCode=` + `}};function Ist(r){let t=r.length;if(t>5)throw Error(`Tile for rank ${t} is not yet supported`);if(t===1)return`imod(resRC, ${r[0]})`;let e=["resRC.x","resRC.y","resRC.z","resRC.w","resRC.u"],n=[];for(let o=0;o5){let u=e.readSync(o.dataId),l=o.dtype==="string"?u.map(m=>y.decodeString(m)):u,c=wt(o.shape,o.dtype,l),p=QL(c,s);return e.makeTensorInfo(p.shape,p.dtype,p.values)}let i=new sI(o.shape,s);return e.runWebGLProgram(i,[o],o.dtype)}var zB={kernelName:to,backendName:"webgl",kernelFunc:$k};var iI=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"negativeInf",type:"float"},{name:"dir",type:"int"},{name:"inc",type:"int"}],this.outputShape=t,this.userCode=` void main() { ivec2 coords = getOutputCoords(); int batch = coords[0]; @@ -4624,7 +4624,7 @@ return a / b;`,Xnt=` setOutput(float(i1)); } } - `}},iI=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=t,this.userCode=` + `}},aI=class{constructor(t){this.variableNames=["x","indices"],this.customUniforms=[{name:"n",type:"int"},{name:"firstPass",type:"int"},{name:"k",type:"int"}],this.outputShape=t,this.userCode=` void main() { // Takes max of indices (0, k), (1, k + 1), (2, k + 2) ... ivec2 coords = getOutputCoords(); @@ -4658,7 +4658,7 @@ return a / b;`,Xnt=` setOutput(x0 >= x1 ? float(i0) : float(i1)); } - `}};function Kc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function LB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=ZL(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Cl({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&Kc(e,f);let x=LB(s),b=LB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new sI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",j),Kc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new iI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),Kc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let _=w;w=ri({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),Kc(e,_);let A=Ck({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});Kc(e,g);let $=l.slice(0,-1);$.push(s),_=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),Kc(e,_);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),Kc(e,F),[A,w]}var MB={kernelName:Ua,backendName:"webgl",kernelFunc:hst};var aI=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` + `}};function jc(r,t){t!==null&&r.disposeIntermediateTensorInfo(t)}function BB(r){let t=1;for(;tu){let P=e.readSync(o.dataId),[V,G]=tM(P,l,o.dtype,s,i);return[e.makeTensorInfo(V.shape,V.dtype,V.values),e.makeTensorInfo(G.shape,G.dtype,G.values)]}if(s===0)return l[l.length-1]=0,[e.makeTensorInfo(l,o.dtype,[]),e.makeTensorInfo(l,"int32",[])];if(c===1)return[o,Sl({attrs:{shape:l,dtype:"int32",value:0},backend:e})];let p=e.texData.get(o.dataId),m=p!==null&&p.isPacked,f=m?e.unpackTensor(o):o,h=y.sizeFromShape(l)/c,g=it({inputs:{x:f},attrs:{shape:[h,c]},backend:e});m&&jc(e,f);let x=BB(s),b=BB(c),w=null,C=()=>w===null?[g,g]:[g,w],N=(P,V,G)=>{let W=C(),q=new iI(G),j=[[c],[w===null?1:0],[Number.NEGATIVE_INFINITY],[P],[V]],Y=w;w=e.runWebGLProgram(q,W,"int32",j),jc(e,Y)};for(let P=1;P=1;G/=2)N(V,G,[h,b])}for(let P=b;P>x;P/=2){let V=C(),G=new aI([h,P/2]),q=[[c],[w===null?1:0],[x]],H=w;w=e.runWebGLProgram(G,V,"int32",q),jc(e,H);let j=x/2,Y=j*2;for(let Z=j;Z>=1;Z/=2)N(Y,Z,w.shape)}let E=w;w=si({inputs:{x:w},backend:e,attrs:{begin:0,size:[h,s]}}),jc(e,E);let A=Sk({inputs:{x:g,indices:w},backend:e,attrs:{axis:1,batchDims:1}});jc(e,g);let $=l.slice(0,-1);$.push(s),E=w,w=it({inputs:{x:w},attrs:{shape:$},backend:e}),jc(e,E);let F=A;return A=it({inputs:{x:A},attrs:{shape:$},backend:e}),jc(e,F),[A,w]}var VB={kernelName:Ka,backendName:"webgl",kernelFunc:vst};var lI=class{constructor(t,e,n,o,s,i){this.variableNames=["Image","Transforms"],this.outputShape=i;let a=n==="nearest"?1:2,u;switch(o){case"constant":u=1;break;case"reflect":u=2;break;case"wrap":u=3;break;case"nearest":u=4;break;default:u=1;break}this.userCode=` float mapCoord(float outCoord, float len) { float inCoord = outCoord; if(${u} == 2) { @@ -4770,7 +4770,7 @@ return a / b;`,Xnt=` } setOutput(outputValue); } - `}};function gst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new aI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var zB={kernelName:Ha,backendName:"webgl",kernelFunc:gst};function xst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;Qs(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=JL(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var BB={kernelName:Mp,backendName:"webgl",kernelFunc:xst};function yst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var VB={kernelName:bi,backendName:"webgl",kernelFunc:yst};var lI=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` + `}};function Sst(r){let{inputs:t,backend:e,attrs:n}=r,{image:o,transforms:s}=t,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new lI(p,m,i,a,u,g);return e.runWebGLProgram(x,[o,s],"float32")}var GB={kernelName:ja,backendName:"webgl",kernelFunc:Sst};function Nst(r){let{inputs:t,attrs:e,backend:n}=r,{axis:o}=e,{x:s}=t;ri(s,"unique"),console.warn("WARNING: ","UI might be locked temporarily as data is being downloaded");let i=n.readSync(s.dataId),{outputValues:a,outputShape:u,indices:l}=eM(i,o,s.shape,s.dtype);return[n.makeTensorInfo(u,s.dtype,a),n.makeTensorInfo([l.length],"int32",l)]}var WB={kernelName:zp,backendName:"webgl",kernelFunc:Nst};function Tst(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o,a=i.shape.length,u=o.shape[s],l=new Array(a-1),c=0;for(let h=0;he.disposeIntermediateTensorInfo(h)),d}var UB={kernelName:Ii,backendName:"webgl",kernelFunc:Tst};var uI=class{constructor(t,e){this.variableNames=["x","segmentIds"];let n=t.windowSize,o=t.batchSize,s=t.inSize,i=t.numSegments,a=i*Math.ceil(s/n);this.outputShape=[o,a];let u="0.0",l="sumValue",c=Math.floor(n/4)*4,p=n%4,m=` sumValue += dot(values, segFilter); `,f="";s%n>0&&(f=` if (inIdx < 0 || inIdx >= ${s}) { @@ -4876,6 +4876,6 @@ return a / b;`,Xnt=` } setOutput(${l}); } - `}};function bst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o,segmentIds:s}=t,{numSegments:i}=n,a=o.shape.length,u=[],l=0,c=v.getAxesPermutation([l],a),p=o;c!=null&&(p=Oe({inputs:{x:o},backend:e,attrs:{perm:c}}),u.push(p),l=v.getInnerMostAxes(1,a)[0]);let m=v.segment_util.computeOutShape(p.shape,l,i),f=y.sizeFromShape([p.shape[l]]),d=it({inputs:{x:p},backend:e,attrs:{shape:[-1,f]}});u.push(d);let h=Wu(o.dtype),g=(C,N,_,A,$)=>{let F=C.shape[0],P=C.shape[1],V=v.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new lI(G,N),q=e.compileAndRun(W,[C,_],A);if(u.push(q),q.shape[1]===$)return q;let H=kk({backend:e,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),j=Ek({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,"unsortedSegmentSum",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=v.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var GB={kernelName:Wl,backendName:"webgl",kernelFunc:bst};var wst=[kM,_M,AM,$M,RM,FM,OM,PM,zM,BM,VM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,QM,tz,ez,sz,az,lz,xM,cz,mz,fz,dz,hz,gz,xz,yz,bz,wz,Cz,vz,Nz,Tz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Vz,Gz,Wz,Uz,qz,Kz,jz,Xz,Yz,Zz,Jz,Qz,t3,gM,e3,pz,r3,n3,o3,yM,s3,i3,a3,l3,u3,c3,p3,m3,f3,d3,g3,x3,y3,b3,w3,C3,S3,N3,T3,k3,E3,_3,F3,CM,O3,P3,L3,M3,rz,z3,G3,W3,U3,H3,bM,q3,K3,j3,X3,Y3,nz,A3,Z3,J3,Q3,SM,tB,eB,rB,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,JM,R3,gB,xB,yB,bB,wB,CB,IB,SB,NB,TB,EB,_B,AB,$B,DB,RB,D3,NM,FB,OB,PB,MB,zB,TM,BB,VB,GB,B3];for(let r of wst)Lu(r);var qt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(qt||(qt={}));var Du;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(Du||(Du={}));var WB;function Cst(r){WB=r.wasm.cwrap(Ci,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ist(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Du[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,_=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return WB(m,_,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var UB={kernelName:Ci,backendName:"wasm",setupFunc:Cst,kernelFunc:Ist};function se(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var HB=se(ii);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=v.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var Sst=!0,qB=ue(Zn,Sst);var KB;function vst(r){KB=r.wasm.cwrap(Go,null,["array","number","number","number"])}function Nst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return KB(s,o.length,qt[n.dtype],i),n}var jB={kernelName:Go,backendName:"wasm",setupFunc:vst,kernelFunc:Nst};function jc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return ur(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var XB={kernelName:co,backendName:"wasm",kernelFunc:jc};var YB;function Tst(r){YB=r.wasm.cwrap(Qn,null,["number","array","number","number","number","array","number"])}function ao(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Est(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var ZB={kernelName:Qn,backendName:"wasm",kernelFunc:ao,setupFunc:Tst};function bn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=v.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var iV={kernelName:di,backendName:"wasm",kernelFunc:ar};var aV;function Lst(r){aV=r.wasm.cwrap(Ho,null,["number","array","number","number","array","number","number","number","number"])}function Mst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Vr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],_=ar({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ar({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(_.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?_.shape[2]:_.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],_.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(_.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return aV($,H,_.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(_.dataId),e.disposeData(A.dataId),W.shape=w,W}var lV={kernelName:Ho,backendName:"wasm",setupFunc:Lst,kernelFunc:Mst};function Lo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Le.parseSliceParams(t,e,n),a=Le.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Le.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=$c(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)zst(u,c[0],m,s,i);else if(f===3)Bst(u,c[0],c[1],m,s,i);else if(f===4)Vst(u,c[0],c[1],c[2],m,s,i);else{let d=$c(u,s,i,t.shape,t.dtype);m.set(d)}return l}function zst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=v.getReshaped(o.shape,s,a),l=v.getPermuted(u.length,s.length),c=v.getReshapedPermuted(o.shape,s,a),p=v.getSliceBeginCoords(i,s.length),m=v.getSliceSize(c,i,s.length),f=ar({inputs:{x:o},backend:e,attrs:{shape:u}}),d=ao({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ar({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Lo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var cV={kernelName:ai,backendName:"wasm",kernelFunc:Gst};function ni(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var pV={kernelName:lo,backendName:"wasm",kernelFunc:ni};var mV=se(qo);var fV;function Wst(r){fV=r.wasm.cwrap(uo,null,["number","number","number","number"])}function Ust(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return fV(a,s,i,l),u}var dV={kernelName:uo,backendName:"wasm",setupFunc:Wst,kernelFunc:Ust};function _k(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);v.assertParamsConsistent(o,n);let s=v.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return jc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ar({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=v.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ec(d,s,t[0].dtype,h),x=v.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=v.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;vV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var NV={kernelName:fa,backendName:"wasm",setupFunc:Zst,kernelFunc:Jst};var TV;function Qst(r){TV=r.wasm.cwrap(Zo,null,["number","number","number","number","number","number"])}function tit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=v.getAxesPermutation([s],u),c=o;l!==null&&(c=ao({inputs:{x:o},attrs:{perm:l},backend:e}));let p=v.getInnerMostAxes(1,u)[0];v.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;TV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=v.getUndoAxesPermutation(l);g=ao({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var kV={kernelName:Zo,backendName:"wasm",setupFunc:Qst,kernelFunc:tit};var EV;function eit(r){EV=r.wasm.cwrap(ha,null,["number","number","number","array","number","array","array","number","number"])}function rit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return EV(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var _V={kernelName:ha,backendName:"wasm",setupFunc:eit,kernelFunc:rit};var AV;function nit(r){AV=r.wasm.cwrap(Jo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function oit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=v.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,_=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return AV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,_,A,$,F,G),V}var $V={kernelName:Jo,backendName:"wasm",setupFunc:nit,kernelFunc:oit};var DV=se(ts);var sit=!1,RV=ue(xa,sit,"bool");var FV=se(es,"float32");function uI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ar({inputs:{x:o},backend:n,attrs:{shape:a}})}var OV={kernelName:ui,backendName:"wasm",kernelFunc:uI};function $k(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var PV={kernelName:Dl,backendName:"wasm",kernelFunc:$k};var LV;function iit(r){LV=r.wasm.cwrap(ba,null,["number","number","number","number","number","number"])}function ait(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return LV(s,a,u,l,c,i),o}var MV={kernelName:ba,backendName:"wasm",kernelFunc:ait,setupFunc:iit};var zV=se(rs);var lit=!1,BV=ue(ns,lit);var VV;function uit(r){VV=r.wasm.cwrap(os,null,["number","number","number","number","number","number","number"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return VV(c,p,m,f,d,o,g),h}var GV={kernelName:os,backendName:"wasm",setupFunc:uit,kernelFunc:cit};var WV;function pit(r){WV=r.wasm.cwrap(Ii,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 mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return WV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var UV={kernelName:Ii,backendName:"wasm",setupFunc:pit,kernelFunc:mit};var HV;function fit(r){HV=r.wasm.cwrap(Si,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 dit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=v.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Du[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,_=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return HV(x,Y,Z,et,b,N,_,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var qV={kernelName:Si,backendName:"wasm",setupFunc:fit,kernelFunc:dit};var KV;function hit(r){KV=r.wasm.cwrap(wa,null,["number","number","number","number","number","number","array","number"])}function git(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=ox.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return KV(f,qt[n.dtype],h,i,p,a,g,x),l}var jV={kernelName:wa,backendName:"wasm",setupFunc:hit,kernelFunc:git};var XV;function xit(r){XV=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=v.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ar({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ar({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,_=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return XV(w,qt[o.dtype],A,x,N,p.batchSize,$,_),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var YV={kernelName:ci,backendName:"wasm",setupFunc:xit,kernelFunc:yit};var bit=!1,ZV=ue(Ca,bit,"bool");var wit=!1,JV=ue(ss,wit,"bool");var QV;function Cit(r){QV=r.wasm.cwrap(is,null,["number","number","number","number"])}function Iit(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;QV(o,qt[t.dtype],e,i)}return s}var tG={kernelName:is,backendName:"wasm",setupFunc:Cit,kernelFunc:Iit};var Sit=!1,eG=ue(Na,Sit,"bool");var vit=!1,rG=ue(Ta,vit,"bool");var nG=se(as);var Nit=!1,oG=ue(Ea,Nit,"bool");var sG=se(_a);var Tit=!1,iG=ue(Aa,Tit,"bool");var kit=!1,aG=ue(m1,kit,"bool");var lG;function Eit(r){lG=r.wasm.cwrap(ls,null,["number","number","number","number"])}function _it(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;v.assertAxesAreInnerMostDims("max",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;lG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var uG={kernelName:ls,backendName:"wasm",setupFunc:Eit,kernelFunc:_it};var Ait=!1,cG=ue(us,Ait);var pG;function $it(r){pG=r.wasm.cwrap(cs,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Dit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=v.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,_=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),$=n.dataIdMap.get(A.dataId).id;return pG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,_,$),A}var mG={kernelName:cs,backendName:"wasm",setupFunc:$it,kernelFunc:Dit};var fG;function Rit(r){fG=r.wasm.cwrap(ps,null,["number, number, number"])}function Fit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=ni({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;fG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=v.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var dG={kernelName:ps,backendName:"wasm",setupFunc:Rit,kernelFunc:Fit};var hG;function Oit(r){hG=r.wasm.cwrap(ms,null,["number","number","number","number"])}function Pit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;v.assertAxesAreInnerMostDims("min",p,d);let[h,g]=v.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;hG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var gG={kernelName:ms,backendName:"wasm",setupFunc:Oit,kernelFunc:Pit};var Lit=!1,xG=ue(fs,Lit);var Dk;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Dk||(Dk={}));var yG;function Mit(r){yG=r.wasm.cwrap(ds,null,["number","array","number","number","array","array","number","number"])}function zit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return yG(i,l,t.shape.length,qt[t.dtype],m,f,Dk[o],u),a}var bG={kernelName:ds,backendName:"wasm",kernelFunc:zit,setupFunc:Mit};var Bit=!0,wG=ue(hs,Bit);var CG=se(pi);function Dd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var IG;function Vit(r){IG=r.wasm.cwrap(Ra,"number",["number","number","number","number","number"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=IG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Dd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var SG={kernelName:Ra,backendName:"wasm",setupFunc:Vit,kernelFunc:Git};var vG;function Wit(r){vG=r.wasm.cwrap(Fa,"number",["number","number","number","number","number","bool"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=vG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var NG={kernelName:Fa,backendName:"wasm",setupFunc:Wit,kernelFunc:Uit};var TG;function Hit(r){TG=r.wasm.cwrap(Oa,"number",["number","number","number","number","number","number"])}function qit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=TG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Dd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var kG={kernelName:Oa,backendName:"wasm",setupFunc:Hit,kernelFunc:qit};var Kit=!1,EG=ue(Da,Kit,"bool");var _G;function jit(r){_G=r.wasm.cwrap(gs,null,["number","number","number","number","number"])}function Xit(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return _G(m,i,a,u,c),l}var AG={kernelName:gs,backendName:"wasm",setupFunc:jit,kernelFunc:Xit};function Yit(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var $G={kernelName:mi,backendName:"wasm",kernelFunc:Yit};function Zit(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return uI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=uI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=_k({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var DG={kernelName:fi,backendName:"wasm",kernelFunc:Zit};var RG;function Jit(r){RG=r.wasm.cwrap(xs,null,["number","array","number","number","array","array","number","number"])}function Qit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return $k({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return RG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var cI={kernelName:xs,backendName:"wasm",kernelFunc:Qit,setupFunc:Jit};var tat=!1,FG=ue(ys,tat);var OG;function eat(r){OG=r.wasm.cwrap(bs,null,["number","number","number"])}function rat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=ni({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return OG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var PG={kernelName:bs,backendName:"wasm",setupFunc:eat,kernelFunc:rat};var LG;function nat(r){LG=r.wasm.cwrap(ws,null,["number","number","number","number"])}function oat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;LG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var MG={kernelName:ws,backendName:"wasm",setupFunc:nat,kernelFunc:oat};var sat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Ac(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},zG={kernelName:Ol,backendName:"wasm",kernelFunc:sat};var iat=!0,BG=ue(Qo,iat);var VG=se(Cs);var GG=se(vs);var WG;function aat(r){WG=r.wasm.cwrap(Ss,null,["number","number","number","number","number","number","number","number","number","number"])}function lat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return WG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var UG={kernelName:Ss,backendName:"wasm",setupFunc:aat,kernelFunc:lat};var HG;function uat(r){HG=r.wasm.cwrap(Is,null,["number","number","number","number","number","number","number","number","number","number"])}function cat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=ni({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return HG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var qG={kernelName:Is,backendName:"wasm",setupFunc:uat,kernelFunc:cat};var KG;function pat(r){KG=r.wasm.cwrap(Ns,null,["number","array","number","array","number","number"])}function mat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return jc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);KG(u,c,i.length,p,o.shape.length,l);let m=ar({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var jG={kernelName:Ns,backendName:"wasm",kernelFunc:mat,setupFunc:pat};var XG;function fat(r){XG=r.wasm.cwrap(qa,null,["number","number","number","number","number","number","number","number","array","number","number"])}function dat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=v.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return XG(l,p,m,f,d,s,h,g,C,w.length,c),u}var YG={kernelName:qa,backendName:"wasm",kernelFunc:dat,setupFunc:fat};var ZG=se(Ts);var JG=se(ks);var QG;function hat(r){QG=r.wasm.cwrap(La,null,["number","number","number","number","number","number","array","number","number"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=lh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return QG(d,g,qt[s.dtype],u,l,c,x,m,b),a}var tW={kernelName:La,backendName:"wasm",setupFunc:hat,kernelFunc:gat};var eW;function xat(r){eW=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function yat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return eW(i,a,u,f,c),l}var rW={kernelName:hi,backendName:"wasm",kernelFunc:yat,setupFunc:xat};var nW;function bat(r){nW=r.wasm.cwrap(_s,null,["number","number"])}function wat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||nW(n,s),o}var oW={kernelName:"Sigmoid",backendName:"wasm",setupFunc:bat,kernelFunc:wat};var sW=se(Es);var iW;function Cat(r){iW=r.wasm.cwrap(Ds,null,["number","number","number","number"])}function Iat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||iW(o,i,a,u),s}var aW={kernelName:Ds,backendName:"wasm",setupFunc:Cat,kernelFunc:Iat};function Sat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let _=1+s.length;_{let F=C.shape[0],P=C.shape[1],V=S.segment_util.segOpComputeOptimalWindowSize(P,$),G={windowSize:V,inSize:P,batchSize:F,numSegments:$},W=new uI(G,N),q=e.compileAndRun(W,[C,E],A);if(u.push(q),q.shape[1]===$)return q;let H=Ak({backend:e,attrs:{start:0,stop:$,step:1,dtype:"float32"}}),j=$k({inputs:{x:H},backend:e,attrs:{reps:[P/V]}});return u.push(H),u.push(j),g(q,N,j,A,$)},x=g(d,"unsortedSegmentSum",s,h,i),b=it({inputs:{x},backend:e,attrs:{shape:m}}),w=b;if(c!=null){u.push(b);let C=S.getUndoAxesPermutation(c);w=Oe({inputs:{x:w},backend:e,attrs:{perm:C}})}return u.forEach(C=>e.disposeIntermediateTensorInfo(C)),w}var HB={kernelName:ql,backendName:"webgl",kernelFunc:kst};var Est=[AM,DM,RM,FM,PM,LM,MM,zM,GM,WM,UM,HM,qM,KM,jM,XM,YM,ZM,JM,QM,tz,rz,nz,oz,lz,cz,pz,wM,fz,hz,gz,xz,yz,bz,wz,Cz,Iz,vz,Sz,kz,Ez,_z,Az,$z,Dz,Rz,Fz,Oz,Pz,Lz,Mz,zz,Bz,Vz,Gz,Uz,Hz,qz,Kz,Xz,Yz,Zz,Jz,Qz,t3,e3,r3,n3,bM,o3,dz,s3,i3,a3,CM,l3,u3,c3,p3,m3,f3,d3,h3,g3,x3,b3,w3,C3,I3,v3,S3,T3,E3,_3,A3,$3,D3,L3,SM,M3,z3,B3,V3,sz,G3,H3,q3,K3,j3,IM,X3,Y3,Z3,J3,Q3,iz,R3,tB,eB,rB,TM,nB,oB,sB,iB,aB,lB,uB,cB,pB,mB,fB,dB,hB,gB,xB,yB,ez,P3,bB,wB,CB,IB,vB,SB,NB,TB,EB,_B,$B,DB,RB,FB,OB,PB,O3,EM,LB,MB,zB,VB,GB,_M,WB,UB,HB,W3];for(let r of Est)zu(r);var qt;(function(r){r[r.float32=0]="float32",r[r.int32=1]="int32",r[r.bool=2]="bool",r[r.string=3]="string",r[r.complex64=4]="complex64"})(qt||(qt={}));var Fu;(function(r){r[r.linear=0]="linear",r[r.relu=1]="relu",r[r.relu6=2]="relu6",r[r.prelu=3]="prelu",r[r.leakyrelu=4]="leakyrelu",r[r.sigmoid=5]="sigmoid",r[r.elu=6]="elu"})(Fu||(Fu={}));var qB;function _st(r){qB=r.wasm.cwrap(Si,null,["number","array","number","number","array","number","number","number","number","number","number","number","number"])}function Ast(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s,bias:i,preluActivationWeights:a}=t;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("_FusedMatMul for non non-float32 tensors not yet supported.");let{transposeA:u,transposeB:l,activation:c,leakyreluAlpha:p}=n,m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=0;if(i!=null){let $=e.dataIdMap.get(i.dataId);if($.shape.length!==1)throw new Error(`_FusedMatMul only supports rank-1 bias but got rank ${$.shape.length}.`);d=$.id}let h=a==null?0:e.dataIdMap.get(a.dataId).id,g=Fu[c];if(g==null)throw new Error(`${c} activation not yet supported for FusedConv2D in the wasm backend.`);let x=u?o.shape[2]:o.shape[1],b=l?s.shape[1]:s.shape[2],w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)),C=e.makeOutput([...w,x,b],o.dtype),N=e.dataIdMap.get(C.dataId).id,E=new Uint8Array(new Int32Array(o.shape).buffer),A=new Uint8Array(new Int32Array(s.shape).buffer);return qB(m,E,o.shape.length,f,A,s.shape.length,u,l,g,d,h,p||0,N),C}var KB={kernelName:Si,backendName:"wasm",setupFunc:_st,kernelFunc:Ast};function te(r,t){let e;function n(s){e=s.wasm.cwrap(r,null,["number","number","number"])}function o(s){let{backend:i,inputs:{x:a}}=s,u=i.dataIdMap.get(a.dataId).id,l=i.makeOutput(a.shape,t||a.dtype),c=i.dataIdMap.get(l.dataId).id;return y.sizeFromShape(l.shape)===0||e(u,qt[a.dtype],c),l}return{kernelName:r,backendName:"wasm",setupFunc:n,kernelFunc:o}}var jB=te(ui);function ue(r,t,e){let n;function o(i){n=i.wasm.cwrap(r,null,["number","array","number","number","array","number","number","number"])}function s(i){let{backend:a,inputs:u}=i,{a:l,b:c}=u,p=a.dataIdMap.get(l.dataId).id,m=a.dataIdMap.get(c.dataId).id,f=e!=null?e:l.dtype,d=S.assertAndGetBroadcastShape(l.shape,c.shape),h=a.makeOutput(d,f);if(y.sizeFromShape(d)===0)return h;let g=new Uint8Array(new Int32Array(l.shape).buffer),x=new Uint8Array(new Int32Array(c.shape).buffer),b=a.dataIdMap.get(h.dataId).id;return(()=>n(p,g,l.shape.length,m,x,c.shape.length,qt[l.dtype],b))(),h}return{kernelName:r,backendName:"wasm",setupFunc:o,kernelFunc:s}}var $st=!0,XB=ue(Qn,$st);var YB;function Dst(r){YB=r.wasm.cwrap(Wo,null,["array","number","number","number"])}function Rst(r){let{inputs:t,backend:e}=r,n=e.makeOutput(t[0].shape,t[0].dtype);if(y.sizeFromShape(n.shape)===0)return n;let o=t.map(a=>e.dataIdMap.get(a.dataId).id),s=new Uint8Array(new Int32Array(o).buffer),i=e.dataIdMap.get(n.dataId).id;return YB(s,o.length,qt[n.dtype],i),n}var ZB={kernelName:Wo,backendName:"wasm",setupFunc:Dst,kernelFunc:Rst};function Xc(r){let{inputs:{x:t},backend:e}=r;if(t.dtype==="string")return nr(e.readSync(t.dataId),t.shape,t.dtype);let n=e.makeOutput(t.shape,t.dtype),o=e.typedArrayFromHeap(t);return e.typedArrayFromHeap(n).set(o),n}var JB={kernelName:mo,backendName:"wasm",kernelFunc:Xc};var QB;function Fst(r){QB=r.wasm.cwrap(eo,null,["number","array","number","number","number","array","number"])}function uo(r){let{inputs:t,backend:e,attrs:n}=r,[o,s]=Pst(t.x.shape,n.perm),i=!0;for(let d=0;d=o&&(s===-1||n[s]>n[i])&&(s=i);n[s]=o}return[e,n]}var tV={kernelName:eo,backendName:"wasm",kernelFunc:uo,setupFunc:Fst};function Cn(r,t,e){let n=r.shape,o=r.shape.length,s=y.parseAxisParam(t,n),i=s,a=S.getAxesPermutation(i,o),u=null,l=!1;if(a!=null){let c=new Array(o);for(let f=0;f`new shape: ${i}, old shape: ${n.shape}. New shape and old shape must have the same number of elements.`),r.backend.incRef(n.dataId),{dataId:n.dataId,shape:i,dtype:n.dtype}}var uV={kernelName:xi,backendName:"wasm",kernelFunc:ur};var cV;function Hst(r){cV=r.wasm.cwrap(qo,null,["number","array","number","number","array","number","number","number","number"])}function qst(r){let{inputs:t,backend:e,attrs:n}=r,{a:o,b:s}=t,{transposeA:i,transposeB:a}=n;if(o.dtype!=="float32"||s.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");let u=o.shape.length,l=s.shape.length,c=i?o.shape[u-2]:o.shape[u-1],p=a?s.shape[l-1]:s.shape[l-2],m=i?o.shape[u-1]:o.shape[u-2],f=a?s.shape[l-2]:s.shape[l-1],d=o.shape.slice(0,-2),h=s.shape.slice(0,-2),g=y.sizeFromShape(d),x=y.sizeFromShape(h),w=Wr.assertAndGetBroadcastShape(o.shape.slice(0,-2),s.shape.slice(0,-2)).concat([m,f]);y.assert(c===p,()=>`Error in matMul: inner shapes (${c}) and (${p}) of Tensors with shapes ${o.shape} and ${s.shape} and transposeA=${i} and transposeB=${a} must match.`);let C=i?[g,c,m]:[g,m,c],N=a?[x,f,p]:[x,p,f],E=ur({inputs:{x:o},backend:e,attrs:{shape:C}}),A=ur({inputs:{x:s},backend:e,attrs:{shape:N}}),$=e.dataIdMap.get(E.dataId).id,F=e.dataIdMap.get(A.dataId).id,P=i?E.shape[2]:E.shape[1],V=a?A.shape[1]:A.shape[2],G=Math.max(g,x),W=e.makeOutput([G,P,V],E.dtype),q=e.dataIdMap.get(W.dataId).id,H=new Uint8Array(new Int32Array(E.shape).buffer),j=new Uint8Array(new Int32Array(A.shape).buffer);return cV($,H,E.shape.length,F,j,A.shape.length,i,a,q),e.disposeData(E.dataId),e.disposeData(A.dataId),W.shape=w,W}var pV={kernelName:qo,backendName:"wasm",setupFunc:Hst,kernelFunc:qst};function Mo(r){let{inputs:{x:t},attrs:{begin:e,size:n},backend:o}=r,[s,i]=Me.parseSliceParams(t,e,n),a=Me.isSliceContinous(t.shape,s,i),u=o.readSync(t.dataId),l=o.makeOutput(i,t.dtype),c=y.computeStrides(t.shape),p=o.dataIdMap.get(l.dataId);if(a){let d=Me.computeFlatOffset(s,c);return t.dtype==="string"?p.stringBytes=u.slice(d,d+y.sizeFromShape(i)):o.typedArrayFromHeap(l).set(u.subarray(d,d+y.sizeFromShape(i))),l}if(t.dtype==="string"){let d=Rc(u,s,i,t.shape,t.dtype);return p.stringBytes=d,l}let m=o.typedArrayFromHeap(l),f=t.shape.length;if(f===2)Kst(u,c[0],m,s,i);else if(f===3)jst(u,c[0],c[1],m,s,i);else if(f===4)Xst(u,c[0],c[1],c[2],m,s,i);else{let d=Rc(u,s,i,t.shape,t.dtype);m.set(d)}return l}function Kst(r,t,e,n,o){let s=0,i=n[0],a=n[1],u=i+o[0];for(let l=i;lx*b),u=S.getReshaped(o.shape,s,a),l=S.getPermuted(u.length,s.length),c=S.getReshapedPermuted(o.shape,s,a),p=S.getSliceBeginCoords(i,s.length),m=S.getSliceSize(c,i,s.length),f=ur({inputs:{x:o},backend:e,attrs:{shape:u}}),d=uo({inputs:{x:f},backend:e,attrs:{perm:l}}),h=ur({inputs:{x:d},backend:e,attrs:{shape:c}}),g=Mo({inputs:{x:h},backend:e,attrs:{begin:p,size:m}});return e.disposeData(f.dataId),e.disposeData(d.dataId),e.disposeData(f.dataId),g}var fV={kernelName:ci,backendName:"wasm",kernelFunc:Yst};function ii(r){let{inputs:{x:t},attrs:{dtype:e},backend:n}=r,o=n.makeOutput(t.shape,e),s=n.typedArrayFromHeap(t);return n.typedArrayFromHeap(o).set(s),o}var dV={kernelName:co,backendName:"wasm",kernelFunc:ii};var hV=te(Ko);var gV;function Zst(r){gV=r.wasm.cwrap(po,null,["number","number","number","number"])}function Jst(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{clipValueMin:s,clipValueMax:i}=n,a=e.dataIdMap.get(o.dataId).id,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(u.dataId).id;return gV(a,s,i,l),u}var xV={kernelName:po,backendName:"wasm",setupFunc:Zst,kernelFunc:Jst};function Dk(r){let{inputs:t,backend:e}=r,n=y.parseAxisParam(r.attrs.axis,t[0].shape)[0],o=t.map(f=>f.shape);S.assertParamsConsistent(o,n);let s=S.computeOutShape(t.map(f=>f.shape),n),i=t.filter(f=>y.sizeFromShape(f.shape)>0);if(i.length===1)return Xc({inputs:{x:i[0]},backend:e});let a=e.makeOutput(s,t[0].dtype);if(y.sizeFromShape(s)===0)return a;if(i[0].dtype==="string"){let f=i.map(w=>{let N=[-1,y.sizeFromShape(w.shape.slice(n))];return ur({inputs:{x:w},backend:e,attrs:{shape:N}})}),d=f.map(w=>({vals:e.readSync(w.dataId),shape:w.shape}));s=S.computeOutShape(f.map(w=>w.shape),1);let h=f[0].shape[0]===1,g=Ac(d,s,t[0].dtype,h),x=S.computeOutShape(i.map(w=>w.shape),n);a.shape=x;let b=e.dataIdMap.get(a.dataId);return b.stringBytes=S.fromStringArrayToUint8(g),f.forEach(w=>e.disposeData(w.dataId)),a}let u=y.sizeFromShape(i[0].shape.slice(0,n)),l=0,c=i.map(f=>{let d=y.sizeFromShape(f.shape.slice(n));return l+=d,d}),p=i.map(f=>e.typedArrayFromHeap(f)),m=e.typedArrayFromHeap(a);for(let f=0;f`cumprod does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=uo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumprod",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;kV(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=uo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var EV={kernelName:ya,backendName:"wasm",setupFunc:sit,kernelFunc:iit};var _V;function ait(r){_V=r.wasm.cwrap(Jo,null,["number","number","number","number","number","number"])}function lit(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{axis:s,exclusive:i,reverse:a}=n,u=o.shape.length;y.assert(o.dtype==="float32"||o.dtype==="int32",()=>`cumsum does not support ${o.dtype} tensors in the WASM backend`);let l=S.getAxesPermutation([s],u),c=o;l!==null&&(c=uo({inputs:{x:o},attrs:{perm:l},backend:e}));let p=S.getInnerMostAxes(1,u)[0];S.assertAxesAreInnerMostDims("cumsum",[p],u);let m=e.makeOutput(c.shape,c.dtype),f=c.shape[p],d=e.dataIdMap.get(c.dataId).id,h=e.dataIdMap.get(m.dataId).id;_V(d,i?1:0,a?1:0,f,h,qt[o.dtype]);let g=m;if(l!==null){let x=S.getUndoAxesPermutation(l);g=uo({inputs:{x:m},attrs:{perm:x},backend:e}),e.disposeData(c.dataId),e.disposeData(m.dataId)}return g}var AV={kernelName:Jo,backendName:"wasm",setupFunc:ait,kernelFunc:lit};var $V;function uit(r){$V=r.wasm.cwrap(wa,null,["number","number","number","array","number","array","array","number","number"])}function cit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{blockSize:s,dataFormat:i}=n,a=o.shape[0],u=i==="NHWC"?o.shape[1]:o.shape[2],l=i==="NHWC"?o.shape[2]:o.shape[3],c=i==="NHWC"?o.shape[3]:o.shape[1],p=u*s,m=l*s,f=c/(s*s),d=i==="NHWC"?[a,p,m,f]:[a,f,p,m],h=t.makeOutput(d,"float32"),x=t.dataIdMap.get(o.dataId).id,b=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),w=new Uint8Array(new Int32Array(d).buffer),C=new Uint8Array(new Int32Array(y.computeStrides(d)).buffer),N=t.dataIdMap.get(h.dataId).id;return $V(x,s,i==="NHWC"?1:0,b,o.shape.length-1,w,C,d.length,N),h}var DV={kernelName:wa,backendName:"wasm",setupFunc:uit,kernelFunc:cit};var RV;function pit(r){RV=r.wasm.cwrap(Qo,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function mit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s}=t,i=n.dataIdMap.get(o.dataId).id,a=n.dataIdMap.get(s.dataId).id,{strides:u,dilations:l,pad:c,dimRoundingMode:p}=e,m=l==null?[1,1]:l,f=S.computeConv2DInfo(o.shape,s.shape,u,m,c,p,!0),d=f.filterHeight,h=f.filterWidth,g=f.padInfo.top,x=f.padInfo.right,b=f.padInfo.bottom,w=f.padInfo.left,C=f.dilationHeight,N=f.dilationWidth,E=f.strideHeight,A=f.strideWidth,$=f.inChannels,F=f.outChannels,P=f.padInfo.type==="SAME"?1:0;if(f.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${f.dataFormat}'. Please use 'channelsLast'.`);let V=n.makeOutput(f.outShape,"float32"),G=n.dataIdMap.get(V.dataId).id;return RV(i,o.shape[0],o.shape[1],o.shape[2],a,d,h,g,x,b,w,P,C,N,E,A,$,F,G),V}var FV={kernelName:Qo,backendName:"wasm",setupFunc:pit,kernelFunc:mit};var OV=te(es);var fit=!1,PV=ue(Ia,fit,"bool");var LV=te(rs,"float32");function cI(r){let{inputs:t,attrs:e,backend:n}=r,{input:o}=t,{dim:s}=e,i=o.shape.length,a=o.shape.slice(),u=s;return s<0&&(y.assert(-(i+1)<=s,()=>`Axis must be in the interval [${-(i+1)}, ${i}]`),u=i+s+1),a.splice(u,0,1),ur({inputs:{x:o},backend:n,attrs:{shape:a}})}var MV={kernelName:mi,backendName:"wasm",kernelFunc:cI};function Fk(r){let{attrs:{shape:t,value:e,dtype:n},backend:o}=r,s=o.makeOutput(t,n);return o.typedArrayFromHeap(s).fill(e),s}var zV={kernelName:Ol,backendName:"wasm",kernelFunc:Fk};var BV;function dit(r){BV=r.wasm.cwrap(Sa,null,["number","number","number","number","number","number"])}function hit(r){let{inputs:t,backend:e}=r,{image:n}=t,o=e.makeOutput(n.shape,n.dtype),s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,[a,u,l,c]=n.shape;return BV(s,a,u,l,c,i),o}var VV={kernelName:Sa,backendName:"wasm",kernelFunc:hit,setupFunc:dit};var GV=te(ns);var git=!1,WV=ue(os,git);var UV;function xit(r){UV=r.wasm.cwrap(ss,null,["number","number","number","number","number","number","number"])}function yit(r){let{backend:t,inputs:e,attrs:n}=r,{varianceEpsilon:o}=n,{x:s,mean:i,variance:a,offset:u,scale:l}=e,c=t.dataIdMap.get(s.dataId).id,p=t.dataIdMap.get(i.dataId).id,m=t.dataIdMap.get(a.dataId).id,f=u!=null?t.dataIdMap.get(u.dataId).id:0,d=l!=null?t.dataIdMap.get(l.dataId).id:0,h=t.makeOutput(s.shape,s.dtype);if(y.sizeFromShape(s.shape)===0)return h;let g=t.dataIdMap.get(h.dataId).id;return UV(c,p,m,f,d,o,g),h}var HV={kernelName:ss,backendName:"wasm",setupFunc:xit,kernelFunc:yit};var qV;function bit(r){qV=r.wasm.cwrap(Ni,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 wit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m),g=Fu[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return qV(x,Y,Z,et,b,N,E,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var KV={kernelName:Ni,backendName:"wasm",setupFunc:bit,kernelFunc:wit};var jV;function Cit(r){jV=r.wasm.cwrap(Ti,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 Iit(r){let{inputs:t,attrs:e,backend:n}=r,{x:o,filter:s,bias:i,preluActivationWeights:a}=t,{strides:u,pad:l,dilations:c,dataFormat:p,dimRoundingMode:m,activation:f,leakyreluAlpha:d}=e,h=S.computeConv2DInfo(o.shape,s.shape,u,c,l,m,!0),g=Fu[f];if(g==null)throw new Error(`${f} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);let x=n.dataIdMap.get(o.dataId).id,b=n.dataIdMap.get(s.dataId).id,w=h.outChannels,C=0;if(i!=null){let nt=n.dataIdMap.get(i.dataId);if(nt.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${nt.shape.length}.`);if(nt.shape[0]!==w)throw new Error(`FusedDepthwiseConv2D bias shape (${nt.shape}) does not match the number of output channels (${w})`);C=nt.id}let N=h.filterHeight,E=h.filterWidth,A=h.padInfo.top,$=h.padInfo.right,F=h.padInfo.bottom,P=h.padInfo.left,V=h.dilationHeight,G=h.dilationWidth,W=h.strideHeight,q=h.strideWidth,H=h.inChannels,j=h.padInfo.type==="SAME"?1:0,Y=h.batchSize,Z=h.inHeight,et=h.inWidth;if(p!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${p}'. Please use 'NHWC'.`);let rt=n.makeOutput(h.outShape,"float32"),ot=n.dataIdMap.get(rt.dataId).id,at=a==null?0:n.dataIdMap.get(a.dataId).id;return jV(x,Y,Z,et,b,N,E,C,A,$,F,P,j,V,G,W,q,H,w,g,at,d||0,ot),rt}var XV={kernelName:Ti,backendName:"wasm",setupFunc:Cit,kernelFunc:Iit};var YV;function vit(r){YV=r.wasm.cwrap(Na,null,["number","number","number","number","number","number","array","number"])}function Sit(r){let{backend:t,inputs:e}=r,{params:n,indices:o}=e,[s,i,a,u]=sx.prepareAndValidate(n,o),l=t.makeOutput(s,n.dtype);if(i===0)return l;let c=o.shape,p=c[c.length-1],f=t.dataIdMap.get(n.dataId).id,h=t.dataIdMap.get(o.dataId).id,g=new Uint8Array(new Int32Array(u).buffer),x=t.dataIdMap.get(l.dataId).id;return YV(f,qt[n.dtype],h,i,p,a,g,x),l}var ZV={kernelName:Na,backendName:"wasm",setupFunc:vit,kernelFunc:Sit};var JV;function Nit(r){JV=r.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function Tit(r){let{backend:t,inputs:e,attrs:n}=r,{x:o,indices:s}=e,{axis:i,batchDims:a}=n,u=y.parseAxisParam(i,o.shape)[0],l=t.readSync(s.dataId),c=o.shape[u];for(let F=0;F=0,()=>`GatherV2: the index value ${P} is not in [0, ${c-1}]`)}let p=S.segment_util.collectGatherOpShapeInfo(o,s,u,a),m=ur({inputs:{x:o},attrs:{shape:[p.batchSize,p.outerSize,p.dimSize,p.sliceSize]},backend:t}),f=y.sizeFromShape(s.shape),d=ur({inputs:{x:s},attrs:{shape:[p.batchSize,f/p.batchSize]},backend:t}),h=[p.batchSize,p.outerSize,f/p.batchSize,p.sliceSize],g=t.makeOutput(h,o.dtype);if(y.sizeFromShape(o.shape)===0)return g;let x=m.shape.length-1,w=t.dataIdMap.get(m.dataId).id,N=t.dataIdMap.get(d.dataId).id,E=t.dataIdMap.get(g.dataId).id,A=new Uint8Array(new Int32Array(y.computeStrides(m.shape)).buffer),$=new Uint8Array(new Int32Array(y.computeStrides(h)).buffer);return JV(w,qt[o.dtype],A,x,N,p.batchSize,$,E),t.disposeData(m.dataId),t.disposeData(d.dataId),g.shape=p.outputShape,g}var QV={kernelName:fi,backendName:"wasm",setupFunc:Nit,kernelFunc:Tit};var kit=!1,tG=ue(Ta,kit,"bool");var Eit=!1,eG=ue(is,Eit,"bool");var rG=te(as,"bool");var nG;function _it(r){nG=r.wasm.cwrap(ls,null,["number","number","number","number"])}function Ait(r){let{inputs:{x:t},attrs:{alpha:e},backend:n}=r,o=n.dataIdMap.get(t.dataId).id,s=n.makeOutput(t.shape,"float32");if(y.sizeFromShape(t.shape)!==0){let i=n.dataIdMap.get(s.dataId).id;nG(o,qt[t.dtype],e,i)}return s}var oG={kernelName:ls,backendName:"wasm",setupFunc:_it,kernelFunc:Ait};var $it=!1,sG=ue(_a,$it,"bool");var Dit=!1,iG=ue(Aa,Dit,"bool");var aG=te(us);var Rit=!1,lG=ue(Da,Rit,"bool");var uG=te(Ra);var Fit=!1,cG=ue(Fa,Fit,"bool");var Oit=!1,pG=ue(h1,Oit,"bool");var mG;function Pit(r){mG=r.wasm.cwrap(cs,null,["number","number","number","number"])}function Lit(r){let{backend:t,inputs:e,attrs:n}=r,{reductionIndices:o,keepDims:s}=n,{x:i}=e,u=t.dataIdMap.get(i.dataId).id,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;l=c,u=w}let d=l.shape.length;S.assertAxesAreInnerMostDims("max",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,i.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;mG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var fG={kernelName:cs,backendName:"wasm",setupFunc:Pit,kernelFunc:Lit};var Mit=!1,dG=ue(ps,Mit);var hG;function zit(r){hG=r.wasm.cwrap(ms,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function Bit(r){let{inputs:t,attrs:e,backend:n}=r,o=t.x,s=n.dataIdMap.get(o.dataId).id;y.assert(o.dtype==="float32",()=>`Error in MaxPool: only float32 input is supported. Got ${o.dtype}.`);let{filterSize:i,strides:a,pad:u,dimRoundingMode:l}=e,c=S.computePool2DInfo(o.shape,i,a,1,u,l),p=c.filterHeight,m=c.filterWidth,f=c.padInfo.top,d=c.padInfo.right,h=c.padInfo.bottom,g=c.padInfo.left,x=c.dilationHeight,b=c.dilationWidth,w=c.strideHeight,C=c.strideWidth,N=c.inChannels,E=c.outChannels;if(c.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${c.dataFormat}'. Please use 'channelsLast'.`);let A=n.makeOutput(c.outShape,"float32"),$=n.dataIdMap.get(A.dataId).id;return hG(s,o.shape[0],o.shape[1],o.shape[2],p,m,f,d,h,g,x,b,w,C,N,E,$),A}var gG={kernelName:ms,backendName:"wasm",setupFunc:zit,kernelFunc:Bit};var xG;function Vit(r){xG=r.wasm.cwrap(fs,null,["number, number, number"])}function Git(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let C=t.dataIdMap.get(c.dataId).id;C!==a&&(l=c,u=C,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("mean",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=l;l.dtype!=="float32"&&(b=ii({backend:t,inputs:{x:l},attrs:{dtype:"float32"}}),u=t.dataIdMap.get(b.dataId).id);let w=t.makeOutput(h,"float32");if(y.sizeFromShape(l.shape)!==0){let C=t.dataIdMap.get(w.dataId).id;xG(u,x,C)}if(f&&t.disposeData(c.dataId),s){let C=S.expandShapeToKeepDim(w.shape,m);w.shape=C}return l.dtype!=="float32"&&t.disposeData(b.dataId),w}var yG={kernelName:fs,backendName:"wasm",setupFunc:Vit,kernelFunc:Git};var bG;function Wit(r){bG=r.wasm.cwrap(ds,null,["number","number","number","number"])}function Uit(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t);if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w)}let d=l.shape.length;S.assertAxesAreInnerMostDims("min",p,d);let[h,g]=S.computeOutAndReduceShapes(l.shape,p),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;bG(u,qt[i.dtype],x,w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var wG={kernelName:ds,backendName:"wasm",setupFunc:Wit,kernelFunc:Uit};var Hit=!1,CG=ue(hs,Hit);var Ok;(function(r){r[r.reflect=0]="reflect",r[r.symmetric=1]="symmetric"})(Ok||(Ok={}));var IG;function qit(r){IG=r.wasm.cwrap(gs,null,["number","array","number","number","array","array","number","number"])}function Kit(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,mode:o}}=r,s=n.map((d,h)=>d[0]+t.shape[h]+d[1]),i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),u=e.dataIdMap.get(a.dataId).id,l=new Uint8Array(new Int32Array(t.shape).buffer),c=n.map(d=>d[0]),p=n.map(d=>d[1]),m=new Uint8Array(new Int32Array(c).buffer),f=new Uint8Array(new Int32Array(p).buffer);return IG(i,l,t.shape.length,qt[t.dtype],m,f,Ok[o],u),a}var vG={kernelName:gs,backendName:"wasm",kernelFunc:Kit,setupFunc:qit};var jit=!0,SG=ue(xs,jit);var NG=te(di);function Fd(r,t){let e=new Int32Array(r.wasm.HEAPU8.buffer,t,4),n=e[0],o=e[1],s=e[2],i=e[3];return r.wasm._free(t),{pSelectedIndices:n,selectedSize:o,pSelectedScores:s,pValidOutputs:i}}var TG;function Xit(r){TG=r.wasm.cwrap(La,"number",["number","number","number","number","number"])}function Yit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i}=n,{boxes:a,scores:u}=e,l=t.dataIdMap.get(a.dataId).id,c=t.dataIdMap.get(u.dataId).id,p=TG(l,c,s,o,i),{pSelectedIndices:m,selectedSize:f,pSelectedScores:d,pValidOutputs:h}=Fd(t,p);return t.wasm._free(d),t.wasm._free(h),t.makeOutput([f],"int32",m)}var kG={kernelName:La,backendName:"wasm",setupFunc:Xit,kernelFunc:Yit};var EG;function Zit(r){EG=r.wasm.cwrap(Ma,"number",["number","number","number","number","number","bool"])}function Jit(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,padToMaxOutputSize:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=EG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Fd(t,m);t.wasm._free(h);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([],"int32",g);return[x,b]}var _G={kernelName:Ma,backendName:"wasm",setupFunc:Zit,kernelFunc:Jit};var AG;function Qit(r){AG=r.wasm.cwrap(za,"number",["number","number","number","number","number","number"])}function tat(r){let{backend:t,inputs:e,attrs:n}=r,{iouThreshold:o,maxOutputSize:s,scoreThreshold:i,softNmsSigma:a}=n,{boxes:u,scores:l}=e,c=t.dataIdMap.get(u.dataId).id,p=t.dataIdMap.get(l.dataId).id,m=AG(c,p,s,o,i,a),{pSelectedIndices:f,selectedSize:d,pSelectedScores:h,pValidOutputs:g}=Fd(t,m);t.wasm._free(g);let x=t.makeOutput([d],"int32",f),b=t.makeOutput([d],"float32",h);return[x,b]}var $G={kernelName:za,backendName:"wasm",setupFunc:Qit,kernelFunc:tat};var eat=!1,DG=ue(Pa,eat,"bool");var RG;function rat(r){RG=r.wasm.cwrap(ys,null,["number","number","number","number","number"])}function nat(r){let{inputs:t,backend:e,attrs:n}=r,{indices:o}=t,{dtype:s,depth:i,onValue:a,offValue:u}=n,l=e.makeOutput([...o.shape,i],s),c=e.dataIdMap.get(l.dataId).id,m=e.dataIdMap.get(o.dataId).id;return RG(m,i,a,u,c),l}var FG={kernelName:ys,backendName:"wasm",setupFunc:rat,kernelFunc:nat};function oat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(1),n}var OG={kernelName:hi,backendName:"wasm",kernelFunc:oat};function sat(r){let{inputs:t,backend:e,attrs:n}=r,{axis:o}=n;if(t.length===1)return cI({inputs:{input:t[0]},backend:e,attrs:{dim:o}});let s=t[0].shape,i=t[0].dtype;t.forEach(c=>{y.assertShapesMatch(s,c.shape,"All tensors passed to stack must have matching shapes"),y.assert(i===c.dtype,()=>"All tensors passed to stack must have matching dtypes")});let a=[],u=t.map(c=>{let p=cI({inputs:{input:c},backend:e,attrs:{dim:o}});return a.push(p),p}),l=Dk({inputs:u,backend:e,attrs:{axis:o}});return a.forEach(c=>e.disposeData(c.dataId)),l}var PG={kernelName:gi,backendName:"wasm",kernelFunc:sat};var LG;function iat(r){LG=r.wasm.cwrap(bs,null,["number","array","number","number","array","array","number","number"])}function aat(r){let{inputs:{x:t},backend:e,attrs:{paddings:n,constantValue:o}}=r,s=n.map((h,g)=>h[0]+t.shape[g]+h[1]);if(y.sizeFromShape(t.shape)===0)return Fk({backend:e,attrs:{shape:s,value:o,dtype:t.dtype}});let i=e.dataIdMap.get(t.dataId).id,a=e.makeOutput(s,t.dtype),l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(t.shape).buffer),p=n.map(h=>h[0]),m=n.map(h=>h[1]),f=new Uint8Array(new Int32Array(p).buffer),d=new Uint8Array(new Int32Array(m).buffer);return LG(i,c,t.shape.length,qt[t.dtype],f,d,o,l),a}var pI={kernelName:bs,backendName:"wasm",kernelFunc:aat,setupFunc:iat};var lat=!1,MG=ue(ws,lat);var zG;function uat(r){zG=r.wasm.cwrap(Cs,null,["number","number","number"])}function cat(r){let{inputs:t,backend:e}=r,{x:n,alpha:o}=t,s=e.dataIdMap.get(n.dataId).id,i=e.dataIdMap.get(o.dataId).id,a=s,u=n,l=u;u.dtype!=="float32"&&(l=ii({backend:e,inputs:{x:n},attrs:{dtype:"float32"}}),a=e.dataIdMap.get(l.dataId).id);let c=e.makeOutput(n.shape,"float32"),p=e.dataIdMap.get(c.dataId).id;return zG(a,i,p),u.dtype!=="float32"&&e.disposeData(l.dataId),c}var BG={kernelName:Cs,backendName:"wasm",setupFunc:uat,kernelFunc:cat};var VG;function pat(r){VG=r.wasm.cwrap(Is,null,["number","number","number","number"])}function mat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("prod",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;VG(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var GG={kernelName:Is,backendName:"wasm",setupFunc:pat,kernelFunc:mat};var fat=r=>{let{backend:t,attrs:e}=r,{start:n,stop:o,step:s,dtype:i}=e,a=Dc(n,o,s,i),u=t.makeOutput([a.length],i);return t.typedArrayFromHeap(u).set(a),u},WG={kernelName:Ml,backendName:"wasm",kernelFunc:fat};var dat=!0,UG=ue(ts,dat);var HG=te(vs);var qG=te(Ss);var KG=te(ks);var jG;function hat(r){jG=r.wasm.cwrap(Ts,null,["number","number","number","number","number","number","number","number","number","number"])}function gat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.dataIdMap.get(o.dataId),g;h.dtype!=="float32"&&(g=ii({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),h=t.dataIdMap.get(g.dataId));let x=h.id,b=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return b;let w=t.dataIdMap.get(b.dataId).id;return jG(x,c,p,m,f,u,l,s?1:0,i?1:0,w),g!=null&&t.disposeData(g.dataId),b}var XG={kernelName:Ts,backendName:"wasm",setupFunc:hat,kernelFunc:gat};var YG;function xat(r){YG=r.wasm.cwrap(Ns,null,["number","number","number","number","number","number","number","number","number","number"])}function yat(r){let{backend:t,inputs:e,attrs:n}=r,{images:o}=e,{alignCorners:s,halfPixelCenters:i,size:a}=n,[u,l]=a,[c,p,m,f]=o.shape,d=[c,u,l,f],h=t.makeOutput(d,"float32");if(y.sizeFromShape(o.shape)===0)return h;let g=t.dataIdMap.get(o.dataId),x;g.dtype!=="float32"&&(x=ii({backend:t,inputs:{x:o},attrs:{dtype:"float32"}}),g=t.dataIdMap.get(x.dataId));let b=g.id,w=t.dataIdMap.get(h.dataId).id;return YG(b,c,p,m,f,u,l,s?1:0,i?1:0,w),x!=null&&t.disposeData(x.dataId),h}var ZG={kernelName:Ns,backendName:"wasm",setupFunc:xat,kernelFunc:yat};var JG;function bat(r){JG=r.wasm.cwrap(Es,null,["number","array","number","array","number","number"])}function wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{dims:s}=n,i=y.parseAxisParam(s,o.shape);if(o.shape.length===0)return Xc({inputs:{x:o},backend:e});let a=e.makeOutput(o.shape,o.dtype),u=e.dataIdMap.get(o.dataId).id,l=e.dataIdMap.get(a.dataId).id,c=new Uint8Array(new Int32Array(i).buffer),p=new Uint8Array(new Int32Array(o.shape).buffer);JG(u,c,i.length,p,o.shape.length,l);let m=ur({inputs:{x:a},attrs:{shape:o.shape},backend:e});return e.disposeData(a.dataId),m}var QG={kernelName:Es,backendName:"wasm",kernelFunc:wat,setupFunc:bat};var tW;function Cat(r){tW=r.wasm.cwrap(Xa,null,["number","number","number","number","number","number","number","number","array","number","number"])}function Iat(r){let{inputs:t,backend:e,attrs:n}=r,{image:o}=t,{radians:s,fillValue:i,center:a}=n,u=e.makeOutput(o.shape,o.dtype),l=e.dataIdMap.get(o.dataId).id,c=e.dataIdMap.get(u.dataId).id,[p,m,f,d]=o.shape,[h,g]=S.getImageCenter(a,m,f),x=i===0,b=255,w=typeof i=="number"?[i,i,i,x?0:b]:[...i,b],C=new Uint8Array(new Int32Array(w).buffer);return tW(l,p,m,f,d,s,h,g,C,w.length,c),u}var eW={kernelName:Xa,backendName:"wasm",kernelFunc:Iat,setupFunc:Cat};var rW=te(_s);var nW=te(As);var oW;function vat(r){oW=r.wasm.cwrap(Ba,null,["number","number","number","number","number","number","array","number","number"])}function Sat(r){let{backend:t,inputs:e,attrs:n}=r,{indices:o,updates:s}=e,{shape:i}=n,a=t.makeOutput(i,s.dtype);if(y.sizeFromShape(i)===0)return a;let{sliceRank:u,numUpdates:l,sliceSize:c,strides:p,outputSize:m}=uh.calculateShapes(s,o,i),d=t.dataIdMap.get(o.dataId).id,g=t.dataIdMap.get(s.dataId).id,x=new Uint8Array(new Int32Array(p).buffer),b=t.dataIdMap.get(a.dataId).id;return oW(d,g,qt[s.dtype],u,l,c,x,m,b),a}var sW={kernelName:Ba,backendName:"wasm",setupFunc:vat,kernelFunc:Sat};var iW;function Nat(r){iW=r.wasm.cwrap("SelectV2",null,["number","number","number","number","number"])}function Tat(r){let{inputs:t,backend:e}=r,{condition:n,t:o,e:s}=t,i=e.dataIdMap.get(n.dataId).id,a=e.dataIdMap.get(o.dataId).id,u=e.dataIdMap.get(s.dataId).id,l=e.makeOutput(o.shape,o.dtype),c=e.dataIdMap.get(l.dataId).id,p=n.shape.length,m=o.shape.length,f=p===0||p>1||m===1?1:y.sizeFromShape(o.shape.slice(1));return iW(i,a,u,f,c),l}var aW={kernelName:yi,backendName:"wasm",kernelFunc:Tat,setupFunc:Nat};var lW;function kat(r){lW=r.wasm.cwrap(Ds,null,["number","number"])}function Eat(r){let{backend:t,inputs:{x:e}}=r,n=t.dataIdMap.get(e.dataId).id,o=t.makeOutput(e.shape,e.dtype),s=t.dataIdMap.get(o.dataId).id;return y.sizeFromShape(o.shape)===0||lW(n,s),o}var uW={kernelName:"Sigmoid",backendName:"wasm",setupFunc:kat,kernelFunc:Eat};var cW=te($s);var pW;function _at(r){pW=r.wasm.cwrap(Os,null,["number","number","number","number"])}function Aat(r){let{backend:t,inputs:{logits:e},attrs:{dim:n}}=r,o=t.dataIdMap.get(e.dataId).id,s=t.makeOutput(e.shape,e.dtype),i=t.dataIdMap.get(s.dataId).id,a=e.shape[n],u=y.sizeFromShape(e.shape)/a;return y.sizeFromShape(s.shape)===0||pW(o,i,a,u),s}var mW={kernelName:Os,backendName:"wasm",setupFunc:_at,kernelFunc:Aat};function $at(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,{blockShape:s,paddings:i}=n,a=y.sizeFromShape(s),u=[[0,0]];u.push(...i);for(let E=1+s.length;E0?u+1:0;if(c<0)throw new Error(v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;fW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=v.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=v.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=v.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=v.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=""}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Eat(r){return mI(r,!0)}var dW={kernelName:Ll,backendName:"wasm",setupFunc:pI,kernelFunc:Eat};function _at(r){return mI(r,!1)}var hW={kernelName:Ml,backendName:"wasm",setupFunc:pI,kernelFunc:_at};function Aat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=v.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Lo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var gW={kernelName:yi,backendName:"wasm",kernelFunc:Aat};var xW=se(As);var yW=se(zl);var $at=!0,bW=ue(Rs,$at);var wW;function Dat(r){wW=r.wasm.cwrap(po,null,["number","number","number","number"])}function Rat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return wW(i,o,qt[s.dtype],u),a}var CW={kernelName:po,backendName:"wasm",setupFunc:Dat,kernelFunc:Rat};var IW;function Fat(r){IW=r.wasm.cwrap(Wa,null,["number","array","number","array","array","array","array","array","number","number"])}function Oat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Le.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ar({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let _=Le.computeOutShape(b,w,C),A=Lo({inputs:{x:o},backend:t,attrs:{begin:b,size:_}});N=ar({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let _=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(_.dataId).id;IW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ar({inputs:{x:_},backend:t,attrs:{shape:d}}),t.disposeData(_.dataId)}return N}var SW={kernelName:Wa,backendName:"wasm",setupFunc:Fat,kernelFunc:Oat};function Pat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Dc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var vW={kernelName:Bl,backendName:"wasm",kernelFunc:Pat};function Lat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Rc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var NW={kernelName:Vl,backendName:"wasm",kernelFunc:Lat};function Mat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Fc(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var TW={kernelName:Gl,backendName:"wasm",kernelFunc:Mat};var zat=!0,kW=ue(Fs,zat);var EW;function Bat(r){EW=r.wasm.cwrap($s,null,["number","number","number","number"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=bn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=v.getInnerMostAxes(d.length,l.shape.length))}v.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=v.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;EW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=v.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var _W={kernelName:$s,backendName:"wasm",setupFunc:Bat,kernelFunc:Vat};var AW=se(Os);var $W=se(Ps);var DW;function Gat(r){DW=r.wasm.cwrap(Jn,null,["number","array","number","array","number","number"])}function Wat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return FW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},OW={kernelName:Ua,backendName:"wasm",setupFunc:Uat,kernelFunc:Hat};var PW;function qat(r){PW=r.wasm.cwrap(Ha,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function Kat(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,_=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,P;switch(a){case"constant":P=1;break;case"reflect":P=2;break;case"wrap":P=3;break;case"nearest":P=4;break;default:P=1;break}return PW(_,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var LW={kernelName:Ha,backendName:"wasm",setupFunc:qat,kernelFunc:Kat};function jat(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var MW={kernelName:bi,backendName:"wasm",kernelFunc:jat};function Xat(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var zW={kernelName:wi,backendName:"wasm",kernelFunc:Xat};var Yat=[UB,HB,qB,jB,QB,eV,nV,sV,lV,cV,pV,mV,dV,hV,xV,bV,wV,CV,SV,NV,kV,_V,$V,DV,RV,FV,OV,PV,MV,zV,BV,GV,UV,qV,jV,YV,ZV,JV,XB,tG,eG,rG,nG,oG,sG,iG,aG,uG,cG,mG,dG,gG,xG,bG,wG,CG,SG,NG,kG,EG,AG,$G,DG,cI,FG,PG,MG,zG,BG,VG,GG,iV,UG,qG,jG,YG,ZG,JG,tW,rW,oW,sW,uV,aW,lW,cW,mW,dW,hW,gW,xW,yW,bW,CW,SW,vW,NW,TW,kW,_W,AW,$W,RW,OW,LW,ZB,MW,zW];for(let r of Yat)Lu(r);var Rk=z();Rk.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(r){return!1}});Rk.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Rk.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(r){return!1}});var zk=Tl(WW()),XW=Tl(HW()),Bk=Tl(qW());var KW=zk.default||zk,Zat=Bk.default||Bk,cg=class extends zo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(ZW),Mk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new ra(this,Pn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return Qat(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function Jat(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function jW(r,t,e){if(hI!=null)return hI;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),lg!=null&&lg[n]!=null?lg[n]:e+n}async function YW(){let[r,t]=await Promise.all([z().getAsync("WASM_HAS_SIMD_SUPPORT"),z().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=XW.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?jW(r,t,ag!=null?ag:u):u+a},Vk&&(o.instantiateWasm=Jat(jW(r,t,ag!=null?ag:"")));let s=!1;o.onAbort=()=>{if(s||ug)return;ug=!0,n({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let i;t&&r&&hI==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+KW.toString()],{type:"text/javascript"}),i=KW(o)):i=Zat(o),i.then(a=>{s=!0,ug=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function Qat(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var tlt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],hI=null,ag=null,lg={},ug=!1,Vk=!1;function elt(r,t=!1){if(Wv("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");hI=r,Vk=t}function rlt(r,t=!1){if(ug)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")ag=r;else{lg=r;let e=tlt.filter(n=>lg[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Vk=t}var ZW=-1,Mk=-1;function nlt(r){ZW=r}function olt(){if(Mk===-1)throw new Error("WASM backend not initialized.");return Mk}var slt="4.0.0";var ilt=2;Xp("wasm",async()=>{let{wasm:r}=await YW();return new cg(r)},ilt);var JW="4.0.0",alt="4.0.0",llt="4.0.0",ult="4.0.0",clt="4.0.0",plt={tfjs:JW,"tfjs-core":JW,"tfjs-converter":alt,"tfjs-backend-cpu":llt,"tfjs-backend-webgl":ult,"tfjs-backend-wasm":clt};export{ii as Abs,oa as Acos,sa as Acosh,cu as AdadeltaOptimizer,pu as AdagradOptimizer,mu as AdamOptimizer,fu as AdamaxOptimizer,Zn as Add,Go as AddN,ia as All,aa as Any,Wo as ArgMax,kl as ArgMin,la as Asin,ua as Asinh,ca as Atan,ma as Atan2,pa as Atanh,Uo as AvgPool,El as AvgPool3D,lp as AvgPool3DGrad,ap as AvgPoolGrad,cg as BackendWasm,Ho as BatchMatMul,ai as BatchToSpaceND,up as Bincount,cp as BroadcastArgs,p1 as BroadcastTo,Sb as Callback,Py as CallbackList,lo as Cast,qo as Ceil,uo as ClipByValue,pp as Complex,_l as ComplexAbs,li as Concat,Ko as Conv2D,mp as Conv2DBackpropFilter,jo as Conv2DBackpropInput,Al as Conv3D,fp as Conv3DBackpropFilterV2,dp as Conv3DBackpropInputV2,Xo as Cos,Yo as Cosh,da as CropAndResize,fa as Cumprod,Zo as Cumsum,My as CustomCallback,ra as DataStorage,hp as DenseBincount,ha as DepthToSpace,Jo as DepthwiseConv2dNative,gp as DepthwiseConv2dNativeBackpropFilter,xp as DepthwiseConv2dNativeBackpropInput,yp as Diag,$l as Dilation2D,Xd as Dilation2DBackpropFilter,jd as Dilation2DBackpropInput,iv as ENV,vb as EarlyStopping,bp as Einsum,ts as Elu,wp as EluGrad,qd as Environment,xa as Equal,ga as Erf,es as Exp,ui as ExpandDims,ya as Expm1,Cp as FFT,Dl as Fill,ba as FlipLeftRight,rs as Floor,ns as FloorDiv,Yd as FromPixels,os as FusedBatchNorm,Ii as FusedConv2D,Si as FusedDepthwiseConv2D,Bc as GPGPUContext,wa as GatherNd,ci as GatherV2,Ph as GraphModel,Ca as Greater,ss as GreaterEqual,Ly as History,Ip as IFFT,co as Identity,Sp as Imag,ye as InputSpec,Ia as IsFinite,Sa as IsInf,va as IsNan,zo as KernelBackend,Rl as LRN,Np as LRNGrad,Ch as LayerVariable,Bn as LayersModel,is as LeakyRelu,Na as Less,Ta as LessEqual,vp as LinSpace,as as Log,ka as Log1p,f1 as LogSoftmax,Ea as LogicalAnd,_a as LogicalNot,Aa as LogicalOr,m1 as LogicalXor,xlt as LowerBound,_u as MathBackendWebGL,ls as Max,cs as MaxPool,Fl as MaxPool3D,kp as MaxPool3DGrad,Tp as MaxPoolGrad,Ep as MaxPoolWithArgmax,us as Maximum,ps as Mean,ms as Min,fs as Minimum,ds as MirrorPad,$a as Mod,du as MomentumOptimizer,_p as Multinomial,hs as Multiply,pi as Neg,Ra as NonMaxSuppressionV3,Fa as NonMaxSuppressionV4,Oa as NonMaxSuppressionV5,Da as NotEqual,kv as OP_SCOPE_SUFFIX,gs as OneHot,mi as OnesLike,Wr as Optimizer,Ws as OptimizerConstructors,fi as Pack,xs as PadV2,ylt as Pool,ys as Pow,bs as Prelu,ws as Prod,hu as RMSPropOptimizer,Tn as RNN,Ap as RaggedGather,$p as RaggedRange,Dp as RaggedTensorToTensor,Ol as Range,xv as Rank,Rp as Real,Qo as RealDiv,Pa as Reciprocal,Xe as Reduction,Cs as Relu,vs as Relu6,di as Reshape,Ss as ResizeBilinear,Op as ResizeBilinearGrad,Is as ResizeNearestNeighbor,Fp as ResizeNearestNeighborGrad,Ns as Reverse,qa as RotateWithOffset,Ts as Round,ks as Rsqrt,Bi as SGDOptimizer,La as ScatterNd,Pp as SearchSorted,hi as Select,Ma as Selu,qi as Sequential,_s as Sigmoid,Ba as Sign,Es as Sin,za as Sinh,gi as Slice,Ds as Softmax,Va as Softplus,xi as SpaceToBatchND,Pl as SparseFillEmptyRows,Ga as SparseReshape,Ll as SparseSegmentMean,Ml as SparseSegmentSum,Lp as SparseToDense,yi as SplitV,As as Sqrt,zl as Square,Rs as SquaredDifference,po as Step,Wa as StridedSlice,Bl as StringNGrams,Vl as StringSplit,Gl as StringToHashBucketFast,Fs as Sub,$s as Sum,Jr as SymbolicTensor,Os as Tan,Ps as Tanh,Ft as Tensor,pe as TensorBuffer,Jn as Tile,Ua as TopK,Ha as Transform,Qn as Transpose,Mp as Unique,bi as Unpack,Wl as UnsortedSegmentSum,blt as UpperBound,Ka as Variable,wi as ZerosLike,Ci as _FusedMatMul,Ee as abs,ax as acos,lx as acosh,X as add,LE as addN,Zp as all,qu as any,Ai as argMax,ux as argMin,cx as asin,px as asinh,mx as atan,fx as atan2,dx as atanh,Yl as avgPool,gx as avgPool3d,gE as backend,v as backend_util,BE as basicLSTMCell,Di as batchNorm,xx as batchNorm2d,yx as batchNorm3d,bx as batchNorm4d,Zl as batchToSpaceND,wx as bincount,n6 as booleanMaskAsync,GE as broadcastArgs,Ri as broadcastTo,Vr as broadcast_util,nx as browser,wt as buffer,VZ as callbacks,J as cast,Cx as ceil,Cr as clipByValue,sn as clone,wn as complex,ne as concat,Ix as concat1d,Sx as concat2d,vx as concat3d,Nx as concat4d,K$ as constraints,Qp as conv1d,In as conv2d,em as conv2dTranspose,Tx as conv3d,Ex as conv3dTranspose,Tlt as copyRegisteredKernels,Jl as cos,rm as cosh,hh as cosineWindow,Xu as cumprod,nm as cumsum,un as customGrad,AR as data,ch as denseBincount,Wv as deprecationWarn,_x as depthToSpace,Fi as depthwiseConv2d,HZ as deregisterOp,Kl as device_util,WE as diag,Ax as dilation2d,gpt as disableDeprecationWarnings,vt as dispose,xpt as disposeVariables,pt as div,$x as divNoNan,Dx as dot,l0 as dropout,UE as einsum,Oi as elu,hpt as enableDebugMode,dpt as enableProdMode,u0 as enclosingPowerOfTwo,Pn as engine,z as env,$r as equal,Rx as erf,Fx as euclideanNorm,er as exp,rr as expandDims,Ox as expm1,Yu as eye,au as fft,xo as fill,Spt as findBackend,vpt as findBackendFactory,Pi as floor,Yp as floorDiv,hM as forceHalfFloat,uu as fused,Li as gather,m6 as gatherND,ox as gather_util,Cpt as getBackend,uv as getGradient,Jd as getKernel,zg as getKernelsForBackend,olt as getThreadsCount,ik as gpgpu_util,bK as grad,wK as grads,Re as greater,ln as greaterEqual,tl as ifft,Xl as imag,Gs as image,h6 as inTopKAsync,j$ as initializers,P0 as input,_r as io,xm as irfft,Px as isFinite,Lx as isInf,Mx as isNaN,De as keep,Ur as kernel_impls,ED as layers,Ql as leakyRelu,om as less,Ln as lessEqual,p0 as linalg,KE as linspace,M7 as loadGraphModel,z7 as loadGraphModelSync,hD as loadLayersModel,zx as localResponseNormalization,Sr as log,tu as log1p,Gx as logSigmoid,sm as logSoftmax,im as logSumExp,Rr as logicalAnd,eu as logicalNot,am as logicalOr,Wx as logicalXor,hX as losses,jE as lowerBound,Lt as matMul,yE as math,Ir as max,ru as maxPool,Hx as maxPool3d,XE as maxPoolWithArgmax,Sn as maximum,ve as mean,ah as memory,YE as meshgrid,_D as metrics,Ja as min,Mi as minimum,qx as mirrorPad,Kx as mod,q8 as model,AD as models,Zu as moments,s6 as movingAverage,D as mul,ZE as multiRNNCell,JE as multinomial,Ht as neg,gh as nextFrame,Qa as norm,Bs as notEqual,Ei as oneHot,cr as ones,yr as onesLike,T as op,QE as outerProduct,cn as pad,t_ as pad1d,e_ as pad2d,r_ as pad3d,n_ as pad4d,jx as pool,an as pow,ou as prelu,Jg as print,Xx as prod,ypt as profile,o_ as raggedGather,s_ as raggedRange,i_ as raggedTensorToTensor,a_ as rand,v_ as randomGamma,tc as randomNormal,N_ as randomStandardNormal,zi as randomUniform,su as range,wpt as ready,Za as real,ty as reciprocal,Xp as registerBackend,j8 as registerCallbackConstructor,h1 as registerGradient,Lu as registerKernel,UZ as registerOp,$D as regularizers,Fr as relu,lm as relu6,Ipt as removeBackend,R as reshape,pr as reverse,T_ as reverse1d,k_ as reverse2d,E_ as reverse3d,__ as reverse4d,lu as rfft,um as round,cm as rsqrt,mt as scalar,a6 as scatterND,lh as scatter_util,mh as searchSorted,pm as selu,mm as separableConv2d,K8 as sequential,Q as serialization,tH as setBackend,Npt as setPlatform,nlt as setThreadsCount,elt as setWasmPath,rlt as setWasmPaths,wT as setWebGLContext,A_ as setdiff1dAsync,Yr as sigmoid,ey as sign,dX as signal,fm as sin,dm as sinh,Rt as slice,hm as slice1d,dh as slice2d,gm as slice3d,ec as slice4d,Le as slice_util,iu as softmax,zs as softplus,nu as spaceToBatchND,gX as sparse,c6 as sparseToDense,fX as spectral,mr as split,Se as sqrt,Mt as square,ym as squaredDifference,Mn as squeeze,nr as stack,bo as step,ry as stridedSlice,xX as string,ct as sub,ft as sum,Wu as sumOutType,ny as tan,$i as tanh,ur as tensor,Me as tensor1d,Vs as tensor2d,rx as tensor3d,$_ as tensor4d,D_ as tensor5d,R_ as tensor6d,go as tensor_util,OE as test_util,B as tidy,Dr as tile,bpt as time,oy as topk,ic as train,Ot as transpose,bm as truncatedNormal,sy as unique,Nlt as unregisterGradient,vlt as unregisterKernel,wm as unsortedSegmentSum,vr as unstack,sr as upcastType,F_ as upperBound,y as util,CK as valueAndGrad,IK as valueAndGrads,iy as variable,Bx as variableGrads,plt as version,cR as version_converter,PE as version_core,Um as version_layers,slt as version_wasm,dM as version_webgl,Zke as webgl,dd as webgl_util,_e as where,ly as whereAsync,Ne as zeros,It as zerosLike}; + ${o.shape}`);if(s.shape.length!==1)throw new Error(`Target shape should be a vector but received shape ${s.shape}`);let i=t.dataIdMap.get(n.dataId).id,a=t.dataIdMap.get(o.dataId).id,u=t.dataIdMap.get(s.dataId).id,l=n.shape[0],c=y.sizeFromShape(s.shape),p=t.makeOutput([l,c],n.dtype),m=t.dataIdMap.get(p.dataId).id,f=t.makeOutput([c],s.dtype),d=t.dataIdMap.get(f.dataId).id,h=t.makeOutput([3],"int32"),g=t.dataIdMap.get(h.dataId).id;gW(i,a,u,l,m,d,g);let x=t.readSync(h.dataId),b;switch(x[0]){case 0:{b=S.getSparseReshapeMultipleNegativeOneOutputDimErrorMessage(x[1],x[2]);break}case 1:{b=S.getSparseReshapeNegativeOutputDimErrorMessage(x[1],x[2]);break}case 2:b=S.getSparseReshapeEmptyTensorZeroOutputDimErrorMessage();break;case 3:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMultipleErrorMessage(w,C);break}case 4:{let w=Array.from(t.readSync(o.dataId)),C=Array.from(t.readSync(f.dataId));b=S.getSparseReshapeInputOutputMismatchErrorMessage(w,C);break}default:b=""}if(t.disposeData(h.dataId),b)throw t.disposeData(p.dataId),t.disposeData(f.dataId),new Error(b);return[p,f]}var xW={kernelName:Ha,backendName:"wasm",setupFunc:Fat,kernelFunc:Oat};var yW;function mI(r){yW=r.wasm.cwrap("SparseSegmentReduction",null,["number","number","number","number","number","number","number","number","number"])}function fI(r,t){let{backend:e,inputs:n}=r,{data:o,indices:s,segmentIds:i}=n,a=s.shape[0],u=e.readSync(i.dataId,a-1,a)[0],c=a>0?u+1:0;if(c<0)throw new Error(S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage());let p=o.shape.slice();p[0]=c;let m=e.dataIdMap.get(o.dataId).id,f=e.dataIdMap.get(s.dataId).id,d=e.dataIdMap.get(i.dataId).id,h=e.makeOutput(p,o.dtype),g=e.dataIdMap.get(h.dataId).id,x=e.makeOutput([4],"int32"),b=e.dataIdMap.get(x.dataId).id;yW(m,qt[o.dtype],o.shape[0],f,d,g,b,t,0);let w=e.readSync(x.dataId),C;switch(w[0]){case 0:{C=S.getSparseSegmentReductionNegativeSegmentIdsErrorMessage();break}case 1:{C=S.getSparseSegmentReductionNonIncreasingSegmentIdsErrorMessage();break}case 2:C=S.getSparseSegmentReductionSegmentIdOutOfRangeErrorMessage(w[1],w[2]);break;case 3:C=S.getSparseSegmentReductionIndicesOutOfRangeErrorMessage(w[1],w[2],w[3]);break;default:C=""}if(e.disposeData(x.dataId),C)throw e.disposeData(h.dataId),new Error(C);return h}function Pat(r){return fI(r,!0)}var bW={kernelName:Bl,backendName:"wasm",setupFunc:mI,kernelFunc:Pat};function Lat(r){return fI(r,!1)}var wW={kernelName:Vl,backendName:"wasm",setupFunc:mI,kernelFunc:Lat};function Mat(r){let{inputs:t,attrs:e,backend:n}=r,{x:o}=t,{numOrSizeSplits:s,axis:i}=e,a=y.parseAxisParam(i,o.shape)[0],u=S.prepareSplitSize(o,s,a),l=new Array(o.shape.length).fill(0),c=o.shape.slice();return u.map(p=>{let m=[...c];m[a]=p;let f=Mo({inputs:{x:o},attrs:{begin:l,size:m},backend:n});return l[a]+=p,f})}var CW={kernelName:Ci,backendName:"wasm",kernelFunc:Mat};var IW=te(Rs);var vW=te(Gl);var zat=!0,SW=ue(Ps,zat);var NW;function Bat(r){NW=r.wasm.cwrap(fo,null,["number","number","number","number"])}function Vat(r){let{backend:t,inputs:e,attrs:n}=r,{alpha:o}=n,{x:s}=e,i=t.dataIdMap.get(s.dataId).id,a=t.makeOutput(s.shape,s.dtype),u=t.dataIdMap.get(a.dataId).id;return NW(i,o,qt[s.dtype],u),a}var TW={kernelName:fo,backendName:"wasm",setupFunc:Bat,kernelFunc:Vat};var kW;function Gat(r){kW=r.wasm.cwrap(qa,null,["number","array","number","array","array","array","array","array","number","number"])}function Wat(r){let{backend:t,inputs:e,attrs:n}=r,{x:o}=e,{begin:s,end:i,strides:a,beginMask:u,endMask:l,ellipsisMask:c,newAxisMask:p,shrinkAxisMask:m}=n,{finalShapeSparse:f,finalShape:d,isIdentity:h,sliceDim0:g,isSimpleSlice:x,begin:b,end:w,strides:C}=Me.sliceInfo(o.shape,s,i,a,u,l,c,p,m),N;if(h)N=ur({inputs:{x:o},backend:t,attrs:{shape:d}});else if(g||x){y.assert(o.shape.length>=1,()=>`Input must have rank at least 1, got: ${o.shape.length}`);let E=Me.computeOutShape(b,w,C),A=Mo({inputs:{x:o},backend:t,attrs:{begin:b,size:E}});N=ur({inputs:{x:A},backend:t,attrs:{shape:d}}),t.disposeData(A.dataId)}else{let E=t.makeOutput(f,"float32"),A=t.dataIdMap.get(o.dataId).id,$=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),F=new Uint8Array(new Int32Array(b).buffer),P=new Uint8Array(new Int32Array(w).buffer),V=new Uint8Array(new Int32Array(C).buffer),G=new Uint8Array(new Int32Array(f).buffer),W=new Uint8Array(new Int32Array(y.computeStrides(f)).buffer),q=t.dataIdMap.get(E.dataId).id;kW(A,$,o.shape.length,F,P,V,G,W,f.length,q),N=ur({inputs:{x:E},backend:t,attrs:{shape:d}}),t.disposeData(E.dataId)}return N}var EW={kernelName:qa,backendName:"wasm",setupFunc:Gat,kernelFunc:Wat};function Uat(r){let{backend:t,inputs:e,attrs:n}=r,{data:o,dataSplits:s}=e,{separator:i,nGramWidths:a,leftPad:u,rightPad:l,padWidth:c,preserveShortSequences:p}=n,m=t.readSync(o.dataId),f=t.readSync(s.dataId),[d,h]=Fc(m,f,i,a,u,l,c,p),g=t.makeOutput([d.length],"string"),x=t.dataIdMap.get(g.dataId);x.stringBytes=d;let b=t.makeOutput(s.shape,"int32");return t.typedArrayFromHeap(b).set(h),[g,b]}var _W={kernelName:Wl,backendName:"wasm",kernelFunc:Uat};function Hat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o,delimiter:s}=e,{skipEmpty:i}=n,a=t.readSync(o.dataId),u=t.readSync(s.dataId),[l,c,p]=Oc(a,u[0],i),m=c.length,f=t.makeOutput([m,2],"int32");t.typedArrayFromHeap(f).set(l);let h=t.makeOutput([m],"string"),g=t.dataIdMap.get(h.dataId);g.stringBytes=c;let x=t.makeOutput([2],"int32");return t.typedArrayFromHeap(x).set(p),[f,h,x]}var AW={kernelName:Ul,backendName:"wasm",kernelFunc:Hat};function qat(r){let{backend:t,inputs:e,attrs:n}=r,{input:o}=e,{numBuckets:s}=n,i=t.readSync(o.dataId),a=Pc(i,s),u=t.makeOutput(o.shape,"int32");return t.typedArrayFromHeap(u).set(a),u}var $W={kernelName:Hl,backendName:"wasm",kernelFunc:qat};var Kat=!0,DW=ue(Ls,Kat);var RW;function jat(r){RW=r.wasm.cwrap(Fs,null,["number","number","number","number"])}function Xat(r){let{backend:t,inputs:e,attrs:n}=r,{axis:o,keepDims:s}=n,{x:i}=e,a=t.dataIdMap.get(i.dataId).id,u=a,l=i,{transposed:c,axes:p,originalAxes:m,inputWasTransposed:f}=Cn(i,o,t),d=p;if(f){let w=t.dataIdMap.get(c.dataId).id;w!==a&&(l=c,u=w,d=S.getInnerMostAxes(d.length,l.shape.length))}S.assertAxesAreInnerMostDims("sum",d,l.shape.length);let[h,g]=S.computeOutAndReduceShapes(l.shape,d),x=y.sizeFromShape(g),b=t.makeOutput(h,l.dtype);if(y.sizeFromShape(l.shape)!==0){let w=t.dataIdMap.get(b.dataId).id;RW(u,x,qt[b.dtype],w)}if(f&&t.disposeData(c.dataId),s){let w=S.expandShapeToKeepDim(b.shape,m);b.shape=w}return b}var FW={kernelName:Fs,backendName:"wasm",setupFunc:jat,kernelFunc:Xat};var OW=te(Ms);var PW=te(zs);var LW;function Yat(r){LW=r.wasm.cwrap(to,null,["number","array","number","array","number","number"])}function Zat(r){let{inputs:t,backend:e,attrs:n}=r,{x:o}=t,s=e.dataIdMap.get(o.dataId).id,{reps:i}=n,a=new Array(o.shape.length);for(let m=0;m{let{x:n}=r,{k:o,sorted:s}=e,i=t.dataIdMap.get(n.dataId).id,a=new Uint8Array(new Int32Array(n.shape).buffer),u=n.shape.slice();u[u.length-1]=o;let l=t.makeOutput(u,n.dtype),c=t.dataIdMap.get(l.dataId).id,p=t.makeOutput(u,"int32"),m=t.dataIdMap.get(p.dataId).id;return zW(i,a,n.shape.length,qt[n.dtype],o,s,c,m),[l,p]},BW={kernelName:Ka,backendName:"wasm",setupFunc:Jat,kernelFunc:Qat};var VW;function tlt(r){VW=r.wasm.cwrap(ja,null,["number","number","bool","number","number","number","number","number","number","array","number","array","number","number","number","number","number"])}function elt(r){let{backend:t,inputs:e,attrs:n}=r,{image:o,transforms:s}=e,{interpolation:i,fillMode:a,fillValue:u,outputShape:l}=n,[c,p,m,f]=o.shape,[d,h]=l!=null?l:[p,m],g=[c,d,h,f],x=new Uint8Array(new Int32Array(y.computeStrides(o.shape)).buffer),b=new Uint8Array(new Int32Array(y.computeStrides(g)).buffer),w=t.makeOutput(g,o.dtype),C=t.dataIdMap.get(w.dataId).id,E=t.dataIdMap.get(o.dataId).id,$=t.dataIdMap.get(s.dataId).id,F=i==="nearest"?1:2,P;switch(a){case"constant":P=1;break;case"reflect":P=2;break;case"wrap":P=3;break;case"nearest":P=4;break;default:P=1;break}return VW(E,$,s.shape[0]>1,c,d,h,f,m,p,x,o.shape.length-1,b,g.length-1,F,P,u,C),w}var GW={kernelName:ja,backendName:"wasm",setupFunc:tlt,kernelFunc:elt};function rlt(r){let{inputs:t,backend:e,attrs:n}=r,{value:o}=t,{axis:s}=n;s<0&&(s+=o.shape.length);let i=o.shape[s],a=o.shape.length,u=new Array(a-1),l=0;for(let f=0;f({dataId:f,dtype:d,shape:u}))}var WW={kernelName:Ii,backendName:"wasm",kernelFunc:rlt};function nlt(r){let{inputs:{x:t},backend:e}=r,n=e.makeOutput(t.shape,t.dtype);return e.typedArrayFromHeap(n).fill(0),n}var UW={kernelName:vi,backendName:"wasm",kernelFunc:nlt};var olt=[KB,jB,XB,ZB,rV,oV,iV,lV,pV,fV,dV,hV,xV,yV,wV,IV,vV,SV,TV,EV,AV,DV,FV,OV,PV,LV,MV,zV,VV,GV,WV,HV,KV,XV,ZV,QV,tG,eG,JB,rG,oG,sG,iG,aG,lG,uG,cG,pG,fG,dG,gG,yG,wG,CG,vG,SG,NG,kG,_G,$G,DG,FG,OG,PG,pI,MG,BG,GG,WG,UG,HG,qG,KG,uV,XG,ZG,QG,eW,rW,nW,sW,aW,uW,cW,mV,mW,fW,hW,xW,bW,wW,CW,IW,vW,SW,TW,EW,_W,AW,$W,DW,FW,OW,PW,MW,BW,GW,tV,WW,UW];for(let r of olt)zu(r);var Pk=M();Pk.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(r){return!1}});Pk.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(Pk.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(r){return!1}});var Gk=_l(jW()),tU=_l(YW()),Wk=_l(ZW());var JW=Gk.default||Gk,slt=Wk.default||Wk,pg=class extends Bo{constructor(t){super(),this.wasm=t,this.dataIdNextNumber=1,this.wasm.tfjs.initWithThreadsCount(rU),Vk=this.wasm.tfjs.getThreadsCount(),this.dataIdMap=new aa(this,Mn())}write(t,e,n){let o={id:this.dataIdNextNumber++};return this.move(o,t,e,n,1),o}numDataIds(){return this.dataIdMap.numDataIds()}async time(t){let e=y.now();return t(),{kernelMs:y.now()-e}}move(t,e,n,o,s){let i=this.dataIdNextNumber++;if(o==="string"){let c=e;this.dataIdMap.set(t,{id:i,stringBytes:c,shape:n,dtype:o,memoryOffset:null,refCount:s});return}let a=y.sizeFromShape(n),u=a*y.bytesPerElement(o),l=this.wasm._malloc(u);this.dataIdMap.set(t,{id:i,memoryOffset:l,shape:n,dtype:o,refCount:s}),this.wasm.tfjs.registerTensor(i,a,l),e!=null&&this.wasm.HEAPU8.set(new Uint8Array(e.buffer,e.byteOffset,u),l)}async read(t){return this.readSync(t)}readSync(t,e,n){let{memoryOffset:o,dtype:s,shape:i,stringBytes:a}=this.dataIdMap.get(t);if(s==="string")return(e==null||e===0)&&(n==null||n>=a.length)?a:a.slice(e,n);e=e||0,n=n||y.sizeFromShape(i);let u=y.bytesPerElement(s),l=this.wasm.HEAPU8.slice(o+e*u,o+n*u);return alt(l.buffer,s)}disposeData(t,e=!1){if(this.dataIdMap.has(t)){let n=this.dataIdMap.get(t);if(n.refCount--,!e&&n.refCount>0)return!1;this.wasm._free(n.memoryOffset),this.wasm.tfjs.disposeData(n.id),this.dataIdMap.delete(t)}return!0}refCount(t){return this.dataIdMap.has(t)?this.dataIdMap.get(t).refCount:0}incRef(t){let e=this.dataIdMap.get(t);e!=null&&e.refCount++}floatPrecision(){return 32}getMemoryOffset(t){return this.dataIdMap.get(t).memoryOffset}dispose(){this.wasm.tfjs.dispose(),"PThread"in this.wasm&&this.wasm.PThread.terminateAllThreads(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(t,e,n){let o;if(n==null)o=this.write(null,t,e);else{let s=this.dataIdNextNumber++;o={id:s},this.dataIdMap.set(o,{id:s,memoryOffset:n,shape:t,dtype:e,refCount:1});let i=y.sizeFromShape(t);this.wasm.tfjs.registerTensor(s,i,n)}return{dataId:o,shape:t,dtype:e}}typedArrayFromHeap({shape:t,dtype:e,dataId:n}){let o=this.wasm.HEAPU8.buffer,{memoryOffset:s}=this.dataIdMap.get(n),i=y.sizeFromShape(t);switch(e){case"float32":return new Float32Array(o,s,i);case"int32":return new Int32Array(o,s,i);case"bool":return new Uint8Array(o,s,i);default:throw new Error(`Unknown dtype ${e}`)}}};function ilt(r){return(t,e)=>(y.fetch(r,{credentials:"same-origin"}).then(n=>{n.ok||t.env.a(`failed to load wasm binary file at '${r}'`),n.arrayBuffer().then(o=>{WebAssembly.instantiate(o,t).then(s=>{e(s.instance,s.module)})})}),{})}function QW(r,t,e){if(gI!=null)return gI;let n="tfjs-backend-wasm.wasm";return r&&t?n="tfjs-backend-wasm-threaded-simd.wasm":r&&(n="tfjs-backend-wasm-simd.wasm"),ug!=null&&ug[n]!=null?ug[n]:e+n}async function eU(){let[r,t]=await Promise.all([M().getAsync("WASM_HAS_SIMD_SUPPORT"),M().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((e,n)=>{let o={};o.locateFile=(a,u)=>{if(a.endsWith(".worker.js")){let l=tU.wasmWorkerContents.replace(/\n/g,"\\n"),c=new Blob([l],{type:"application/javascript"});return URL.createObjectURL(c)}return a.endsWith(".wasm")?QW(r,t,lg!=null?lg:u):u+a},Uk&&(o.instantiateWasm=ilt(QW(r,t,lg!=null?lg:"")));let s=!1;o.onAbort=()=>{if(s||cg)return;cg=!0,n({message:"Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers"})};let i;t&&r&&gI==null?(o.mainScriptUrlOrBlob=new Blob(["var WasmBackendModuleThreadedSimd = "+JW.toString()],{type:"text/javascript"}),i=JW(o)):i=slt(o),i.then(a=>{s=!0,cg=!1;let u=null;a.tfjs={init:a.cwrap("init",null,[]),initWithThreadsCount:a.cwrap("init_with_threads_count",null,["number"]),getThreadsCount:a.cwrap("get_threads_count","number",[]),registerTensor:a.cwrap("register_tensor",null,["number","number","number"]),disposeData:a.cwrap("dispose_data",u,["number"]),dispose:a.cwrap("dispose",u,[])},e({wasm:a})}).catch(n)})}function alt(r,t){switch(t){case"float32":return new Float32Array(r);case"int32":return new Int32Array(r);case"bool":return new Uint8Array(r);default:throw new Error(`Unknown dtype ${t}`)}}var llt=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"],gI=null,lg=null,ug={},cg=!1,Uk=!1;function ult(r,t=!1){if(qS("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),cg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");gI=r,Uk=t}function clt(r,t=!1){if(cg)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof r=="string")lg=r;else{ug=r;let e=llt.filter(n=>ug[n]==null);if(e.length>0)throw new Error(`There were no entries found for the following binaries: ${e.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}Uk=t}var rU=-1,Vk=-1;function plt(r){rU=r}function mlt(){if(Vk===-1)throw new Error("WASM backend not initialized.");return Vk}var flt="4.1.0";var dlt=2;Yp("wasm",async()=>{let{wasm:r}=await eU();return new pg(r)},dlt);var nU="4.1.0",hlt="4.1.0",glt="4.1.0",xlt="4.1.0",ylt="4.1.0",blt={tfjs:nU,"tfjs-core":nU,"tfjs-converter":hlt,"tfjs-backend-cpu":glt,"tfjs-backend-webgl":xlt,"tfjs-backend-wasm":ylt};export{ui as Abs,ua as Acos,ca as Acosh,mu as AdadeltaOptimizer,fu as AdagradOptimizer,du as AdamOptimizer,hu as AdamaxOptimizer,Qn as Add,Wo as AddN,pa as All,ma as Any,Uo as ArgMax,Al as ArgMin,fa as Asin,da as Asinh,ha as Atan,xa as Atan2,ga as Atanh,Ho as AvgPool,$l as AvgPool3D,up as AvgPool3DGrad,lp as AvgPoolGrad,pg as BackendWasm,qo as BatchMatMul,ci as BatchToSpaceND,cp as Bincount,pp as BroadcastArgs,d1 as BroadcastTo,Sb as Callback,Ly as CallbackList,co as Cast,Ko as Ceil,po as ClipByValue,mp as Complex,Dl as ComplexAbs,pi as Concat,jo as Conv2D,fp as Conv2DBackpropFilter,Xo as Conv2DBackpropInput,Rl as Conv3D,dp as Conv3DBackpropFilterV2,hp as Conv3DBackpropInputV2,Yo as Cos,Zo as Cosh,ba as CropAndResize,ya as Cumprod,Jo as Cumsum,zy as CustomCallback,aa as DataStorage,gp as DenseBincount,wa as DepthToSpace,Qo as DepthwiseConv2dNative,xp as DepthwiseConv2dNativeBackpropFilter,yp as DepthwiseConv2dNativeBackpropInput,bp as Diag,Fl as Dilation2D,Yd as Dilation2DBackpropFilter,Xd as Dilation2DBackpropInput,uS as ENV,Nb as EarlyStopping,wp as Einsum,es as Elu,Cp as EluGrad,Kd as Environment,Ia as Equal,Ca as Erf,rs as Exp,mi as ExpandDims,va as Expm1,Ip as FFT,Ol as Fill,Sa as FlipLeftRight,ns as Floor,os as FloorDiv,Zd as FromPixels,ss as FusedBatchNorm,Ni as FusedConv2D,Ti as FusedDepthwiseConv2D,Gc as GPGPUContext,Na as GatherNd,fi as GatherV2,Lh as GraphModel,Ta as Greater,is as GreaterEqual,My as History,vp as IFFT,mo as Identity,Sp as Imag,ye as InputSpec,ka as IsFinite,Ea as IsInf,as as IsNan,Bo as KernelBackend,Pl as LRN,Tp as LRNGrad,Ih as LayerVariable,Gn as LayersModel,ls as LeakyRelu,_a as Less,Aa as LessEqual,Np as LinSpace,us as Log,$a as Log1p,g1 as LogSoftmax,Da as LogicalAnd,Ra as LogicalNot,Fa as LogicalOr,h1 as LogicalXor,Nlt as LowerBound,$u as MathBackendWebGL,cs as Max,ms as MaxPool,Ll as MaxPool3D,Ep as MaxPool3DGrad,kp as MaxPoolGrad,_p as MaxPoolWithArgmax,ps as Maximum,fs as Mean,ds as Min,hs as Minimum,gs as MirrorPad,Oa as Mod,gu as MomentumOptimizer,Ap as Multinomial,xs as Multiply,di as Neg,La as NonMaxSuppressionV3,Ma as NonMaxSuppressionV4,za as NonMaxSuppressionV5,Pa as NotEqual,AS as OP_SCOPE_SUFFIX,ys as OneHot,hi as OnesLike,Hr as Optimizer,Hs as OptimizerConstructors,gi as Pack,bs as PadV2,Tlt as Pool,ws as Pow,Cs as Prelu,Is as Prod,xu as RMSPropOptimizer,En as RNN,$p as RaggedGather,Dp as RaggedRange,Rp as RaggedTensorToTensor,Ml as Range,wS as Rank,Fp as Real,ts as RealDiv,vs as Reciprocal,Ze as Reduction,Ss as Relu,ks as Relu6,xi as Reshape,Ts as ResizeBilinear,Pp as ResizeBilinearGrad,Ns as ResizeNearestNeighbor,Op as ResizeNearestNeighborGrad,Es as Reverse,Xa as RotateWithOffset,_s as Round,As as Rsqrt,Ui as SGDOptimizer,Ba as ScatterNd,Lp as SearchSorted,yi as Select,Va as Selu,Yi as Sequential,Ds as Sigmoid,Wa as Sign,$s as Sin,Ga as Sinh,bi as Slice,Os as Softmax,Ua as Softplus,wi as SpaceToBatchND,zl as SparseFillEmptyRows,Ha as SparseReshape,Bl as SparseSegmentMean,Vl as SparseSegmentSum,Mp as SparseToDense,Ci as SplitV,Rs as Sqrt,Gl as Square,Ps as SquaredDifference,fo as Step,qa as StridedSlice,Wl as StringNGrams,Ul as StringSplit,Hl as StringToHashBucketFast,Ls as Sub,Fs as Sum,tn as SymbolicTensor,Ms as Tan,zs as Tanh,Ft as Tensor,pe as TensorBuffer,to as Tile,Ka as TopK,ja as Transform,eo as Transpose,zp as Unique,Ii as Unpack,ql as UnsortedSegmentSum,klt as UpperBound,Ya as Variable,vi as ZerosLike,Si as _FusedMatMul,Ee as abs,lx as acos,ux as acosh,X as add,BE as addN,Jp as all,ju as any,Ri as argMax,cx as argMin,px as asin,mx as asinh,fx as atan,dx as atan2,hx as atanh,Ql as avgPool,xx as avgPool3d,bE as backend,S as backend_util,WE as basicLSTMCell,Oi as batchNorm,yx as batchNorm2d,bx as batchNorm3d,wx as batchNorm4d,tu as batchToSpaceND,Cx as bincount,l6 as booleanMaskAsync,HE as broadcastArgs,Pi as broadcastTo,Wr as broadcast_util,ox as browser,wt as buffer,jZ as callbacks,J as cast,Ix as ceil,vr as clipByValue,an as clone,In as complex,oe as concat,vx as concat1d,Sx as concat2d,Nx as concat3d,Tx as concat4d,Y$ as constraints,tm as conv1d,Sn as conv2d,rm as conv2dTranspose,kx as conv3d,_x as conv3dTranspose,Flt as copyRegisteredKernels,eu as cos,nm as cosh,gh as cosineWindow,Zu as cumprod,om as cumsum,cn as customGrad,RR as data,ph as denseBincount,qS as deprecationWarn,Ax as depthToSpace,Li as depthwiseConv2d,JZ as deregisterOp,Yl as device_util,qE as diag,$x as dilation2d,Spt as disableDeprecationWarnings,Nt as dispose,Npt as disposeVariables,pt as div,Dx as divNoNan,Rx as dot,p0 as dropout,KE as einsum,Mi as elu,vpt as enableDebugMode,Ipt as enableProdMode,m0 as enclosingPowerOfTwo,Mn as engine,M as env,Rr as equal,Fx as erf,Ox as euclideanNorm,or as exp,sr as expandDims,Px as expm1,Ju as eye,uu as fft,bo as fill,$pt as findBackend,Dpt as findBackendFactory,zi as floor,Zp as floorDiv,yM as forceHalfFloat,pu as fused,Bi as gather,x6 as gatherND,sx as gather_util,_pt as getBackend,mS as getGradient,Qd as getKernel,Bg as getKernelsForBackend,mlt as getThreadsCount,uk as gpgpu_util,SK as grad,NK as grads,Re as greater,un as greaterEqual,nl as ifft,Jl as imag,so as image,w6 as inTopKAsync,Z$ as initializers,z0 as input,$r as io,ym as irfft,Lx as isFinite,Mx as isInf,zx as isNaN,Ae as keep,qr as kernel_impls,AD as layers,ru as leakyRelu,sm as less,zn as lessEqual,d0 as linalg,YE as linspace,q7 as loadGraphModel,K7 as loadGraphModelSync,xD as loadLayersModel,Bx as localResponseNormalization,Nr as log,nu as log1p,Wx as logSigmoid,im as logSoftmax,am as logSumExp,Or as logicalAnd,ou as logicalNot,lm as logicalOr,Ux as logicalXor,wX as losses,ZE as lowerBound,Lt as matMul,CE as math,Sr as max,su as maxPool,qx as maxPool3d,JE as maxPoolWithArgmax,Nn as maximum,Se as mean,lh as memory,QE as meshgrid,$D as metrics,el as min,Vi as minimum,Kx as mirrorPad,jx as mod,Y8 as model,DD as models,Qu as moments,c6 as movingAverage,D as mul,t_ as multiRNNCell,e_ as multinomial,Ht as neg,xh as nextFrame,rl as norm,Ws as notEqual,$i as oneHot,pr as ones,wr as onesLike,T as op,r_ as outerProduct,pn as pad,n_ as pad1d,o_ as pad2d,s_ as pad3d,i_ as pad4d,Xx as pool,ln as pow,au as prelu,Qg as print,Yx as prod,Tpt as profile,a_ as raggedGather,l_ as raggedRange,u_ as raggedTensorToTensor,c_ as rand,k_ as randomGamma,rc as randomNormal,E_ as randomStandardNormal,Gi as randomUniform,Wi as range,Ept as ready,tl as real,ey as reciprocal,Yp as registerBackend,J8 as registerCallbackConstructor,y1 as registerGradient,zu as registerKernel,ZZ as registerOp,RD as regularizers,Pr as relu,um as relu6,Apt as removeBackend,R as reshape,mr as reverse,__ as reverse1d,A_ as reverse2d,$_ as reverse3d,D_ as reverse4d,cu as rfft,cm as round,pm as rsqrt,mt as scalar,m6 as scatterND,uh as scatter_util,fh as searchSorted,mm as selu,fm as separableConv2d,Z8 as sequential,Q as serialization,sH as setBackend,Rpt as setPlatform,plt as setThreadsCount,ult as setWasmPath,clt as setWasmPaths,vT as setWebGLContext,R_ as setdiff1dAsync,Jr as sigmoid,ry as sign,bX as signal,dm as sin,hm as sinh,Rt as slice,gm as slice1d,hh as slice2d,xm as slice3d,nc as slice4d,Me as slice_util,lu as softmax,Gs as softplus,iu as spaceToBatchND,CX as sparse,h6 as sparseToDense,yX as spectral,fr as split,ve as sqrt,Mt as square,bm as squaredDifference,Bn as squeeze,qe as stack,Co as step,ny as stridedSlice,IX as string,ct as sub,ft as sum,Hu as sumOutType,oy as tan,Fi as tanh,nr as tensor,Ke as tensor1d,Us as tensor2d,nx as tensor3d,F_ as tensor4d,O_ as tensor5d,P_ as tensor6d,yo as tensor_util,ME as test_util,B as tidy,Fr as tile,kpt as time,sy as topk,lc as train,Ot as transpose,wm as truncatedNormal,iy as unique,Rlt as unregisterGradient,Dlt as unregisterKernel,Cm as unsortedSegmentSum,dr as unstack,ar as upcastType,L_ as upperBound,y as util,TK as valueAndGrad,kK as valueAndGrads,ay as variable,Vx as variableGrads,blt as version,fR as version_converter,zE as version_core,Hm as version_layers,flt as version_wasm,xM as version_webgl,b1e as webgl,gd as webgl_util,_e as where,uy as whereAsync,Ne as zeros,It as zerosLike}; diff --git a/dist/tfjs.version.js b/dist/tfjs.version.js index e2bb58a..a2a6e36 100644 --- a/dist/tfjs.version.js +++ b/dist/tfjs.version.js @@ -4,4 +4,4 @@ author: ' */ -var e="4.0.0";var s="4.0.0";var t="4.0.0";var i="4.0.0";var n="4.0.0";var y={tfjs:e,"tfjs-core":e,"tfjs-converter":s,"tfjs-backend-cpu":t,"tfjs-backend-webgl":i,"tfjs-backend-wasm":n};export{y as version}; +var e="4.1.0";var s="4.1.0";var t="4.1.0";var n="4.1.0";var i="4.1.0";var w={tfjs:e,"tfjs-core":e,"tfjs-converter":s,"tfjs-backend-cpu":t,"tfjs-backend-webgl":n,"tfjs-backend-wasm":i};export{w as version}; diff --git a/typedoc/assets/main.js b/typedoc/assets/main.js index abd0485..b949086 100644 --- a/typedoc/assets/main.js +++ b/typedoc/assets/main.js @@ -1,6 +1,6 @@ "use strict"; "use strict";(()=>{var Qe=Object.create;var ae=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Ce=Object.getOwnPropertyNames;var Oe=Object.getPrototypeOf,Re=Object.prototype.hasOwnProperty;var _e=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Me=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ce(e))!Re.call(t,i)&&i!==n&&ae(t,i,{get:()=>e[i],enumerable:!(r=Pe(e,i))||r.enumerable});return t};var De=(t,e,n)=>(n=t!=null?Qe(Oe(t)):{},Me(e||!t||!t.__esModule?ae(n,"default",{value:t,enumerable:!0}):n,t));var de=_e((ce,he)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(n){e.console&&console.warn&&console.warn(n)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i0){var h=t.utils.clone(n)||{};h.position=[a,l],h.index=s.length,s.push(new t.Token(r.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index. -`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return(...r)=>{clearTimeout(n),n=setTimeout(()=>t(r),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${pe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } +`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r1&&(oe&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(ou?h+=2:a==u&&(n+=r[l+1]*i[h+1],l+=2,h+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}if(s.str.length==0&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),m=s.str.charAt(1),v;m in s.node.edges?v=s.node.edges[m]:(v=new t.TokenSet,s.node.edges[m]=v),s.str.length==1&&(v.final=!0),i.push({node:v,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,n){typeof define=="function"&&define.amd?define(n):typeof ce=="object"?he.exports=n():e.lunr=n()}(this,function(){return t})})()});var le=[];function j(t,e){le.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){le.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r}),r.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,n){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(n)}removeEventListener(e,n){if(!(e in this.listeners))return;let r=this.listeners[e];for(let i=0,s=r.length;i{let n=Date.now();return(...r)=>{n+e-Date.now()<0&&(t(...r),n=Date.now())}};var re=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.navigation=document.querySelector(".col-menu"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.searchInput=document.querySelector("#tsd-search input"),this.searchInput&&this.searchInput.addEventListener("focus",()=>{this.hideShowToolbar()}),this.onResize(),this.onScroll()}triggerResize(){let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let n=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(n)}onScroll(){this.scrollTop=window.scrollY||0;let n=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(n),this.hideShowToolbar()}hideShowToolbar(){let n=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0||!!this.searchInput&&this.searchInput===document.activeElement,n!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),this.navigation?.classList.toggle("col-menu--hide")),this.lastY=this.scrollTop}},R=re;R.instance=new re;var X=class extends k{constructor(n){super(n);this.anchors=[];this.index=-1;R.instance.addEventListener("resize",()=>this.onResize()),R.instance.addEventListener("scroll",r=>this.onScroll(r)),this.createAnchors()}createAnchors(){let n=window.location.href;n.indexOf("#")!=-1&&(n=n.substring(0,n.indexOf("#"))),this.el.querySelectorAll("a").forEach(r=>{let i=r.href;if(i.indexOf("#")==-1||i.substring(0,n.length)!=n)return;let s=i.substring(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=r.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let n;for(let i=0,s=this.anchors.length;ii.position-s.position);let r=new CustomEvent("scroll",{detail:{scrollTop:R.instance.scrollTop}});this.onScroll(r)}onScroll(n){let r=n.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>r;)o-=1;for(;o-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var ue=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var me=De(de());function ve(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let n=document.querySelector("#tsd-search input"),r=document.querySelector("#tsd-search .results");if(!n||!r)throw new Error("The input field or the result list wrapper was not found");let i=!1;r.addEventListener("mousedown",()=>i=!0),r.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),n.addEventListener("focus",()=>t.classList.add("has-focus")),n.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Fe(t,r,n,s)}function Fe(t,e,n,r){n.addEventListener("input",ue(()=>{Ae(t,e,n,r)},200));let i=!1;n.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?Ve(e,n):s.key=="Escape"?n.blur():s.key=="ArrowUp"?fe(e,-1):s.key==="ArrowDown"?fe(e,1):i=!1}),n.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!n.matches(":focus")&&s.key==="/"&&(n.focus(),s.preventDefault())})}function He(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=me.Index.load(window.searchData.index))}function Ae(t,e,n,r){if(He(r,t),!r.index||!r.data)return;e.textContent="";let i=n.value.trim(),s=i?r.index.search(`*${i}*`):[];for(let o=0;oa.score-o.score);for(let o=0,a=Math.min(10,s.length);o${pe(u.parent,i)}.${l}`);let h=document.createElement("li");h.classList.value=u.classes??"";let m=document.createElement("a");m.href=r.base+u.url,m.innerHTML=l,h.append(m),e.appendChild(h)}}function fe(t,e){let n=t.querySelector(".current");if(!n)n=t.querySelector(e==1?"li:first-child":"li:last-child"),n&&n.classList.add("current");else{let r=n;if(e===1)do r=r.nextElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);else do r=r.previousElementSibling??void 0;while(r instanceof HTMLElement&&r.offsetParent==null);r&&(n.classList.remove("current"),r.classList.add("current"))}}function Ve(t,e){let n=t.querySelector(".current");if(n||(n=t.querySelector("li:first-child")),n){let r=n.querySelector("a");r&&(window.location.href=r.href),e.blur()}}function pe(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(ie(t.substring(s,o)),`${ie(t.substring(o,o+r.length))}`),s=o+r.length,o=n.indexOf(r,s);return i.push(ie(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function ie(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var F="mousedown",ye="mousemove",B="mouseup",Z={x:0,y:0},ge=!1,se=!1,je=!1,H=!1,xe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(xe?"is-mobile":"not-mobile");xe&&"ontouchstart"in document.documentElement&&(je=!0,F="touchstart",ye="touchmove",B="touchend");document.addEventListener(F,t=>{se=!0,H=!1;let e=F=="touchstart"?t.targetTouches[0]:t;Z.y=e.pageY||0,Z.x=e.pageX||0});document.addEventListener(ye,t=>{if(!!se&&!H){let e=F=="touchstart"?t.targetTouches[0]:t,n=Z.x-(e.pageX||0),r=Z.y-(e.pageY||0);H=Math.sqrt(n*n+r*r)>10}});document.addEventListener(B,()=>{se=!1});document.addEventListener("click",t=>{ge&&(t.preventDefault(),t.stopImmediatePropagation(),ge=!1)});var K=class extends k{constructor(n){super(n);this.className=this.el.dataset.toggle||"",this.el.addEventListener(B,r=>this.onPointerUp(r)),this.el.addEventListener("click",r=>r.preventDefault()),document.addEventListener(F,r=>this.onDocumentPointerDown(r)),document.addEventListener(B,r=>this.onDocumentPointerUp(r))}setActive(n){if(this.active==n)return;this.active=n,document.documentElement.classList.toggle("has-"+this.className,n),this.el.classList.toggle("active",n);let r=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(r),setTimeout(()=>document.documentElement.classList.remove(r),500)}onPointerUp(n){H||(this.setActive(!0),n.preventDefault())}onDocumentPointerDown(n){if(this.active){if(n.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(n){if(!H&&this.active&&n.target.closest(".col-menu")){let r=n.target.closest("a");if(r){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substring(0,i.indexOf("#"))),r.href.substring(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var oe;try{oe=localStorage}catch{oe={getItem(){return null},setItem(){}}}var Q=oe;var Le=document.head.appendChild(document.createElement("style"));Le.dataset.for="filters";var ee=class extends k{constructor(n){super(n);this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),Le.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; } `}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.checked}setLocalStorage(n){Q.setItem(this.key,n.toString()),this.value=n,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),document.querySelectorAll(".tsd-index-section").forEach(n=>{n.style.display="block";let r=Array.from(n.querySelectorAll(".tsd-index-link")).every(i=>i.offsetParent==null);n.style.display=r?"none":"block"})}};var te=class extends k{constructor(n){super(n);this.calculateHeights(),this.summary=this.el.querySelector(".tsd-accordion-summary"),this.icon=this.summary.querySelector("svg"),this.key=`tsd-accordion-${this.summary.textContent.replace(/\s+/g,"-").toLowerCase()}`,this.setLocalStorage(this.fromLocalStorage(),!0),this.summary.addEventListener("click",r=>this.toggleVisibility(r)),this.icon.style.transform=this.getIconRotation()}getIconRotation(n=this.el.open){return`rotate(${n?0:-90}deg)`}calculateHeights(){let n=this.el.open,{position:r,left:i}=this.el.style;this.el.style.position="fixed",this.el.style.left="-9999px",this.el.open=!0,this.expandedHeight=this.el.offsetHeight+"px",this.el.open=!1,this.collapsedHeight=this.el.offsetHeight+"px",this.el.open=n,this.el.style.height=n?this.expandedHeight:this.collapsedHeight,this.el.style.position=r,this.el.style.left=i}toggleVisibility(n){n.preventDefault(),this.el.style.overflow="hidden",this.el.open?this.collapse():this.expand()}expand(n=!0){this.el.open=!0,this.animate(this.collapsedHeight,this.expandedHeight,{opening:!0,duration:n?300:0})}collapse(n=!0){this.animate(this.expandedHeight,this.collapsedHeight,{opening:!1,duration:n?300:0})}animate(n,r,{opening:i,duration:s=300}){if(this.animation)return;let o={duration:s,easing:"ease"};this.animation=this.el.animate({height:[n,r]},o),this.icon.animate({transform:[this.icon.style.transform||this.getIconRotation(!i),this.getIconRotation(i)]},o).addEventListener("finish",()=>{this.icon.style.transform=this.getIconRotation(i)}),this.animation.addEventListener("finish",()=>this.animationEnd(i))}animationEnd(n){this.el.open=n,this.animation=void 0,this.el.style.height="auto",this.el.style.overflow="visible",this.setLocalStorage(n)}fromLocalStorage(){let n=Q.getItem(this.key);return n?n==="true":this.el.open}setLocalStorage(n,r=!1){this.fromLocalStorage()===n&&!r||(Q.setItem(this.key,n.toString()),this.el.open=n,this.handleValueChange(r))}handleValueChange(n=!1){this.fromLocalStorage()===this.el.open&&!n||(this.fromLocalStorage()?this.expand(!1):this.collapse(!1))}};function be(t){let e=Q.getItem("tsd-theme")||"os";t.value=e,Ee(e),t.addEventListener("change",()=>{Q.setItem("tsd-theme",t.value),Ee(t.value)})}function Ee(t){document.documentElement.dataset.theme=t}ve();j(X,".menu-highlight");j(K,"a[data-toggle]");j(te,".tsd-index-accordion");j(ee,".tsd-filter-item input[type=checkbox]");var Se=document.getElementById("theme");Se&&be(Se);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})(); /*! * lunr.Builder diff --git a/typedoc/classes/AgeGenderNet.html b/typedoc/classes/AgeGenderNet.html index f0d75ab..793537c 100644 --- a/typedoc/classes/AgeGenderNet.html +++ b/typedoc/classes/AgeGenderNet.html @@ -1,4 +1,4 @@ -AgeGenderNet | @vladmandic/face-api - v1.7.6
+AgeGenderNet | @vladmandic/face-api - v1.7.7
  • Preparing search index...
  • -
  • The search index is not available
@vladmandic/face-api - v1.7.6
+
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -396,7 +396,7 @@

    Modules

    diff --git a/typedoc/classes/BoundingBox.html b/typedoc/classes/BoundingBox.html index 6162cb1..86742ca 100644 --- a/typedoc/classes/BoundingBox.html +++ b/typedoc/classes/BoundingBox.html @@ -1,4 +1,4 @@ -BoundingBox | @vladmandic/face-api - v1.7.6
    +BoundingBox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -403,7 +403,7 @@

    Modules

    diff --git a/typedoc/classes/Box.html b/typedoc/classes/Box.html index 217581c..2e187e6 100644 --- a/typedoc/classes/Box.html +++ b/typedoc/classes/Box.html @@ -1,4 +1,4 @@ -Box | @vladmandic/face-api - v1.7.6
    +Box | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -389,7 +389,7 @@

    Modules

    diff --git a/typedoc/classes/ComposableTask.html b/typedoc/classes/ComposableTask.html index f56c3c9..07615ab 100644 --- a/typedoc/classes/ComposableTask.html +++ b/typedoc/classes/ComposableTask.html @@ -1,4 +1,4 @@ -ComposableTask | @vladmandic/face-api - v1.7.6
    +ComposableTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -107,7 +107,7 @@

    Modules

    diff --git a/typedoc/classes/ComputeAllFaceDescriptorsTask.html b/typedoc/classes/ComputeAllFaceDescriptorsTask.html index 2292d57..49c19c5 100644 --- a/typedoc/classes/ComputeAllFaceDescriptorsTask.html +++ b/typedoc/classes/ComputeAllFaceDescriptorsTask.html @@ -1,4 +1,4 @@ -ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.6
    +ComputeAllFaceDescriptorsTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -135,7 +135,7 @@

    Modules

    diff --git a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html index 423e2d9..a1dafde 100644 --- a/typedoc/classes/ComputeFaceDescriptorsTaskBase.html +++ b/typedoc/classes/ComputeFaceDescriptorsTaskBase.html @@ -1,4 +1,4 @@ -ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.6
    +ComputeFaceDescriptorsTaskBase | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7

    Class ComputeFaceDescriptorsTaskBase<TReturn, TParentReturn>

    @@ -124,7 +124,7 @@

    Modules

    diff --git a/typedoc/classes/ComputeSingleFaceDescriptorTask.html b/typedoc/classes/ComputeSingleFaceDescriptorTask.html index e73730f..3378792 100644 --- a/typedoc/classes/ComputeSingleFaceDescriptorTask.html +++ b/typedoc/classes/ComputeSingleFaceDescriptorTask.html @@ -1,4 +1,4 @@ -ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.6
    +ComputeSingleFaceDescriptorTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -135,7 +135,7 @@

    Modules

    diff --git a/typedoc/classes/DetectAllFaceLandmarksTask.html b/typedoc/classes/DetectAllFaceLandmarksTask.html index ec5ccec..514c3c2 100644 --- a/typedoc/classes/DetectAllFaceLandmarksTask.html +++ b/typedoc/classes/DetectAllFaceLandmarksTask.html @@ -1,4 +1,4 @@ -DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.6
    +DetectAllFaceLandmarksTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -146,7 +146,7 @@

    Modules

    diff --git a/typedoc/classes/DetectAllFacesTask.html b/typedoc/classes/DetectAllFacesTask.html index 4342139..49dba1f 100644 --- a/typedoc/classes/DetectAllFacesTask.html +++ b/typedoc/classes/DetectAllFacesTask.html @@ -1,4 +1,4 @@ -DetectAllFacesTask | @vladmandic/face-api - v1.7.6
    +DetectAllFacesTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -139,7 +139,7 @@

    Modules

    diff --git a/typedoc/classes/DetectFaceLandmarksTaskBase.html b/typedoc/classes/DetectFaceLandmarksTaskBase.html index 8fa976f..6c5a306 100644 --- a/typedoc/classes/DetectFaceLandmarksTaskBase.html +++ b/typedoc/classes/DetectFaceLandmarksTaskBase.html @@ -1,4 +1,4 @@ -DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.6
    +DetectFaceLandmarksTaskBase | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7

    Class DetectFaceLandmarksTaskBase<TReturn, TParentReturn>

    @@ -126,7 +126,7 @@

    Modules

    diff --git a/typedoc/classes/DetectFacesTaskBase.html b/typedoc/classes/DetectFacesTaskBase.html index 066c497..e142499 100644 --- a/typedoc/classes/DetectFacesTaskBase.html +++ b/typedoc/classes/DetectFacesTaskBase.html @@ -1,4 +1,4 @@ -DetectFacesTaskBase | @vladmandic/face-api - v1.7.6
    +DetectFacesTaskBase | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -120,7 +120,7 @@

    Modules

    diff --git a/typedoc/classes/DetectSingleFaceLandmarksTask.html b/typedoc/classes/DetectSingleFaceLandmarksTask.html index 318d49b..016cd4a 100644 --- a/typedoc/classes/DetectSingleFaceLandmarksTask.html +++ b/typedoc/classes/DetectSingleFaceLandmarksTask.html @@ -1,4 +1,4 @@ -DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.6
    +DetectSingleFaceLandmarksTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -146,7 +146,7 @@

    Modules

    diff --git a/typedoc/classes/DetectSingleFaceTask.html b/typedoc/classes/DetectSingleFaceTask.html index 2115062..4189ffa 100644 --- a/typedoc/classes/DetectSingleFaceTask.html +++ b/typedoc/classes/DetectSingleFaceTask.html @@ -1,4 +1,4 @@ -DetectSingleFaceTask | @vladmandic/face-api - v1.7.6
    +DetectSingleFaceTask | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -139,7 +139,7 @@

    Modules

    diff --git a/typedoc/classes/Dimensions.html b/typedoc/classes/Dimensions.html index c24cb6f..d7e4e80 100644 --- a/typedoc/classes/Dimensions.html +++ b/typedoc/classes/Dimensions.html @@ -1,4 +1,4 @@ -Dimensions | @vladmandic/face-api - v1.7.6
    +Dimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -106,7 +106,7 @@

    Modules

    diff --git a/typedoc/classes/FaceDetection.html b/typedoc/classes/FaceDetection.html index d282890..37a507c 100644 --- a/typedoc/classes/FaceDetection.html +++ b/typedoc/classes/FaceDetection.html @@ -1,4 +1,4 @@ -FaceDetection | @vladmandic/face-api - v1.7.6
    +FaceDetection | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -181,7 +181,7 @@

    Modules

    diff --git a/typedoc/classes/FaceDetectionNet.html b/typedoc/classes/FaceDetectionNet.html index 5c4570e..58d5dcf 100644 --- a/typedoc/classes/FaceDetectionNet.html +++ b/typedoc/classes/FaceDetectionNet.html @@ -1,4 +1,4 @@ -FaceDetectionNet | @vladmandic/face-api - v1.7.6
    +FaceDetectionNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -340,7 +340,7 @@

    Modules

    diff --git a/typedoc/classes/FaceExpressionNet.html b/typedoc/classes/FaceExpressionNet.html index 978d33d..c7a941c 100644 --- a/typedoc/classes/FaceExpressionNet.html +++ b/typedoc/classes/FaceExpressionNet.html @@ -1,4 +1,4 @@ -FaceExpressionNet | @vladmandic/face-api - v1.7.6
    +FaceExpressionNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -400,7 +400,7 @@

    Modules

    diff --git a/typedoc/classes/FaceExpressions.html b/typedoc/classes/FaceExpressions.html index 42bf2c5..60116a2 100644 --- a/typedoc/classes/FaceExpressions.html +++ b/typedoc/classes/FaceExpressions.html @@ -1,4 +1,4 @@ -FaceExpressions | @vladmandic/face-api - v1.7.6
    +FaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -122,7 +122,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmark68Net.html b/typedoc/classes/FaceLandmark68Net.html index c147ea0..5ea1924 100644 --- a/typedoc/classes/FaceLandmark68Net.html +++ b/typedoc/classes/FaceLandmark68Net.html @@ -1,4 +1,4 @@ -FaceLandmark68Net | @vladmandic/face-api - v1.7.6
    +FaceLandmark68Net | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -424,7 +424,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmark68TinyNet.html b/typedoc/classes/FaceLandmark68TinyNet.html index bc5169c..6eca53c 100644 --- a/typedoc/classes/FaceLandmark68TinyNet.html +++ b/typedoc/classes/FaceLandmark68TinyNet.html @@ -1,4 +1,4 @@ -FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.6
    +FaceLandmark68TinyNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -422,7 +422,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmarkNet.html b/typedoc/classes/FaceLandmarkNet.html index cd2052c..864dd5c 100644 --- a/typedoc/classes/FaceLandmarkNet.html +++ b/typedoc/classes/FaceLandmarkNet.html @@ -1,4 +1,4 @@ -FaceLandmarkNet | @vladmandic/face-api - v1.7.6
    +FaceLandmarkNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -422,7 +422,7 @@

    Modules

    diff --git a/typedoc/classes/FaceLandmarks.html b/typedoc/classes/FaceLandmarks.html index 828ace0..8665aad 100644 --- a/typedoc/classes/FaceLandmarks.html +++ b/typedoc/classes/FaceLandmarks.html @@ -1,4 +1,4 @@ -FaceLandmarks | @vladmandic/face-api - v1.7.6
    +FaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -222,7 +222,7 @@ it's current shift.

    Modules

    diff --git a/typedoc/classes/FaceLandmarks5.html b/typedoc/classes/FaceLandmarks5.html index 8d6651c..8a51333 100644 --- a/typedoc/classes/FaceLandmarks5.html +++ b/typedoc/classes/FaceLandmarks5.html @@ -1,4 +1,4 @@ -FaceLandmarks5 | @vladmandic/face-api - v1.7.6
    +FaceLandmarks5 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -225,7 +225,7 @@ it's current shift.

    Modules

    diff --git a/typedoc/classes/FaceLandmarks68.html b/typedoc/classes/FaceLandmarks68.html index a9a97fc..d4007f6 100644 --- a/typedoc/classes/FaceLandmarks68.html +++ b/typedoc/classes/FaceLandmarks68.html @@ -1,4 +1,4 @@ -FaceLandmarks68 | @vladmandic/face-api - v1.7.6
    +FaceLandmarks68 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -288,7 +288,7 @@ it's current shift.

    Modules

    diff --git a/typedoc/classes/FaceMatch.html b/typedoc/classes/FaceMatch.html index ff19cf9..06c2fc9 100644 --- a/typedoc/classes/FaceMatch.html +++ b/typedoc/classes/FaceMatch.html @@ -1,4 +1,4 @@ -FaceMatch | @vladmandic/face-api - v1.7.6
    +FaceMatch | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -111,7 +111,7 @@

    Modules

    diff --git a/typedoc/classes/FaceMatcher.html b/typedoc/classes/FaceMatcher.html index ee27ba5..744729e 100644 --- a/typedoc/classes/FaceMatcher.html +++ b/typedoc/classes/FaceMatcher.html @@ -1,4 +1,4 @@ -FaceMatcher | @vladmandic/face-api - v1.7.6
    +FaceMatcher | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -158,7 +158,7 @@

    Modules

    diff --git a/typedoc/classes/FaceRecognitionNet.html b/typedoc/classes/FaceRecognitionNet.html index 54469a6..e29e6c4 100644 --- a/typedoc/classes/FaceRecognitionNet.html +++ b/typedoc/classes/FaceRecognitionNet.html @@ -1,4 +1,4 @@ -FaceRecognitionNet | @vladmandic/face-api - v1.7.6
    +FaceRecognitionNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -335,7 +335,7 @@

    Modules

    diff --git a/typedoc/classes/LabeledBox.html b/typedoc/classes/LabeledBox.html index 4790bb1..e50f6fa 100644 --- a/typedoc/classes/LabeledBox.html +++ b/typedoc/classes/LabeledBox.html @@ -1,4 +1,4 @@ -LabeledBox | @vladmandic/face-api - v1.7.6
    +LabeledBox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -416,7 +416,7 @@

    Modules

    diff --git a/typedoc/classes/LabeledFaceDescriptors.html b/typedoc/classes/LabeledFaceDescriptors.html index d61e6ab..f9d75ea 100644 --- a/typedoc/classes/LabeledFaceDescriptors.html +++ b/typedoc/classes/LabeledFaceDescriptors.html @@ -1,4 +1,4 @@ -LabeledFaceDescriptors | @vladmandic/face-api - v1.7.6
    +LabeledFaceDescriptors | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -114,7 +114,7 @@

    Modules

    diff --git a/typedoc/classes/NetInput.html b/typedoc/classes/NetInput.html index d194f09..e2127dc 100644 --- a/typedoc/classes/NetInput.html +++ b/typedoc/classes/NetInput.html @@ -1,4 +1,4 @@ -NetInput | @vladmandic/face-api - v1.7.6
    +NetInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -229,7 +229,7 @@ with size [batchSize, inputSize, inputSize, 3].

    Modules

    diff --git a/typedoc/classes/NeuralNetwork.html b/typedoc/classes/NeuralNetwork.html index 25aea1c..ec1bc79 100644 --- a/typedoc/classes/NeuralNetwork.html +++ b/typedoc/classes/NeuralNetwork.html @@ -1,4 +1,4 @@ -NeuralNetwork | @vladmandic/face-api - v1.7.6
    +NeuralNetwork | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -291,7 +291,7 @@

    Modules

    diff --git a/typedoc/classes/ObjectDetection.html b/typedoc/classes/ObjectDetection.html index 283c4a7..9cfae7c 100644 --- a/typedoc/classes/ObjectDetection.html +++ b/typedoc/classes/ObjectDetection.html @@ -1,4 +1,4 @@ -ObjectDetection | @vladmandic/face-api - v1.7.6
    +ObjectDetection | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -169,7 +169,7 @@

    Modules

    diff --git a/typedoc/classes/Point.html b/typedoc/classes/Point.html index 3370478..1ec22d1 100644 --- a/typedoc/classes/Point.html +++ b/typedoc/classes/Point.html @@ -1,4 +1,4 @@ -Point | @vladmandic/face-api - v1.7.6
    +Point | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -180,7 +180,7 @@

    Modules

    diff --git a/typedoc/classes/PredictedBox.html b/typedoc/classes/PredictedBox.html index 2eb4ea0..f9dcc05 100644 --- a/typedoc/classes/PredictedBox.html +++ b/typedoc/classes/PredictedBox.html @@ -1,4 +1,4 @@ -PredictedBox | @vladmandic/face-api - v1.7.6
    +PredictedBox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -454,7 +454,7 @@

    Modules

    diff --git a/typedoc/classes/Rect.html b/typedoc/classes/Rect.html index be98c35..69a04d1 100644 --- a/typedoc/classes/Rect.html +++ b/typedoc/classes/Rect.html @@ -1,4 +1,4 @@ -Rect | @vladmandic/face-api - v1.7.6
    +Rect | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -403,7 +403,7 @@

    Modules

    diff --git a/typedoc/classes/SsdMobilenetv1.html b/typedoc/classes/SsdMobilenetv1.html index 1b29712..14a23fc 100644 --- a/typedoc/classes/SsdMobilenetv1.html +++ b/typedoc/classes/SsdMobilenetv1.html @@ -1,4 +1,4 @@ -SsdMobilenetv1 | @vladmandic/face-api - v1.7.6
    +SsdMobilenetv1 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -339,7 +339,7 @@

    Modules

    diff --git a/typedoc/classes/SsdMobilenetv1Options.html b/typedoc/classes/SsdMobilenetv1Options.html index bcb918d..8dc3d8c 100644 --- a/typedoc/classes/SsdMobilenetv1Options.html +++ b/typedoc/classes/SsdMobilenetv1Options.html @@ -1,4 +1,4 @@ -SsdMobilenetv1Options | @vladmandic/face-api - v1.7.6
    +SsdMobilenetv1Options | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -84,7 +84,7 @@

    Modules

    diff --git a/typedoc/classes/TinyFaceDetector.html b/typedoc/classes/TinyFaceDetector.html index 4e3a4bf..67df75a 100644 --- a/typedoc/classes/TinyFaceDetector.html +++ b/typedoc/classes/TinyFaceDetector.html @@ -1,4 +1,4 @@ -TinyFaceDetector | @vladmandic/face-api - v1.7.6
    +TinyFaceDetector | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -440,7 +440,7 @@

    Modules

    diff --git a/typedoc/classes/TinyFaceDetectorOptions.html b/typedoc/classes/TinyFaceDetectorOptions.html index df03417..c639f2e 100644 --- a/typedoc/classes/TinyFaceDetectorOptions.html +++ b/typedoc/classes/TinyFaceDetectorOptions.html @@ -1,4 +1,4 @@ -TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.6
    +TinyFaceDetectorOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -89,7 +89,7 @@

    Modules

    diff --git a/typedoc/classes/TinyYolov2.html b/typedoc/classes/TinyYolov2.html index 8095aa8..907293c 100644 --- a/typedoc/classes/TinyYolov2.html +++ b/typedoc/classes/TinyYolov2.html @@ -1,4 +1,4 @@ -TinyYolov2 | @vladmandic/face-api - v1.7.6
    +TinyYolov2 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -454,7 +454,7 @@

    Modules

    diff --git a/typedoc/classes/TinyYolov2Options.html b/typedoc/classes/TinyYolov2Options.html index 61a0b09..21d1fd9 100644 --- a/typedoc/classes/TinyYolov2Options.html +++ b/typedoc/classes/TinyYolov2Options.html @@ -1,4 +1,4 @@ -TinyYolov2Options | @vladmandic/face-api - v1.7.6
    +TinyYolov2Options | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -86,7 +86,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawBox.html b/typedoc/classes/draw.DrawBox.html index 60fa0dc..cfeb02a 100644 --- a/typedoc/classes/draw.DrawBox.html +++ b/typedoc/classes/draw.DrawBox.html @@ -1,4 +1,4 @@ -DrawBox | @vladmandic/face-api - v1.7.6
    +DrawBox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -100,7 +100,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawBoxOptions.html b/typedoc/classes/draw.DrawBoxOptions.html index de5adb2..27fff8b 100644 --- a/typedoc/classes/draw.DrawBoxOptions.html +++ b/typedoc/classes/draw.DrawBoxOptions.html @@ -1,4 +1,4 @@ -DrawBoxOptions | @vladmandic/face-api - v1.7.6
    +DrawBoxOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -91,7 +91,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawFaceLandmarks.html b/typedoc/classes/draw.DrawFaceLandmarks.html index 41dada7..8bcc9b0 100644 --- a/typedoc/classes/draw.DrawFaceLandmarks.html +++ b/typedoc/classes/draw.DrawFaceLandmarks.html @@ -1,4 +1,4 @@ -DrawFaceLandmarks | @vladmandic/face-api - v1.7.6
    +DrawFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -100,7 +100,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawFaceLandmarksOptions.html b/typedoc/classes/draw.DrawFaceLandmarksOptions.html index 6888aaf..a62e8c7 100644 --- a/typedoc/classes/draw.DrawFaceLandmarksOptions.html +++ b/typedoc/classes/draw.DrawFaceLandmarksOptions.html @@ -1,4 +1,4 @@ -DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.6
    +DrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -103,7 +103,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawTextField.html b/typedoc/classes/draw.DrawTextField.html index b64ff5f..d74eabf 100644 --- a/typedoc/classes/draw.DrawTextField.html +++ b/typedoc/classes/draw.DrawTextField.html @@ -1,4 +1,4 @@ -DrawTextField | @vladmandic/face-api - v1.7.6
    +DrawTextField | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -147,7 +147,7 @@

    Modules

    diff --git a/typedoc/classes/draw.DrawTextFieldOptions.html b/typedoc/classes/draw.DrawTextFieldOptions.html index f920c5f..18c63f0 100644 --- a/typedoc/classes/draw.DrawTextFieldOptions.html +++ b/typedoc/classes/draw.DrawTextFieldOptions.html @@ -1,4 +1,4 @@ -DrawTextFieldOptions | @vladmandic/face-api - v1.7.6
    +DrawTextFieldOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -113,7 +113,7 @@

    Modules

    diff --git a/typedoc/enums/Gender.html b/typedoc/enums/Gender.html index 6c30a35..b839e77 100644 --- a/typedoc/enums/Gender.html +++ b/typedoc/enums/Gender.html @@ -1,4 +1,4 @@ -Gender | @vladmandic/face-api - v1.7.6
    +Gender | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/allFacesSsdMobilenetv1.html b/typedoc/functions/allFacesSsdMobilenetv1.html index c0ce3ea..67a7c09 100644 --- a/typedoc/functions/allFacesSsdMobilenetv1.html +++ b/typedoc/functions/allFacesSsdMobilenetv1.html @@ -1,4 +1,4 @@ -allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.6
    +allFacesSsdMobilenetv1 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/allFacesTinyYolov2.html b/typedoc/functions/allFacesTinyYolov2.html index 3c1070d..a4542cd 100644 --- a/typedoc/functions/allFacesTinyYolov2.html +++ b/typedoc/functions/allFacesTinyYolov2.html @@ -1,4 +1,4 @@ -allFacesTinyYolov2 | @vladmandic/face-api - v1.7.6
    +allFacesTinyYolov2 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/awaitMediaLoaded.html b/typedoc/functions/awaitMediaLoaded.html index 0ceecdb..11eed4e 100644 --- a/typedoc/functions/awaitMediaLoaded.html +++ b/typedoc/functions/awaitMediaLoaded.html @@ -1,4 +1,4 @@ -awaitMediaLoaded | @vladmandic/face-api - v1.7.6
    +awaitMediaLoaded | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/bufferToImage.html b/typedoc/functions/bufferToImage.html index c0e36f6..6fc8d2d 100644 --- a/typedoc/functions/bufferToImage.html +++ b/typedoc/functions/bufferToImage.html @@ -1,4 +1,4 @@ -bufferToImage | @vladmandic/face-api - v1.7.6
    +bufferToImage | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/computeFaceDescriptor.html b/typedoc/functions/computeFaceDescriptor.html index 46d0ee1..1155052 100644 --- a/typedoc/functions/computeFaceDescriptor.html +++ b/typedoc/functions/computeFaceDescriptor.html @@ -1,4 +1,4 @@ -computeFaceDescriptor | @vladmandic/face-api - v1.7.6
    +computeFaceDescriptor | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@ face descriptors.

    Modules

    diff --git a/typedoc/functions/createCanvas.html b/typedoc/functions/createCanvas.html index 199ee41..a963bae 100644 --- a/typedoc/functions/createCanvas.html +++ b/typedoc/functions/createCanvas.html @@ -1,4 +1,4 @@ -createCanvas | @vladmandic/face-api - v1.7.6
    +createCanvas | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createCanvasFromMedia.html b/typedoc/functions/createCanvasFromMedia.html index ac72304..a20a030 100644 --- a/typedoc/functions/createCanvasFromMedia.html +++ b/typedoc/functions/createCanvasFromMedia.html @@ -1,4 +1,4 @@ -createCanvasFromMedia | @vladmandic/face-api - v1.7.6
    +createCanvasFromMedia | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/createFaceDetectionNet.html b/typedoc/functions/createFaceDetectionNet.html index 930e649..cfe19d2 100644 --- a/typedoc/functions/createFaceDetectionNet.html +++ b/typedoc/functions/createFaceDetectionNet.html @@ -1,4 +1,4 @@ -createFaceDetectionNet | @vladmandic/face-api - v1.7.6
    +createFaceDetectionNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createFaceRecognitionNet.html b/typedoc/functions/createFaceRecognitionNet.html index 7144213..f66fc47 100644 --- a/typedoc/functions/createFaceRecognitionNet.html +++ b/typedoc/functions/createFaceRecognitionNet.html @@ -1,4 +1,4 @@ -createFaceRecognitionNet | @vladmandic/face-api - v1.7.6
    +createFaceRecognitionNet | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createSsdMobilenetv1.html b/typedoc/functions/createSsdMobilenetv1.html index c7affb9..cfad85f 100644 --- a/typedoc/functions/createSsdMobilenetv1.html +++ b/typedoc/functions/createSsdMobilenetv1.html @@ -1,4 +1,4 @@ -createSsdMobilenetv1 | @vladmandic/face-api - v1.7.6
    +createSsdMobilenetv1 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createTinyFaceDetector.html b/typedoc/functions/createTinyFaceDetector.html index cafa788..163ca61 100644 --- a/typedoc/functions/createTinyFaceDetector.html +++ b/typedoc/functions/createTinyFaceDetector.html @@ -1,4 +1,4 @@ -createTinyFaceDetector | @vladmandic/face-api - v1.7.6
    +createTinyFaceDetector | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/createTinyYolov2.html b/typedoc/functions/createTinyYolov2.html index 2b50dfc..a7e416c 100644 --- a/typedoc/functions/createTinyYolov2.html +++ b/typedoc/functions/createTinyYolov2.html @@ -1,4 +1,4 @@ -createTinyYolov2 | @vladmandic/face-api - v1.7.6
    +createTinyYolov2 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/detectAllFaces.html b/typedoc/functions/detectAllFaces.html index f4b2aea..95cb65b 100644 --- a/typedoc/functions/detectAllFaces.html +++ b/typedoc/functions/detectAllFaces.html @@ -1,4 +1,4 @@ -detectAllFaces | @vladmandic/face-api - v1.7.6
    +detectAllFaces | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/detectFaceLandmarks.html b/typedoc/functions/detectFaceLandmarks.html index 4d47084..771a8b9 100644 --- a/typedoc/functions/detectFaceLandmarks.html +++ b/typedoc/functions/detectFaceLandmarks.html @@ -1,4 +1,4 @@ -detectFaceLandmarks | @vladmandic/face-api - v1.7.6
    +detectFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/detectFaceLandmarksTiny.html b/typedoc/functions/detectFaceLandmarksTiny.html index 5b7d857..a6a9ef4 100644 --- a/typedoc/functions/detectFaceLandmarksTiny.html +++ b/typedoc/functions/detectFaceLandmarksTiny.html @@ -1,4 +1,4 @@ -detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.6
    +detectFaceLandmarksTiny | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -49,7 +49,7 @@ faster at inference, but also slightly less accurate.

    Modules

    diff --git a/typedoc/functions/detectLandmarks.html b/typedoc/functions/detectLandmarks.html index 3a65721..85f4eb9 100644 --- a/typedoc/functions/detectLandmarks.html +++ b/typedoc/functions/detectLandmarks.html @@ -1,4 +1,4 @@ -detectLandmarks | @vladmandic/face-api - v1.7.6
    +detectLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/detectSingleFace.html b/typedoc/functions/detectSingleFace.html index 87133db..a46ba0f 100644 --- a/typedoc/functions/detectSingleFace.html +++ b/typedoc/functions/detectSingleFace.html @@ -1,4 +1,4 @@ -detectSingleFace | @vladmandic/face-api - v1.7.6
    +detectSingleFace | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawContour.html b/typedoc/functions/draw.drawContour.html index 54ae696..602510e 100644 --- a/typedoc/functions/draw.drawContour.html +++ b/typedoc/functions/draw.drawContour.html @@ -1,4 +1,4 @@ -drawContour | @vladmandic/face-api - v1.7.6
    +drawContour | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -48,7 +48,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawDetections.html b/typedoc/functions/draw.drawDetections.html index 2a7fc5b..0af7b57 100644 --- a/typedoc/functions/draw.drawDetections.html +++ b/typedoc/functions/draw.drawDetections.html @@ -1,4 +1,4 @@ -drawDetections | @vladmandic/face-api - v1.7.6
    +drawDetections | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawFaceExpressions.html b/typedoc/functions/draw.drawFaceExpressions.html index 1ba76ba..c726eca 100644 --- a/typedoc/functions/draw.drawFaceExpressions.html +++ b/typedoc/functions/draw.drawFaceExpressions.html @@ -1,4 +1,4 @@ -drawFaceExpressions | @vladmandic/face-api - v1.7.6
    +drawFaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/draw.drawFaceLandmarks-1.html b/typedoc/functions/draw.drawFaceLandmarks-1.html index 54860cc..0c8b985 100644 --- a/typedoc/functions/draw.drawFaceLandmarks-1.html +++ b/typedoc/functions/draw.drawFaceLandmarks-1.html @@ -1,4 +1,4 @@ -drawFaceLandmarks | @vladmandic/face-api - v1.7.6
    +drawFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/euclideanDistance.html b/typedoc/functions/euclideanDistance.html index bf93d76..76ddc28 100644 --- a/typedoc/functions/euclideanDistance.html +++ b/typedoc/functions/euclideanDistance.html @@ -1,4 +1,4 @@ -euclideanDistance | @vladmandic/face-api - v1.7.6
    +euclideanDistance | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithAge.html b/typedoc/functions/extendWithAge.html index c9717a7..c44482d 100644 --- a/typedoc/functions/extendWithAge.html +++ b/typedoc/functions/extendWithAge.html @@ -1,4 +1,4 @@ -extendWithAge | @vladmandic/face-api - v1.7.6
    +extendWithAge | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceDescriptor.html b/typedoc/functions/extendWithFaceDescriptor.html index 4702f73..2af91c7 100644 --- a/typedoc/functions/extendWithFaceDescriptor.html +++ b/typedoc/functions/extendWithFaceDescriptor.html @@ -1,4 +1,4 @@ -extendWithFaceDescriptor | @vladmandic/face-api - v1.7.6
    +extendWithFaceDescriptor | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceDetection.html b/typedoc/functions/extendWithFaceDetection.html index 74a6053..5bb1010 100644 --- a/typedoc/functions/extendWithFaceDetection.html +++ b/typedoc/functions/extendWithFaceDetection.html @@ -1,4 +1,4 @@ -extendWithFaceDetection | @vladmandic/face-api - v1.7.6
    +extendWithFaceDetection | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceExpressions.html b/typedoc/functions/extendWithFaceExpressions.html index 4a119a8..c7ea6bd 100644 --- a/typedoc/functions/extendWithFaceExpressions.html +++ b/typedoc/functions/extendWithFaceExpressions.html @@ -1,4 +1,4 @@ -extendWithFaceExpressions | @vladmandic/face-api - v1.7.6
    +extendWithFaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithFaceLandmarks.html b/typedoc/functions/extendWithFaceLandmarks.html index bc8992e..281e1c5 100644 --- a/typedoc/functions/extendWithFaceLandmarks.html +++ b/typedoc/functions/extendWithFaceLandmarks.html @@ -1,4 +1,4 @@ -extendWithFaceLandmarks | @vladmandic/face-api - v1.7.6
    +extendWithFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/extendWithGender.html b/typedoc/functions/extendWithGender.html index 24d6ed7..6d36247 100644 --- a/typedoc/functions/extendWithGender.html +++ b/typedoc/functions/extendWithGender.html @@ -1,4 +1,4 @@ -extendWithGender | @vladmandic/face-api - v1.7.6
    +extendWithGender | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/extractFaceTensors.html b/typedoc/functions/extractFaceTensors.html index 0b68339..6b37f07 100644 --- a/typedoc/functions/extractFaceTensors.html +++ b/typedoc/functions/extractFaceTensors.html @@ -1,4 +1,4 @@ -extractFaceTensors | @vladmandic/face-api - v1.7.6
    +extractFaceTensors | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -56,7 +56,7 @@ converting them to tensors individually.

    Modules

    diff --git a/typedoc/functions/extractFaces.html b/typedoc/functions/extractFaces.html index 4f01681..32a5815 100644 --- a/typedoc/functions/extractFaces.html +++ b/typedoc/functions/extractFaces.html @@ -1,4 +1,4 @@ -extractFaces | @vladmandic/face-api - v1.7.6
    +extractFaces | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/fetchImage.html b/typedoc/functions/fetchImage.html index bfe3726..b7c67db 100644 --- a/typedoc/functions/fetchImage.html +++ b/typedoc/functions/fetchImage.html @@ -1,4 +1,4 @@ -fetchImage | @vladmandic/face-api - v1.7.6
    +fetchImage | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/fetchJson.html b/typedoc/functions/fetchJson.html index aa40037..c24d160 100644 --- a/typedoc/functions/fetchJson.html +++ b/typedoc/functions/fetchJson.html @@ -1,4 +1,4 @@ -fetchJson | @vladmandic/face-api - v1.7.6
    +fetchJson | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -48,7 +48,7 @@

    Modules

    diff --git a/typedoc/functions/fetchNetWeights.html b/typedoc/functions/fetchNetWeights.html index b4d7ae9..1568038 100644 --- a/typedoc/functions/fetchNetWeights.html +++ b/typedoc/functions/fetchNetWeights.html @@ -1,4 +1,4 @@ -fetchNetWeights | @vladmandic/face-api - v1.7.6
    +fetchNetWeights | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/fetchOrThrow.html b/typedoc/functions/fetchOrThrow.html index 0a578c0..ec36b91 100644 --- a/typedoc/functions/fetchOrThrow.html +++ b/typedoc/functions/fetchOrThrow.html @@ -1,4 +1,4 @@ -fetchOrThrow | @vladmandic/face-api - v1.7.6
    +fetchOrThrow | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/fetchVideo.html b/typedoc/functions/fetchVideo.html index 20f2a07..6936e00 100644 --- a/typedoc/functions/fetchVideo.html +++ b/typedoc/functions/fetchVideo.html @@ -1,4 +1,4 @@ -fetchVideo | @vladmandic/face-api - v1.7.6
    +fetchVideo | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/getContext2dOrThrow.html b/typedoc/functions/getContext2dOrThrow.html index afdbc76..d02cd99 100644 --- a/typedoc/functions/getContext2dOrThrow.html +++ b/typedoc/functions/getContext2dOrThrow.html @@ -1,4 +1,4 @@ -getContext2dOrThrow | @vladmandic/face-api - v1.7.6
    +getContext2dOrThrow | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/getMediaDimensions.html b/typedoc/functions/getMediaDimensions.html index 27e0e9b..3cef75e 100644 --- a/typedoc/functions/getMediaDimensions.html +++ b/typedoc/functions/getMediaDimensions.html @@ -1,4 +1,4 @@ -getMediaDimensions | @vladmandic/face-api - v1.7.6
    +getMediaDimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/imageTensorToCanvas.html b/typedoc/functions/imageTensorToCanvas.html index 06c1758..e53fba9 100644 --- a/typedoc/functions/imageTensorToCanvas.html +++ b/typedoc/functions/imageTensorToCanvas.html @@ -1,4 +1,4 @@ -imageTensorToCanvas | @vladmandic/face-api - v1.7.6
    +imageTensorToCanvas | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/imageToSquare.html b/typedoc/functions/imageToSquare.html index c0825aa..2240cbb 100644 --- a/typedoc/functions/imageToSquare.html +++ b/typedoc/functions/imageToSquare.html @@ -1,4 +1,4 @@ -imageToSquare | @vladmandic/face-api - v1.7.6
    +imageToSquare | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/inverseSigmoid.html b/typedoc/functions/inverseSigmoid.html index 4f899d9..b239cee 100644 --- a/typedoc/functions/inverseSigmoid.html +++ b/typedoc/functions/inverseSigmoid.html @@ -1,4 +1,4 @@ -inverseSigmoid | @vladmandic/face-api - v1.7.6
    +inverseSigmoid | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/iou.html b/typedoc/functions/iou.html index 2149fad..5ba2a47 100644 --- a/typedoc/functions/iou.html +++ b/typedoc/functions/iou.html @@ -1,4 +1,4 @@ -iou | @vladmandic/face-api - v1.7.6
    +iou | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/isMediaElement.html b/typedoc/functions/isMediaElement.html index 4668543..6190f2f 100644 --- a/typedoc/functions/isMediaElement.html +++ b/typedoc/functions/isMediaElement.html @@ -1,4 +1,4 @@ -isMediaElement | @vladmandic/face-api - v1.7.6
    +isMediaElement | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isMediaLoaded.html b/typedoc/functions/isMediaLoaded.html index c570ca9..fff39d0 100644 --- a/typedoc/functions/isMediaLoaded.html +++ b/typedoc/functions/isMediaLoaded.html @@ -1,4 +1,4 @@ -isMediaLoaded | @vladmandic/face-api - v1.7.6
    +isMediaLoaded | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithAge.html b/typedoc/functions/isWithAge.html index 6d0fbe7..41aee3b 100644 --- a/typedoc/functions/isWithAge.html +++ b/typedoc/functions/isWithAge.html @@ -1,4 +1,4 @@ -isWithAge | @vladmandic/face-api - v1.7.6
    +isWithAge | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithFaceDetection.html b/typedoc/functions/isWithFaceDetection.html index 1730cd5..7a19cc6 100644 --- a/typedoc/functions/isWithFaceDetection.html +++ b/typedoc/functions/isWithFaceDetection.html @@ -1,4 +1,4 @@ -isWithFaceDetection | @vladmandic/face-api - v1.7.6
    +isWithFaceDetection | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithFaceExpressions.html b/typedoc/functions/isWithFaceExpressions.html index 1bfd421..f813975 100644 --- a/typedoc/functions/isWithFaceExpressions.html +++ b/typedoc/functions/isWithFaceExpressions.html @@ -1,4 +1,4 @@ -isWithFaceExpressions | @vladmandic/face-api - v1.7.6
    +isWithFaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithFaceLandmarks.html b/typedoc/functions/isWithFaceLandmarks.html index 08c41d8..998a453 100644 --- a/typedoc/functions/isWithFaceLandmarks.html +++ b/typedoc/functions/isWithFaceLandmarks.html @@ -1,4 +1,4 @@ -isWithFaceLandmarks | @vladmandic/face-api - v1.7.6
    +isWithFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/isWithGender.html b/typedoc/functions/isWithGender.html index 547ad71..fd54a0d 100644 --- a/typedoc/functions/isWithGender.html +++ b/typedoc/functions/isWithGender.html @@ -1,4 +1,4 @@ -isWithGender | @vladmandic/face-api - v1.7.6
    +isWithGender | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadAgeGenderModel.html b/typedoc/functions/loadAgeGenderModel.html index 5e4844e..c0de95c 100644 --- a/typedoc/functions/loadAgeGenderModel.html +++ b/typedoc/functions/loadAgeGenderModel.html @@ -1,4 +1,4 @@ -loadAgeGenderModel | @vladmandic/face-api - v1.7.6
    +loadAgeGenderModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceDetectionModel.html b/typedoc/functions/loadFaceDetectionModel.html index 44afa47..041be13 100644 --- a/typedoc/functions/loadFaceDetectionModel.html +++ b/typedoc/functions/loadFaceDetectionModel.html @@ -1,4 +1,4 @@ -loadFaceDetectionModel | @vladmandic/face-api - v1.7.6
    +loadFaceDetectionModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceExpressionModel.html b/typedoc/functions/loadFaceExpressionModel.html index 9189ec5..74fc416 100644 --- a/typedoc/functions/loadFaceExpressionModel.html +++ b/typedoc/functions/loadFaceExpressionModel.html @@ -1,4 +1,4 @@ -loadFaceExpressionModel | @vladmandic/face-api - v1.7.6
    +loadFaceExpressionModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceLandmarkModel.html b/typedoc/functions/loadFaceLandmarkModel.html index 1624743..585819b 100644 --- a/typedoc/functions/loadFaceLandmarkModel.html +++ b/typedoc/functions/loadFaceLandmarkModel.html @@ -1,4 +1,4 @@ -loadFaceLandmarkModel | @vladmandic/face-api - v1.7.6
    +loadFaceLandmarkModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceLandmarkTinyModel.html b/typedoc/functions/loadFaceLandmarkTinyModel.html index 90a52c9..e0eb993 100644 --- a/typedoc/functions/loadFaceLandmarkTinyModel.html +++ b/typedoc/functions/loadFaceLandmarkTinyModel.html @@ -1,4 +1,4 @@ -loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.6
    +loadFaceLandmarkTinyModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadFaceRecognitionModel.html b/typedoc/functions/loadFaceRecognitionModel.html index 10abdb0..92f4b6e 100644 --- a/typedoc/functions/loadFaceRecognitionModel.html +++ b/typedoc/functions/loadFaceRecognitionModel.html @@ -1,4 +1,4 @@ -loadFaceRecognitionModel | @vladmandic/face-api - v1.7.6
    +loadFaceRecognitionModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadSsdMobilenetv1Model.html b/typedoc/functions/loadSsdMobilenetv1Model.html index 4e4d30c..df22ead 100644 --- a/typedoc/functions/loadSsdMobilenetv1Model.html +++ b/typedoc/functions/loadSsdMobilenetv1Model.html @@ -1,4 +1,4 @@ -loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.6
    +loadSsdMobilenetv1Model | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadTinyFaceDetectorModel.html b/typedoc/functions/loadTinyFaceDetectorModel.html index 1a4570f..1a005e3 100644 --- a/typedoc/functions/loadTinyFaceDetectorModel.html +++ b/typedoc/functions/loadTinyFaceDetectorModel.html @@ -1,4 +1,4 @@ -loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.6
    +loadTinyFaceDetectorModel | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadTinyYolov2Model.html b/typedoc/functions/loadTinyYolov2Model.html index 00f4026..65da02a 100644 --- a/typedoc/functions/loadTinyYolov2Model.html +++ b/typedoc/functions/loadTinyYolov2Model.html @@ -1,4 +1,4 @@ -loadTinyYolov2Model | @vladmandic/face-api - v1.7.6
    +loadTinyYolov2Model | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/loadWeightMap.html b/typedoc/functions/loadWeightMap.html index dabfa7a..a94adaa 100644 --- a/typedoc/functions/loadWeightMap.html +++ b/typedoc/functions/loadWeightMap.html @@ -1,4 +1,4 @@ -loadWeightMap | @vladmandic/face-api - v1.7.6
    +loadWeightMap | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/locateFaces.html b/typedoc/functions/locateFaces.html index 9782788..e0713e0 100644 --- a/typedoc/functions/locateFaces.html +++ b/typedoc/functions/locateFaces.html @@ -1,4 +1,4 @@ -locateFaces | @vladmandic/face-api - v1.7.6
    +locateFaces | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/matchDimensions.html b/typedoc/functions/matchDimensions.html index 0df4cea..1ee8e75 100644 --- a/typedoc/functions/matchDimensions.html +++ b/typedoc/functions/matchDimensions.html @@ -1,4 +1,4 @@ -matchDimensions | @vladmandic/face-api - v1.7.6
    +matchDimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -52,7 +52,7 @@

    Modules

    diff --git a/typedoc/functions/minBbox.html b/typedoc/functions/minBbox.html index 870bca4..3165c59 100644 --- a/typedoc/functions/minBbox.html +++ b/typedoc/functions/minBbox.html @@ -1,4 +1,4 @@ -minBbox | @vladmandic/face-api - v1.7.6
    +minBbox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/nonMaxSuppression.html b/typedoc/functions/nonMaxSuppression.html index ac845b8..05db78f 100644 --- a/typedoc/functions/nonMaxSuppression.html +++ b/typedoc/functions/nonMaxSuppression.html @@ -1,4 +1,4 @@ -nonMaxSuppression | @vladmandic/face-api - v1.7.6
    +nonMaxSuppression | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -49,7 +49,7 @@

    Modules

    diff --git a/typedoc/functions/normalize.html b/typedoc/functions/normalize.html index 002cb1b..3162e23 100644 --- a/typedoc/functions/normalize.html +++ b/typedoc/functions/normalize.html @@ -1,4 +1,4 @@ -normalize | @vladmandic/face-api - v1.7.6
    +normalize | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -45,7 +45,7 @@

    Modules

    diff --git a/typedoc/functions/padToSquare.html b/typedoc/functions/padToSquare.html index 7645347..dd69a88 100644 --- a/typedoc/functions/padToSquare.html +++ b/typedoc/functions/padToSquare.html @@ -1,4 +1,4 @@ -padToSquare | @vladmandic/face-api - v1.7.6
    +padToSquare | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -54,7 +54,7 @@ both sides of the minor dimension oof the image.

    Modules

    diff --git a/typedoc/functions/predictAgeAndGender.html b/typedoc/functions/predictAgeAndGender.html index 0f1241d..2bfb006 100644 --- a/typedoc/functions/predictAgeAndGender.html +++ b/typedoc/functions/predictAgeAndGender.html @@ -1,4 +1,4 @@ -predictAgeAndGender | @vladmandic/face-api - v1.7.6
    +predictAgeAndGender | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/recognizeFaceExpressions.html b/typedoc/functions/recognizeFaceExpressions.html index 25450d0..f6e6576 100644 --- a/typedoc/functions/recognizeFaceExpressions.html +++ b/typedoc/functions/recognizeFaceExpressions.html @@ -1,4 +1,4 @@ -recognizeFaceExpressions | @vladmandic/face-api - v1.7.6
    +recognizeFaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/functions/resizeResults.html b/typedoc/functions/resizeResults.html index 8cdc657..ba5dc2d 100644 --- a/typedoc/functions/resizeResults.html +++ b/typedoc/functions/resizeResults.html @@ -1,4 +1,4 @@ -resizeResults | @vladmandic/face-api - v1.7.6
    +resizeResults | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/functions/resolveInput.html b/typedoc/functions/resolveInput.html index b9b7010..867230e 100644 --- a/typedoc/functions/resolveInput.html +++ b/typedoc/functions/resolveInput.html @@ -1,4 +1,4 @@ -resolveInput | @vladmandic/face-api - v1.7.6
    +resolveInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/shuffleArray.html b/typedoc/functions/shuffleArray.html index 56e748c..774d572 100644 --- a/typedoc/functions/shuffleArray.html +++ b/typedoc/functions/shuffleArray.html @@ -1,4 +1,4 @@ -shuffleArray | @vladmandic/face-api - v1.7.6
    +shuffleArray | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/sigmoid.html b/typedoc/functions/sigmoid.html index a75d719..144f73c 100644 --- a/typedoc/functions/sigmoid.html +++ b/typedoc/functions/sigmoid.html @@ -1,4 +1,4 @@ -sigmoid | @vladmandic/face-api - v1.7.6
    +sigmoid | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/functions/ssdMobilenetv1-1.html b/typedoc/functions/ssdMobilenetv1-1.html index 059ba7b..6267db6 100644 --- a/typedoc/functions/ssdMobilenetv1-1.html +++ b/typedoc/functions/ssdMobilenetv1-1.html @@ -1,4 +1,4 @@ -ssdMobilenetv1 | @vladmandic/face-api - v1.7.6
    +ssdMobilenetv1 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/tinyFaceDetector-1.html b/typedoc/functions/tinyFaceDetector-1.html index 9d43475..c50d28d 100644 --- a/typedoc/functions/tinyFaceDetector-1.html +++ b/typedoc/functions/tinyFaceDetector-1.html @@ -1,4 +1,4 @@ -tinyFaceDetector | @vladmandic/face-api - v1.7.6
    +tinyFaceDetector | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/tinyYolov2-1.html b/typedoc/functions/tinyYolov2-1.html index e1afc34..d424535 100644 --- a/typedoc/functions/tinyYolov2-1.html +++ b/typedoc/functions/tinyYolov2-1.html @@ -1,4 +1,4 @@ -tinyYolov2 | @vladmandic/face-api - v1.7.6
    +tinyYolov2 | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/functions/toNetInput.html b/typedoc/functions/toNetInput.html index bfd9976..ceb20c6 100644 --- a/typedoc/functions/toNetInput.html +++ b/typedoc/functions/toNetInput.html @@ -1,4 +1,4 @@ -toNetInput | @vladmandic/face-api - v1.7.6
    +toNetInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -48,7 +48,7 @@ to be finished loading.

    Modules

    diff --git a/typedoc/functions/utils.computeReshapedDimensions.html b/typedoc/functions/utils.computeReshapedDimensions.html index 2c190d0..bdecc38 100644 --- a/typedoc/functions/utils.computeReshapedDimensions.html +++ b/typedoc/functions/utils.computeReshapedDimensions.html @@ -1,4 +1,4 @@ -computeReshapedDimensions | @vladmandic/face-api - v1.7.6
    +computeReshapedDimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/utils.getCenterPoint.html b/typedoc/functions/utils.getCenterPoint.html index 3a1ff55..6b33a61 100644 --- a/typedoc/functions/utils.getCenterPoint.html +++ b/typedoc/functions/utils.getCenterPoint.html @@ -1,4 +1,4 @@ -getCenterPoint | @vladmandic/face-api - v1.7.6
    +getCenterPoint | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isDimensions.html b/typedoc/functions/utils.isDimensions.html index 962840d..6e1e842 100644 --- a/typedoc/functions/utils.isDimensions.html +++ b/typedoc/functions/utils.isDimensions.html @@ -1,4 +1,4 @@ -isDimensions | @vladmandic/face-api - v1.7.6
    +isDimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isEven.html b/typedoc/functions/utils.isEven.html index 4e32ebe..75d317d 100644 --- a/typedoc/functions/utils.isEven.html +++ b/typedoc/functions/utils.isEven.html @@ -1,4 +1,4 @@ -isEven | @vladmandic/face-api - v1.7.6
    +isEven | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isFloat.html b/typedoc/functions/utils.isFloat.html index 0dd8a9a..9adc0e1 100644 --- a/typedoc/functions/utils.isFloat.html +++ b/typedoc/functions/utils.isFloat.html @@ -1,4 +1,4 @@ -isFloat | @vladmandic/face-api - v1.7.6
    +isFloat | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor.html b/typedoc/functions/utils.isTensor.html index 5a47a48..a45cc4c 100644 --- a/typedoc/functions/utils.isTensor.html +++ b/typedoc/functions/utils.isTensor.html @@ -1,4 +1,4 @@ -isTensor | @vladmandic/face-api - v1.7.6
    +isTensor | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor1D.html b/typedoc/functions/utils.isTensor1D.html index 9037145..b6763ee 100644 --- a/typedoc/functions/utils.isTensor1D.html +++ b/typedoc/functions/utils.isTensor1D.html @@ -1,4 +1,4 @@ -isTensor1D | @vladmandic/face-api - v1.7.6
    +isTensor1D | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor2D.html b/typedoc/functions/utils.isTensor2D.html index 4529c09..11c33e7 100644 --- a/typedoc/functions/utils.isTensor2D.html +++ b/typedoc/functions/utils.isTensor2D.html @@ -1,4 +1,4 @@ -isTensor2D | @vladmandic/face-api - v1.7.6
    +isTensor2D | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor3D.html b/typedoc/functions/utils.isTensor3D.html index 24cfac3..ad22182 100644 --- a/typedoc/functions/utils.isTensor3D.html +++ b/typedoc/functions/utils.isTensor3D.html @@ -1,4 +1,4 @@ -isTensor3D | @vladmandic/face-api - v1.7.6
    +isTensor3D | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isTensor4D.html b/typedoc/functions/utils.isTensor4D.html index 7872268..8c4a6e8 100644 --- a/typedoc/functions/utils.isTensor4D.html +++ b/typedoc/functions/utils.isTensor4D.html @@ -1,4 +1,4 @@ -isTensor4D | @vladmandic/face-api - v1.7.6
    +isTensor4D | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isValidNumber.html b/typedoc/functions/utils.isValidNumber.html index f631b3b..14ff541 100644 --- a/typedoc/functions/utils.isValidNumber.html +++ b/typedoc/functions/utils.isValidNumber.html @@ -1,4 +1,4 @@ -isValidNumber | @vladmandic/face-api - v1.7.6
    +isValidNumber | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.isValidProbablitiy.html b/typedoc/functions/utils.isValidProbablitiy.html index 14994fa..2ad4266 100644 --- a/typedoc/functions/utils.isValidProbablitiy.html +++ b/typedoc/functions/utils.isValidProbablitiy.html @@ -1,4 +1,4 @@ -isValidProbablitiy | @vladmandic/face-api - v1.7.6
    +isValidProbablitiy | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/functions/utils.range.html b/typedoc/functions/utils.range.html index aceaa69..d3a12c1 100644 --- a/typedoc/functions/utils.range.html +++ b/typedoc/functions/utils.range.html @@ -1,4 +1,4 @@ -range | @vladmandic/face-api - v1.7.6
    +range | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -48,7 +48,7 @@

    Modules

    diff --git a/typedoc/functions/utils.round.html b/typedoc/functions/utils.round.html index a06a525..63b1ca7 100644 --- a/typedoc/functions/utils.round.html +++ b/typedoc/functions/utils.round.html @@ -1,4 +1,4 @@ -round | @vladmandic/face-api - v1.7.6
    +round | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -46,7 +46,7 @@

    Modules

    diff --git a/typedoc/functions/validateConfig.html b/typedoc/functions/validateConfig.html index 8a06b96..5befd53 100644 --- a/typedoc/functions/validateConfig.html +++ b/typedoc/functions/validateConfig.html @@ -1,4 +1,4 @@ -validateConfig | @vladmandic/face-api - v1.7.6
    +validateConfig | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/index.html b/typedoc/index.html index 3a2d5a7..0ad59e6 100644 --- a/typedoc/index.html +++ b/typedoc/index.html @@ -1,4 +1,4 @@ -@vladmandic/face-api - v1.7.6
    +@vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    -

    @vladmandic/face-api - v1.7.6

    +

    @vladmandic/face-api - v1.7.7

    @@ -216,7 +216,7 @@

    Modules

    diff --git a/typedoc/interfaces/IBoundingBox.html b/typedoc/interfaces/IBoundingBox.html index eeac4c4..a02d915 100644 --- a/typedoc/interfaces/IBoundingBox.html +++ b/typedoc/interfaces/IBoundingBox.html @@ -1,4 +1,4 @@ -IBoundingBox | @vladmandic/face-api - v1.7.6
    +IBoundingBox | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -76,7 +76,7 @@

    Modules

    diff --git a/typedoc/interfaces/IDimensions.html b/typedoc/interfaces/IDimensions.html index 9fcce23..a366c0b 100644 --- a/typedoc/interfaces/IDimensions.html +++ b/typedoc/interfaces/IDimensions.html @@ -1,4 +1,4 @@ -IDimensions | @vladmandic/face-api - v1.7.6
    +IDimensions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceDetecion.html b/typedoc/interfaces/IFaceDetecion.html index da28c03..63d3d01 100644 --- a/typedoc/interfaces/IFaceDetecion.html +++ b/typedoc/interfaces/IFaceDetecion.html @@ -1,4 +1,4 @@ -IFaceDetecion | @vladmandic/face-api - v1.7.6
    +IFaceDetecion | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceLandmarks.html b/typedoc/interfaces/IFaceLandmarks.html index 0b4c7b8..829bb0d 100644 --- a/typedoc/interfaces/IFaceLandmarks.html +++ b/typedoc/interfaces/IFaceLandmarks.html @@ -1,4 +1,4 @@ -IFaceLandmarks | @vladmandic/face-api - v1.7.6
    +IFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IFaceMatch.html b/typedoc/interfaces/IFaceMatch.html index 6210e0e..3ba00df 100644 --- a/typedoc/interfaces/IFaceMatch.html +++ b/typedoc/interfaces/IFaceMatch.html @@ -1,4 +1,4 @@ -IFaceMatch | @vladmandic/face-api - v1.7.6
    +IFaceMatch | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IPoint.html b/typedoc/interfaces/IPoint.html index e1a9946..23a4994 100644 --- a/typedoc/interfaces/IPoint.html +++ b/typedoc/interfaces/IPoint.html @@ -1,4 +1,4 @@ -IPoint | @vladmandic/face-api - v1.7.6
    +IPoint | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -63,7 +63,7 @@

    Modules

    diff --git a/typedoc/interfaces/IRect.html b/typedoc/interfaces/IRect.html index c750ac2..c3457cd 100644 --- a/typedoc/interfaces/IRect.html +++ b/typedoc/interfaces/IRect.html @@ -1,4 +1,4 @@ -IRect | @vladmandic/face-api - v1.7.6
    +IRect | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -76,7 +76,7 @@

    Modules

    diff --git a/typedoc/interfaces/ISsdMobilenetv1Options.html b/typedoc/interfaces/ISsdMobilenetv1Options.html index 6e60dfe..d52836a 100644 --- a/typedoc/interfaces/ISsdMobilenetv1Options.html +++ b/typedoc/interfaces/ISsdMobilenetv1Options.html @@ -1,4 +1,4 @@ -ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.6
    +ISsdMobilenetv1Options | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -59,7 +59,7 @@

    Modules

    diff --git a/typedoc/interfaces/ITinyYolov2Options.html b/typedoc/interfaces/ITinyYolov2Options.html index c54f7b4..9c1ebc4 100644 --- a/typedoc/interfaces/ITinyYolov2Options.html +++ b/typedoc/interfaces/ITinyYolov2Options.html @@ -1,4 +1,4 @@ -ITinyYolov2Options | @vladmandic/face-api - v1.7.6
    +ITinyYolov2Options | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -59,7 +59,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawBoxOptions.html b/typedoc/interfaces/draw.IDrawBoxOptions.html index da707e4..28e212c 100644 --- a/typedoc/interfaces/draw.IDrawBoxOptions.html +++ b/typedoc/interfaces/draw.IDrawBoxOptions.html @@ -1,4 +1,4 @@ -IDrawBoxOptions | @vladmandic/face-api - v1.7.6
    +IDrawBoxOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -72,7 +72,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html index 2037bb0..56292ac 100644 --- a/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html +++ b/typedoc/interfaces/draw.IDrawFaceLandmarksOptions.html @@ -1,4 +1,4 @@ -IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.6
    +IDrawFaceLandmarksOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -84,7 +84,7 @@

    Modules

    diff --git a/typedoc/interfaces/draw.IDrawTextFieldOptions.html b/typedoc/interfaces/draw.IDrawTextFieldOptions.html index 7f7b4e0..2fc8024 100644 --- a/typedoc/interfaces/draw.IDrawTextFieldOptions.html +++ b/typedoc/interfaces/draw.IDrawTextFieldOptions.html @@ -1,4 +1,4 @@ -IDrawTextFieldOptions | @vladmandic/face-api - v1.7.6
    +IDrawTextFieldOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -88,7 +88,7 @@

    Modules

    diff --git a/typedoc/modules/draw.html b/typedoc/modules/draw.html index 7d57271..6a64c4e 100644 --- a/typedoc/modules/draw.html +++ b/typedoc/modules/draw.html @@ -1,4 +1,4 @@ -draw | @vladmandic/face-api - v1.7.6
    +draw | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    AgeAndGenderPrediction: {
        age: number;
        gender: Gender;
        genderProbability: number;
    }
    @@ -43,7 +43,7 @@

    Modules

    diff --git a/typedoc/types/BatchNorm.html b/typedoc/types/BatchNorm.html index 5e5b5c5..797f5e4 100644 --- a/typedoc/types/BatchNorm.html +++ b/typedoc/types/BatchNorm.html @@ -1,4 +1,4 @@ -BatchNorm | @vladmandic/face-api - v1.7.6
    +BatchNorm | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    BatchNorm: {
        sub: tf.Tensor1D;
        truediv: tf.Tensor1D;
    }
    @@ -41,7 +41,7 @@

    Modules

    diff --git a/typedoc/types/ConvWithBatchNorm.html b/typedoc/types/ConvWithBatchNorm.html index 1c51ad5..95918b3 100644 --- a/typedoc/types/ConvWithBatchNorm.html +++ b/typedoc/types/ConvWithBatchNorm.html @@ -1,4 +1,4 @@ -ConvWithBatchNorm | @vladmandic/face-api - v1.7.6
    +ConvWithBatchNorm | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    ConvWithBatchNorm: {
        bn: BatchNorm;
        conv: ConvParams;
    }
    @@ -41,7 +41,7 @@

    Modules

    diff --git a/typedoc/types/DefaultTinyYolov2NetParams.html b/typedoc/types/DefaultTinyYolov2NetParams.html index dcf168a..4966152 100644 --- a/typedoc/types/DefaultTinyYolov2NetParams.html +++ b/typedoc/types/DefaultTinyYolov2NetParams.html @@ -1,4 +1,4 @@ -DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.6
    +DefaultTinyYolov2NetParams | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    DefaultTinyYolov2NetParams: {
        conv0: ConvWithBatchNorm;
        conv1: ConvWithBatchNorm;
        conv2: ConvWithBatchNorm;
        conv3: ConvWithBatchNorm;
        conv4: ConvWithBatchNorm;
        conv5: ConvWithBatchNorm;
        conv6: ConvWithBatchNorm;
        conv7: ConvWithBatchNorm;
        conv8: ConvParams;
    }
    @@ -55,7 +55,7 @@

    Modules

    diff --git a/typedoc/types/Environment.html b/typedoc/types/Environment.html index 47cd786..bf6c627 100644 --- a/typedoc/types/Environment.html +++ b/typedoc/types/Environment.html @@ -1,4 +1,4 @@ -Environment | @vladmandic/face-api - v1.7.6
    +Environment | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    Environment: FileSystem & {
        Canvas: typeof HTMLCanvasElement;
        CanvasRenderingContext2D: typeof CanvasRenderingContext2D;
        Image: typeof HTMLImageElement;
        ImageData: typeof ImageData;
        Video: typeof HTMLVideoElement;
        createCanvasElement: (() => HTMLCanvasElement);
        createImageElement: (() => HTMLImageElement);
        createVideoElement: (() => HTMLVideoElement);
        fetch: ((url: string, init?: RequestInit) => Promise<Response>);
    }
    FaceDetectionFunction: ((input: TNetInput) => Promise<FaceDetection[]>)
    @@ -47,7 +47,7 @@

    Modules

    diff --git a/typedoc/types/FaceDetectionOptions.html b/typedoc/types/FaceDetectionOptions.html index 498e755..f74aa6a 100644 --- a/typedoc/types/FaceDetectionOptions.html +++ b/typedoc/types/FaceDetectionOptions.html @@ -1,4 +1,4 @@ -FaceDetectionOptions | @vladmandic/face-api - v1.7.6
    +FaceDetectionOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    FileSystem: {
        readFile: ((filePath: string) => Promise<any>);
    }
    @@ -50,7 +50,7 @@

    Modules

    diff --git a/typedoc/types/ITinyFaceDetectorOptions.html b/typedoc/types/ITinyFaceDetectorOptions.html index 16b1177..f011eab 100644 --- a/typedoc/types/ITinyFaceDetectorOptions.html +++ b/typedoc/types/ITinyFaceDetectorOptions.html @@ -1,4 +1,4 @@ -ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.6
    +ITinyFaceDetectorOptions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    ITinyFaceDetectorOptions: ITinyYolov2Options
    MobilenetParams: {
        conv0: SeparableConvParams | ConvParams;
        conv1: SeparableConvParams;
        conv2: SeparableConvParams;
        conv3: SeparableConvParams;
        conv4: SeparableConvParams;
        conv5: SeparableConvParams;
        conv6?: SeparableConvParams;
        conv7?: SeparableConvParams;
        conv8: ConvParams;
    }
    @@ -55,7 +55,7 @@

    Modules

    diff --git a/typedoc/types/NetOutput.html b/typedoc/types/NetOutput.html index e25eeec..1418669 100644 --- a/typedoc/types/NetOutput.html +++ b/typedoc/types/NetOutput.html @@ -1,4 +1,4 @@ -NetOutput | @vladmandic/face-api - v1.7.6
    +NetOutput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    NetOutput: {
        age: tf.Tensor1D;
        gender: tf.Tensor2D;
    }
    @@ -41,7 +41,7 @@

    Modules

    diff --git a/typedoc/types/NetParams.html b/typedoc/types/NetParams.html index c813713..8b237e5 100644 --- a/typedoc/types/NetParams.html +++ b/typedoc/types/NetParams.html @@ -1,4 +1,4 @@ -NetParams | @vladmandic/face-api - v1.7.6
    +NetParams | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    NetParams: {
        fc: {
            age: FCParams;
            gender: FCParams;
        };
    }
    @@ -44,7 +44,7 @@

    Modules

    diff --git a/typedoc/types/TMediaElement.html b/typedoc/types/TMediaElement.html index c073a9c..415f599 100644 --- a/typedoc/types/TMediaElement.html +++ b/typedoc/types/TMediaElement.html @@ -1,4 +1,4 @@ -TMediaElement | @vladmandic/face-api - v1.7.6
    +TMediaElement | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    TMediaElement: HTMLImageElement | HTMLVideoElement | HTMLCanvasElement
    TNetInput: TNetInputArg | TNetInputArg[] | NetInput | tf.Tensor4D
    TNetInputArg: string | TResolvedNetInput
    TResolvedNetInput: TMediaElement | tf.Tensor3D | tf.Tensor4D
    TinyYolov2Config: {
        anchors: Point[];
        classes: string[];
        filterSizes?: number[];
        iouThreshold: number;
        isFirstLayerConv2d?: boolean;
        meanRgb?: [number, number, number];
        withClassScores?: boolean;
        withSeparableConvs: boolean;
    }
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/types/TinyYolov2NetParams.html b/typedoc/types/TinyYolov2NetParams.html index 99e1138..5ad2c0e 100644 --- a/typedoc/types/TinyYolov2NetParams.html +++ b/typedoc/types/TinyYolov2NetParams.html @@ -1,4 +1,4 @@ -TinyYolov2NetParams | @vladmandic/face-api - v1.7.6
    +TinyYolov2NetParams | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    WithAge<TSource>: TSource & {
        age: number;
    }
    @@ -39,7 +39,7 @@

    Modules

    diff --git a/typedoc/types/WithFaceDescriptor.html b/typedoc/types/WithFaceDescriptor.html index d09d931..f05a716 100644 --- a/typedoc/types/WithFaceDescriptor.html +++ b/typedoc/types/WithFaceDescriptor.html @@ -1,4 +1,4 @@ -WithFaceDescriptor | @vladmandic/face-api - v1.7.6
    +WithFaceDescriptor | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    WithFaceDescriptor<TSource>: TSource & {
        descriptor: Float32Array;
    }
    @@ -39,7 +39,7 @@

    Modules

    diff --git a/typedoc/types/WithFaceDetection.html b/typedoc/types/WithFaceDetection.html index 31b7132..07fdbc6 100644 --- a/typedoc/types/WithFaceDetection.html +++ b/typedoc/types/WithFaceDetection.html @@ -1,4 +1,4 @@ -WithFaceDetection | @vladmandic/face-api - v1.7.6
    +WithFaceDetection | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    WithFaceDetection<TSource>: TSource & {
        detection: FaceDetection;
    }
    @@ -39,7 +39,7 @@

    Modules

    diff --git a/typedoc/types/WithFaceExpressions.html b/typedoc/types/WithFaceExpressions.html index ff1ae60..f8bd61c 100644 --- a/typedoc/types/WithFaceExpressions.html +++ b/typedoc/types/WithFaceExpressions.html @@ -1,4 +1,4 @@ -WithFaceExpressions | @vladmandic/face-api - v1.7.6
    +WithFaceExpressions | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    WithFaceExpressions<TSource>: TSource & {
        expressions: FaceExpressions;
    }
    @@ -39,7 +39,7 @@

    Modules

    diff --git a/typedoc/types/WithFaceLandmarks.html b/typedoc/types/WithFaceLandmarks.html index 86021e2..294de48 100644 --- a/typedoc/types/WithFaceLandmarks.html +++ b/typedoc/types/WithFaceLandmarks.html @@ -1,4 +1,4 @@ -WithFaceLandmarks | @vladmandic/face-api - v1.7.6
    +WithFaceLandmarks | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7

    Type alias WithFaceLandmarks<TSource, TFaceLandmarks>

    WithFaceLandmarks<TSource, TFaceLandmarks>: TSource & {
        alignedRect: FaceDetection;
        angle: {
            pitch: number | undefined;
            roll: number | undefined;
            yaw: number | undefined;
        };
        landmarks: TFaceLandmarks;
        unshiftedLandmarks: TFaceLandmarks;
    }
    @@ -41,7 +41,7 @@

    Modules

    diff --git a/typedoc/types/WithGender.html b/typedoc/types/WithGender.html index da2e488..ecaabd5 100644 --- a/typedoc/types/WithGender.html +++ b/typedoc/types/WithGender.html @@ -1,4 +1,4 @@ -WithGender | @vladmandic/face-api - v1.7.6
    +WithGender | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    WithGender<TSource>: TSource & {
        gender: Gender;
        genderProbability: number;
    }
    @@ -39,7 +39,7 @@

    Modules

    diff --git a/typedoc/types/draw.DrawFaceExpressionsInput.html b/typedoc/types/draw.DrawFaceExpressionsInput.html index aa73f6a..a612fff 100644 --- a/typedoc/types/draw.DrawFaceExpressionsInput.html +++ b/typedoc/types/draw.DrawFaceExpressionsInput.html @@ -1,4 +1,4 @@ -DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.6
    +DrawFaceExpressionsInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/types/draw.DrawFaceLandmarksInput.html b/typedoc/types/draw.DrawFaceLandmarksInput.html index b22b331..e3bdd88 100644 --- a/typedoc/types/draw.DrawFaceLandmarksInput.html +++ b/typedoc/types/draw.DrawFaceLandmarksInput.html @@ -1,4 +1,4 @@ -DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.6
    +DrawFaceLandmarksInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/types/draw.TDrawDetectionsInput.html b/typedoc/types/draw.TDrawDetectionsInput.html index c17b3bb..620210a 100644 --- a/typedoc/types/draw.TDrawDetectionsInput.html +++ b/typedoc/types/draw.TDrawDetectionsInput.html @@ -1,4 +1,4 @@ -TDrawDetectionsInput | @vladmandic/face-api - v1.7.6
    +TDrawDetectionsInput | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    @@ -35,7 +35,7 @@

    Modules

    diff --git a/typedoc/variables/FACE_EXPRESSION_LABELS.html b/typedoc/variables/FACE_EXPRESSION_LABELS.html index 123817a..0c0a65b 100644 --- a/typedoc/variables/FACE_EXPRESSION_LABELS.html +++ b/typedoc/variables/FACE_EXPRESSION_LABELS.html @@ -1,4 +1,4 @@ -FACE_EXPRESSION_LABELS | @vladmandic/face-api - v1.7.6
    +FACE_EXPRESSION_LABELS | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    FACE_EXPRESSION_LABELS: string[] = ...
    env: {
        createBrowserEnv: (() => Environment);
        createFileSystem: ((fs?: any) => FileSystem);
        createNodejsEnv: (() => Environment);
        getEnv: (() => Environment);
        initialize: (() => null | void);
        isBrowser: (() => boolean);
        isNodejs: (() => boolean);
        monkeyPatch: ((env: Partial<Environment>) => void);
        setEnv: ((env: Environment) => void);
    } = ...
    @@ -124,7 +124,7 @@

    Modules

    diff --git a/typedoc/variables/nets.html b/typedoc/variables/nets.html index b591c30..5cf630d 100644 --- a/typedoc/variables/nets.html +++ b/typedoc/variables/nets.html @@ -1,4 +1,4 @@ -nets | @vladmandic/face-api - v1.7.6
    +nets | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    nets: {
        ageGenderNet: AgeGenderNet;
        faceExpressionNet: FaceExpressionNet;
        faceLandmark68Net: FaceLandmark68Net;
        faceLandmark68TinyNet: FaceLandmark68TinyNet;
        faceRecognitionNet: FaceRecognitionNet;
        ssdMobilenetv1: SsdMobilenetv1;
        tinyFaceDetector: TinyFaceDetector;
        tinyYolov2: TinyYolov2;
    } = ...
    @@ -53,7 +53,7 @@

    Modules

    diff --git a/typedoc/variables/version.html b/typedoc/variables/version.html index 5d1118e..e97052d 100644 --- a/typedoc/variables/version.html +++ b/typedoc/variables/version.html @@ -1,4 +1,4 @@ -version | @vladmandic/face-api - v1.7.6
    +version | @vladmandic/face-api - v1.7.7
    • Preparing search index...
    • -
    • The search index is not available
    @vladmandic/face-api - v1.7.6
    +
  • The search index is not available
  • @vladmandic/face-api - v1.7.7
    version: string = ...